diff --git a/.gitignore b/.gitignore
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d8b5d9919508b3efbd1b1fdc1d91adb22b53876d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,17 @@
+client
+vas
+conf/closure
+conf/node_modules/
+conf/properties.json
+src/closure/conf/depswriter/
+src/vitis/vas/log/
+src/vitis/vas/public/
+src/vitis/vas/server/
+src/vitis/vas/ws_data/
+src/vitis/vas/tmp/
+src/vitis/client/modules/
+! src/vitis/client/modules/vitis/
+src/vitis/vas/rest/ws/*
+! src/vitis/vas/rest/ws/vitis/
+src/vitis/vas/sql/*
+! src/vitis/vas/sql/sqlQueries.xml
diff --git a/README.md b/README.md
index 73a21c98f1cea1876231e24ce68d0dc5b7bca937..11864a44a84acb26bd93ee2c969dfe16f33184b6 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,11 @@
-Vitis framework
\ No newline at end of file
+# GTF
+
+## Install dev version (linux)
+
+To install the dev version of this project run the following steps:
+
+- Install the app via the VAI setup on var/www/[app name]
+- Clone this repo on var/wwww/[app name]\_dev
+- Run install.sh and give the var/www/[app name] path when asked to build your tree structure
+- Now you have the correct versioned tree structure, rename var/www/[app name] as var/www/[app name]\_vai and var/www/[app name]\_dev as var/www/[app name]
+- Run `git pull` and `git push` to update/post the project and his dependencies
diff --git a/conf/Gruntfile.js b/conf/Gruntfile.js
new file mode 100755
index 0000000000000000000000000000000000000000..d86f36117eed9681d78386f7836d50ce1a31d8a1
--- /dev/null
+++ b/conf/Gruntfile.js
@@ -0,0 +1,150 @@
+module.exports = function (grunt) {
+
+    var compilerPackage = require('google-closure-compiler');
+    compilerPackage.grunt(grunt);
+
+    var devMode = grunt.option('dev');
+
+    var sHome = '../';
+    if (devMode) {
+        sHome = '../client/';
+    }
+
+    var sClosureDepsHome = '../../../../../';
+
+    // Project configuration.
+    grunt.initConfig({
+        'closure-compiler': {
+            GTF: {
+                files: {
+                    [sHome + '/javascript/gtf.min.js']: [
+                        // Fichiers Vitis
+                        sHome + 'javascript/require/*.js',
+                        sHome + 'javascript/app/**/*.js',
+                        sHome + 'javascript/externs/formReader/**/*.js',
+                        sHome + 'javascript/externs/mapJSON/**/*.js',
+                        sHome + 'modules/vitis/javascript/**/*.js',
+                        // OpenLayers
+                        sHome + 'javascript/externs/openLayers/**/*.js',
+                        // Fichiers GTF
+                        sHome + 'conf/requires/*.js',
+                        sHome + 'modules/gtf/javascript/**/*.js',
+                        // Fichiers Studio
+                        sHome + 'javascript/externs/studio/properties/properties.js',
+                        sHome + 'javascript/externs/studio/javascript/app/**/*.js'
+                    ]
+                },
+                options: {
+                    js: [
+                        'node_modules/google-closure-library/closure/goog/**.js',
+                        '!node_modules/google-closure-library/closure/goog/**_test.js'
+                    ],
+                    externs: [
+                        'closure/externs/angular-1.3.js',
+                        'closure/externs/bingmaps.js',
+                        'closure/externs/jquery-1.9.js',
+                        'closure/externs/bootstrap.js',
+                        'closure/externs/geojson.js',
+                        'closure/externs/jspdf.js',
+                        'closure/externs/html2canvas.js',
+                        'closure/externs/vmap.js'
+                    ],
+                    compilation_level: 'ADVANCED',
+                    manage_closure_dependencies: true,
+                    generate_exports: true,
+                    angular_pass: true,
+                    debug: false,
+                    language_in: 'ECMASCRIPT5',
+                    language_out: 'ECMASCRIPT5',
+                    closure_entry_point: ['vitis.gtf', 'vitis', 'oVFB'],
+                    create_source_map: sHome + '/javascript/gtf.min.js.map',
+                    output_wrapper: '(function(){\n%output%\n}).call(this)\n//# sourceMappingURL=../javascript/gtf.min.js.map'
+                }
+            },
+            widget: {
+                files: {
+                    [sHome + '/javascript/widget.min.js']: [
+                        // Fichiers Vitis
+                        sHome + 'modules/gtf/javascript/widget/deps.js',
+                        sHome + 'javascript/app/app.js',
+                        sHome + 'javascript/app/loadExternalFiles.js',
+                        //sHome + 'javascript/app/*.js',
+                        sHome + 'javascript/app/services/*.js',
+                        sHome + 'javascript/app/controllers/htmlFormCtrl.js',
+                        sHome + 'javascript/app/directives/htmlFormDrtv.js',
+                        //sHome + 'javascript/externs/formReader/*.js',
+                        //sHome + 'modules/vitis/javascript/**/*.js',
+                        sHome + 'javascript/externs/formReader/**/*.js',
+                        sHome + 'javascript/externs/mapJSON/**/*.js',
+                        // OpenLayers
+                        sHome + 'javascript/externs/openLayers/**/*.js',
+                        // Fichiers Widget
+                        sHome + 'modules/gtf/javascript/widget/widgetMod.js',
+                        sHome + 'modules/gtf/javascript/widget/script_widget.js'
+                    ]
+                },
+                options: {
+                    js: [
+                        'node_modules/google-closure-library/closure/goog/**.js',
+                        '!node_modules/google-closure-library/closure/goog/**_test.js'
+                    ],
+                    externs: [
+                        'closure/externs/angular-1.3.js',
+                        'closure/externs/bingmaps.js',
+                        'closure/externs/jquery-1.9.js',
+                        'closure/externs/bootstrap.js',
+                        'closure/externs/geojson.js',
+                        'closure/externs/jspdf.js',
+                        'closure/externs/html2canvas.js',
+                        'closure/externs/vmap.js'
+                    ],
+                    compilation_level: 'ADVANCED',
+                    manage_closure_dependencies: true,
+                    generate_exports: true,
+                    angular_pass: true,
+                    debug: false,
+                    language_in: 'ECMASCRIPT5',
+                    language_out: 'ECMASCRIPT5',
+                    closure_entry_point: ['vitis.gtf.widget', 'vitis'],
+                    create_source_map: sHome + '/javascript/widget.min.js.map',
+                    output_wrapper: '(function(){\n%output%\n}).call(this)\n//# sourceMappingURL=../javascript/widget.min.js.map'
+                }
+            }
+        },
+        'closureDepsWriter': {
+            options: {
+                depswriter: 'closure/depswriter/depswriter.py',
+                root_with_prefix: [
+                    // Fichiers Vitis
+                    '"' + sHome + 'javascript/app ' + sClosureDepsHome + 'javascript/app"',
+                    '"' + sHome + 'modules/vitis/javascript ' + sClosureDepsHome + 'modules/vitis/javascript"',
+                    '"' + sHome + 'javascript/externs/formReader ' + sClosureDepsHome + 'javascript/externs/formReader"',
+                    '"' + sHome + 'conf/requires ' + sClosureDepsHome + 'conf/requires"',
+                    '"' + sHome + 'javascript/externs/mapJSON ' + sClosureDepsHome + 'javascript/externs/mapJSON"',
+                    // Fichiers gtf
+                    '"' + sHome + 'modules/gtf/javascript ' + sClosureDepsHome + 'modules/gtf/javascript"',
+                    // OpenLayers
+                    '"' + sHome + 'javascript/externs/openLayers ' + sClosureDepsHome + 'javascript/externs/openLayers"',
+                    // Fichiers Studio
+                    '"' + sHome + 'javascript/externs/studio/properties ' + sClosureDepsHome + 'javascript/externs/studio/properties"',
+                    '"' + sHome + 'javascript/externs/studio/javascript/app ' + sClosureDepsHome + 'javascript/externs/studio/javascript/app"',
+                    // Closure library
+                    '"' + sHome + 'conf/node_modules/google-closure-library/closure/goog ' + sClosureDepsHome + 'conf/node_modules/google-closure-library/closure/goog"'
+                ]
+            },
+            targetName: {
+                dest: sHome + '/javascript/gtf.deps.js'
+            }
+        }
+    });
+
+    grunt.loadNpmTasks('grunt-closure-tools');
+
+    // Tache par défaut
+    // cmd: grunt
+    grunt.registerTask('default', ['closureDepsWriter', 'closure-compiler:GTF', 'closure-compiler:widget']);
+    // cmd: grunt generate-deps
+    grunt.registerTask('generate-deps', ['closureDepsWriter']);
+    // cmd: grunt compile
+    grunt.registerTask('compile', ['closure-compiler:GTF', 'closure-compiler:widget']);
+};
diff --git a/conf/_install/apache.conf b/conf/_install/apache.conf
new file mode 100755
index 0000000000000000000000000000000000000000..35d1cb25404651f4cc9556423314ef648ed98135
--- /dev/null
+++ b/conf/_install/apache.conf
@@ -0,0 +1,6 @@
+Alias /gtf[ENV] "[APPDIRECTORY]"
+	<Directory "[APPDIRECTORY]">
+		AllowOverride FileInfo
+		Options FollowSymLinks
+		Require all granted
+	</Directory>
\ No newline at end of file
diff --git a/conf/_install/dependency.xml b/conf/_install/dependency.xml
new file mode 100755
index 0000000000000000000000000000000000000000..b6e0421ef8fa588a705799de5909e622c47d1c93
--- /dev/null
+++ b/conf/_install/dependency.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Application -->
+<installer>
+	<dependenciesCollection>
+		<dependency>
+			<nature>framework</nature>
+			<name>vitis</name>
+			<version>next_version</version>
+		</dependency>
+		<dependency>
+			<nature>modules</nature>
+			<name>module_gtf</name>
+			<version>next_version</version>
+		</dependency>
+	</dependenciesCollection>
+</installer>
diff --git a/conf/_install/fileToDelete.txt b/conf/_install/fileToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..5b05a50a454c651556fd9d44df2c88b53b1caf05
--- /dev/null
+++ b/conf/_install/fileToDelete.txt
@@ -0,0 +1,2 @@
+package.json
+Gruntfile.js
\ No newline at end of file
diff --git a/conf/_install/folderToDelete.txt b/conf/_install/folderToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..3ff9591f1c764874b1d17e92491d955cff82fb9f
--- /dev/null
+++ b/conf/_install/folderToDelete.txt
@@ -0,0 +1 @@
+requires
\ No newline at end of file
diff --git a/conf/credits.json b/conf/credits.json
new file mode 100755
index 0000000000000000000000000000000000000000..a817926a959caa2cabc8bfb312355c506734622c
--- /dev/null
+++ b/conf/credits.json
@@ -0,0 +1,150 @@
+[
+    {
+        "label": "CREDITS_SOFTWARE",
+        "rows": [
+            {
+                "type": "text",
+                "value": "GTF"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_VERSION",
+        "rows": [
+            {
+                "type": "text",
+                "value": "CREDITS_VERSION_CONTENT"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_DATE",
+        "rows": [
+            {
+                "type": "text",
+                "value": "CREDITS_DATE_CONTENT"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_EDITOR",
+        "rows": [
+            {
+                "type": "link",
+                "value": "Veremes",
+                "url": "http://www.veremes.com"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_AUTHOR",
+        "rows": [
+            {
+                "type": "text",
+                "value": "Armand Bahi"
+            },
+            {
+                "type": "text",
+                "value": "Alexandre Bizien"
+            },
+            {
+                "type": "text",
+                "value": "Anthony Borghi"
+            },
+            {
+                "type": "text",
+                "value": "Frédéric Carretero"
+            },
+            {
+                "type": "text",
+                "value": "Marguerite Espada"
+            },
+            {
+                "type": "text",
+                "value": "Olivier Gayte"
+            },
+            {
+                "type": "text",
+                "value": "Sébastien Legrand"
+            },
+            {
+                "type": "text",
+                "value": "Yoann Perollet"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_GRAPHICS",
+        "rows": [
+            {
+                "type": "link",
+                "value": "Nematis",
+                "url": "http://www.nematis.com"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_LIBRARIES",
+        "rows": [
+            {
+                "type": "link",
+                "value": "Bootstrap",
+                "url": "http://getbootstrap.com"
+            },
+            {
+                "type": "link",
+                "value": "AngularJS",
+                "url": "https://angularjs.org"
+            },
+            {
+                "type": "link",
+                "value": "Google Closure",
+                "url": "https://developers.google.com/closure"
+            },
+            {
+                "type": "link",
+                "value": "jQuery",
+                "url": "http://jquery.com"
+            },
+            {
+                "type": "link",
+                "value": "Rgraph",
+                "url": "http://www.rgraph.net"
+            },
+            {
+                "type": "link",
+                "value": "CodeMirror",
+                "url": "http://codemirror.net"
+            },
+            {
+                "type": "link",
+                "value": "TinyMCE",
+                "url": "https://www.tinymce.com"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_CONTACT",
+        "rows": [
+            {
+                "type": "link",
+                "value": "www.veremes.com",
+                "url": "http://www.veremes.com"
+            },
+            {
+                "type": "link",
+                "value": "www.veremes.com/nous-contacter#1",
+                "url": "http://www.veremes.com/nous-contacter#1"
+            }
+        ]
+    },
+    {
+        "label": "CREDITS_LICENSE",
+        "rows": [
+            {
+                "type": "text",
+                "value": "© Veremes"
+            }
+        ]
+    }
+]
diff --git a/conf/less/variables.less b/conf/less/variables.less
new file mode 100755
index 0000000000000000000000000000000000000000..c19f042d9b30e0fa2d435566246e46c214b3b734
--- /dev/null
+++ b/conf/less/variables.less
@@ -0,0 +1,35 @@
+
+// user colors
+@user-color-theme-1: #23282D;
+@user-color-theme-2: #6F8456;
+
+
+// Veremes colors
+@veremes-gtf-color: #39468A;
+@veremes-majic-color: #CF461F;
+@veremes-qualigeo-color: #832C7A;
+@veremes-wab-color: #198D9F;
+/*@veremes-vmap-color: #CB0650;*/
+@veremes-vmap-color: #198D9F;
+
+@veremes-map-backgroud-color: #020237;
+@veremes-gray-backgroud-color: #3A3A3A;
+@veremes-light-gray-backgroud-color: #9A9A9A;
+
+
+// Application colors
+@application-color-theme: @veremes-gtf-color; // <- Change this color
+
+@application-lighen-color-theme: lighten(@application-color-theme, 20%);
+@application-darken-color-theme: darken(@application-color-theme, 10%);
+
+@application-action-1-color: #337ab7; // blue bootstrap
+@application-action-2-color: #5cb85c; // green bootstrap
+
+// Other variables
+@ui-grid-bg-image: "../images/ui-grid/wbg.gif";
+@font-color-purple: #020237;
+
+// Dimension des vignettes dans les listes.
+@ui-grid-thumbnail-width: 100px;
+@ui-grid-thumbnail-heigth: 60px;
\ No newline at end of file
diff --git a/conf/package.json b/conf/package.json
new file mode 100755
index 0000000000000000000000000000000000000000..5b5091d40728e547f4c50369734cf88ed10edef1
--- /dev/null
+++ b/conf/package.json
@@ -0,0 +1,4 @@
+{
+  "name": "Vitis",
+  "version": "0.1.0"
+}
diff --git a/conf/requires/config.js b/conf/requires/config.js
new file mode 100755
index 0000000000000000000000000000000000000000..080178f2943fca9ced75a7aa115a711f8528d91f
--- /dev/null
+++ b/conf/requires/config.js
@@ -0,0 +1,64 @@
+'use strict';
+
+goog.provide('vitis.application.config');
+goog.require('oVFB');
+
+// Fichiers js et css à charger pour l'application Gtf.
+var oApplicationFiles = {
+    'css': [
+        // Vitis
+        'css/lib/bootstrap/css/bootstrap.min.css',
+        'css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css',
+        'css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css',
+        'css/lib/ui-grid/ui-grid.min.css',
+        'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css',
+        'css/lib/bootstrap-checkbox/build.css',
+        'css/lib/bootstrap-checkbox/font-awesome.css',
+        'css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css',
+        'css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css',
+        'css/lib/ui-grid/plugins/draggable-rows.less',
+        'less/main.less',
+        // App
+        'css/lib/openlayers/ol.css',
+        'javascript/externs/studio/less/studio.less',
+        'modules/vitis/less/main.less',
+        'modules/gtf/less/main.less',
+        'css/lib/codemirror/codemirror.css',
+        'css/lib/codemirror/codemirror_foldgutter.css',
+        'javascript/externs/studio/less/CodeMirror.less',
+        'css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css',
+        'css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css',
+        'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css'
+    ],
+    'js': {
+        'externs': [
+            'javascript/externs/bootbox/bootbox.min.js',
+            'javascript/externs/codemirror/codemirror.min.js',
+            'javascript/externs/codemirror/htmlmixed.js',
+            'javascript/externs/codemirror/css.js',
+            'javascript/externs/codemirror/javascript.js',
+            'javascript/externs/codemirror/clike.js',
+            'javascript/externs/codemirror/php.js',
+            'javascript/externs/codemirror/xml.js',
+            'javascript/externs/codemirror/addon/fold/foldcode.js',
+            'javascript/externs/codemirror/addon/fold/foldgutter.js',
+            'javascript/externs/codemirror/addon/fold/brace-fold.js',
+            'javascript/externs/codemirror/addon/fold/xml-fold.js',
+            'javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js',
+            'javascript/externs/tinymce/tinymce.min.js',
+            'javascript/externs/angular/modules/ui-tinymce/tinymce.js',
+            'javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js',
+            'javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js',
+            'javascript/externs/scripts_cryptage.js',
+            'javascript/externs/moment/moment.min.js',
+            'javascript/externs/moment/min/moment-with-locales.min.js',
+            'javascript/externs/jquery/plugins/notify/notify.js',
+            'javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js',
+            'javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js',
+            'javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js',
+            'javascript/externs/alasql/alasql.min.js',
+            'javascript/externs/alasql/xlsx.core.min.js'
+        ]
+    },
+    'vitisModuleDependencies': ['ui.codemirror', 'ui.tinymce', 'vfb', 'ui.grid.draggable-rows']
+};
\ No newline at end of file
diff --git a/conf/requires/requiresApp.js b/conf/requires/requiresApp.js
new file mode 100755
index 0000000000000000000000000000000000000000..326072fabf92eb37353f3605b913529400c58e33
--- /dev/null
+++ b/conf/requires/requiresApp.js
@@ -0,0 +1,13 @@
+/* global goog */
+
+/**
+ * Ce fichier permet de charger les fichiers de l'applicaiton
+ * de façon non compilée
+ * @author: Armand Bahi
+ */
+
+goog.provide('vitis.application.requires');
+goog.require('vitis.application.config');
+
+goog.require('vitis.gtf');
+goog.require('vitis.gtf.script_module');
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b5ceb92ab36c08371f45820bd7101ca44e16108d
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#   Crée des symlinks pour re-créer l'arborescence de l'application
+#
+#
+
+if [ `whoami` == "root" ]; then
+    echo "Please, do not run this script as sudo"
+else
+    cd utils/
+    ./init_symlinks.sh
+    ./pull_subtrees.sh
+    ./copy_hooks.sh
+fi
diff --git a/src/closure/README.md b/src/closure/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d28619bfbb0b10de706cd5985e7a7d042204b2d4
--- /dev/null
+++ b/src/closure/README.md
@@ -0,0 +1 @@
+Google closure exceptions
\ No newline at end of file
diff --git a/src/closure/conf/depswriter/closurebuilder.py b/src/closure/conf/depswriter/closurebuilder.py
new file mode 100755
index 0000000000000000000000000000000000000000..7be7661f76c4e9dad1b1ab31f01f88498eee81d3
--- /dev/null
+++ b/src/closure/conf/depswriter/closurebuilder.py
@@ -0,0 +1,293 @@
+#!/usr/bin/env python
+#
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Utility for Closure Library dependency calculation.
+
+ClosureBuilder scans source files to build dependency info.  From the
+dependencies, the script can produce a manifest in dependency order,
+a concatenated script, or compiled output from the Closure Compiler.
+
+Paths to files can be expressed as individual arguments to the tool (intended
+for use with find and xargs).  As a convenience, --root can be used to specify
+all JS files below a directory.
+
+usage: %prog [options] [file1.js file2.js ...]
+"""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+import io
+import logging
+import optparse
+import os
+import sys
+
+import depstree
+import jscompiler
+import source
+import treescan
+
+
+def _GetOptionsParser():
+  """Get the options parser."""
+
+  parser = optparse.OptionParser(__doc__)
+  parser.add_option('-i',
+                    '--input',
+                    dest='inputs',
+                    action='append',
+                    default=[],
+                    help='One or more input files to calculate dependencies '
+                    'for.  The namespaces in this file will be combined with '
+                    'those given with the -n flag to form the set of '
+                    'namespaces to find dependencies for.')
+  parser.add_option('-n',
+                    '--namespace',
+                    dest='namespaces',
+                    action='append',
+                    default=[],
+                    help='One or more namespaces to calculate dependencies '
+                    'for.  These namespaces will be combined with those given '
+                    'with the -i flag to form the set of namespaces to find '
+                    'dependencies for.  A Closure namespace is a '
+                    'dot-delimited path expression declared with a call to '
+                    'goog.provide() (e.g. "goog.array" or "foo.bar").')
+  parser.add_option('--root',
+                    dest='roots',
+                    action='append',
+                    default=[],
+                    help='The paths that should be traversed to build the '
+                    'dependencies.')
+  parser.add_option('-o',
+                    '--output_mode',
+                    dest='output_mode',
+                    type='choice',
+                    action='store',
+                    choices=['list', 'script', 'compiled'],
+                    default='list',
+                    help='The type of output to generate from this script. '
+                    'Options are "list" for a list of filenames, "script" '
+                    'for a single script containing the contents of all the '
+                    'files, or "compiled" to produce compiled output with '
+                    'the Closure Compiler.  Default is "list".')
+  parser.add_option('-c',
+                    '--compiler_jar',
+                    dest='compiler_jar',
+                    action='store',
+                    help='The location of the Closure compiler .jar file.')
+  parser.add_option('-f',
+                    '--compiler_flags',
+                    dest='compiler_flags',
+                    default=[],
+                    action='append',
+                    help='Additional flags to pass to the Closure compiler. '
+                    'To pass multiple flags, --compiler_flags has to be '
+                    'specified multiple times.')
+  parser.add_option('-j',
+                    '--jvm_flags',
+                    dest='jvm_flags',
+                    default=[],
+                    action='append',
+                    help='Additional flags to pass to the JVM compiler. '
+                    'To pass multiple flags, --jvm_flags has to be '
+                    'specified multiple times.')
+  parser.add_option('--output_file',
+                    dest='output_file',
+                    action='store',
+                    help=('If specified, write output to this path instead of '
+                          'writing to standard output.'))
+
+  return parser
+
+
+def _GetInputByPath(path, sources):
+  """Get the source identified by a path.
+
+  Args:
+    path: str, A path to a file that identifies a source.
+    sources: An iterable collection of source objects.
+
+  Returns:
+    The source from sources identified by path, if found.  Converts to
+    real paths for comparison.
+  """
+  for js_source in sources:
+    # Convert both to real paths for comparison.
+    if os.path.realpath(path) == os.path.realpath(js_source.GetPath()):
+      return js_source
+
+
+def _GetClosureBaseFile(sources):
+  """Given a set of sources, returns the one base.js file.
+
+  Note that if zero or two or more base.js files are found, an error message
+  will be written and the program will be exited.
+
+  Args:
+    sources: An iterable of _PathSource objects.
+
+  Returns:
+    The _PathSource representing the base Closure file.
+  """
+  base_files = [
+      js_source for js_source in sources if _IsClosureBaseFile(js_source)
+  ]
+
+  if not base_files:
+    logging.error('No Closure base.js file found.')
+    sys.exit(1)
+  if len(base_files) > 1:
+    logging.error('More than one Closure base.js files found at these paths:')
+    for base_file in base_files:
+      logging.error(base_file.GetPath())
+    sys.exit(1)
+  return base_files[0]
+
+
+def _IsClosureBaseFile(js_source):
+  """Returns true if the given _PathSource is the Closure base.js source."""
+  return (os.path.basename(js_source.GetPath()) == 'base.js' and
+          js_source.provides == set(['goog']))
+
+
+class _PathSource(source.Source):
+  """Source file subclass that remembers its file path."""
+
+  def __init__(self, path):
+    """Initialize a source.
+
+    Args:
+      path: str, Path to a JavaScript file.  The source string will be read
+        from this file.
+    """
+    super(_PathSource, self).__init__(source.GetFileContents(path))
+
+    self._path = path
+
+  def __str__(self):
+    return 'PathSource %s' % self._path
+
+  def GetPath(self):
+    """Returns the path."""
+    return self._path
+
+
+def _WrapGoogModuleSource(src):
+  return ('goog.loadModule(function(exports) {{'
+          '"use strict";'
+          '{0}'
+          '\n'  # terminate any trailing single line comment.
+          ';return exports'
+          '}});\n').format(src)
+
+
+def main():
+  logging.basicConfig(format=(sys.argv[0] + ': %(message)s'),
+                      level=logging.INFO)
+  options, args = _GetOptionsParser().parse_args()
+
+  # Make our output pipe.
+  if options.output_file:
+    out = io.open(options.output_file, 'wb')
+  else:
+    version = sys.version_info[:2]
+    if version >= (3, 0):
+      # Write bytes to stdout
+      out = sys.stdout.buffer
+    else:
+      out = sys.stdout
+
+  sources = set()
+
+  logging.info('Scanning paths...')
+  for path in options.roots:
+    for js_path in treescan.ScanTreeForJsFiles(path):
+      sources.add(_PathSource(js_path))
+
+  # Add scripts specified on the command line.
+  for js_path in args:
+    sources.add(_PathSource(js_path))
+
+  logging.info('%s sources scanned.', len(sources))
+
+  # Though deps output doesn't need to query the tree, we still build it
+  # to validate dependencies.
+  logging.info('Building dependency tree..')
+  tree = depstree.DepsTree(sources)
+
+  input_namespaces = set()
+  inputs = options.inputs or []
+  for input_path in inputs:
+    js_input = _GetInputByPath(input_path, sources)
+    if not js_input:
+      logging.error('No source matched input %s', input_path)
+      sys.exit(1)
+    input_namespaces.update(js_input.provides)
+
+  input_namespaces.update(options.namespaces)
+
+  if not input_namespaces:
+    logging.error('No namespaces found. At least one namespace must be '
+                  'specified with the --namespace or --input flags.')
+    sys.exit(2)
+
+  # The Closure Library base file must go first.
+  base = _GetClosureBaseFile(sources)
+  deps = [base] + tree.GetDependencies(input_namespaces)
+
+  output_mode = options.output_mode
+  if output_mode == 'list':
+    out.writelines([js_source.GetPath() + '\n' for js_source in deps])
+  elif output_mode == 'script':
+    for js_source in deps:
+      src = js_source.GetSource()
+      if js_source.is_goog_module:
+        src = _WrapGoogModuleSource(src)
+      out.write(src.encode('utf-8') + b'\n')
+  elif output_mode == 'compiled':
+    logging.warning("""\
+Closure Compiler now natively understands and orders Closure dependencies and
+is prefererred over using this script for performing JavaScript compilation.
+
+Please migrate your codebase.
+
+See:
+https://github.com/google/closure-compiler/wiki/Managing-Dependencies
+""")
+
+    # Make sure a .jar is specified.
+    if not options.compiler_jar:
+      logging.error('--compiler_jar flag must be specified if --output is '
+                    '"compiled"')
+      sys.exit(2)
+
+    # Will throw an error if the compilation fails.
+    compiled_source = jscompiler.Compile(options.compiler_jar,
+                                         [js_source.GetPath()
+                                          for js_source in deps],
+                                         jvm_flags=options.jvm_flags,
+                                         compiler_flags=options.compiler_flags)
+
+    logging.info('JavaScript compilation succeeded.')
+    out.write(compiled_source.encode('utf-8'))
+
+  else:
+    logging.error('Invalid value for --output flag.')
+    sys.exit(2)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/src/closure/conf/depswriter/depstree.py b/src/closure/conf/depswriter/depstree.py
new file mode 100755
index 0000000000000000000000000000000000000000..f288dd3aa616a9a69390f5ac6dc4411a3a8a419b
--- /dev/null
+++ b/src/closure/conf/depswriter/depstree.py
@@ -0,0 +1,189 @@
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+"""Class to represent a full Closure Library dependency tree.
+
+Offers a queryable tree of dependencies of a given set of sources.  The tree
+will also do logical validation to prevent duplicate provides and circular
+dependencies.
+"""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+class DepsTree(object):
+  """Represents the set of dependencies between source files."""
+
+  def __init__(self, sources):
+    """Initializes the tree with a set of sources.
+
+    Args:
+      sources: A set of JavaScript sources.
+
+    Raises:
+      MultipleProvideError: A namespace is provided by muplitple sources.
+      NamespaceNotFoundError: A namespace is required but never provided.
+    """
+
+    self._sources = sources
+    self._provides_map = dict()
+
+    # Ensure nothing was provided twice.
+    for source in sources:
+      for provide in source.provides:
+        if provide in self._provides_map:
+          raise MultipleProvideError(
+              provide, [self._provides_map[provide], source])
+
+        self._provides_map[provide] = source
+
+    # Check that all required namespaces are provided.
+    for source in sources:
+      for require in source.requires:
+        if require not in self._provides_map:
+          raise NamespaceNotFoundError(require, source)
+
+  def GetDependencies(self, required_namespaces):
+    """Get source dependencies, in order, for the given namespaces.
+
+    Args:
+      required_namespaces: A string (for one) or list (for one or more) of
+        namespaces.
+
+    Returns:
+      A list of source objects that provide those namespaces and all
+      requirements, in dependency order.
+
+    Raises:
+      NamespaceNotFoundError: A namespace is requested but doesn't exist.
+      CircularDependencyError: A cycle is detected in the dependency tree.
+    """
+    if isinstance(required_namespaces, str):
+      required_namespaces = [required_namespaces]
+
+    deps_sources = []
+
+    for namespace in required_namespaces:
+      for source in DepsTree._ResolveDependencies(
+          namespace, [], self._provides_map, []):
+        if source not in deps_sources:
+          deps_sources.append(source)
+
+    return deps_sources
+
+  @staticmethod
+  def _ResolveDependencies(required_namespace, deps_list, provides_map,
+                           traversal_path):
+    """Resolve dependencies for Closure source files.
+
+    Follows the dependency tree down and builds a list of sources in dependency
+    order.  This function will recursively call itself to fill all dependencies
+    below the requested namespaces, and then append its sources at the end of
+    the list.
+
+    Args:
+      required_namespace: String of required namespace.
+      deps_list: List of sources in dependency order.  This function will append
+        the required source once all of its dependencies are satisfied.
+      provides_map: Map from namespace to source that provides it.
+      traversal_path: List of namespaces of our path from the root down the
+        dependency/recursion tree.  Used to identify cyclical dependencies.
+        This is a list used as a stack -- when the function is entered, the
+        current namespace is pushed and popped right before returning.
+        Each recursive call will check that the current namespace does not
+        appear in the list, throwing a CircularDependencyError if it does.
+
+    Returns:
+      The given deps_list object filled with sources in dependency order.
+
+    Raises:
+      NamespaceNotFoundError: A namespace is requested but doesn't exist.
+      CircularDependencyError: A cycle is detected in the dependency tree.
+    """
+
+    source = provides_map.get(required_namespace)
+    if not source:
+      raise NamespaceNotFoundError(required_namespace)
+
+    if required_namespace in traversal_path:
+      traversal_path.append(required_namespace)  # do this *after* the test
+
+      # This must be a cycle.
+      raise CircularDependencyError(traversal_path)
+
+    # If we don't have the source yet, we'll have to visit this namespace and
+    # add the required dependencies to deps_list.
+    if source not in deps_list:
+      traversal_path.append(required_namespace)
+
+      for require in source.requires:
+
+        # Append all other dependencies before we append our own.
+        DepsTree._ResolveDependencies(require, deps_list, provides_map,
+                                      traversal_path)
+      deps_list.append(source)
+
+      traversal_path.pop()
+
+    return deps_list
+
+
+class BaseDepsTreeError(Exception):
+  """Base DepsTree error."""
+
+  def __init__(self):
+    Exception.__init__(self)
+
+
+class CircularDependencyError(BaseDepsTreeError):
+  """Raised when a dependency cycle is encountered."""
+
+  def __init__(self, dependency_list):
+    BaseDepsTreeError.__init__(self)
+    self._dependency_list = dependency_list
+
+  def __str__(self):
+    return ('Encountered circular dependency:\n%s\n' %
+            '\n'.join(self._dependency_list))
+
+
+class MultipleProvideError(BaseDepsTreeError):
+  """Raised when a namespace is provided more than once."""
+
+  def __init__(self, namespace, sources):
+    BaseDepsTreeError.__init__(self)
+    self._namespace = namespace
+    self._sources = sources
+
+  def __str__(self):
+    source_strs = map(str, self._sources)
+
+    return ('Namespace "%s" provided more than once in sources:\n%s\n' %
+            (self._namespace, '\n'.join(source_strs)))
+
+
+class NamespaceNotFoundError(BaseDepsTreeError):
+  """Raised when a namespace is requested but not provided."""
+
+  def __init__(self, namespace, source=None):
+    BaseDepsTreeError.__init__(self)
+    self._namespace = namespace
+    self._source = source
+
+  def __str__(self):
+    msg = 'Namespace "%s" never provided.' % self._namespace
+    if self._source:
+      msg += ' Required in %s' % self._source
+    return msg
diff --git a/src/closure/conf/depswriter/depstree_test.py b/src/closure/conf/depswriter/depstree_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..eb4c99958ec6cabaacd782e49b7a8a16e85c9f61
--- /dev/null
+++ b/src/closure/conf/depswriter/depstree_test.py
@@ -0,0 +1,127 @@
+#!/usr/bin/env python
+#
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+"""Unit test for depstree."""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+import unittest
+
+import depstree
+
+
+def _GetProvides(sources):
+  """Get all namespaces provided by a collection of sources."""
+
+  provides = set()
+  for source in sources:
+    provides.update(source.provides)
+  return provides
+
+
+class MockSource(object):
+  """Mock Source file."""
+
+  def __init__(self, provides, requires):
+    self.provides = set(provides)
+    self.requires = set(requires)
+
+  def __repr__(self):
+    return 'MockSource %s' % self.provides
+
+
+class DepsTreeTestCase(unittest.TestCase):
+  """Unit test for DepsTree.  Tests several common situations and errors."""
+
+  def AssertValidDependencies(self, deps_list):
+    """Validates a dependency list.
+
+    Asserts that a dependency list is valid: For every source in the list,
+    ensure that every require is provided by a source earlier in the list.
+
+    Args:
+      deps_list: A list of sources that should be in dependency order.
+    """
+
+    for i in range(len(deps_list)):
+      source = deps_list[i]
+      previous_provides = _GetProvides(deps_list[:i])
+      for require in source.requires:
+        self.assertTrue(
+            require in previous_provides,
+            'Namespace "%s" not provided before required by %s' % (
+                require, source))
+
+  def testSimpleDepsTree(self):
+    a = MockSource(['A'], ['B', 'C'])
+    b = MockSource(['B'], [])
+    c = MockSource(['C'], ['D'])
+    d = MockSource(['D'], ['E'])
+    e = MockSource(['E'], [])
+
+    tree = depstree.DepsTree([a, b, c, d, e])
+
+    self.AssertValidDependencies(tree.GetDependencies('A'))
+    self.AssertValidDependencies(tree.GetDependencies('B'))
+    self.AssertValidDependencies(tree.GetDependencies('C'))
+    self.AssertValidDependencies(tree.GetDependencies('D'))
+    self.AssertValidDependencies(tree.GetDependencies('E'))
+
+  def testCircularDependency(self):
+    # Circular deps
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], ['C'])
+    c = MockSource(['C'], ['A'])
+
+    tree = depstree.DepsTree([a, b, c])
+
+    self.assertRaises(depstree.CircularDependencyError,
+                      tree.GetDependencies, 'A')
+
+  def testRequiresUndefinedNamespace(self):
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], ['C'])
+    c = MockSource(['C'], ['D'])  # But there is no D.
+
+    def MakeDepsTree():
+      return depstree.DepsTree([a, b, c])
+
+    self.assertRaises(depstree.NamespaceNotFoundError, MakeDepsTree)
+
+  def testDepsForMissingNamespace(self):
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], [])
+
+    tree = depstree.DepsTree([a, b])
+
+    # There is no C.
+    self.assertRaises(depstree.NamespaceNotFoundError,
+                      tree.GetDependencies, 'C')
+
+  def testMultipleRequires(self):
+    a = MockSource(['A'], ['B'])
+    b = MockSource(['B'], ['C'])
+    c = MockSource(['C'], [])
+    d = MockSource(['D'], ['B'])
+
+    tree = depstree.DepsTree([a, b, c, d])
+    self.AssertValidDependencies(tree.GetDependencies(['D', 'A']))
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/depswriter.py b/src/closure/conf/depswriter/depswriter.py
new file mode 100755
index 0000000000000000000000000000000000000000..a78e0f83c1b315136b043bd6f32415dc881bbb4f
--- /dev/null
+++ b/src/closure/conf/depswriter/depswriter.py
@@ -0,0 +1,212 @@
+#!/usr/bin/env python
+#
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+"""Generates out a Closure deps.js file given a list of JavaScript sources.
+
+Paths can be specified as arguments or (more commonly) specifying trees
+with the flags (call with --help for descriptions).
+
+Usage: depswriter.py [path/to/js1.js [path/to/js2.js] ...]
+"""
+
+import json
+import logging
+import optparse
+import os
+import posixpath
+import shlex
+import sys
+
+import source
+import treescan
+
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+def MakeDepsFile(source_map):
+  """Make a generated deps file.
+
+  Args:
+    source_map: A dict map of the source path to source.Source object.
+
+  Returns:
+    str, A generated deps file source.
+  """
+
+  # Write in path alphabetical order
+  paths = sorted(source_map.keys())
+
+  lines = []
+
+  for path in paths:
+    js_source = source_map[path]
+
+    # We don't need to add entries that don't provide anything.
+    if js_source.provides:
+      lines.append(_GetDepsLine(path, js_source))
+
+  return ''.join(lines)
+
+
+def _GetDepsLine(path, js_source):
+  """Get a deps.js file string for a source."""
+
+  provides = _ToJsSrc(sorted(js_source.provides))
+  requires = _ToJsSrc(sorted(js_source.requires))
+  module = 'true' if js_source.is_goog_module else 'false'
+
+  return 'goog.addDependency(\'%s?_\' + sessionStorage[\'build\'], %s, %s, %s);\n' % (
+      path, provides, requires, module)
+
+
+def _ToJsSrc(arr):
+  """Convert a python arr to a js source string."""
+
+  return json.dumps(arr).replace('"', '\'')
+
+
+def _GetOptionsParser():
+  """Get the options parser."""
+
+  parser = optparse.OptionParser(__doc__)
+
+  parser.add_option('--output_file',
+                    dest='output_file',
+                    action='store',
+                    help=('If specified, write output to this path instead of '
+                          'writing to standard output.'))
+  parser.add_option('--root',
+                    dest='roots',
+                    default=[],
+                    action='append',
+                    help='A root directory to scan for JS source files. '
+                    'Paths of JS files in generated deps file will be '
+                    'relative to this path.  This flag may be specified '
+                    'multiple times.')
+  parser.add_option('--root_with_prefix',
+                    dest='roots_with_prefix',
+                    default=[],
+                    action='append',
+                    help='A root directory to scan for JS source files, plus '
+                    'a prefix (if either contains a space, surround with '
+                    'quotes).  Paths in generated deps file will be relative '
+                    'to the root, but preceded by the prefix.  This flag '
+                    'may be specified multiple times.')
+  parser.add_option('--path_with_depspath',
+                    dest='paths_with_depspath',
+                    default=[],
+                    action='append',
+                    help='A path to a source file and an alternate path to '
+                    'the file in the generated deps file (if either contains '
+                    'a space, surround with whitespace). This flag may be '
+                    'specified multiple times.')
+  return parser
+
+
+def _NormalizePathSeparators(path):
+  """Replaces OS-specific path separators with POSIX-style slashes.
+
+  Args:
+    path: str, A file path.
+
+  Returns:
+    str, The path with any OS-specific path separators (such as backslash on
+      Windows) replaced with URL-compatible forward slashes. A no-op on systems
+      that use POSIX paths.
+  """
+  return path.replace(os.sep, posixpath.sep)
+
+
+def _GetRelativePathToSourceDict(root, prefix=''):
+  """Scans a top root directory for .js sources.
+
+  Args:
+    root: str, Root directory.
+    prefix: str, Prefix for returned paths.
+
+  Returns:
+    dict, A map of relative paths (with prefix, if given), to source.Source
+      objects.
+  """
+  # Remember and restore the cwd when we're done. We work from the root so
+  # that paths are relative from the root.
+  start_wd = os.getcwd()
+  os.chdir(root)
+
+  path_to_source = {}
+  for path in treescan.ScanTreeForJsFiles('.'):
+    prefixed_path = _NormalizePathSeparators(os.path.join(prefix, path))
+    path_to_source[prefixed_path] = source.Source(source.GetFileContents(path))
+
+  os.chdir(start_wd)
+
+  return path_to_source
+
+
+def _GetPair(s):
+  """Return a string as a shell-parsed tuple.  Two values expected."""
+  try:
+    # shlex uses '\' as an escape character, so they must be escaped.
+    s = s.replace('\\', '\\\\')
+    first, second = shlex.split(s)
+    return (first, second)
+  except:
+    raise Exception('Unable to parse input line as a pair: %s' % s)
+
+
+def main():
+  """CLI frontend to MakeDepsFile."""
+  logging.basicConfig(format=(sys.argv[0] + ': %(message)s'),
+                      level=logging.INFO)
+  options, args = _GetOptionsParser().parse_args()
+
+  path_to_source = {}
+
+  # Roots without prefixes
+  for root in options.roots:
+    path_to_source.update(_GetRelativePathToSourceDict(root))
+
+  # Roots with prefixes
+  for root_and_prefix in options.roots_with_prefix:
+    root, prefix = _GetPair(root_and_prefix)
+    path_to_source.update(_GetRelativePathToSourceDict(root, prefix=prefix))
+
+  # Source paths
+  for path in args:
+    path_to_source[path] = source.Source(source.GetFileContents(path))
+
+  # Source paths with alternate deps paths
+  for path_with_depspath in options.paths_with_depspath:
+    srcpath, depspath = _GetPair(path_with_depspath)
+    path_to_source[depspath] = source.Source(source.GetFileContents(srcpath))
+
+  # Make our output pipe.
+  if options.output_file:
+    out = open(options.output_file, 'w')
+  else:
+    out = sys.stdout
+
+  out.write(('// This file was autogenerated by %s.\n' %
+             os.path.basename(__file__)))
+  out.write('// Please do not edit.\n')
+
+  out.write(MakeDepsFile(path_to_source))
+
+
+if __name__ == '__main__':
+  main()
diff --git a/src/closure/conf/depswriter/depswriter_test.py b/src/closure/conf/depswriter/depswriter_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..8d9bf3b26b093c53e1552993ae22d8dbd04748f9
--- /dev/null
+++ b/src/closure/conf/depswriter/depswriter_test.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+#
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+"""Unit test for depswriter."""
+
+__author__ = 'johnlenz@google.com (John Lenz)'
+
+
+import unittest
+
+import depswriter
+
+
+class MockSource(object):
+  """Mock Source file."""
+
+  def __init__(self, provides, requires):
+    self.provides = set(provides)
+    self.requires = set(requires)
+    self.is_goog_module = False
+
+  def __repr__(self):
+    return 'MockSource %s' % self.provides
+
+
+class DepsWriterTestCase(unittest.TestCase):
+  """Unit test for depswriter."""
+
+  def testMakeDepsFile(self):
+    sources = {}
+    sources['test.js'] = MockSource(['A'], ['B', 'C'])
+    deps = depswriter.MakeDepsFile(sources)
+
+    self.assertEqual(
+        'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n',
+        deps)
+
+  def testMakeDepsFileUnicode(self):
+    sources = {}
+    sources['test.js'] = MockSource([u'A'], [u'B', u'C'])
+    deps = depswriter.MakeDepsFile(sources)
+
+    self.assertEqual(
+        'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n',
+        deps)
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/jscompiler.py b/src/closure/conf/depswriter/jscompiler.py
new file mode 100755
index 0000000000000000000000000000000000000000..76b0253707a76981e8be38d0bab2a10434911b18
--- /dev/null
+++ b/src/closure/conf/depswriter/jscompiler.py
@@ -0,0 +1,162 @@
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Utility to use the Closure Compiler CLI from Python."""
+
+import logging
+import os
+import re
+import subprocess
+import tempfile
+
+# Pulls just the major and minor version numbers from the first line of
+# 'java -version'. Versions are in the format of [0-9]+\.[0-9]+\..* See:
+# http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html
+_VERSION_REGEX = re.compile(r'"([0-9]+)\.([0-9]+)')
+
+
+class JsCompilerError(Exception):
+  """Raised if there's an error in calling the compiler."""
+  pass
+
+
+def _GetJavaVersionString():
+  """Get the version string from the Java VM."""
+  return subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT)
+
+
+def _ParseJavaVersion(version_string):
+  """Returns a 2-tuple for the current version of Java installed.
+
+  Args:
+    version_string: String of the Java version (e.g. '1.7.2-ea').
+
+  Returns:
+    The major and minor versions, as a 2-tuple (e.g. (1, 7)).
+  """
+  match = _VERSION_REGEX.search(version_string)
+  if match:
+    version = tuple(int(x, 10) for x in match.groups())
+    assert len(version) == 2
+    return version
+
+
+def _JavaSupports32BitMode():
+  """Determines whether the JVM supports 32-bit mode on the platform."""
+  # Suppresses process output to stderr and stdout from showing up in the
+  # console as we're only trying to determine 32-bit JVM support.
+  supported = False
+  try:
+    devnull = open(os.devnull, 'wb')
+    return subprocess.call(['java', '-d32', '-version'],
+                           stdout=devnull,
+                           stderr=devnull) == 0
+  except IOError:
+    pass
+  else:
+    devnull.close()
+  return supported
+
+
+def _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags):
+  """Assembles arguments for call to JsCompiler."""
+
+  if java_version < (1, 7):
+    raise JsCompilerError('Closure Compiler requires Java 1.7 or higher. '
+                          'Please visit http://www.java.com/getjava')
+
+  args = ['java']
+
+  # Add JVM flags we believe will produce the best performance.  See
+  # https://groups.google.com/forum/#!topic/closure-library-discuss/7w_O9-vzlj4
+
+  # Attempt 32-bit mode if available (Java 7 on Mac OS X does not support 32-bit
+  # mode, for example).
+  if _JavaSupports32BitMode():
+    args += ['-d32']
+
+  # Prefer the "client" VM.
+  args += ['-client']
+
+  # Add JVM flags, if any
+  if jvm_flags:
+    args += jvm_flags
+
+  # Add the application JAR.
+  args += ['-jar', compiler_jar_path]
+
+  return args
+
+
+def _GetFlagFile(source_paths, compiler_flags):
+  """Writes given source paths and compiler flags to a --flagfile.
+
+  The given source_paths will be written as '--js' flags and the compiler_flags
+  are written as-is.
+
+  Args:
+    source_paths: List of string js source paths.
+    compiler_flags: List of string compiler flags.
+
+  Returns:
+    The file to which the flags were written.
+  """
+  args = []
+  for path in source_paths:
+    args += ['--js', path]
+
+  # Add compiler flags, if any.
+  if compiler_flags:
+    args += compiler_flags
+
+  flags_file = tempfile.NamedTemporaryFile(delete=False)
+  flags_file.write(' '.join(args))
+  flags_file.close()
+
+  return flags_file
+
+
+def Compile(compiler_jar_path,
+            source_paths,
+            jvm_flags=None,
+            compiler_flags=None):
+  """Prepares command-line call to Closure Compiler.
+
+  Args:
+    compiler_jar_path: Path to the Closure compiler .jar file.
+    source_paths: Source paths to build, in order.
+    jvm_flags: A list of additional flags to pass on to JVM.
+    compiler_flags: A list of additional flags to pass on to Closure Compiler.
+
+  Returns:
+    The compiled source, as a string, or None if compilation failed.
+  """
+
+  java_version = _ParseJavaVersion(str(_GetJavaVersionString()))
+
+  args = _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags)
+
+  # Write source path arguments to flag file for avoiding "The filename or
+  # extension is too long" error in big projects. See
+  # https://github.com/google/closure-library/pull/678
+  flags_file = _GetFlagFile(source_paths, compiler_flags)
+  args += ['--flagfile', flags_file.name]
+
+  logging.info('Compiling with the following command: %s', ' '.join(args))
+
+  try:
+    return subprocess.check_output(args)
+  except subprocess.CalledProcessError:
+    raise JsCompilerError('JavaScript compilation failed.')
+  finally:
+    os.remove(flags_file.name)
diff --git a/src/closure/conf/depswriter/jscompiler_test.py b/src/closure/conf/depswriter/jscompiler_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..6f63e414e852da6faed108b11a39dce8d66790c0
--- /dev/null
+++ b/src/closure/conf/depswriter/jscompiler_test.py
@@ -0,0 +1,114 @@
+#!/usr/bin/env python
+#
+# Copyright 2013 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Unit test for depstree."""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+import os
+import unittest
+
+import jscompiler
+
+
+class JsCompilerTestCase(unittest.TestCase):
+  """Unit tests for jscompiler module."""
+
+  def testGetFlagFile(self):
+    flags_file = jscompiler._GetFlagFile(
+        ['path/to/src1.js', 'path/to/src2.js'], ['--test_compiler_flag'])
+
+    def file_get_contents(filename):
+      with open(filename) as f:
+        content = f.read()
+        f.close()
+        return content
+
+    flags_file_content = file_get_contents(flags_file.name)
+    os.remove(flags_file.name)
+
+    self.assertEqual(
+        '--js path/to/src1.js --js path/to/src2.js --test_compiler_flag',
+        flags_file_content)
+
+  def testGetJsCompilerArgs(self):
+
+    original_check = jscompiler._JavaSupports32BitMode
+    jscompiler._JavaSupports32BitMode = lambda: False
+    args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7),
+                                         ['--test_jvm_flag'])
+
+    self.assertEqual(
+        ['java', '-client', '--test_jvm_flag', '-jar',
+         'path/to/jscompiler.jar'], args)
+
+    def CheckJava15RaisesError():
+      jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 5),
+                                    ['--test_jvm_flag'])
+
+    self.assertRaises(jscompiler.JsCompilerError, CheckJava15RaisesError)
+    jscompiler._JavaSupports32BitMode = original_check
+
+  def testGetJsCompilerArgs32BitJava(self):
+
+    original_check = jscompiler._JavaSupports32BitMode
+
+    # Should include the -d32 flag only if 32-bit Java is supported by the
+    # system.
+    jscompiler._JavaSupports32BitMode = lambda: True
+    args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7),
+                                         ['--test_jvm_flag'])
+
+    self.assertEqual(
+        ['java', '-d32', '-client', '--test_jvm_flag', '-jar',
+         'path/to/jscompiler.jar'], args)
+
+    # Should exclude the -d32 flag if 32-bit Java is not supported by the
+    # system.
+    jscompiler._JavaSupports32BitMode = lambda: False
+    args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7),
+                                         ['--test_jvm_flag'])
+
+    self.assertEqual(
+        ['java', '-client', '--test_jvm_flag', '-jar',
+         'path/to/jscompiler.jar'], args)
+
+    jscompiler._JavaSupports32BitMode = original_check
+
+  def testGetJavaVersion(self):
+
+    def assertVersion(expected, version_string):
+      self.assertEquals(expected, jscompiler._ParseJavaVersion(version_string))
+
+    assertVersion((1, 7), _TEST_JAVA_VERSION_STRING)
+    assertVersion((1, 6), _TEST_JAVA_NESTED_VERSION_STRING)
+    assertVersion((1, 4), 'java version "1.4.0_03-ea"')
+
+
+_TEST_JAVA_VERSION_STRING = """\
+openjdk version "1.7.0-google-v5"
+OpenJDK Runtime Environment (build 1.7.0-google-v5-64327-39803485)
+OpenJDK Server VM (build 22.0-b10, mixed mode)
+"""
+
+_TEST_JAVA_NESTED_VERSION_STRING = """\
+Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
+java version "1.6.0_35"
+Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
+Java HotSpot(TM) Client VM (build 20.10-b01-428, mixed mode)
+"""
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/source.py b/src/closure/conf/depswriter/source.py
new file mode 100755
index 0000000000000000000000000000000000000000..0610e6b644f33774336ea7b4d9f36e2d64c19561
--- /dev/null
+++ b/src/closure/conf/depswriter/source.py
@@ -0,0 +1,132 @@
+# Copyright 2009 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+"""Scans a source JS file for its provided and required namespaces.
+
+Simple class to scan a JavaScript file and express its dependencies.
+"""
+
+__author__ = 'nnaze@google.com'
+
+
+import codecs
+import re
+
+_BASE_REGEX_STRING = r'^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)'
+_MODULE_REGEX = re.compile(_BASE_REGEX_STRING % 'module')
+_PROVIDE_REGEX = re.compile(_BASE_REGEX_STRING % 'provide')
+
+_REQUIRE_REGEX_STRING = (r'^\s*(?:(?:var|let|const)\s+[a-zA-Z_$][a-zA-Z0-9$_]*'
+                         r'\s*=\s*)?goog\.require\(\s*[\'"](.+)[\'"]\s*\)')
+_REQUIRES_REGEX = re.compile(_REQUIRE_REGEX_STRING)
+
+class Source(object):
+  """Scans a JavaScript source for its provided and required namespaces."""
+
+  # Matches a "/* ... */" comment.
+  # Note: We can't definitively distinguish a "/*" in a string literal without a
+  # state machine tokenizer. We'll assume that a line starting with whitespace
+  # and "/*" is a comment.
+  _COMMENT_REGEX = re.compile(
+      r"""
+      ^\s*   # Start of a new line and whitespace
+      /\*    # Opening "/*"
+      .*?    # Non greedy match of any characters (including newlines)
+      \*/    # Closing "*/""",
+      re.MULTILINE | re.DOTALL | re.VERBOSE)
+
+  def __init__(self, source):
+    """Initialize a source.
+
+    Args:
+      source: str, The JavaScript source.
+    """
+
+    self.provides = set()
+    self.requires = set()
+    self.is_goog_module = False
+
+    self._source = source
+    self._ScanSource()
+
+  def GetSource(self):
+    """Get the source as a string."""
+    return self._source
+
+  @classmethod
+  def _StripComments(cls, source):
+    return cls._COMMENT_REGEX.sub('', source)
+
+  @classmethod
+  def _HasProvideGoogFlag(cls, source):
+    """Determines whether the @provideGoog flag is in a comment."""
+    for comment_content in cls._COMMENT_REGEX.findall(source):
+      if '@provideGoog' in comment_content:
+        return True
+
+    return False
+
+  def _ScanSource(self):
+    """Fill in provides and requires by scanning the source."""
+
+    stripped_source = self._StripComments(self.GetSource())
+
+    source_lines = stripped_source.splitlines()
+    for line in source_lines:
+      match = _PROVIDE_REGEX.match(line)
+      if match:
+        self.provides.add(match.group(1))
+      match = _MODULE_REGEX.match(line)
+      if match:
+        self.provides.add(match.group(1))
+        self.is_goog_module = True
+      match = _REQUIRES_REGEX.match(line)
+      if match:
+        self.requires.add(match.group(1))
+
+    # Closure's base file implicitly provides 'goog'.
+    # This is indicated with the @provideGoog flag.
+    if self._HasProvideGoogFlag(self.GetSource()):
+
+      if len(self.provides) or len(self.requires):
+        raise Exception(
+            'Base file should not provide or require namespaces.')
+
+      self.provides.add('goog')
+
+
+def GetFileContents(path):
+  """Get a file's contents as a string.
+
+  Args:
+    path: str, Path to file.
+
+  Returns:
+    str, Contents of file.
+
+  Raises:
+    IOError: An error occurred opening or reading the file.
+
+  """
+  fileobj = None
+  try:
+    fileobj = codecs.open(path, encoding='utf-8-sig')
+    return fileobj.read()
+  except IOError as error:
+    raise IOError('An error occurred opening or reading the file: %s. %s'
+                  % (path, error))
+  finally:
+    if fileobj is not None:
+      fileobj.close()
diff --git a/src/closure/conf/depswriter/source_test.py b/src/closure/conf/depswriter/source_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..eb1591b442c671578bea87ef611d631ce0a8335c
--- /dev/null
+++ b/src/closure/conf/depswriter/source_test.py
@@ -0,0 +1,152 @@
+#!/usr/bin/env python
+#
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+"""Unit test for source."""
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+import unittest
+
+import source
+
+
+class SourceTestCase(unittest.TestCase):
+  """Unit test for source.  Tests the parser on a known source input."""
+
+  def testSourceScan(self):
+    test_source = source.Source(_TEST_SOURCE)
+
+    self.assertEqual(set(['foo', 'foo.test']),
+                     test_source.provides)
+    self.assertEqual(set(['goog.dom', 'goog.events.EventType']),
+                     test_source.requires)
+    self.assertFalse(test_source.is_goog_module)
+
+  def testSourceScanBase(self):
+    test_source = source.Source(_TEST_BASE_SOURCE)
+
+    self.assertEqual(set(['goog']),
+                     test_source.provides)
+    self.assertEqual(test_source.requires, set())
+    self.assertFalse(test_source.is_goog_module)
+
+  def testSourceScanBadBase(self):
+
+    def MakeSource():
+      source.Source(_TEST_BAD_BASE_SOURCE)
+
+    self.assertRaises(Exception, MakeSource)
+
+  def testSourceScanGoogModule(self):
+    test_source = source.Source(_TEST_MODULE_SOURCE)
+
+    self.assertEqual(set(['foo']),
+                     test_source.provides)
+    self.assertEqual(set(['bar']),
+                     test_source.requires)
+    self.assertTrue(test_source.is_goog_module)
+
+  def testStripComments(self):
+    self.assertEquals(
+        '\nvar foo = function() {}',
+        source.Source._StripComments((
+            '/* This is\n'
+            '  a comment split\n'
+            '  over multiple lines\n'
+            '*/\n'
+            'var foo = function() {}')))
+
+  def testGoogStatementsInComments(self):
+    test_source = source.Source(_TEST_COMMENT_SOURCE)
+
+    self.assertEqual(set(['foo']),
+                     test_source.provides)
+    self.assertEqual(set(['goog.events.EventType']),
+                     test_source.requires)
+    self.assertFalse(test_source.is_goog_module)
+
+  def testHasProvideGoog(self):
+    self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BASE_SOURCE))
+    self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BAD_BASE_SOURCE))
+    self.assertFalse(source.Source._HasProvideGoogFlag(_TEST_COMMENT_SOURCE))
+
+
+_TEST_MODULE_SOURCE = """
+goog.module('foo');
+var b = goog.require('bar');
+"""
+
+
+_TEST_SOURCE = """// Fake copyright notice
+
+/** Very important comment. */
+
+goog.provide('foo');
+goog.provide('foo.test');
+
+goog.require('goog.dom');
+goog.require('goog.events.EventType');
+
+function foo() {
+  // Set bar to seventeen to increase performance.
+  this.bar = 17;
+}
+"""
+
+_TEST_COMMENT_SOURCE = """// Fake copyright notice
+
+goog.provide('foo');
+
+/*
+goog.provide('foo.test');
+ */
+
+/*
+goog.require('goog.dom');
+*/
+
+// goog.require('goog.dom');
+
+goog.require('goog.events.EventType');
+
+function bar() {
+  this.baz = 55;
+}
+"""
+
+_TEST_BASE_SOURCE = """
+/**
+ * @fileoverview The base file.
+ * @provideGoog
+ */
+
+var goog = goog || {};
+"""
+
+_TEST_BAD_BASE_SOURCE = """
+/**
+ * @fileoverview The base file.
+ * @provideGoog
+ */
+
+goog.provide('goog');
+"""
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/src/closure/conf/depswriter/treescan.py b/src/closure/conf/depswriter/treescan.py
new file mode 100755
index 0000000000000000000000000000000000000000..6694593aab0a3ae36a45429f9ca9dead2920b999
--- /dev/null
+++ b/src/closure/conf/depswriter/treescan.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+#
+# Copyright 2010 The Closure Library Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS-IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+"""Shared utility functions for scanning directory trees."""
+
+import os
+import re
+
+
+__author__ = 'nnaze@google.com (Nathan Naze)'
+
+
+# Matches a .js file path.
+_JS_FILE_REGEX = re.compile(r'^.+\.js$')
+
+
+def ScanTreeForJsFiles(root):
+  """Scans a directory tree for JavaScript files.
+
+  Args:
+    root: str, Path to a root directory.
+
+  Returns:
+    An iterable of paths to JS files, relative to cwd.
+  """
+  return ScanTree(root, path_filter=_JS_FILE_REGEX)
+
+
+def ScanTree(root, path_filter=None, ignore_hidden=True):
+  """Scans a directory tree for files.
+
+  Args:
+    root: str, Path to a root directory.
+    path_filter: A regular expression filter.  If set, only paths matching
+      the path_filter are returned.
+    ignore_hidden: If True, do not follow or return hidden directories or files
+      (those starting with a '.' character).
+
+  Yields:
+    A string path to files, relative to cwd.
+  """
+
+  def OnError(os_error):
+    raise os_error
+
+  for dirpath, dirnames, filenames in os.walk(root, onerror=OnError):
+    # os.walk allows us to modify dirnames to prevent decent into particular
+    # directories.  Avoid hidden directories.
+    for dirname in dirnames:
+      if ignore_hidden and dirname.startswith('.'):
+        dirnames.remove(dirname)
+
+    for filename in filenames:
+
+      # nothing that starts with '.'
+      if ignore_hidden and filename.startswith('.'):
+        continue
+
+      fullpath = os.path.join(dirpath, filename)
+
+      if path_filter and not path_filter.match(fullpath):
+        continue
+
+      yield os.path.normpath(fullpath)
diff --git a/src/closure/conf/externs/angular-1.3.js b/src/closure/conf/externs/angular-1.3.js
new file mode 100755
index 0000000000000000000000000000000000000000..c3795d2988ff48a966db4c95bd2c112cb1c73f01
--- /dev/null
+++ b/src/closure/conf/externs/angular-1.3.js
@@ -0,0 +1,2392 @@
+/*
+ * Copyright 2012 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @fileoverview Externs for Angular 1.
+ *
+ * TODO: Mocks.
+ * TODO: Remaining Services:
+ *     $compileProvider
+ *     $cookies
+ *     $cookieStore
+ *     $document
+ *     $httpBackend
+ *     $interpolate
+ *     $locale
+ *     $resource
+ *     $rootElement
+ *     $rootScope
+ *     $rootScopeProvider
+ *
+ * TODO: Resolve two issues with angular.$http
+ *         1) angular.$http isn't declared as a
+ *            callable type. It should be declared as a function, and properties
+ *            added following the technique used by $timeout, $parse and
+ *            $interval.
+ *         2) angular.$http.delete cannot be added as an extern
+ *            as it is a reserved keyword.
+ *            Its use is potentially not supported in IE.
+ *            It may be aliased as 'remove' in a future version.
+ *
+ * @see http://angularjs.org/
+ * @externs
+ */
+
+/**
+ * @typedef {(Window|Document|Element|Array.<Element>|string|!angular.JQLite|
+ *     NodeList|{length: number})}
+ */
+var JQLiteSelector;
+
+/**
+ * @type {Object}
+ * @const
+ */
+var angular = {};
+
+/**
+ * @param {T} self Specifies the object which this should point to when the
+ *     function is run.
+ * @param {?function(this:T, ...)} fn A function to partially apply.
+ * @return {!Function} A partially-applied form of the function bind() was
+ *     invoked as a method of.
+ * @param {...*} args Additional arguments that are partially applied to the
+ *     function.
+ * @template T
+ */
+angular.bind = function(self, fn, args) {};
+
+/** @typedef {{strictDi: (boolean|undefined)}} */
+angular.BootstrapOptions;
+
+/**
+ * @param {Element|HTMLDocument} element
+ * @param {Array.<string|Function>=} opt_modules
+ * @param {angular.BootstrapOptions=} opt_config
+ * @return {!angular.$injector}
+ */
+angular.bootstrap = function(element, opt_modules, opt_config) {};
+
+/**
+ * @param {T} source
+ * @param {(Object|Array)=} opt_dest
+ * @return {T}
+ * @template T
+ */
+angular.copy = function(source, opt_dest) {};
+
+/**
+ * @param {(JQLiteSelector|Object)} element
+ * @param {(JQLiteSelector|Object)=} opt_context
+ * @return {!angular.JQLite}
+ */
+angular.element = function(element, opt_context) {};
+
+/**
+ * @param {*} o1
+ * @param {*} o2
+ * @return {boolean}
+ */
+angular.equals = function(o1, o2) {};
+
+/**
+ * @param {Object} dest
+ * @param {...Object} srcs
+ */
+angular.extend = function(dest, srcs) {};
+
+/**
+ * @param {Object|Array} obj
+ * @param {Function} iterator
+ * @param {Object=} opt_context
+ * @return {Object|Array}
+ */
+angular.forEach = function(obj, iterator, opt_context) {};
+
+/**
+ * @param {string|T} json
+ * @return {Object|Array|Date|T}
+ * @template T
+ */
+angular.fromJson = function(json) {};
+
+/**
+ * @param {*} arg
+ * @return {*}
+ */
+angular.identity = function(arg) {};
+
+/**
+ * @param {Array.<string|Function>} modules
+ * @return {!angular.$injector}
+ */
+angular.injector = function(modules) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isArray = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isDate = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isDefined = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isElement = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isFunction = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isNumber = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isObject = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isString = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ */
+angular.isUndefined = function(value) {};
+
+/**
+ * @param {string} s
+ * @return {string}
+ */
+angular.lowercase = function(s) {};
+
+angular.mock = {};
+
+/**
+ * @param {string} name
+ * @param {Array.<string>=} opt_requires
+ * @param {(Function|Array.<string|Function>)=} opt_configFn
+ * @return {!angular.Module}
+ */
+angular.module = function(name, opt_requires, opt_configFn) {};
+
+angular.noop = function() {};
+
+/**
+ * @param {Object|Array|Date|string|number} obj
+ * @param {boolean=} opt_pretty
+ * @return {string}
+ */
+angular.toJson = function(obj, opt_pretty) {};
+
+/**
+ * @param {string} s
+ * @return {string}
+ */
+angular.uppercase = function(s) {};
+
+/**
+ * @typedef {{
+ *   enter: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   leave: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   move: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   addClass: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined),
+ *   removeClass: (function(!angular.JQLite, !Function): (!Function|undefined)|
+ *       undefined)
+ *   }}
+ */
+angular.Animation;
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.enter = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.leave = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.move = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.addClass = function(element, done) {};
+
+/**
+ * @param {!angular.JQLite} element
+ * @param {!Function} done
+ * @return {(!Function|undefined)}
+ */
+angular.Animation.removeClass = function(element, done) {};
+
+/**
+ * @typedef {{
+ *   $attr: Object.<string,string>,
+ *   $normalize: function(string): string,
+ *   $observe: function(string, function(*)): function(),
+ *   $set: function(string, ?(string|boolean), boolean=, string=)
+ *   }}
+ */
+angular.Attributes;
+
+/**
+ * @type {Object.<string, string>}
+ */
+angular.Attributes.$attr;
+
+/**
+ * @param {string} classVal
+ */
+angular.Attributes.$addClass = function(classVal) {};
+
+/**
+ * @param {string} classVal
+ */
+angular.Attributes.$removeClass = function(classVal) {};
+
+/**
+ * @param {string} newClasses
+ * @param {string} oldClasses
+ */
+angular.Attributes.$updateClass = function(newClasses, oldClasses) {};
+
+/**
+ * @param {string} name
+ * @return {string}
+ */
+angular.Attributes.$normalize = function(name) {};
+
+/**
+ * @param {string} key
+ * @param {function(*)} fn
+ * @return {function()}
+ */
+angular.Attributes.$observe = function(key, fn) {};
+
+/**
+ * @param {string} key
+ * @param {?(string|boolean)} value
+ * @param {boolean=} opt_writeAttr
+ * @param {string=} opt_attrName
+ */
+angular.Attributes.$set = function(key, value, opt_writeAttr, opt_attrName) {};
+
+/**
+ * @typedef {{
+ *   pre: (function(
+ *           !angular.Scope=,
+ *           !angular.JQLite=,
+ *           !angular.Attributes=,
+ *           (!Object|!Array.<!Object>)=)|
+ *       undefined),
+ *   post: (function(
+ *           !angular.Scope=,
+ *           !angular.JQLite=,
+ *           !angular.Attributes=,
+ *           (!Object|Array.<!Object>)=)|
+ *       undefined)
+ *   }}
+ */
+angular.LinkingFunctions;
+
+/**
+ * @param {!angular.Scope=} scope
+ * @param {!angular.JQLite=} iElement
+ * @param {!angular.Attributes=} iAttrs
+ * @param {(!Object|!Array.<!Object>)=} controller
+ */
+angular.LinkingFunctions.pre = function(scope, iElement, iAttrs, controller) {};
+
+/**
+ * @param {!angular.Scope=} scope
+ * @param {!angular.JQLite=} iElement
+ * @param {!angular.Attributes=} iAttrs
+ * @param {(!Object|!Array.<!Object>)=} controller
+ */
+angular.LinkingFunctions.post = function(scope, iElement, iAttrs, controller) {
+};
+
+/**
+ * @typedef {{
+ *   bindToController: (boolean|undefined),
+ *   compile: (function(
+ *       !angular.JQLite=, !angular.Attributes=, Function=)|undefined),
+ *   controller: (Function|Array.<string|Function>|string|undefined),
+ *   controllerAs: (string|undefined),
+ *   link: (function(
+ *       !angular.Scope=, !angular.JQLite=, !angular.Attributes=,
+ *       (!Object|!Array.<!Object>)=)|
+ *       !angular.LinkingFunctions|
+ *       undefined),
+ *   name: (string|undefined),
+ *   priority: (number|undefined),
+ *   replace: (boolean|undefined),
+ *   require: (string|Array.<string>|undefined),
+ *   restrict: (string|undefined),
+ *   scope: (boolean|Object.<string, string>|undefined),
+ *   template: (string|
+ *       function(!angular.JQLite=,!angular.Attributes=): string|
+ *       undefined),
+ *   templateNamespace: (string|undefined),
+ *   templateUrl: (string|
+ *       function(!angular.JQLite=,!angular.Attributes=)|
+ *       undefined),
+ *   terminal: (boolean|undefined),
+ *   transclude: (boolean|string|undefined)
+ *   }}
+ */
+angular.Directive;
+
+/**
+ * @param {!angular.JQLite=} tElement
+ * @param {!angular.Attributes=} tAttrs
+ * @param {Function=} transclude
+ * @return {Function|angular.LinkingFunctions|undefined}
+ */
+angular.Directive.compile = function(tElement, tAttrs, transclude) {};
+
+angular.Directive.controller = function() {};
+
+/**
+ * @type {string|undefined}
+ */
+angular.Directive.controllerAs;
+
+/**
+ * @type {(
+ *   function(!angular.Scope=, !angular.JQLite=, !angular.Attributes=,
+ *     (!Object|!Array.<!Object>)=)|
+ *   !angular.LinkingFunctions|
+ *   undefined
+ * )}
+ */
+angular.Directive.link;
+
+/**
+ * @type {(string|undefined)}
+ */
+angular.Directive.name;
+
+/**
+ * @type {(number|undefined)}
+ */
+angular.Directive.priority;
+
+/**
+ * @type {(boolean|undefined)}
+ */
+angular.Directive.replace;
+
+/**
+ * @type {(string|Array.<string>|undefined)}
+ */
+angular.Directive.require;
+
+/**
+ * @type {(string|undefined)}
+ */
+angular.Directive.restrict;
+
+/**
+ * @type {(boolean|Object.<string, string>|undefined)}
+ */
+angular.Directive.scope;
+
+/**
+ * @type {(
+ *   string|
+ *   function(!angular.JQLite=,!angular.Attributes=): string|
+ *   undefined
+ * )}
+ */
+angular.Directive.template;
+
+/**
+ * @type {(string|function(!angular.JQLite=, !angular.Attributes=)|undefined)}
+ */
+angular.Directive.templateUrl;
+
+/**
+ * @type {(boolean|undefined)}
+ */
+angular.Directive.terminal;
+
+/**
+ * @type {(boolean|string|undefined)}
+ */
+angular.Directive.transclude;
+
+/**
+ * @typedef {{
+ *   addClass: function(string): !angular.JQLite,
+ *   after: function(JQLiteSelector): !angular.JQLite,
+ *   append: function(JQLiteSelector): !angular.JQLite,
+ *   attr: function(string, (string|boolean)=):
+ *       (!angular.JQLite|string|boolean),
+ *   bind: function(string, Function): !angular.JQLite,
+ *   children: function(): !angular.JQLite,
+ *   clone: function(): !angular.JQLite,
+ *   contents: function(): !angular.JQLite,
+ *   controller: function(string=): Object,
+ *   css: function((string|!Object), string=): (!angular.JQLite|string),
+ *   data: function(string=, *=): *,
+ *   detach: function(): !angular.JQLite,
+ *   empty: function(): !angular.JQLite,
+ *   eq: function(number): !angular.JQLite,
+ *   find: function(string): !angular.JQLite,
+ *   hasClass: function(string): boolean,
+ *   html: function(string=): (!angular.JQLite|string),
+ *   inheritedData: function(string=, *=): *,
+ *   injector: function(): !angular.$injector,
+ *   isolateScope: function(): (!angular.Scope|undefined),
+ *   length: number,
+ *   next: function(): !angular.JQLite,
+ *   on: function(string, Function): !angular.JQLite,
+ *   off: function(string=, Function=): !angular.JQLite,
+ *   one: function(string, Function): !angular.JQLite,
+ *   parent: function(): !angular.JQLite,
+ *   prepend: function(JQLiteSelector): !angular.JQLite,
+ *   prop: function(string, *=): *,
+ *   ready: function(Function): !angular.JQLite,
+ *   remove: function(): !angular.JQLite,
+ *   removeAttr: function(string): !angular.JQLite,
+ *   removeClass: function(string): !angular.JQLite,
+ *   removeData: function(string=): !angular.JQLite,
+ *   replaceWith: function(JQLiteSelector): !angular.JQLite,
+ *   scope: function(): !angular.Scope,
+ *   text: function(string=): (!angular.JQLite|string),
+ *   toggleClass: function(string, boolean=): !angular.JQLite,
+ *   triggerHandler: function(string, *=): !angular.JQLite,
+ *   unbind: function(string=, Function=): !angular.JQLite,
+ *   val: function(string=): (!angular.JQLite|string),
+ *   wrap: function(JQLiteSelector): !angular.JQLite
+ *   }}
+ */
+angular.JQLite;
+
+/**
+ * @param {string} name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.addClass = function(name) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.after = function(element) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.append = function(element) {};
+
+/**
+ * @param {string} name
+ * @param {(string|boolean)=} opt_value
+ * @return {!angular.JQLite|string|boolean}
+ */
+angular.JQLite.attr = function(name, opt_value) {};
+
+/**
+ * @param {string} type
+ * @param {Function} fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.bind = function(type, fn) {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.children = function() {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.clone = function() {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.contents = function() {};
+
+/**
+ * @param {string=} opt_name
+ * @return {Object}
+ */
+angular.JQLite.controller = function(opt_name) {};
+
+/**
+ * @param {(string|!Object)} nameOrObject
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.css = function(nameOrObject, opt_value) {};
+
+/**
+ * @param {string=} opt_key
+ * @param {*=} opt_value
+ * @return {*}
+ */
+angular.JQLite.data = function(opt_key, opt_value) {};
+
+/**
+ * @param {number} index
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.eq = function(index) {};
+
+/**
+ * @param {string} selector
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.find = function(selector) {};
+
+/**
+ * @param {string} name
+ * @return {boolean}
+ */
+angular.JQLite.hasClass = function(name) {};
+
+/**
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.html = function(opt_value) {};
+
+/**
+ * @param {string=} opt_key
+ * @param {*=} opt_value
+ * @return {*}
+ */
+angular.JQLite.inheritedData = function(opt_key, opt_value) {};
+
+/**
+ * @return {!angular.$injector}
+ */
+angular.JQLite.injector = function() {};
+
+/** @type {number} */
+angular.JQLite.length;
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.next = function() {};
+
+/**
+ * @param {string} type
+ * @param {Function} fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.on = function(type, fn) {};
+
+/**
+ * @param {string=} opt_type
+ * @param {Function=} opt_fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.off = function(opt_type, opt_fn) {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.parent = function() {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.prepend = function(element) {};
+
+/**
+ * @param {string} name
+ * @param {*=} opt_value
+ * @return {*}
+ */
+angular.JQLite.prop = function(name, opt_value) {};
+
+/**
+ * @param {Function} fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.ready = function(fn) {};
+
+/**
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.remove = function() {};
+
+/**
+ * @param {string} name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.removeAttr = function(name) {};
+
+/**
+ * @param {string} name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.removeClass = function(name) {};
+
+/**
+ * @param {string=} opt_name
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.removeData = function(opt_name) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.replaceWith = function(element) {};
+
+/**
+ * @return {!angular.Scope}
+ */
+angular.JQLite.scope = function() {};
+
+/**
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.text = function(opt_value) {};
+
+/**
+ * @param {string} name
+ * @param {boolean=} opt_condition
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.toggleClass = function(name, opt_condition) {};
+
+/**
+ * @param {string} type
+ * @param {*=} opt_value
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.triggerHandler = function(type, opt_value) {};
+
+/**
+ * @param {string=} opt_type
+ * @param {Function=} opt_fn
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.unbind = function(opt_type, opt_fn) {};
+
+/**
+ * @param {string=} opt_value
+ * @return {!angular.JQLite|string}
+ */
+angular.JQLite.val = function(opt_value) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @return {!angular.JQLite}
+ */
+angular.JQLite.wrap = function(element) {};
+
+/**
+ * @typedef {{
+ *   animation:
+ *       function(string, function(...*):angular.Animation):!angular.Module,
+ *   config: function((Function|Array.<string|Function>)):!angular.Module,
+ *   constant: function(string, *):angular.Module,
+ *   controller:
+ *       (function(string, (Function|Array.<string|Function>)):!angular.Module|
+ *       function(!Object.<(Function|Array.<string|Function>)>):
+ *           !angular.Module),
+ *   directive:
+ *       (function(string, (Function|Array.<string|Function>)):!angular.Module|
+ *       function(!Object.<(Function|Array.<string|Function>)>):
+ *           !angular.Module),
+ *   factory:
+ *       function(string, (Function|Array.<string|Function>)):!angular.Module,
+ *   filter:
+ *       function(string, (Function|Array.<string|Function>)):!angular.Module,
+ *   name: string,
+ *   provider: function(string,
+ *       (Object|Function|Array.<string|Function>)):!angular.Module,
+ *   requires: !Array.<string>,
+ *   run: function((Function|Array.<string|Function>)):!angular.Module,
+ *   service:
+ *       function(string, (Function|Array.<string|Function>)):!angular.Module,
+ *   value: function(string, *):!angular.Module
+ *   }}
+ */
+angular.Module;
+
+/**
+ * @param {string} name
+ * @param {function(...*):angular.Animation} animationFactory
+ */
+angular.Module.animation = function(name, animationFactory) {};
+
+/**
+ * @param {Function|Array.<string|Function>} configFn
+ * @return {!angular.Module}
+ */
+angular.Module.config = function(configFn) {};
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {!angular.Module}
+ */
+angular.Module.constant = function(name, object) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} constructor
+ * @return {!angular.Module}
+ */
+angular.Module.controller = function(name, constructor) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} directiveFactory
+ * @return {!angular.Module}
+ */
+angular.Module.directive = function(name, directiveFactory) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerFunction
+ * @return {!angular.Module}
+ */
+angular.Module.factory = function(name, providerFunction) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} filterFactory
+ * @return {!angular.Module}
+ */
+angular.Module.filter = function(name, filterFactory) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerType
+ * @return {!angular.Module}
+ */
+angular.Module.provider = function(name, providerType) {};
+
+/**
+ * @param {Function|Array.<string|Function>} initializationFn
+ * @return {!angular.Module}
+ */
+angular.Module.run = function(initializationFn) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} constructor
+ * @return {!angular.Module}
+ */
+angular.Module.service = function(name, constructor) {};
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {!angular.Module}
+ */
+angular.Module.value = function(name, object) {};
+
+/**
+ * @type {string}
+ */
+angular.Module.name = '';
+
+/**
+ * @type {Array.<string>}
+ */
+angular.Module.requires;
+
+/**
+ * @typedef {{
+ *   $$phase: string,
+ *   $apply: function((string|function(!angular.Scope))=):*,
+ *   $applyAsync: function((string|function(!angular.Scope))=),
+ *   $broadcast: function(string, ...*),
+ *   $destroy: function(),
+ *   $digest: function(),
+ *   $emit: function(string, ...*),
+ *   $eval: function((string|function(!angular.Scope))=, Object=):*,
+ *   $evalAsync: function((string|function())=),
+ *   $id: string,
+ *   $new: function(boolean=):!angular.Scope,
+ *   $on: function(string, function(!angular.Scope.Event, ...?)):function(),
+ *   $parent: !angular.Scope,
+ *   $root: !angular.Scope,
+ *   $watch: function(
+ *       (string|Function), (string|Function)=, boolean=):function(),
+ *   $watchCollection: function(
+ *       (string|Function), (string|Function)=):function(),
+ *   $watchGroup: function(
+ *       Array.<string|Function>, (string|Function)=):function()
+ *   }}
+ */
+angular.Scope;
+
+/** @type {string} */
+angular.Scope.$$phase;
+
+/**
+ * @param {(string|function(!angular.Scope))=} opt_exp
+ * @return {*}
+ */
+angular.Scope.$apply = function(opt_exp) {};
+
+/**
+ * @param {string} name
+ * @param {...*} args
+ */
+angular.Scope.$broadcast = function(name, args) {};
+
+angular.Scope.$destroy = function() {};
+
+angular.Scope.$digest = function() {};
+
+/**
+ * @param {string} name
+ * @param {...*} args
+ */
+angular.Scope.$emit = function(name, args) {};
+
+/**
+ * @param {(string|function())=} opt_exp
+ * @param {Object=} opt_locals
+ * @return {*}
+ */
+angular.Scope.$eval = function(opt_exp, opt_locals) {};
+
+/**
+ * @param {(string|function())=} opt_exp
+ */
+angular.Scope.$evalAsync = function(opt_exp) {};
+
+/** @type {string} */
+angular.Scope.$id;
+
+/**
+ * @param {boolean=} opt_isolate
+ * @return {!angular.Scope}
+ */
+angular.Scope.$new = function(opt_isolate) {};
+
+/**
+ * @param {string} name
+ * @param {function(!angular.Scope.Event, ...?)} listener
+ * @return {function()}
+ */
+angular.Scope.$on = function(name, listener) {};
+
+/** @type {!angular.Scope} */
+angular.Scope.$parent;
+
+/** @type {!angular.Scope} */
+angular.Scope.$root;
+
+/**
+ * @param {string|!Function} exp
+ * @param {(string|Function)=} opt_listener
+ * @param {boolean=} opt_objectEquality
+ * @return {function()}
+ */
+angular.Scope.$watch = function(exp, opt_listener, opt_objectEquality) {};
+
+/**
+ * @param {string|!Function} exp
+ * @param {(string|Function)=} opt_listener
+ * @return {function()}
+ */
+angular.Scope.$watchCollection = function(exp, opt_listener) {};
+
+/**
+ * @typedef {{
+ *   currentScope: !angular.Scope,
+ *   defaultPrevented: boolean,
+ *   name: string,
+ *   preventDefault: function(),
+ *   stopPropagation: function(),
+ *   targetScope: !angular.Scope
+ *   }}
+ */
+angular.Scope.Event;
+
+/** @type {!angular.Scope} */
+angular.Scope.Event.currentScope;
+
+/** @type {boolean} */
+angular.Scope.Event.defaultPrevented;
+
+/** @type {string} */
+angular.Scope.Event.name;
+
+angular.Scope.Event.preventDefault = function() {};
+
+angular.Scope.Event.stopPropagation = function() {};
+
+/** @type {!angular.Scope} */
+angular.Scope.Event.targetScope;
+
+/**
+ * @type {Object}
+ */
+angular.version = {};
+
+/**
+ * @type {string}
+ */
+angular.version.full = '';
+
+/**
+ * @type {number}
+ */
+angular.version.major = 0;
+
+/**
+ * @type {number}
+ */
+angular.version.minor = 0;
+
+/**
+ * @type {number}
+ */
+angular.version.dot = 0;
+
+/**
+ * @type {string}
+ */
+angular.version.codeName = '';
+
+/******************************************************************************
+ * $anchorScroll Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function()}
+ */
+angular.$anchorScroll;
+
+/******************************************************************************
+ * $anchorScrollProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   disableAutoScrolling: function()
+ *   }}
+ */
+angular.$anchorScrollProvider;
+
+/**
+ * @type {function()}
+ */
+angular.$anchorScrollProvider.disableAutoScrolling = function() {};
+
+/******************************************************************************
+ * $animate Service
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.$animate;
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {Object} from
+ * @param {Object} to
+ * @param {string=} opt_className
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.animate = function(
+    element, from, to, opt_className, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {JQLiteSelector} parentElement
+ * @param {JQLiteSelector} afterElement
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.enter = function(
+    element, parentElement, afterElement, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.leave = function(element, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {JQLiteSelector} parentElement
+ * @param {JQLiteSelector} afterElement
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.move = function(
+    element, parentElement, afterElement, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {string} className
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.addClass = function(
+    element, className, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {string} className
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.removeClass = function(
+    element, className, opt_options) {};
+
+/**
+ * @param {JQLiteSelector} element
+ * @param {string} add
+ * @param {string} remove
+ * @param {Object.<string, *>=} opt_options
+ * @return {!angular.$q.Promise}
+ */
+angular.$animate.prototype.setClass = function(
+    element, add, remove, opt_options) {};
+
+/**
+ * @param {boolean=} opt_value
+ * @param {JQLiteSelector=} opt_element
+ * @return {boolean}
+ */
+angular.$animate.prototype.enabled = function(opt_value, opt_element) {};
+
+/**
+ * @param {angular.$q.Promise} animationPromise
+ */
+angular.$animate.prototype.cancel = function(animationPromise) {};
+
+/******************************************************************************
+ * $animateProvider Service
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.$animateProvider;
+
+/**
+ * @param {string} name
+ * @param {Function} factory
+ */
+angular.$animateProvider.prototype.register = function(name, factory) {};
+
+/**
+ * @param {RegExp=} opt_expression
+ */
+angular.$animateProvider.prototype.classNameFilter = function(
+    opt_expression) {};
+
+/******************************************************************************
+ * $compile Service
+ *****************************************************************************/
+
+/**
+ * @typedef {
+ *   function(
+ *       (JQLiteSelector|Object),
+ *       function(!angular.Scope, Function=)=, number=):
+ *           function(!angular.Scope,
+ *               function(!angular.JQLite, !angular.Scope=)=): !angular.JQLite}
+ */
+angular.$compile;
+
+/******************************************************************************
+ * $cacheFactory Service
+ *****************************************************************************/
+
+/**
+ * @typedef {
+ *   function(string, angular.$cacheFactory.Options=):
+ *       !angular.$cacheFactory.Cache}
+ */
+angular.$cacheFactory;
+
+/**
+ * @typedef {function(string): ?angular.$cacheFactory.Cache}
+ */
+angular.$cacheFactory.get;
+
+/** @typedef {{capacity: (number|undefined)}} */
+angular.$cacheFactory.Options;
+
+/**
+ * @template T
+ * @constructor
+ */
+angular.$cacheFactory.Cache = function() {};
+
+/**
+ * @return {!angular.$cacheFactory.Cache.Info}
+ */
+angular.$cacheFactory.Cache.prototype.info = function() {};
+
+/**
+ * @param {string} key
+ * @param {T} value
+ */
+angular.$cacheFactory.Cache.prototype.put = function(key, value) {};
+
+/**
+ * @param {string} key
+ * @return {T}
+ */
+angular.$cacheFactory.Cache.prototype.get = function(key) {};
+
+/**
+ * @param {string} key
+ */
+angular.$cacheFactory.Cache.prototype.remove = function(key) {};
+
+angular.$cacheFactory.Cache.prototype.removeAll = function() {};
+angular.$cacheFactory.Cache.prototype.destroy = function() {};
+
+/**
+ * @typedef {{
+ *   id: string,
+ *   size: number,
+ *   options: angular.$cacheFactory.Options
+ *   }}
+ */
+angular.$cacheFactory.Cache.Info;
+
+/******************************************************************************
+ * $controller Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function((Function|string), Object):Object}
+ */
+angular.$controller;
+
+/******************************************************************************
+ * $controllerProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   register: function((string|Object), (Function|Array)),
+ *   allowGlobals: function()
+ *   }}
+ */
+angular.$controllerProvider;
+
+/******************************************************************************
+ * $exceptionHandler Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(Error, string=)}
+ */
+angular.$exceptionHandler;
+
+/******************************************************************************
+ * $filter Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(string): !Function}
+ */
+angular.$filter;
+
+/**
+ * The 'orderBy' filter is available through $filterProvider and AngularJS
+ * injection; but is not accessed through a documented public API of AngularJS.
+ * <p>In current AngularJS version the injection is satisfied by
+ * angular.orderByFunction, where the implementation is found.
+ * <p>See http://docs.angularjs.org/api/ng.filter:orderBy.
+ * @typedef {function(Array,
+ *     (string|function(?):*|Array.<(string|function(?):*)>),
+ *     boolean=): Array}
+ */
+angular.$filter.orderBy;
+
+/******************************************************************************
+ * $filterProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   register: function(string, (!Function|!Array.<string|!Function>))
+ *   }}
+ */
+angular.$filterProvider;
+
+/**
+ * @param {string} name
+ * @param {(!Function|!Array.<string|!Function>)} fn
+ */
+angular.$filterProvider.register = function(name, fn) {};
+
+/******************************************************************************
+ * $http Service
+ *****************************************************************************/
+
+/**
+ * This is a typedef because the closure compiler does not allow
+ * defining a type that is a function with properties.
+ * If you are trying to use the $http service as a function, try
+ * using one of the helper functions instead.
+ * @typedef {{
+ *   delete: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   get: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   head: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   jsonp: function(string, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   post: function(string, *, angular.$http.Config=):
+ *       !angular.$http.HttpPromise,
+ *   put: function(string, *, angular.$http.Config=):!angular.$http.HttpPromise,
+ *   defaults: angular.$http.Config,
+ *   pendingRequests: !Array.<angular.$http.Config>
+ * }}
+ */
+angular.$http;
+
+/**
+ * @typedef {{
+ *   cache: (boolean|!angular.$cacheFactory.Cache|undefined),
+ *   data: (string|Object|undefined),
+ *   headers: (Object|undefined),
+ *   method: (string|undefined),
+ *   params: (Object.<(string|Object)>|undefined),
+ *   responseType: (string|undefined),
+ *   timeout: (number|!angular.$q.Promise|undefined),
+ *   transformRequest:
+ *       (function((string|Object), Object):(string|Object)|
+ *       Array.<function((string|Object), Object):(string|Object)>|undefined),
+ *   transformResponse:
+ *       (function((string|Object), Object):(string|Object)|
+ *       Array.<function((string|Object), Object):(string|Object)>|undefined),
+ *   url: (string|undefined),
+ *   withCredentials: (boolean|undefined),
+ *   xsrfCookieName: (string|undefined),
+ *   xsrfHeaderName: (string|undefined)
+ * }}
+ */
+angular.$http.Config;
+
+angular.$http.Config.transformRequest;
+
+angular.$http.Config.transformResponse;
+
+// /**
+//  * This extern is currently incomplete as delete is a reserved word.
+//  * To use delete, index $http.
+//  * Example: $http['delete'](url, opt_config);
+//  * @param {string} url
+//  * @param {angular.$http.Config=} opt_config
+//  * @return {!angular.$http.HttpPromise}
+//  */
+// angular.$http.delete = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.get = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.head = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.jsonp = function(url, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {*} data
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.post = function(url, data, opt_config) {};
+
+/**
+ * @param {string} url
+ * @param {*} data
+ * @param {angular.$http.Config=} opt_config
+ * @return {!angular.$http.HttpPromise}
+ */
+angular.$http.put = function(url, data, opt_config) {};
+
+/**
+ * @type {angular.$http.Config}
+ */
+angular.$http.defaults;
+
+/**
+ * @type {Array.<angular.$http.Config>}
+ * @const
+ */
+angular.$http.pendingRequests;
+
+/**
+ * @typedef {{
+ *   request: (undefined|(function(!angular.$http.Config):
+ *       !angular.$http.Config|!angular.$q.Promise.<!angular.$http.Config>)),
+ *   requestError: (undefined|(function(Object): !angular.$q.Promise|Object)),
+ *   response: (undefined|(function(!angular.$http.Response):
+ *       !angular.$http.Response|!angular.$q.Promise.<!angular.$http.Response>)),
+ *   responseError: (undefined|(function(Object): !angular.$q.Promise|Object))
+ *   }}
+ */
+angular.$http.Interceptor;
+
+/**
+ * @typedef {{
+ *   defaults: !angular.$http.Config,
+ *   interceptors: !Array.<string|function(...*): !angular.$http.Interceptor>,
+ *   useApplyAsync: function(boolean=):(boolean|!angular.$HttpProvider)
+ * }}
+ */
+angular.$HttpProvider;
+
+/**
+ * @type {angular.$http.Config}
+ */
+angular.$HttpProvider.defaults;
+
+/**
+ * @type {!Array.<string|function(...*): !angular.$http.Interceptor>}
+ */
+angular.$HttpProvider.interceptors;
+
+/**
+ * @param {boolean=} opt_value
+ * @return {boolean|!angular.$HttpProvider}
+ */
+angular.$HttpProvider.useApplyAsync = function(opt_value) {};
+
+/******************************************************************************
+ * $injector Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   annotate: function((Function|Array.<string|Function>)):Array.<string>,
+ *   get: function(string):(?),
+ *   has: function(string):boolean,
+ *   instantiate: function(Function, Object=):Object,
+ *   invoke: function(
+ *       (!Function|Array.<string|!Function>), Object=, Object=):(?)
+ *   }}
+ */
+angular.$injector;
+
+/**
+ * @param {(!Function|Array.<string|!Function>)} fn
+ * @return {Array.<string>}
+ */
+angular.$injector.annotate = function(fn) {};
+
+/**
+ * @param {string} name
+ * @return {?}
+ */
+angular.$injector.get = function(name) {};
+
+/**
+ * @param {string} name
+ * @return {boolean}
+ */
+angular.$injector.has = function(name) {};
+
+/**
+ * @param {!Function} type
+ * @param {Object=} opt_locals
+ * @return {Object}
+ */
+angular.$injector.instantiate = function(type, opt_locals) {};
+
+/**
+ * @param {(!Function|Array.<string|!Function>)} fn
+ * @param {Object=} opt_self
+ * @param {Object=} opt_locals
+ * @return {?}
+ */
+angular.$injector.invoke = function(fn, opt_self, opt_locals) {};
+
+/******************************************************************************
+ * $interpolateProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   startSymbol: function(string),
+ *   endSymbol: function(string)
+ *   }}
+ */
+angular.$interpolateProvider;
+
+/** @type {function(string)} */
+angular.$interpolateProvider.startSymbol;
+
+/** @type {function(string)} */
+angular.$interpolateProvider.endSymbol;
+
+/******************************************************************************
+ * $interval Service
+ *****************************************************************************/
+
+/**
+ * @typedef {
+ *  function(function(), number=, number=, boolean=):!angular.$q.Promise
+ * }
+ */
+angular.$interval;
+
+/**
+ * Augment the angular.$interval type definition by reopening the type via an
+ * artificial angular.$interval instance.
+ *
+ * This allows us to define methods on function objects which is something
+ * that can't be expressed via typical type annotations.
+ *
+ * @type {angular.$interval}
+ */
+angular.$interval_;
+
+/**
+ * @type {function(!angular.$q.Promise):boolean}
+ */
+angular.$interval_.cancel = function(promise) {};
+
+/******************************************************************************
+ * $location Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   absUrl: function():string,
+ *   hash: function(string=):string,
+ *   host: function():string,
+ *   path: function(string=):(string|!angular.$location),
+ *   port: function():number,
+ *   protocol: function():string,
+ *   replace: function(),
+ *   search: function((string|Object.<string, string>)=,
+ *       ?(string|Array.<string>|boolean)=): (!Object|angular.$location),
+ *   url: function(string=):string
+ *   }}
+ */
+angular.$location;
+
+/**
+ * @return {string}
+ */
+angular.$location.absUrl = function() {};
+
+/**
+ * @param {string=} opt_hash
+ * @return {string}
+ */
+angular.$location.hash = function(opt_hash) {};
+
+/**
+ * @return {string}
+ */
+angular.$location.host = function() {};
+
+/**
+ * @param {string=} opt_path
+ * @return {string|!angular.$location}
+ */
+angular.$location.path = function(opt_path) {};
+
+/**
+ * @return {number}
+ */
+angular.$location.port = function() {};
+
+/**
+ * @return {string}
+ */
+angular.$location.protocol = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.$location.replace = function() {};
+
+/**
+ * @param {(string|Object.<string, string>)=} opt_search
+ * @param {?(string|Array.<string>|boolean)=} opt_paramValue
+ * @return {(!Object|angular.$location)}
+ */
+angular.$location.search = function(opt_search, opt_paramValue) {};
+
+/**
+ * @param {string=} opt_url
+ * @return {string}
+ */
+angular.$location.url = function(opt_url) {};
+
+/******************************************************************************
+ * $locationProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   enabled: (boolean|undefined),
+ *   requireBase: (boolean|undefined)
+ * }}
+ */
+angular.$locationProvider.html5ModeConfig;
+
+/**
+ * @typedef {{
+ *   hashPrefix:
+ *       function(string=): (string|!angular.$locationProvider),
+ *   html5Mode:
+ *       function(
+ *           (boolean|angular.$locationProvider.html5ModeConfig)=):
+ *               (boolean|!angular.$locationProvider)
+ *   }}
+ */
+angular.$locationProvider;
+
+/**
+ * @param {string=} opt_prefix
+ * @return {string|!angular.$locationProvider}
+ */
+angular.$locationProvider.hashPrefix = function(opt_prefix) {};
+
+/**
+ * @param {(boolean|angular.$locationProvider.html5ModeConfig)=} opt_mode
+ * @return {boolean|!angular.$locationProvider}
+ */
+angular.$locationProvider.html5Mode = function(opt_mode) {};
+
+/******************************************************************************
+ * $log Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   error: function(...*),
+ *   info: function(...*),
+ *   log: function(...*),
+ *   warn: function(...*)
+ *   }}
+ */
+angular.$log;
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.error = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.info = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.log = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ */
+angular.$log.warn = function(var_args) {};
+
+/******************************************************************************
+ * NgModelController
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.NgModelController = function() {};
+
+/**
+ * @type {?}
+ */
+angular.NgModelController.prototype.$modelValue;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$dirty;
+
+/**
+ * @type {!Object.<boolean>}
+ */
+angular.NgModelController.prototype.$error;
+
+/**
+ * @type {!Array.<function(?):*>}
+ */
+angular.NgModelController.prototype.$formatters;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$invalid;
+
+/**
+ * @type {!Array.<function(?):*>}
+ */
+angular.NgModelController.prototype.$parsers;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$pristine;
+
+angular.NgModelController.prototype.$render = function() {};
+
+/**
+ * @param {string} key
+ * @param {boolean} isValid
+ */
+angular.NgModelController.prototype.$setValidity = function(key, isValid) {};
+
+/**
+ * @param {?} value
+ */
+angular.NgModelController.prototype.$setViewValue = function(value) {};
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$valid;
+
+/**
+ * @type {!Array.<function()>}
+ */
+angular.NgModelController.prototype.$viewChangeListeners;
+
+/**
+ * @type {?}
+ */
+angular.NgModelController.prototype.$viewValue;
+
+/**
+ * @type {!Object.<string, function(?, ?):*>}
+ */
+angular.NgModelController.prototype.$validators;
+
+/**
+ * @type {Object.<string, function(?, ?):*>}
+ */
+angular.NgModelController.prototype.$asyncValidators;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$untouched;
+
+/**
+ * @type {boolean}
+ */
+angular.NgModelController.prototype.$touched;
+
+/**
+ * @param {?} value
+ */
+angular.NgModelController.prototype.$isEmpty = function(value) {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setPristine = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setDirty = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setUntouched = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$setTouched = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$rollbackViewValue = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$validate = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.NgModelController.prototype.$commitViewValue = function() {};
+
+/******************************************************************************
+ * FormController
+ *****************************************************************************/
+
+/**
+ * @constructor
+ */
+angular.FormController = function() {};
+
+/**
+ * @param {*} control
+ */
+angular.FormController.prototype.$addControl = function(control) {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$rollbackViewValue = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$commitViewValue = function() {};
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$dirty;
+
+/**
+ * @type {!Object.<boolean|!Array.<*>>}
+ */
+angular.FormController.prototype.$error;
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$invalid;
+
+/**
+ * @type {string}
+ */
+angular.FormController.prototype.$name;
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$pristine;
+
+/**
+ * @param {*} control
+ */
+angular.FormController.prototype.$removeControl = function(control) {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setDirty = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setPristine = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setUntouched = function() {};
+
+/**
+ * @type {function()}
+ */
+angular.FormController.prototype.$setSubmitted = function() {};
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$submitted;
+
+/**
+ * @param {string} validationToken
+ * @param {boolean} isValid
+ * @param {*} control
+ */
+angular.FormController.prototype.$setValidity = function(
+    validationToken, isValid, control) {};
+
+/**
+ * @type {boolean}
+ */
+angular.FormController.prototype.$valid;
+
+/******************************************************************************
+ * $parse Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(string):!angular.$parse.Expression}
+ */
+angular.$parse;
+
+/**
+ * @typedef {function((!angular.Scope|!Object), Object=):*}
+ */
+angular.$parse.Expression;
+
+/**
+ * Augment the angular.$parse.Expression type definition by reopening the type
+ * via an artificial angular.$parse instance.
+ *
+ * This allows us to define methods on function objects which is something
+ * that can't be expressed via typical type annotations.
+ *
+ * @type {angular.$parse.Expression}
+ */
+angular.$parse_;
+
+/**
+ * @type {function((!angular.Scope|!Object), *)}
+ */
+angular.$parse_.assign = function(scope, newValue) {};
+
+/******************************************************************************
+ * $provide Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   constant: function(string, *): Object,
+ *   decorator: function(string, (!Function|Array.<string|!Function>)),
+ *   factory: function(string, (!Function|Array.<string|!Function>)): Object,
+ *   provider: function(string, (!Function|Array.<string|!Function>)): Object,
+ *   service: function(string, (!Function|Array.<string|!Function>)): Object,
+ *   value: function(string, *): Object
+ *   }}
+ */
+angular.$provide;
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {Object}
+ */
+angular.$provide.constant = function(name, object) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} decorator
+ */
+angular.$provide.decorator = function(name, decorator) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerFunction
+ * @return {Object}
+ */
+angular.$provide.factory = function(name, providerFunction) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} providerType
+ * @return {Object}
+ */
+angular.$provide.provider = function(name, providerType) {};
+
+/**
+ * @param {string} name
+ * @param {Function|Array.<string|Function>} constructor
+ * @return {Object}
+ */
+angular.$provide.service = function(name, constructor) {};
+
+/**
+ * @param {string} name
+ * @param {*} object
+ * @return {Object}
+ */
+angular.$provide.value = function(name, object) {};
+
+/******************************************************************************
+ * $route Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   reload: function(),
+ *   current: !angular.$route.Route,
+ *   routes: Array.<!angular.$route.Route>
+ * }}
+ */
+angular.$route;
+
+/** @type {function()} */
+angular.$route.reload = function() {};
+
+/**
+ * @param {!Object<string,string>} object
+ */
+angular.$route.updateParams = function(object) {};
+
+/** @type {!angular.$route.Route} */
+angular.$route.current;
+
+/** @type {Array.<!angular.$route.Route>} */
+angular.$route.routes;
+
+/**
+ * @typedef {{
+ *   $route: angular.$routeProvider.Params,
+ *   locals: Object.<string, *>,
+ *   params: Object.<string, string>,
+ *   pathParams: Object.<string, string>,
+ *   scope: Object.<string, *>,
+ *   originalPath: (string|undefined),
+ *   regexp: (RegExp|undefined)
+ * }}
+ */
+angular.$route.Route;
+
+/** @type {angular.$routeProvider.Params} */
+angular.$route.Route.$route;
+
+/** @type {Object.<string, *>} */
+angular.$route.Route.locals;
+
+/** @type {Object.<string, string>} */
+angular.$route.Route.params;
+
+/** @type {Object.<string, string>} */
+angular.$route.Route.pathParams;
+
+/** @type {Object.<string, *>} */
+angular.$route.Route.scope;
+
+/** @type {string|undefined} */
+angular.$route.Route.originalPath;
+
+/** @type {RegExp|undefined} */
+angular.$route.Route.regexp;
+
+/******************************************************************************
+ * $routeParams Service
+ *****************************************************************************/
+
+// TODO: This should be !Object.<string|boolean> because valueless query params
+// (without even an equal sign) come through as boolean "true".
+
+/** @typedef {!Object.<string>} */
+angular.$routeParams;
+
+/******************************************************************************
+ * $routeProvider Service
+ *****************************************************************************/
+
+/**
+ * @typedef {{
+ *   otherwise:
+ *       function(
+ *           (string|!angular.$routeProvider.Params)): !angular.$routeProvider,
+ *   when:
+ *       function(
+ *           string, angular.$routeProvider.Params): !angular.$routeProvider
+ *   }}
+ */
+angular.$routeProvider;
+
+/**
+ * @param {(string|!angular.$routeProvider.Params)} params
+ * @return {!angular.$routeProvider}
+ */
+angular.$routeProvider.otherwise = function(params) {};
+
+/**
+ * @param {string} path
+ * @param {angular.$routeProvider.Params} route
+ * @return {!angular.$routeProvider}
+ */
+angular.$routeProvider.when = function(path, route) {};
+
+/**
+ * @typedef {{
+ *   controller: (Function|Array.<string|Function>|string|undefined),
+ *   controllerAs: (string|undefined),
+ *   template: (string|undefined),
+ *   templateUrl: (string|function(!Object.<string,string>=)|undefined),
+ *   resolve: (Object.<string, (
+ *       string|Function|Array.<string|Function>|!angular.$q.Promise
+ *       )>|undefined),
+ *   redirectTo: (
+ *       string|function(Object.<string>, string, Object): string|undefined),
+ *   reloadOnSearch: (boolean|undefined)
+ *   }}
+ */
+angular.$routeProvider.Params;
+
+/** @type {Function|Array.<string|Function>|string} */
+angular.$routeProvider.Params.controller;
+
+/** @type {string} */
+angular.$routeProvider.Params.controllerAs;
+
+/** @type {string} */
+angular.$routeProvider.Params.template;
+
+/** @type {string|function(!Object.<string,string>=)} */
+angular.$routeProvider.Params.templateUrl;
+
+/**
+ * @type {
+ *   Object.<string, (
+ *       string|Function|Array.<string|Function>|!angular.$q.Promise
+ *       )>}
+ */
+angular.$routeProvider.Params.resolve;
+
+/** @type {string|function(Object.<string>, string, Object): string} */
+angular.$routeProvider.Params.redirectTo;
+
+/** @type {boolean} */
+angular.$routeProvider.Params.reloadOnSearch;
+
+/******************************************************************************
+ * $sanitize Service
+ *****************************************************************************/
+
+/** @typedef {function(string):string} */
+angular.$sanitize;
+
+/******************************************************************************
+ * $sce Service
+ *****************************************************************************/
+
+/**
+ * Ref: http://docs.angularjs.org/api/ng.$sce
+ *
+ * @typedef {{
+ *   HTML: string,
+ *   CSS: string,
+ *   URL: string,
+ *   JS: string,
+ *   RESOURCE_URL: string,
+ *   isEnabled: function(): boolean,
+ *   parseAs: function(string, string): !angular.$parse.Expression,
+ *   getTrusted: function(string, *): string,
+ *   trustAs: function(string, string): *,
+ *   parseAsHtml: function(string): !angular.$parse.Expression,
+ *   parseAsCss: function(string): !angular.$parse.Expression,
+ *   parseAsUrl: function(string): !angular.$parse.Expression,
+ *   parseAsJs: function(string): !angular.$parse.Expression,
+ *   parseAsResourceUrl: function(string): !angular.$parse.Expression,
+ *   getTrustedHtml: function(*): string,
+ *   getTrustedCss: function(*): string,
+ *   getTrustedUrl: function(*): string,
+ *   getTrustedJs: function(*): string,
+ *   getTrustedResourceUrl: function(*): string,
+ *   trustAsHtml: function(string): *,
+ *   trustAsCss: function(string): *,
+ *   trustAsUrl: function(string): *,
+ *   trustAsJs: function(string): *,
+ *   trustAsResourceUrl: function(string): *
+ *   }}
+ *****************************************************************************/
+angular.$sce;
+
+
+/** @const {string} */
+angular.$sce.HTML;
+
+/** @const {string} */
+angular.$sce.CSS;
+
+/** @const {string} */
+angular.$sce.URL;
+
+/** @const {string} */
+angular.$sce.JS;
+
+/** @const {string} */
+angular.$sce.RESOURCE_URL;
+
+/** @return {boolean} */
+angular.$sce.isEnabled = function() {};
+
+/**
+ * @param {string} type
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAs = function(type, expression) {};
+
+/**
+ * @param {string} type
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrusted = function(type, maybeTrusted) {};
+
+/**
+ * @param {string} type
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAs = function(type, trustedValue) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsHtml = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsCss = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsUrl = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsJs = function(expression) {};
+
+/**
+ * @param {string} expression
+ * @return {!angular.$parse.Expression}
+ */
+angular.$sce.parseAsResourceUrl = function(expression) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedHtml = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedCss = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedUrl = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedJs = function(maybeTrusted) {};
+
+/**
+ * @param {*} maybeTrusted
+ * @return {string}
+ */
+angular.$sce.getTrustedResourceUrl = function(maybeTrusted) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsHtml = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsCss = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsUrl = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsJs = function(trustedValue) {};
+
+/**
+ * @param {string} trustedValue
+ * @return {*}
+ */
+angular.$sce.trustAsResourceUrl = function(trustedValue) {};
+
+/******************************************************************************
+ * $sceDelegate Service
+ *****************************************************************************/
+
+/**
+ * Ref: http://docs.angularjs.org/api/ng/service/$sceDelegate
+ *
+ * @constructor
+ */
+angular.$sceDelegate = function() {};
+
+/**
+ * @param {string} type
+ * @param {*} value
+ * @return {*}
+ */
+angular.$sceDelegate.prototype.trustAs = function(type, value) {};
+
+/**
+ * Note: because this method overrides Object.prototype.valueOf, the value
+ * parameter needs to be annotated as optional to keep the compiler happy (as
+ * otherwise the signature won't match Object.prototype.valueOf).
+ *
+ * @override
+ * @param {*=} value
+ * @return {*}
+ */
+angular.$sceDelegate.prototype.valueOf = function(value) {};
+
+/**
+ * @param {string} type
+ * @param {*} maybeTrusted
+ * @return {*}
+ */
+angular.$sceDelegate.prototype.getTrusted = function(type, maybeTrusted) {};
+
+/******************************************************************************
+ * $sceDelegateProvider Service
+ *****************************************************************************/
+
+/**
+ * Ref: http://docs.angularjs.org/api/ng/provider/$sceDelegateProvider
+ *
+ * @constructor
+ */
+angular.$sceDelegateProvider = function() {};
+
+/**
+ * @param {Array.<string>=} opt_whitelist
+ * @return {!Array.<string>}
+ */
+angular.$sceDelegateProvider.prototype.resourceUrlWhitelist = function(
+    opt_whitelist) {};
+
+/**
+ * @param {Array.<string>=} opt_blacklist
+ * @return {!Array.<string>}
+ */
+angular.$sceDelegateProvider.prototype.resourceUrlBlacklist = function(
+    opt_blacklist) {};
+
+/******************************************************************************
+ * $templateCache Service
+ *****************************************************************************/
+
+/**
+ * @typedef {!angular.$cacheFactory.Cache.<string>}
+ */
+angular.$templateCache;
+
+/******************************************************************************
+ * $timeout Service
+ *****************************************************************************/
+
+/**
+ * @typedef {function(function(), number=, boolean=):!angular.$q.Promise}
+ */
+angular.$timeout;
+
+/**
+ * Augment the angular.$timeout type definition by reopening the type via an
+ * artificial angular.$timeout instance.
+ *
+ * This allows us to define methods on function objects which is something
+ * that can't be expressed via typical type annotations.
+ *
+ * @type {angular.$timeout}
+ */
+angular.$timeout_;
+
+/**
+ * @type {function(angular.$q.Promise=):boolean}
+ */
+angular.$timeout_.cancel = function(promise) {};
+
+/******************************************************************************
+ * $window Service
+ *****************************************************************************/
+
+/** @typedef {!Window} */
+angular.$window;
diff --git a/src/closure/conf/externs/bingmaps.js b/src/closure/conf/externs/bingmaps.js
new file mode 100755
index 0000000000000000000000000000000000000000..99da4d0224839e7e26651f37279d08f2927e73e9
--- /dev/null
+++ b/src/closure/conf/externs/bingmaps.js
@@ -0,0 +1,176 @@
+/**
+ * @externs
+ */
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsCoverageArea = function() {};
+
+
+/**
+ * @type {Array.<number>}
+ */
+BingMapsCoverageArea.prototype.bbox;
+
+
+/**
+ * @type {number}
+ */
+BingMapsCoverageArea.prototype.zoomMax;
+
+
+/**
+ * @type {number}
+ */
+BingMapsCoverageArea.prototype.zoomMin;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsImageryProvider = function() {};
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryProvider.prototype.attribution;
+
+
+/**
+ * @type {Array.<BingMapsCoverageArea>}
+ */
+BingMapsImageryProvider.prototype.coverageAreas;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsImageryMetadataResponse = function() {};
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.authenticationResultCode;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.brandLogoUri;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.copyright;
+
+
+/**
+ * @type {Array.<BingMapsResourceSet>}
+ */
+BingMapsImageryMetadataResponse.prototype.resourceSets;
+
+
+/**
+ * @type {number}
+ */
+BingMapsImageryMetadataResponse.prototype.statusCode;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.statusDescription;
+
+
+/**
+ * @type {string}
+ */
+BingMapsImageryMetadataResponse.prototype.traceId;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsResource = function() {};
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.imageHeight;
+
+
+/**
+ * @type {string}
+ */
+BingMapsResource.prototype.imageUrl;
+
+
+/**
+ * @type {Array.<string>}
+ */
+BingMapsResource.prototype.imageUrlSubdomains;
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.imageWidth;
+
+
+/**
+ * @type {Array.<BingMapsImageryProvider>}
+ */
+BingMapsResource.prototype.imageryProviders;
+
+
+/**
+ * @type {Object}
+ */
+BingMapsResource.prototype.vintageEnd;
+
+
+/**
+ * @type {Object}
+ */
+BingMapsResource.prototype.vintageStart;
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.zoomMax;
+
+
+/**
+ * @type {number}
+ */
+BingMapsResource.prototype.zoomMin;
+
+
+
+/**
+ * @constructor
+ */
+var BingMapsResourceSet = function() {};
+
+
+/**
+ * @type {number}
+ */
+BingMapsResourceSet.prototype.estimatedTotal;
+
+
+/**
+ * @type {Array.<BingMapsResource>}
+ */
+BingMapsResourceSet.prototype.resources;
\ No newline at end of file
diff --git a/src/closure/conf/externs/bootstrap.js b/src/closure/conf/externs/bootstrap.js
new file mode 100755
index 0000000000000000000000000000000000000000..fb49fcfded06a098b966e90649ddb20dbd69d2b5
--- /dev/null
+++ b/src/closure/conf/externs/bootstrap.js
@@ -0,0 +1,242 @@
+/**
+ * @fileoverview Externs for Twitter Bootstrap
+ * @see http://twitter.github.com/bootstrap/
+ * 
+ * @author Qamal Kosim-Satyaputra
+ * @externs
+ */
+
+
+
+// --- Modal ---
+
+
+
+/** @constructor */
+jQuery.modal.options = function() {};
+
+/** @type {boolean} */
+jQuery.modal.options.prototype.backdrop;
+
+/** @type {boolean} */
+jQuery.modal.options.prototype.keyboard;
+
+/** @type {boolean} */
+jQuery.modal.options.prototype.show;
+
+/**
+ * @param {=(string|jQuery.modal.options)} opt_eventOrOptions
+ * @return {jQuery}
+ */
+jQuery.prototype.modal = function(opt_eventOrOptions) {};
+
+
+
+// --- Dropdown ---
+
+
+
+/**
+ * @return {jQuery}
+ */
+jQuery.prototype.dropdown = function() {};
+
+
+
+// --- Scroll Spy ---
+
+
+
+/** @constructor */
+jQuery.scrollspy.options = function() {};
+
+/** @type {number} */
+jQuery.scrollspy.options.prototype.offset;
+
+/**
+ * @param {=jQuery.scrollspy.options} opt_options
+ * @return {jQuery}
+ */
+jQuery.prototype.scrollspy = function(opt_options) {};
+
+
+
+// --- Tabs ---
+
+
+
+/**
+ * @param {=string} opt_event
+ * @return {jQuery}
+ */
+jQuery.prototype.tab = function(opt_event) {};
+
+
+
+// --- Tooltips ---
+
+
+
+/** @constructor */
+jQuery.tooltip.options = function() {};
+
+/** @type {boolean} */
+jQuery.tooltip.prototype.animation;
+
+/** @type {string|function} */
+jQuery.tooltip.prototype.placement;
+
+/** @type {string} */
+jQuery.tooltip.prototype.selector;
+
+/** @type {string|function} */
+jQuery.tooltip.prototype.title;
+
+/** @type {string} */
+jQuery.tooltip.prototype.trigger;
+
+/** @type {number|{show: number, hide: number}} */
+jQuery.tooltip.prototype.delay;
+
+/**
+ * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions
+ * @return {jQuery}
+ */
+jQuery.prototype.tooltip = function(opt_eventOrOptions) {};
+
+
+
+// --- Popovers ---
+
+
+
+/** @constructor */
+jQuery.popover.options = function() {};
+
+/** @type {boolean} */
+jQuery.popover.prototype.animation;
+
+/** @type {string|function} */
+jQuery.popover.prototype.placement;
+
+/** @type {string} */
+jQuery.popover.prototype.selector;
+
+/** @type {string} */
+jQuery.popover.prototype.trigger;
+
+/** @type {string|function} */
+jQuery.popover.prototype.title;
+
+/** @type {string|function} */
+jQuery.popover.prototype.content;
+
+/** @type {number|{show: number, hide: number}} */
+jQuery.popover.prototype.delay;
+
+/**
+ * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions
+ * @return {jQuery}
+ */
+jQuery.prototype.popover = function(opt_eventOrOptions) {};
+
+
+
+// --- Alerts ---
+
+
+
+/**
+ * @param {=string} opt_event
+ * @return {jQuery}
+ */
+jQuery.prototype.alert = function(opt_event) {};
+
+
+
+// --- Buttons ---
+
+
+
+/**
+ * @param {=string} opt_state
+ * @return {jQuery}
+ */
+jQuery.prototype.button = function(opt_state) {};
+
+
+
+// --- Collapse ---
+
+
+
+/** @constructor */
+jQuery.collapse.options = function() {};
+
+/** @type {jQuerySelector} */
+jQuery.collapse.options.prototype.parent;
+
+/** @type {boolean} */
+jQuery.collapse.options.prototype.toggle;
+
+/**
+ * @param {=(string|jQuery.collapse.options)} opt_eventOrOptions
+ */
+jQuery.prototype.collapse = function(opt_eventOrOptions) {};
+
+
+
+// --- Carousel ---
+
+
+
+/** @constructor */
+jQuery.carousel.options = function() {};
+
+/** @type {number} */
+jQuery.carousel.options.prototype.interval;
+
+/** @type {string} */
+jQuery.carousel.options.prototype.pause;
+
+/**
+ * @param {=(string|jQuery.carousel.options})} opt_eventOrOptions
+ */
+jQuery.prototype.carousel = function(opt_eventOrOptions) {};
+
+
+
+// --- Typeahead ---
+
+
+
+/** @constructor */
+jQuery.typeahead.options = function() {};
+
+/** @type {Array} */
+jQuery.typeahead.options.prototype.source;
+
+/** @type {number} */
+jQuery.typeahead.options.prototype.items;
+
+/** @type {function} */
+jQuery.typeahead.options.prototype.matcher;
+
+/** @type {function} */
+jQuery.typeahead.options.prototype.sorter;
+
+/** @type {function} */
+jQuery.typeahead.options.prototype.highlighter;
+
+/**
+ * @param {=(string|jQuery.typeahead.options)} opt_options
+ * @return {jQuery}
+ */
+jQuery.prototype.typeahead = function(opt_options) {};
+
+/**
+ * @param {Element|jQuery|jQuerySelector}
+ * @param {=jQuery.typeahead.options} opt_options
+ * @return {jQuery}
+ */
+jQuery.prototype.typeahead.Constructor = function(element, opt_options) {};
\ No newline at end of file
diff --git a/src/closure/conf/externs/geojson.js b/src/closure/conf/externs/geojson.js
new file mode 100755
index 0000000000000000000000000000000000000000..6ddf03a3cc7ba7623d5442e065046ce92f482adc
--- /dev/null
+++ b/src/closure/conf/externs/geojson.js
@@ -0,0 +1,171 @@
+/**
+ * @fileoverview Externs for GeoJSON.
+ * @see http://geojson.org/geojson-spec.html
+ * @externs
+ */
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONObject = function() {};
+
+
+/**
+ * @type {!Array.<number>|undefined}
+ */
+GeoJSONObject.prototype.bbox;
+
+
+/**
+ * @type {string}
+ */
+GeoJSONObject.prototype.type;
+
+
+/**
+ * @type {!GeoJSONCRS|undefined}
+ */
+GeoJSONObject.prototype.crs;
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONCRS = function() {};
+
+
+/**
+ * CRS type. One of `link` or `name`.
+ * @type {string}
+ */
+GeoJSONCRS.prototype.type;
+
+
+/**
+ * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996
+ * is fixed and widely deployed.
+ * @type {!GeoJSONCRSCode|!GeoJSONCRSName|!GeoJSONLink}
+ */
+GeoJSONCRS.prototype.properties;
+
+
+
+/**
+ * `GeoJSONCRSCode` is not part of the GeoJSON specification, but is generated
+ * by GeoServer.
+ * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996
+ * is fixed and widely deployed.
+ * @constructor
+ */
+var GeoJSONCRSCode = function() {};
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONCRSName = function() {};
+
+
+/**
+ * TODO: remove this when http://jira.codehaus.org/browse/GEOS-5996 is fixed
+ * and widely deployed.
+ * @type {string}
+ */
+GeoJSONCRSName.prototype.code;
+
+
+/**
+ * @type {string}
+ */
+GeoJSONCRSName.prototype.name;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONGeometry = function() {};
+
+
+/**
+ * @type {!Array.<number>|!Array.<!Array.<number>>|
+ *        !Array.<!Array.<!Array.<number>>>}
+ */
+GeoJSONGeometry.prototype.coordinates;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONGeometryCollection = function() {};
+
+
+/**
+ * @type {!Array.<GeoJSONGeometry>}
+ */
+GeoJSONGeometryCollection.prototype.geometries;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONFeature = function() {};
+
+
+/**
+ * @type {GeoJSONGeometry|GeoJSONGeometryCollection}
+ */
+GeoJSONFeature.prototype.geometry;
+
+
+/**
+ * @type {number|string|undefined}
+ */
+GeoJSONFeature.prototype.id;
+
+
+/**
+ * @type {Object.<string, *>}
+ */
+GeoJSONFeature.prototype.properties;
+
+
+
+/**
+ * @constructor
+ * @extends {GeoJSONObject}
+ */
+var GeoJSONFeatureCollection = function() {};
+
+
+/**
+ * @type {!Array.<GeoJSONFeature>}
+ */
+GeoJSONFeatureCollection.prototype.features;
+
+
+
+/**
+ * @constructor
+ */
+var GeoJSONLink = function() {};
+
+
+/**
+ * @type {string}
+ */
+GeoJSONLink.prototype.href;
+
+/**
+ * @type {string}
+ */
+GeoJSONLink.prototype.type;
\ No newline at end of file
diff --git a/src/closure/conf/externs/html2canvas.js b/src/closure/conf/externs/html2canvas.js
new file mode 100755
index 0000000000000000000000000000000000000000..d12202e32f6fd2db7b14312b65d06e30b9e94c78
--- /dev/null
+++ b/src/closure/conf/externs/html2canvas.js
@@ -0,0 +1,8 @@
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @returns {html2canvas}
+ */
+function html2canvas (arg1, arg2) {};
+
diff --git a/src/closure/conf/externs/jquery-1.9.js b/src/closure/conf/externs/jquery-1.9.js
new file mode 100755
index 0000000000000000000000000000000000000000..72b80b31763c2810407a6faf2644d318d8c34a5b
--- /dev/null
+++ b/src/closure/conf/externs/jquery-1.9.js
@@ -0,0 +1,2166 @@
+/*
+ * Copyright 2011 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @fileoverview Externs for jQuery 1.9.1
+ *
+ * Note that some functions use different return types depending on the number
+ * of parameters passed in. In these cases, you may need to annotate the type
+ * of the result in your code, so the JSCompiler understands which type you're
+ * expecting. For example:
+ *    <code>var elt = /** @type {Element} * / (foo.get(0));</code>
+ *
+ * @see http://api.jquery.com/
+ * @externs
+ */
+
+/**
+ * @typedef {(Window|Document|Element|Array.<Element>|string|jQuery|
+ *     NodeList)}
+ */
+var jQuerySelector;
+
+/** @typedef {function(...)|Array.<function(...)>} */
+var jQueryCallback;
+
+/** @typedef {
+              {
+               accepts: (Object.<string, string>|undefined),
+               async: (?boolean|undefined),
+               beforeSend: (function(jQuery.jqXHR, (jQueryAjaxSettings|Object.<string, *>))|undefined),
+               cache: (?boolean|undefined),
+               complete: (function(jQuery.jqXHR, string)|undefined),
+               contents: (Object.<string, RegExp>|undefined),
+               contentType: (?string|undefined),
+               context: (Object.<?, ?>|jQueryAjaxSettings|undefined),
+               converters: (Object.<string, Function>|undefined),
+               crossDomain: (?boolean|undefined),
+               data: (Object.<?, ?>|?string|Array.<?>|undefined),
+               dataFilter: (function(string, string):?|undefined),
+               dataType: (?string|undefined),
+               error: (function(jQuery.jqXHR, string, string)|undefined),
+               global: (?boolean|undefined),
+               headers: (Object.<?, ?>|undefined),
+               ifModified: (?boolean|undefined),
+               isLocal: (?boolean|undefined),
+               jsonp: (?string|undefined),
+               jsonpCallback: (?string|function()|undefined),
+               mimeType: (?string|undefined),
+               password: (?string|undefined),
+               processData: (?boolean|undefined),
+               scriptCharset: (?string|undefined),
+               statusCode: (Object.<number, function()>|undefined),
+               success: (function(?, string, jQuery.jqXHR)|undefined),
+               timeout: (?number|undefined),
+               traditional: (?boolean|undefined),
+               type: (?string|undefined),
+               url: (?string|undefined),
+               username: (?string|undefined),
+               xhr: (function():(ActiveXObject|XMLHttpRequest)|undefined),
+               xhrFields: (Object.<?, ?>|undefined)
+              }} */
+var jQueryAjaxSettings;
+
+/**
+ * @constructor
+ * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string|
+ *     function())=} arg1
+ * @param {(Element|jQuery|Document|
+ *     Object.<string, (string|function(!jQuery.event=))>)=} arg2
+ * @return {!jQuery}
+ */
+function jQuery(arg1, arg2) {}
+
+/**
+ * @constructor
+ * @extends {jQuery}
+ * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string|
+ *     function())=} arg1
+ * @param {(Element|jQuery|Document|
+ *     Object.<string, (string|function(!jQuery.event=))>)=} arg2
+ * @return {!jQuery}
+ */
+function $(arg1, arg2) {}
+
+/**
+ * @param {(jQuerySelector|Array.<Element>|string|jQuery)} arg1
+ * @param {Element=} context
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.add = function(arg1, context) {};
+
+/**
+ * @param {(jQuerySelector|Array.<Element>|string|jQuery)=} arg1
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.addBack = function(arg1) {};
+
+/**
+ * @param {(string|function(number,String))} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.addClass = function(arg1) {};
+
+/**
+ * @param {(string|Element|jQuery|function(number))} arg1
+ * @param {(string|Element|Array.<Element>|jQuery)=} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.after = function(arg1, content) {};
+
+/**
+ * @param {(string|jQueryAjaxSettings|Object.<string,*>)} arg1
+ * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings
+ * @return {jQuery.jqXHR}
+ */
+jQuery.ajax = function(arg1, settings) {};
+
+/**
+ * @param {(string|jQueryAjaxSettings|Object.<string, *>)} arg1
+ * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings
+ * @return {jQuery.jqXHR}
+ */
+$.ajax = function(arg1, settings) {};
+
+/**
+ * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>))} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxComplete = function(handler) {};
+
+/**
+ * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>),*)} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxError = function(handler) {};
+
+/**
+ * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes
+ * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler
+ */
+jQuery.ajaxPrefilter = function(dataTypes, handler) {};
+
+/**
+ * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes
+ * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler
+ */
+$.ajaxPrefilter = function(dataTypes, handler) {};
+
+/**
+ * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>))} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxSend = function(handler) {};
+
+/** @const {jQueryAjaxSettings|Object.<string, *>} */
+jQuery.ajaxSettings;
+
+/** @const {jQueryAjaxSettings|Object.<string, *>} */
+$.ajaxSettings = {};
+
+/** @type {Object.<string, boolean>} */
+jQuery.ajaxSettings.flatOptions = {};
+
+/** @type {Object.<string, boolean>} */
+$.ajaxSettings.flatOptions = {};
+
+/** @type {boolean} */
+jQuery.ajaxSettings.processData;
+
+/** @type {boolean} */
+$.ajaxSettings.processData;
+
+/** @type {Object.<string, string>} */
+jQuery.ajaxSettings.responseFields = {};
+
+/** @type {Object.<string, string>} */
+$.ajaxSettings.responseFields = {};
+
+/** @param {jQueryAjaxSettings|Object.<string, *>} options */
+jQuery.ajaxSetup = function(options) {};
+
+/** @param {jQueryAjaxSettings|Object.<string, *>} options */
+$.ajaxSetup = function(options) {};
+
+/**
+ * @param {function()} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxStart = function(handler) {};
+
+/**
+ * @param {function()} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxStop = function(handler) {};
+
+/**
+ * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>), ?)} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ajaxSuccess = function(handler) {};
+
+/**
+ * @deprecated Please use .addBack(selector) instead.
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.andSelf = function() {};
+
+/**
+ * @param {Object.<string,*>} properties
+ * @param {(string|number|function()|Object.<string,*>)=} arg2
+ * @param {(string|function())=} easing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.animate = function(properties, arg2, easing, complete) {};
+
+/**
+ * @param {(string|Element|Array.<Element>|jQuery|function(number,string))} arg1
+ * @param {...(string|Element|Array.<Element>|jQuery)} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.append = function(arg1, content) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.appendTo = function(target) {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {(string|number|boolean|function(number,string))=} arg2
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.attr = function(arg1, arg2) {};
+
+/**
+ * @param {(string|Element|jQuery|function())} arg1
+ * @param {(string|Element|Array.<Element>|jQuery)=} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.before = function(arg1, content) {};
+
+/**
+ * @param {(string|Object.<string, function(!jQuery.event=)>)} arg1
+ * @param {(Object.<string, *>|function(!jQuery.event=)|boolean)=} eventData
+ * @param {(function(!jQuery.event=)|boolean)=} arg3
+ * @return {!jQuery}
+ */
+jQuery.prototype.bind = function(arg1, eventData, arg3) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.blur = function(arg1, handler) {};
+
+/**
+ * @constructor
+ * @private
+ */
+jQuery.callbacks = function () {};
+
+/**
+ * @param {string=} flags
+ * @return {jQuery.callbacks}
+ */
+jQuery.Callbacks = function (flags) {};
+
+/** @param {function()} callbacks */
+jQuery.callbacks.prototype.add = function(callbacks) {};
+
+/** @return {undefined} */
+jQuery.callbacks.prototype.disable = function() {};
+
+/** @return {undefined} */
+jQuery.callbacks.prototype.empty = function() {};
+
+/** @param {...*} var_args */
+jQuery.callbacks.prototype.fire = function(var_args) {};
+
+/** @return {boolean} */
+jQuery.callbacks.prototype.fired = function() {};
+
+/** @param {...*} var_args */
+jQuery.callbacks.prototype.fireWith = function(var_args) {};
+
+/**
+ * @param {function()} callback
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.callbacks.prototype.has = function(callback) {};
+
+/** @return {undefined} */
+jQuery.callbacks.prototype.lock = function() {};
+
+/** @return {boolean} */
+jQuery.callbacks.prototype.locked = function() {};
+
+/** @param {function()} callbacks */
+jQuery.callbacks.prototype.remove = function(callbacks) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.change = function(arg1, handler) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.children = function(selector) {};
+
+/**
+ * @param {string=} queueName
+ * @return {!jQuery}
+ */
+jQuery.prototype.clearQueue = function(queueName) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.click = function(arg1, handler) {};
+
+/**
+ * @param {boolean=} withDataAndEvents
+ * @param {boolean=} deepWithDataAndEvents
+ * @return {!jQuery}
+ * @suppress {checkTypes} see https://code.google.com/p/closure-compiler/issues/detail?id=583
+ */
+jQuery.prototype.clone = function(withDataAndEvents, deepWithDataAndEvents) {};
+
+/**
+ * @param {(jQuerySelector|jQuery|Element|string)} arg1
+ * @param {Element=} context
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.closest = function(arg1, context) {};
+
+/**
+ * @param {Element} container
+ * @param {Element} contained
+ * @return {boolean}
+ */
+jQuery.contains = function(container, contained) {};
+
+/**
+ * @param {Element} container
+ * @param {Element} contained
+ * @return {boolean}
+ */
+$.contains = function(container, contained) {};
+
+/**
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.contents = function() {};
+
+/** @type {Element|Document} */
+jQuery.prototype.context;
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {(string|number|function(number,*))=} arg2
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.css = function(arg1, arg2) {};
+
+/** @type {Object.<string, *>} */
+jQuery.cssHooks;
+
+/** @type {Object.<string, *>} */
+$.cssHooks;
+
+/**
+ * @param {Element} elem
+ * @param {string=} key
+ * @param {*=} value
+ * @return {*}
+ */
+jQuery.data = function(elem, key, value) {};
+
+/**
+ * @param {(string|Object.<string, *>)=} arg1
+ * @param {*=} value
+ * @return {*}
+ */
+jQuery.prototype.data = function(arg1, value) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} key
+ * @param {*=} value
+ * @return {*}
+ */
+$.data = function(elem, key, value) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.dblclick = function(arg1, handler) {};
+
+/**
+ * @constructor
+ * @implements {jQuery.Promise}
+ * @param {function()=} opt_fn
+ * @see http://api.jquery.com/category/deferred-object/
+ */
+jQuery.deferred = function(opt_fn) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.deferred}
+ * @param {function()=} opt_fn
+ * @return {jQuery.Deferred}
+ */
+jQuery.Deferred = function(opt_fn) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.deferred}
+ * @param {function()=} opt_fn
+ * @see http://api.jquery.com/category/deferred-object/
+ */
+$.deferred = function(opt_fn) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.deferred}
+ * @param {function()=} opt_fn
+ * @return {jQuery.deferred}
+ */
+$.Deferred = function(opt_fn) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} alwaysCallbacks
+ * @param {jQueryCallback=} alwaysCallbacks2
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.always
+    = function(alwaysCallbacks, alwaysCallbacks2) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} doneCallbacks2
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.done = function(doneCallbacks, doneCallbacks2) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} failCallbacks
+ * @param {jQueryCallback=} failCallbacks2
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.fail = function(failCallbacks, failCallbacks2) {};
+
+/**
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.notify = function(var_args) {};
+
+/**
+ * @param {Object} context
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.notifyWith = function(context, var_args) {};
+
+/**
+ * @deprecated Please use deferred.then() instead.
+ * @override
+ * @param {function()=} doneFilter
+ * @param {function()=} failFilter
+ * @param {function()=} progressFilter
+ * @return {jQuery.Promise}
+ */
+jQuery.deferred.prototype.pipe =
+    function(doneFilter, failFilter, progressFilter) {};
+
+/**
+ * @param {jQueryCallback} progressCallbacks
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.progress = function(progressCallbacks) {};
+
+/**
+ * @param {Object=} target
+ * @return {jQuery.Promise}
+ */
+jQuery.deferred.prototype.promise = function(target) {};
+
+/**
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.reject = function(var_args) {};
+
+/**
+ * @param {Object} context
+ * @param {Array.<*>=} args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.rejectWith = function(context, args) {};
+
+/**
+ * @param {...*} var_args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.resolve = function(var_args) {};
+
+/**
+ * @param {Object} context
+ * @param {Array.<*>=} args
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.resolveWith = function(context, args) {};
+
+/** @return {string} */
+jQuery.deferred.prototype.state = function() {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} failCallbacks
+ * @param {jQueryCallback=} progressCallbacks
+ * @return {jQuery.deferred}
+ */
+jQuery.deferred.prototype.then
+    = function(doneCallbacks, failCallbacks, progressCallbacks) {};
+
+/**
+ * @param {number} duration
+ * @param {string=} queueName
+ * @return {!jQuery}
+ */
+jQuery.prototype.delay = function(duration, queueName) {};
+
+/**
+ * @param {string} selector
+ * @param {(string|Object.<string,*>)} arg2
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg3
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.delegate = function(selector, arg2, arg3, handler) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ */
+jQuery.dequeue = function(elem, queueName) {};
+
+/**
+ * @param {string=} queueName
+ * @return {!jQuery}
+ */
+jQuery.prototype.dequeue = function(queueName) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ */
+$.dequeue = function(elem, queueName) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ */
+jQuery.prototype.detach = function(selector) {};
+
+/**
+ * @param {Object} collection
+ * @param {function((number|string),?)} callback
+ * @return {Object}
+ */
+jQuery.each = function(collection, callback) {};
+
+/**
+ * @param {function(number,Element)} fnc
+ * @return {!jQuery}
+ */
+jQuery.prototype.each = function(fnc) {};
+
+/**
+ * @param {Object} collection
+ * @param {function((number|string),?)} callback
+ * @return {Object}
+ */
+$.each = function(collection, callback) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.empty = function() {};
+
+/**
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.end = function() {};
+
+/**
+ * @param {number} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.eq = function(arg1) {};
+
+/** @param {string} message */
+jQuery.error = function(message) {};
+
+/**
+ * @deprecated Please use .on( "error", handler ) instead.
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.error = function(arg1, handler) {};
+
+/** @param {string} message */
+$.error = function(message) {};
+
+/**
+ * @constructor
+ * @param {string} eventType
+ */
+jQuery.event = function(eventType) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.event}
+ * @param {string} eventType
+ * @param {Object=} properties
+ * @return {jQuery.Event}
+ */
+jQuery.Event = function(eventType, properties) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.event}
+ * @param {string} eventType
+ */
+$.event = function(eventType) {};
+
+/**
+ * @constructor
+ * @extends {jQuery.event}
+ * @param {string} eventType
+ * @param {Object=} properties
+ * @return {$.Event}
+ */
+$.Event = function(eventType, properties) {};
+
+/** @type {Element} */
+jQuery.event.prototype.currentTarget;
+
+/** @type {Object.<string, *>} */
+jQuery.event.prototype.data;
+
+/** @type {Element} */
+jQuery.event.prototype.delegateTarget;
+
+/**
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.event.prototype.isDefaultPrevented = function() {};
+
+/**
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.event.prototype.isImmediatePropagationStopped = function() {};
+
+/**
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.event.prototype.isPropagationStopped = function() {};
+
+/** @type {string} */
+jQuery.event.prototype.namespace;
+
+/** @type {Event} */
+jQuery.event.prototype.originalEvent;
+
+/** @type {number} */
+jQuery.event.prototype.pageX;
+
+/** @type {number} */
+jQuery.event.prototype.pageY;
+
+/** @return {undefined} */
+jQuery.event.prototype.preventDefault = function() {};
+
+/** @type {Object.<string, *>} */
+jQuery.event.prototype.props;
+
+/** @type {Element} */
+jQuery.event.prototype.relatedTarget;
+
+/** @type {*} */
+jQuery.event.prototype.result;
+
+/** @return {undefined} */
+jQuery.event.prototype.stopImmediatePropagation = function() {};
+
+/** @return {undefined} */
+jQuery.event.prototype.stopPropagation = function() {};
+
+/** @type {Element} */
+jQuery.event.prototype.target;
+
+/** @type {number} */
+jQuery.event.prototype.timeStamp;
+
+/** @type {string} */
+jQuery.event.prototype.type;
+
+/** @type {number} */
+jQuery.event.prototype.which;
+
+/**
+ * @param {(Object|boolean)} arg1
+ * @param {...*} var_args
+ * @return {Object}
+ */
+jQuery.extend = function(arg1, var_args) {};
+
+/**
+ * @param {(Object|boolean)} arg1
+ * @param {...*} var_args
+ * @return {Object}
+ */
+jQuery.prototype.extend = function(arg1, var_args) {};
+
+/**
+ * @param {(Object|boolean)} arg1
+ * @param {...*} var_args
+ * @return {Object}
+ */
+$.extend = function(arg1, var_args) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeIn = function(duration, arg2, callback) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeOut = function(duration, arg2, callback) {};
+
+/**
+ * @param {(string|number)} duration
+ * @param {number} opacity
+ * @param {(function()|string)=} arg3
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeTo = function(duration, opacity, arg3, callback) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(string|function())=} easing
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.fadeToggle = function(duration, easing, callback) {};
+
+/**
+ * @param {(jQuerySelector|function(number,Element)|Element|jQuery)} arg1
+ * @return {!jQuery}
+ * @see http://api.jquery.com/filter/
+ */
+jQuery.prototype.filter = function(arg1) {};
+
+/**
+ * @param {(jQuerySelector|jQuery|Element)} arg1
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.find = function(arg1) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.first = function() {};
+
+/** @see http://docs.jquery.com/Plugins/Authoring */
+jQuery.fn = jQuery.prototype;
+
+/** @see http://docs.jquery.com/Plugins/Authoring */
+$.fn = $.prototype;
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.focus = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.focusin = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.focusout = function(arg1, handler) {};
+
+/** @const */
+jQuery.fx = {};
+
+/** @const */
+$.fx = {};
+
+/** @type {number} */
+jQuery.fx.interval;
+
+/** @type {number} */
+$.fx.interval;
+
+/** @type {boolean} */
+jQuery.fx.off;
+
+/** @type {boolean} */
+$.fx.off;
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+jQuery.get = function(url, data, success, dataType) {};
+
+/**
+ * @param {number=} index
+ * @return {(Element|Array.<Element>)}
+ * @nosideeffects
+ */
+jQuery.prototype.get = function(index) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+$.get = function(url, data, success, dataType) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|
+ *     function(Object.<string,*>,string,jQuery.jqXHR))=} data
+ * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success
+ */
+jQuery.getJSON = function(url, data, success) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|
+ *     function(Object.<string,*>,string,jQuery.jqXHR))=} data
+ * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success
+ */
+$.getJSON = function(url, data, success) {};
+
+/**
+ * @param {string} url
+ * @param {function(Node,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ */
+jQuery.getScript = function(url, success) {};
+
+/**
+ * @param {string} url
+ * @param {function(Node,string,jQuery.jqXHR)=} success
+ * @return {jQuery.jqXHR}
+ */
+$.getScript = function(url, success) {};
+
+/** @param {string} code */
+jQuery.globalEval = function(code) {};
+
+/** @param {string} code */
+$.globalEval = function(code) {};
+
+/**
+ * @param {Array.<*>} arr
+ * @param {function(*,number)} fnc
+ * @param {boolean=} invert
+ * @return {Array.<*>}
+ */
+jQuery.grep = function(arr, fnc, invert) {};
+
+/**
+ * @param {Array.<*>} arr
+ * @param {function(*,number)} fnc
+ * @param {boolean=} invert
+ * @return {Array.<*>}
+ */
+$.grep = function(arr, fnc, invert) {};
+
+/**
+ * @param {(string|Element)} arg1
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.has = function(arg1) {};
+
+/**
+ * @param {string} className
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.prototype.hasClass = function(className) {};
+
+/**
+ * @param {Element} elem
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.hasData = function(elem) {};
+
+/**
+ * @param {Element} elem
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.hasData = function(elem) {};
+
+/**
+ * @param {(string|number|function(number,number))=} arg1
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.height = function(arg1) {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.hide = function(duration, arg2, callback) {};
+
+/** @param {boolean} hold */
+jQuery.holdReady = function(hold) {};
+
+/** @param {boolean} hold */
+$.holdReady = function(hold) {};
+
+/**
+ * @param {function(!jQuery.event=)} arg1
+ * @param {function(!jQuery.event=)=} handlerOut
+ * @return {!jQuery}
+ */
+jQuery.prototype.hover = function(arg1, handlerOut) {};
+
+/**
+ * @param {(string|function(number,string))=} arg1
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.html = function(arg1) {};
+
+/**
+ * @param {*} value
+ * @param {Array.<*>} arr
+ * @param {number=} fromIndex
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.inArray = function(value, arr, fromIndex) {};
+
+/**
+ * @param {*} value
+ * @param {Array.<*>} arr
+ * @param {number=} fromIndex
+ * @return {number}
+ * @nosideeffects
+ */
+$.inArray = function(value, arr, fromIndex) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)=} arg1
+ * @return {number}
+ */
+jQuery.prototype.index = function(arg1) {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.innerHeight = function() {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.innerWidth = function() {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.insertAfter = function(target) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.insertBefore = function(target) {};
+
+/**
+ * @param {(jQuerySelector|function(number)|jQuery|Element)} arg1
+ * @return {boolean}
+ */
+jQuery.prototype.is = function(arg1) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isArray = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isArray = function(obj) {};
+
+/**
+ * @param {Object} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isEmptyObject = function(obj) {};
+
+/**
+ * @param {Object} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isEmptyObject = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isFunction = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isFunction = function(obj) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isNumeric = function(value) {};
+
+/**
+ * @param {*} value
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isNumeric = function(value) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isPlainObject = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isPlainObject = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isWindow = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isWindow = function(obj) {};
+
+/**
+ * @param {Element} node
+ * @return {boolean}
+ * @nosideeffects
+ */
+jQuery.isXMLDoc = function(node) {};
+
+/**
+ * @param {Element} node
+ * @return {boolean}
+ * @nosideeffects
+ */
+$.isXMLDoc = function(node) {};
+
+/** @type {string} */
+jQuery.prototype.jquery;
+
+/**
+ * @constructor
+ * @extends {XMLHttpRequest}
+ * @implements {jQuery.Promise}
+ * @private
+ * @see http://api.jquery.com/jQuery.ajax/#jqXHR
+ */
+jQuery.jqXHR = function () {};
+
+/**
+ * @override
+ * @param {jQueryCallback} alwaysCallbacks
+ * @param {jQueryCallback=} alwaysCallbacks2
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.always =
+    function(alwaysCallbacks, alwaysCallbacks2) {};
+
+/**
+ * @deprecated
+ * @param {function()} callback
+ * @return {jQuery.jqXHR}
+*/
+jQuery.jqXHR.prototype.complete = function (callback) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.done = function(doneCallbacks) {};
+
+/**
+ * @deprecated
+ * @param {function()} callback
+ * @return {jQuery.jqXHR}
+*/
+jQuery.jqXHR.prototype.error = function (callback) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} failCallbacks
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.fail = function(failCallbacks) {};
+
+/**
+ * @deprecated
+ * @override
+ */
+jQuery.jqXHR.prototype.onreadystatechange = function (callback) {};
+
+/**
+ * @override
+ * @param {function()=} doneFilter
+ * @param {function()=} failFilter
+ * @param {function()=} progressFilter
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.pipe =
+    function(doneFilter, failFilter, progressFilter) {};
+
+/**
+ * @deprecated
+ * @param {function()} callback
+ * @return {jQuery.jqXHR}
+*/
+jQuery.jqXHR.prototype.success = function (callback) {};
+
+/**
+ * @override
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} failCallbacks
+ * @param {jQueryCallback=} progressCallbacks
+ * @return {jQuery.jqXHR}
+ */
+jQuery.jqXHR.prototype.then =
+    function(doneCallbacks, failCallbacks, progressCallbacks) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.keydown = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.keypress = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.keyup = function(arg1, handler) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.last = function() {};
+
+/** @type {number} */
+jQuery.prototype.length;
+
+/**
+ * @deprecated Please avoid the document loading Event invocation of
+ *     .load() and use .on( "load", handler ) instead. (The AJAX
+ *     module invocation signature is OK.)
+ * @param {(function(!jQuery.event=)|Object.<string, *>|string)} arg1
+ * @param {(function(!jQuery.event=)|Object.<string,*>|string)=} arg2
+ * @param {function(string,string,XMLHttpRequest)=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.load = function(arg1, arg2, complete) {};
+
+/**
+ * @param {*} obj
+ * @return {Array.<*>}
+ */
+jQuery.makeArray = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {Array.<*>}
+ */
+$.makeArray = function(obj) {};
+
+/**
+ * @param {(Array.<*>|Object.<string, *>)} arg1
+ * @param {(function(*,number)|function(*,(string|number)))} callback
+ * @return {Array.<*>}
+ */
+jQuery.map = function(arg1, callback) {};
+
+/**
+ * @param {function(number,Element)} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.map = function(callback) {};
+
+/**
+ * @param {(Array.<*>|Object.<string, *>)} arg1
+ * @param {(function(*,number)|function(*,(string|number)))} callback
+ * @return {Array.<*>}
+ */
+$.map = function(arg1, callback) {};
+
+/**
+ * @param {Array.<*>} first
+ * @param {Array.<*>} second
+ * @return {Array.<*>}
+ */
+jQuery.merge = function(first, second) {};
+
+/**
+ * @param {Array.<*>} first
+ * @param {Array.<*>} second
+ * @return {Array.<*>}
+ */
+$.merge = function(first, second) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mousedown = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseenter = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseleave = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mousemove = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseout = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseover = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.mouseup = function(arg1, handler) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.next = function(selector) {};
+
+/**
+ * @param {string=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.nextAll = function(selector) {};
+
+/**
+ * @param {(jQuerySelector|Element)=} arg1
+ * @param {jQuerySelector=} filter
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.nextUntil = function(arg1, filter) {};
+
+/**
+ * @param {boolean=} removeAll
+ * @return {Object}
+ */
+jQuery.noConflict = function(removeAll) {};
+
+/**
+ * @param {boolean=} removeAll
+ * @return {Object}
+ */
+$.noConflict = function(removeAll) {};
+
+/**
+ * @return {function()}
+ * @nosideeffects
+ */
+jQuery.noop = function() {};
+
+/**
+ * @return {function()}
+ * @nosideeffects
+ */
+$.noop = function() {};
+
+/**
+ * @param {(jQuerySelector|Array.<Element>|function(number)|jQuery)} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.not = function(arg1) {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.now = function() {};
+
+/**
+ * @return {number}
+ * @nosideeffects
+ */
+$.now = function() {};
+
+/**
+ * @param {(string|Object.<string,*>)=} arg1
+ * @param {(string|function(!jQuery.event=))=} selector
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.off = function(arg1, selector, handler) {};
+
+/**
+ * @param {({left:number,top:number}|
+ *     function(number,{top:number,left:number}))=} arg1
+ * @return {({left:number,top:number}|!jQuery)}
+ */
+jQuery.prototype.offset = function(arg1) {};
+
+/**
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.offsetParent = function() {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {*=} selector
+ * @param {*=} data
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.on = function(arg1, selector, data, handler) {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {*=} arg2
+ * @param {*=} arg3
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.one = function(arg1, arg2, arg3, handler) {};
+
+/**
+ * @param {boolean=} includeMargin
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.outerHeight = function(includeMargin) {};
+
+/**
+ * @param {boolean=} includeMargin
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.outerWidth = function(includeMargin) {};
+
+/**
+ * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj
+ * @param {boolean=} traditional
+ * @return {string}
+ */
+jQuery.param = function(obj, traditional) {};
+
+/**
+ * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj
+ * @param {boolean=} traditional
+ * @return {string}
+ */
+$.param = function(obj, traditional) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.parent = function(selector) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.parents = function(selector) {};
+
+/**
+ * @param {(jQuerySelector|Element)=} arg1
+ * @param {jQuerySelector=} filter
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.parentsUntil = function(arg1, filter) {};
+
+/**
+ * @param {string} data
+ * @param {(Element|boolean)=} context
+ * @param {boolean=} keepScripts
+ * @return {Array.<Element>}
+ */
+jQuery.parseHTML = function(data, context, keepScripts) {};
+
+/**
+ * @param {string} data
+ * @param {(Element|boolean)=} context
+ * @param {boolean=} keepScripts
+ * @return {Array.<Element>}
+ */
+$.parseHTML = function(data, context, keepScripts) {};
+
+/**
+ * @param {string} json
+ * @return {string|number|Object.<string, *>|Array.<?>|boolean}
+ */
+jQuery.parseJSON = function(json) {};
+
+/**
+ * @param {string} json
+ * @return {Object.<string, *>}
+ */
+$.parseJSON = function(json) {};
+
+/**
+ * @param {string} data
+ * @return {Document}
+ */
+jQuery.parseXML = function(data) {};
+
+/**
+ * @param {string} data
+ * @return {Document}
+ */
+$.parseXML = function(data) {};
+
+/**
+ * @return {{left:number,top:number}}
+ * @nosideeffects
+ */
+jQuery.prototype.position = function() {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+jQuery.post = function(url, data, success, dataType) {};
+
+/**
+ * @param {string} url
+ * @param {(Object.<string,*>|string|
+ *     function(string,string,jQuery.jqXHR))=} data
+ * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success
+ * @param {string=} dataType
+ * @return {jQuery.jqXHR}
+ */
+$.post = function(url, data, success, dataType) {};
+
+/**
+ * @param {(string|Element|jQuery|function(number,string))} arg1
+ * @param {(string|Element|jQuery)=} content
+ * @return {!jQuery}
+ */
+jQuery.prototype.prepend = function(arg1, content) {};
+
+/**
+ * @param {(jQuerySelector|Element|jQuery)} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.prependTo = function(target) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.prev = function(selector) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.prevAll = function(selector) {};
+
+/**
+ * @param {(jQuerySelector|Element)=} arg1
+ * @param {jQuerySelector=} filter
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.prevUntil = function(arg1, filter) {};
+
+/**
+ * @param {(string|Object)=} type
+ * @param {Object=} target
+ * @return {jQuery.Promise}
+ */
+jQuery.prototype.promise = function(type, target) {};
+
+/**
+ * @interface
+ * @private
+ * @see http://api.jquery.com/Types/#Promise
+ */
+jQuery.Promise = function () {};
+
+/**
+ * @param {jQueryCallback} alwaysCallbacks
+ * @param {jQueryCallback=} alwaysCallbacks2
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.always =
+    function(alwaysCallbacks, alwaysCallbacks2) {};
+
+/**
+ * @param {jQueryCallback} doneCallbacks
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.done = function(doneCallbacks) {};
+
+/**
+ * @param {jQueryCallback} failCallbacks
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.fail = function(failCallbacks) {};
+
+/**
+ * @param {function()=} doneFilter
+ * @param {function()=} failFilter
+ * @param {function()=} progressFilter
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.pipe =
+    function(doneFilter, failFilter, progressFilter) {};
+
+/**
+ * @param {jQueryCallback} doneCallbacks
+ * @param {jQueryCallback=} failCallbacks
+ * @param {jQueryCallback=} progressCallbacks
+ * @return {jQuery.Promise}
+ */
+jQuery.Promise.prototype.then =
+    function(doneCallbacks, failCallbacks, progressCallbacks) {};
+
+/**
+ * @param {(string|Object.<string,*>)} arg1
+ * @param {(string|number|boolean|function(number,String))=} arg2
+ * @return {(string|boolean|!jQuery)}
+ */
+jQuery.prototype.prop = function(arg1, arg2) {};
+
+/**
+ * @param {...*} var_args
+ * @return {function()}
+ */
+jQuery.proxy = function(var_args) {};
+
+/**
+ * @param {...*} var_args
+ * @return {function()}
+ */
+$.proxy = function(var_args) {};
+
+/**
+ * @param {Array.<Element>} elements
+ * @param {string=} name
+ * @param {Array.<*>=} args
+ * @return {!jQuery}
+ */
+jQuery.prototype.pushStack = function(elements, name, args) {};
+
+/**
+ * @param {(string|Array.<function()>|function(function()))=} queueName
+ * @param {(Array.<function()>|function(function()))=} arg2
+ * @return {(Array.<Element>|!jQuery)}
+ */
+jQuery.prototype.queue = function(queueName, arg2) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ * @param {(Array.<function()>|function())=} arg3
+ * @return {(Array.<Element>|!jQuery)}
+ */
+jQuery.queue = function(elem, queueName, arg3) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} queueName
+ * @param {(Array.<function()>|function())=} arg3
+ * @return {(Array.<Element>|!jQuery)}
+ */
+$.queue = function(elem, queueName, arg3) {};
+
+/**
+ * @param {function()} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.ready = function(handler) {};
+
+/**
+ * @param {string=} selector
+ * @return {!jQuery}
+ */
+jQuery.prototype.remove = function(selector) {};
+
+/**
+ * @param {string} attributeName
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeAttr = function(attributeName) {};
+
+/**
+ * @param {(string|function(number,string))=} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeClass = function(arg1) {};
+
+/**
+ * @param {(string|Array.<string>)=} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeData = function(arg1) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} name
+ * @return {!jQuery}
+ */
+jQuery.removeData = function(elem, name) {};
+
+/**
+ * @param {Element} elem
+ * @param {string=} name
+ * @return {!jQuery}
+ */
+$.removeData = function(elem, name) {};
+
+/**
+ * @param {string} propertyName
+ * @return {!jQuery}
+ */
+jQuery.prototype.removeProp = function(propertyName) {};
+
+/**
+ * @param {jQuerySelector} target
+ * @return {!jQuery}
+ */
+jQuery.prototype.replaceAll = function(target) {};
+
+/**
+ * @param {(string|Element|jQuery|function())} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.replaceWith = function(arg1) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.resize = function(arg1, handler) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.scroll = function(arg1, handler) {};
+
+/**
+ * @param {number=} value
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.scrollLeft = function(value) {};
+
+/**
+ * @param {number=} value
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.scrollTop = function(value) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.select = function(arg1, handler) {};
+
+/**
+ * @return {string}
+ * @nosideeffects
+ */
+jQuery.prototype.serialize = function() {};
+
+/**
+ * @return {Array.<Object.<string, *>>}
+ * @nosideeffects
+ */
+jQuery.prototype.serializeArray = function() {};
+
+/**
+ * @param {(string|number|function())=} duration
+ * @param {(function()|string)=} arg2
+ * @param {function()=} callback
+ * @return {!jQuery}
+ */
+jQuery.prototype.show = function(duration, arg2, callback) {};
+
+/**
+ * @param {jQuerySelector=} selector
+ * @return {!jQuery}
+ * @nosideeffects
+ */
+jQuery.prototype.siblings = function(selector) {};
+
+/**
+ * @deprecated Please use the .length property instead.
+ * @return {number}
+ * @nosideeffects
+ */
+jQuery.prototype.size = function() {};
+
+/**
+ * @param {number} start
+ * @param {number=} end
+ * @return {!jQuery}
+ */
+jQuery.prototype.slice = function(start, end) {};
+
+/**
+ * @param {(Object.<string,*>|string|number)=} optionsOrDuration
+ * @param {(function()|string)=} completeOrEasing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.slideDown =
+    function(optionsOrDuration, completeOrEasing, complete) {};
+
+/**
+ * @param {(Object.<string,*>|string|number)=} optionsOrDuration
+ * @param {(function()|string)=} completeOrEasing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.slideToggle =
+    function(optionsOrDuration, completeOrEasing, complete) {};
+
+/**
+ * @param {(Object.<string,*>|string|number)=} optionsOrDuration
+ * @param {(function()|string)=} completeOrEasing
+ * @param {function()=} complete
+ * @return {!jQuery}
+ */
+jQuery.prototype.slideUp =
+    function(optionsOrDuration, completeOrEasing, complete) {};
+
+/**
+ * @param {(boolean|string)=} arg1
+ * @param {boolean=} arg2
+ * @param {boolean=} jumpToEnd
+ * @return {!jQuery}
+ */
+jQuery.prototype.stop = function(arg1, arg2, jumpToEnd) {};
+
+/**
+ * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.submit = function(arg1, handler) {};
+
+/** @type {Object.<string, *>}
+ * @deprecated Please try to use feature detection instead.
+ */
+jQuery.support;
+
+/** @type {Object.<string, *>}
+ * @deprecated Please try to use feature detection instead.
+ */
+$.support;
+
+/**
+ * @deprecated Please try to use feature detection instead.
+ * @type {boolean}
+ */
+jQuery.support.boxModel;
+
+/**
+ * @deprecated Please try to use feature detection instead.
+ * @type {boolean}
+ */
+$.support.boxModel;
+
+/** @type {boolean} */
+jQuery.support.changeBubbles;
+
+/** @type {boolean} */
+$.support.changeBubbles;
+
+/** @type {boolean} */
+jQuery.support.cors;
+
+/** @type {boolean} */
+$.support.cors;
+
+/** @type {boolean} */
+jQuery.support.cssFloat;
+
+/** @type {boolean} */
+$.support.cssFloat;
+
+/** @type {boolean} */
+jQuery.support.hrefNormalized;
+
+/** @type {boolean} */
+$.support.hrefNormalized;
+
+/** @type {boolean} */
+jQuery.support.htmlSerialize;
+
+/** @type {boolean} */
+$.support.htmlSerialize;
+
+/** @type {boolean} */
+jQuery.support.leadingWhitespace;
+
+/** @type {boolean} */
+$.support.leadingWhitespace;
+
+/** @type {boolean} */
+jQuery.support.noCloneEvent;
+
+/** @type {boolean} */
+$.support.noCloneEvent;
+
+/** @type {boolean} */
+jQuery.support.opacity;
+
+/** @type {boolean} */
+$.support.opacity;
+
+/** @type {boolean} */
+jQuery.support.style;
+
+/** @type {boolean} */
+$.support.style;
+
+/** @type {boolean} */
+jQuery.support.submitBubbles;
+
+/** @type {boolean} */
+$.support.submitBubbles;
+
+/** @type {boolean} */
+jQuery.support.tbody;
+
+/** @type {boolean} */
+$.support.tbody;
+
+/**
+ * @param {(string|number|boolean|function(number,string))=} arg1
+ * @return {(string|!jQuery)}
+ */
+jQuery.prototype.text = function(arg1) {};
+
+/**
+ * @return {Array.<Element>}
+ * @nosideeffects
+ */
+jQuery.prototype.toArray = function() {};
+
+/**
+ * Refers to the method from the Effects category. There used to be a toggle
+ * method on the Events category which was removed starting version 1.9.
+ * @param {(number|string|Object.<string,*>|boolean)=} arg1
+ * @param {(function()|string)=} arg2
+ * @param {function()=} arg3
+ * @return {!jQuery}
+ */
+jQuery.prototype.toggle = function(arg1, arg2, arg3) {};
+
+/**
+ * @param {(string|boolean|function(number,string,boolean))=} arg1
+ * @param {boolean=} flag
+ * @return {!jQuery}
+ */
+jQuery.prototype.toggleClass = function(arg1, flag) {};
+
+/**
+ * @param {(string|jQuery.event)} arg1
+ * @param {...*} var_args
+ * @return {!jQuery}
+ */
+jQuery.prototype.trigger = function(arg1, var_args) {};
+
+/**
+ * @param {string|jQuery.event} eventType
+ * @param {Array.<*>=} extraParameters
+ * @return {*}
+ */
+jQuery.prototype.triggerHandler = function(eventType, extraParameters) {};
+
+/**
+ * @param {string} str
+ * @return {string}
+ * @nosideeffects
+ */
+jQuery.trim = function(str) {};
+
+/**
+ * @param {string} str
+ * @return {string}
+ * @nosideeffects
+ */
+$.trim = function(str) {};
+
+/**
+ * @param {*} obj
+ * @return {string}
+ * @nosideeffects
+ */
+jQuery.type = function(obj) {};
+
+/**
+ * @param {*} obj
+ * @return {string}
+ * @nosideeffects
+ */
+$.type = function(obj) {};
+
+/**
+ * @param {(string|function(!jQuery.event=)|jQuery.event)=} arg1
+ * @param {(function(!jQuery.event=)|boolean)=} arg2
+ * @return {!jQuery}
+ */
+jQuery.prototype.unbind = function(arg1, arg2) {};
+
+/**
+ * @param {string=} arg1
+ * @param {(string|Object.<string,*>)=} arg2
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.undelegate = function(arg1, arg2, handler) {};
+
+/**
+ * @param {Array.<Element>} arr
+ * @return {Array.<Element>}
+ */
+jQuery.unique = function(arr) {};
+
+/**
+ * @param {Array.<Element>} arr
+ * @return {Array.<Element>}
+ */
+$.unique = function(arr) {};
+
+/**
+ * @deprecated Please use .on( "unload", handler ) instead.
+ * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1
+ * @param {function(!jQuery.event=)=} handler
+ * @return {!jQuery}
+ */
+jQuery.prototype.unload = function(arg1, handler) {};
+
+/** @return {!jQuery} */
+jQuery.prototype.unwrap = function() {};
+
+/**
+ * @param {(string|Array.<string>|function(number,*))=} arg1
+ * @return {(string|number|Array.<string>|!jQuery)}
+ */
+jQuery.prototype.val = function(arg1) {};
+
+/**
+ * Note: The official documentation (https://api.jquery.com/jQuery.when/) says
+ * jQuery.when accepts deferreds, but it actually accepts any type, e.g.:
+ *
+ * jQuery.when(jQuery.ready, jQuery.ajax(''), jQuery('#my-element'), 1)
+ *
+ * If an argument is not an "observable" (a promise-like object) it is wrapped
+ * into a promise.
+ * @param {*} deferred
+ * @param {...*} deferreds
+ * @return {jQuery.Promise}
+ */
+jQuery.when = function(deferred, deferreds) {};
+
+/**
+ * Note: See jQuery.when().
+ * @param {*} deferred
+ * @param {...*} deferreds
+ * @return {jQuery.Promise}
+ */
+$.when = function(deferred, deferreds) {};
+
+/**
+ * @param {(string|number|function(number,number))=} arg1
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.width = function(arg1) {};
+
+/**
+ * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.wrap = function(arg1) {};
+
+/**
+ * @param {(string|jQuerySelector|Element|jQuery)} wrappingElement
+ * @return {!jQuery}
+ */
+jQuery.prototype.wrapAll = function(wrappingElement) {};
+
+/**
+ * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1
+ * @return {!jQuery}
+ */
+jQuery.prototype.wrapInner = function(arg1) {};
+
+/**
+ * @param {(string|number|function(number,number))=} arg1
+ * @return {(number|!jQuery)}
+ */
+jQuery.prototype.tooltip = function(arg1) {};
\ No newline at end of file
diff --git a/src/closure/conf/externs/jspdf.js b/src/closure/conf/externs/jspdf.js
new file mode 100755
index 0000000000000000000000000000000000000000..2b5ba6f00f45b775de5e4d9bd0666149dadbc650
--- /dev/null
+++ b/src/closure/conf/externs/jspdf.js
@@ -0,0 +1,51 @@
+/**
+ * 
+ * @param {type} arg1
+ * @returns {jsPDF}
+ */
+function jsPDF (arg1) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @param {type} arg3
+ * @param {type} arg4
+ * @returns {undefined}
+ */
+jsPDF.prototype.fromHTML = function (arg1, arg2, arg3, arg4) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @param {type} arg3
+ * @param {type} arg4
+ * @param {type} arg5
+ * @param {type} arg6
+ * @returns {undefined}
+ */
+jsPDF.prototype.addImage = function (arg1, arg2, arg3, arg4, arg5, arg6) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @returns {undefined}
+ */
+jsPDF.prototype.save = function (arg1) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @returns {undefined}
+ */
+jsPDF.prototype.setPage = function (arg1) {};
+
+/**
+ * 
+ * @param {type} arg1
+ * @param {type} arg2
+ * @returns {undefined}
+ */
+jsPDF.prototype.addHTML = function (arg1, arg2) {};
+
diff --git a/src/closure/conf/externs/vmap.js b/src/closure/conf/externs/vmap.js
new file mode 100755
index 0000000000000000000000000000000000000000..b799165a0202a74c3d1fe51fe8ad666558122205
--- /dev/null
+++ b/src/closure/conf/externs/vmap.js
@@ -0,0 +1,75 @@
+/**
+ * @author: Armand Bahi
+ * @Description: Fichier contenant les externs: fonctions à ne pas renommer durant la compilation
+ * @externs
+ */
+
+/**
+ * Function for initialise the bootstrap toggle switch checkbox plugin
+ * @constructor
+ * @param {object} arg1
+ */
+function bootstrapToggle(arg1) {}
+
+/**
+ * Function for initialise the bootstrap colorpicker plugin
+ * @constructor
+ * @param {object} arg1
+ */
+function colorpicker(arg1) {}
+
+/**
+ * Function for initialise the bootstrap table plugin
+ * @constructor
+ * @param {object} arg1
+ */
+function bootstrapTable(arg1) {}
+
+/**
+ * @param {object} arg1
+ * @return {!jQuery}
+ */
+function sortable(arg1) {}
+
+/**
+ * 
+ * @param {string} key
+ * @returns {undefined}
+ */
+ol.Object.prototype.get = function (key) {}
+
+/**
+ * Get the collection of layers associated with this map.
+ * @return {!ol.Collection.<ol.layer.Base>} Layers.
+ * @api stable
+ */
+ol.Map.prototype.getLayers = function () {}
+
+/**
+ * Return the visibility of the layer (`true` or `false`).
+ * @return {boolean} The visibility of the layer.
+ * @observable
+ * @api stable
+ */
+ol.layer.Base.prototype.getVisible = function () {}
+
+/**
+ * Set the visibility of the layer (`true` or `false`).
+ * @param {boolean} visible The visibility of the layer.
+ * @observable
+ * @api stable
+ */
+ol.layer.Base.prototype.setVisible = function (visible) {}
+
+/**
+ * The tile related to the event.
+ * @type {ol.Tile}
+ * @api
+ */
+ol.source.TileEvent.tile
+
+/**
+ * @type {string}
+ * @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property
+ */
+CSSProperties.prototype.touchAction;
\ No newline at end of file
diff --git a/src/module_gtf/README.md b/src/module_gtf/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..79686db9d396d969a9057cf3ff17c2e0842fdb37
--- /dev/null
+++ b/src/module_gtf/README.md
@@ -0,0 +1,3 @@
+# module_gtf
+
+Module GTF for Vitis
\ No newline at end of file
diff --git a/src/module_gtf/_install/apache.conf b/src/module_gtf/_install/apache.conf
new file mode 100755
index 0000000000000000000000000000000000000000..e8a6502f1d2e0c45ce9da2224d67e4bbd443b08c
--- /dev/null
+++ b/src/module_gtf/_install/apache.conf
@@ -0,0 +1,2 @@
+ ProxyPass /gtf_doc/ "http://doc-gtf.readthedocs.io/fr/latest/"
+    ProxyPassReverse /gtf_doc/ "http://doc-gtf.readthedocs.io/fr/latest/"
\ No newline at end of file
diff --git a/src/module_gtf/_install/dependency.xml b/src/module_gtf/_install/dependency.xml
new file mode 100755
index 0000000000000000000000000000000000000000..58b589a8a83fe969c61d8cd9080e3c2f20661f9a
--- /dev/null
+++ b/src/module_gtf/_install/dependency.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Module GTF -->
+<installer>
+	<schema>
+		<name>s_gtf</name>
+		<dependenciesCollection>
+			<dependency>
+				<nature>schema</nature>
+				<name>s_vitis</name>
+				<object>vitis</object>
+			</dependency>
+		</dependenciesCollection>
+	</schema>
+	<dependenciesCollection>
+		<dependency>
+			<nature>framework</nature>
+			<name>vitis</name>
+		</dependency>
+		<dependency>
+			<name>gtf-engine</name>
+			<nature>extern-post</nature>
+			<location>gtf.engine</location>
+			<object>module_gtf</object>
+		</dependency>
+		<dependency>
+			<name>pycron</name>
+			<nature>extern-pre</nature>
+			<location>pycron-0.5.9.0</location>
+		</dependency>
+	</dependenciesCollection>
+</installer>
diff --git a/src/module_gtf/_install/fileToDelete.txt b/src/module_gtf/_install/fileToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..0f43fe95ffffa53fcfefcacba2c2e5215d7b6a89
--- /dev/null
+++ b/src/module_gtf/_install/fileToDelete.txt
@@ -0,0 +1,6 @@
+javascript/deps.js
+javascript/script_module.js
+javascript/statistics.js
+javascript/widget/script_widget.js
+javascript/widget/widgetMod.js
+javascript/widget/deps.js
\ No newline at end of file
diff --git a/src/module_gtf/_install/folderToDelete.txt b/src/module_gtf/_install/folderToDelete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..b92d8976db30897968846102e68520be453b8313
--- /dev/null
+++ b/src/module_gtf/_install/folderToDelete.txt
@@ -0,0 +1,2 @@
+javascript/controllers
+javascript/directives
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/Changelog.txt b/src/module_gtf/gtf.engine/gtf.engines/Changelog.txt
new file mode 100755
index 0000000000000000000000000000000000000000..34a7e1fcc05d33bfa44138217261d0027204984c
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/Changelog.txt
@@ -0,0 +1 @@
+2194 
diff --git a/src/module_gtf/gtf.engine/gtf.engines/Traitement.class.inc b/src/module_gtf/gtf.engine/gtf.engines/Traitement.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f00fcf53eaae2f6bc60b93aa4fd6a5ea6f090c8f
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/Traitement.class.inc
@@ -0,0 +1,815 @@
+<?php
+
+/**
+ * \file Traitement.class.inc
+ * \brief Traitement.class.inc \n \n Ce fichier contient la classe php Traitement.
+ *
+ * Cette classe virtuelle permet de générer les éléments nécessaires à la création d'un rapport ou
+ * à l'éxécution d'un traitement FME.
+ *
+ * Cette classe permet de générer des fichiers textes, csv ou d'images pour la création de rapport.
+ * Elle permet aussi de lancer la création d'un rapport ou l'éxécution d'un traitement FME.
+ *
+ * \author Fabien Marty <fabien.marty@veremes.com>
+ * \update Matthieu Ambrosy <matthieu.ambrosy@veremes.com>
+ */
+require_once ("vmlib/phpUtil.inc");
+require_once ("vmlib/logUtil.inc");
+require_once ("vmlib/stringUtil.inc");
+require_once ("gtf_lib/GtfFmwParser.class.inc");
+require_once 'string.inc';
+
+class Traitement {
+
+    //Variable stockant l'url du log FME
+    var $sLogFme = "";
+
+    /**
+     * Identifiant de la demande.
+     */
+    var $iDemandeId;
+
+    /**
+     * Fichier de log.
+     */
+    var $sRobotLogFile;
+
+    /**
+     * Objet de la classe Bd. Connexion à la base de données
+     */
+    var $oBd;
+
+    /**
+     * Boolean spécifiant si le traitement est en erreur ou pas.
+     */
+    var $bErreur = false;
+
+    /**
+     * Boolean spécifiant si FME a subit un crash.
+     */
+    var $bFmeCrash = false;
+
+    /**
+     * Message d'erreur.
+     */
+    var $sMessageErreur;
+
+    /**
+     * Tableau des paramètres
+     */
+    var $aParametre;
+
+    /**
+     * Chaine contenant les parametres
+     */
+    var $sParams;
+
+    /**
+     * Emplacement du fichier projet FMW
+     */
+    var $sFmwFileName;
+
+    /**
+     * Tableau des propriétés provenant du fichier properties_robot.inc
+     */
+    var $aProperties;
+
+    /**
+     * Tableau des extensions associées à une source de données GUI
+     */
+    var $aExtension;
+    var $sDestination;
+    var $sSource;
+    var $sSourceTemp = "";
+
+    /**
+     * Cette méthode permet d'initialiser les variables.
+     * \param $oBd Connexion à la base de données.
+     * \param $iDemandeId Identifiant de la demande.
+     * \param $sRobotLogFile Fichier de log.
+     */
+    function __construct($oBd, $iDemandeId, $sRobotLogFile, $sParams, $aProperties, $sFmwFileName) {
+        $this->oBd = $oBd;
+        $this->iDemandeId = $iDemandeId;
+        $this->sRobotLogFile = $sRobotLogFile;
+        $this->sFmwFileName = $sFmwFileName;
+        $this->aParametre = $this->dbParamsAsArray($sParams);
+        $this->sParams = $sParams;
+        $this->aProperties = $aProperties;
+        // table de correspondance entre GTF et le FMW utiliser dans les fonction d'encodage 
+        $this->aReplaceGTF = array("\r\n", " ", "(", ")", "$", "&", "@", "°", "'", ",", "\"", "{", "}", "[", "]", ";", "/", "\\", "é", "à");
+        $this->aReplaceFME = array("<lf>", "<space>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>");
+
+        writeToLog(str_replace('[this->sFmwFileName]', $this->sFmwFileName, str_replace('[sParams]', $sParams, INFO_RESOURCES)), $this->sRobotLogFile);
+    }
+
+    /*
+     * Initialisation du traitement.
+     * \param $oBd Connexion à la base de données.
+     * \param $iDemandeId Identifiant de la demande.
+     * \param $sLogFile Fichier de log.
+     * \param $sParams Liste des paramètres saisis par l'utilisateur à la création de la demande.
+     * \param $aProperties Tableau des properties associés à l'application
+     * \param $sFmwFileName Nom du fichier FMW associé à la demande.
+     */
+
+    /**
+     * Cette méthode permet de générer un nom de fichier unique.
+     * \return une chaîne de caractères.
+     */
+    function UniqFileName() {
+        $sUniqFileName = date('YmdHis') . rand(1, 100000);
+        return $sUniqFileName;
+    }
+
+    /**
+     * Cette méthode permet de générer un tableau de paramètres à partir d'une chaîne dont les délimiteurs sont "|" et "=".
+     * \param $sAllParams Chaine composé de tous les paramètres.
+     * \return un tableau contenant les paramètres.
+     */
+    function dbParamsAsArray($sAllParams) {
+        $aAllParams = Array();
+        $aLigne = explode("|", $sAllParams);
+        //$aLigne = stringExplode($sAllParams, "|", "\"", "\"");
+        foreach ($aLigne as $sValeur) {
+            $aValeurs = explode("=", $sValeur);
+            if ($aValeurs[1] == "") {
+                writeToLog(INFO_NULL_ELEMENT . $aValeurs[0] . ".", $this->sRobotLogFile);
+            }
+            if (!empty($aValeurs[2])) {
+                $sTemp = $aValeurs[1] . "=" . $aValeurs[2];
+                $aValeurs[1] = $sTemp;
+            }
+            $aAllParams[$aValeurs[0]] = $aValeurs[1];
+            writeToLog(str_replace('[aValeurs[0]]', $aValeurs[0], INFO_DB_PARAM) . $aValeurs[1], $this->sRobotLogFile);
+        }
+        return $aAllParams;
+    }
+
+    /**
+     * Cette méthode permet d'éxécuter une ligne de commande et de stocker les paramètres dans un fichier
+     * \param $sCommand Ligne de commande à éxécuter.
+     */
+    function execute($sCommand, $sFMELogFile) {
+        $sExeName = "FME";
+        if (!$this->bErreur) {
+            set_time_limit(0);
+            //$sResultCommande = exec('"'.$this->aProperties["fme_path"].'" APPLY_SETTINGS "Python/Python Interpreter"', $aResult, $iResult);
+            $sResultCommande = exec('"' . $this->aProperties["fme_path"] . '" APPLY_SETTINGS "Python/Use Custom Python" false', $aResult, $iResult);
+            //writeToLog(INFO_INFORM.$sExeName."| ".'"'.$this->aProperties["fme_path"].'" APPLY_SETTINGS "Python/Python Interpreter"', $this->sRobotLogFile);
+            //writeToLog(INFO_INFORM.$sExeName."| ".$sResultCommande, $this->sRobotLogFile);
+            // $sResultCommande = exec('"'.$this->aProperties["fme_path"].'" APPLY_SETTINGS "Python/Python Interpreter" "C:/apps/FME-2015.1-b15477-32/fmepython27/python27.dll"', $aResult, $iResult);
+            // writeToLog(INFO_INFORM.$sExeName."| APPLY_SETTINGS \"Python/Python Interpreter\" \"C:/apps/FME-2015.1-b15477-32/fmepython27\"", $this->sRobotLogFile);
+            // writeToLog(INFO_INFORM.$sExeName."| ".$sResultCommande, $this->sRobotLogFile);
+            $sResultCommande = exec($sCommand, $aResult, $iResult);
+            if ($sResultCommande == "") {
+                $aResultCommande[0] = true;
+            } else {
+                $aResultCommande = explode("|", $sResultCommande);
+            }
+            //Récupération d'une erreur.
+			if ($iResult !=0){
+            //if ($iResult || ($aResultCommande[0] != 0)) {
+                $this->bErreur = true;
+                if (sizeOf($aResultCommande) == 1)
+                    $this->bFmeCrash = false;
+            }
+            //Écriture dans le log
+            if ($this->bErreur) {
+                if (!empty($aResultCommande[1])) {
+                    if ($this->aProperties["convert_utf8"]) {
+                        $aResultCommande[1] = utf8_decode($aResultCommande[1]);
+                    }
+                    $this->sMessageErreur = "Erreur lors de l exécution de la commande." . $aResultCommande[1] . ".";
+                } else {
+                    $this->sMessageErreur = "Erreur lors de l exécution de la commande. Consultez le log du robot.";
+                }
+				$bExistFMELogFile = true;
+				 if (file_exists($sFMELogFile) === false) {
+					$bExistFMELogFile = false;
+				}
+                foreach ($aResult as $sValeur) {
+                    writeToLog(INFO_ERROR . "   " . "| " . $sValeur, $this->sRobotLogFile);
+					if ($bExistFMELogFile === false){
+						$monfichier = fopen($sFMELogFile, 'a');
+						fputs($monfichier, $sValeur. "\n");
+						fclose($monfichier);
+					}
+                }
+                writeToLog(INFO_COMMAND_ERROR . $sCommand . ".", $this->sRobotLogFile);
+            } else {
+                foreach ($aResult as $sValeur) {
+                    if (mb_detect_encoding($sValeur, "UTF-8, ISO-8859-1") != "UTF-8") {
+                        $sValeur = iconv("ISO-8859-1", "UTF-8", $sValeur);
+                    }
+                    writeToLog(INFO_INFORM . $sExeName . "| " . $sValeur, $this->sRobotLogFile);
+                }
+                writeToLog(INFO_SUCCESSFUL_TREATMENT, $this->sRobotLogFile);
+            }
+        }
+    }
+
+    /**
+     * Cette méthode permet de 7zipper des fichiers.
+     * \param $sZipDir Emplacement des fichiers à zipper.
+     * \param $sZipUrl URL du fichier zip.
+     * \param $sZipFileName Nom du fichier zip à compresser.
+     * \return L'url du fichier zip.
+     */
+    function zipFile($sZipDir, $sZipFileDir, $sZipUrl, $sZipFileName) {
+        writeToLog(str_replace('[sZipDir]', $sZipDir, INFO_FILE_COMPRESSION), $this->sRobotLogFile);
+        if (createZip($sZipDir, $sZipFileDir . '/' . $sZipFileName . '.zip', 'log')) {
+            $sZipFile = $sZipUrl . "/" . $sZipFileName . ".zip";
+            writeToLog(INFO_COMPRESSED_FILES . $sZipFile . ".", $this->sRobotLogFile);
+        } else {
+            $this->bErreur = true;
+            $sZipFile = "";
+            writeToLog(INFO_TREATMENT_FAILURE, $this->sRobotLogFile);
+            writeToLog(str_replace('[sZipFileDir]', $sZipFileDir, str_replace('[sZipDir]', $sZipDir, INFO_FILES_COMPRESSION_FAILURE)) . $sZipFileName, $this->sRobotLogFile);
+            $this->sMessageErreur = "Le traitement n\'a produit aucun résultat. Consultez son log.";
+        }
+        return $sZipFile;
+    }
+
+    function unZipSource($sParam) {
+        $this->sSource = $sParam;
+        // Si la chaine contient un accent, la chaine sera en UTF-8, la fonction file_exists et la fonction de dézippage ne gèrent pas utf-8, il faut donc convertir la chaine en ISO-8859-1
+        if (mb_check_encoding($sParam, 'UTF-8'))
+            $sParam = utf8_decode($sParam);
+        // Si le fichier n'est pas trouvé alors il se trouve dans le répertoire upload
+        if (!file_exists($sParam))
+            $sParam = $this->aProperties["upload_dir"] . "/" . $sParam;
+
+        // If faut gérer l'ensemble des zip (.zip, .7z, .rar, bzip2, gzip, tar, wim, xz)
+        if (mb_eregi("(.ZIP)$", strtoupper($sParam), $aOccurence)) {
+            // Décompression du fichier zip.
+            $sDir = $this->unZipFile($sParam);
+        } else { // Le fichier uploadé n'est pas un fichier zippé
+            $sDir = $sParam;
+            $this->sSourceTemp = "";
+        }
+        return $sDir;
+    }
+
+    /**
+     * Cette méthode permet de dézipper un fichier.
+     * \param $sZipFile Le fichier zip à décompresser.
+     * \return L'emplacement des fichiers qui ont été extraits.
+     */
+    function unZipFile($sZipFile) {
+        if (!$this->bErreur) {
+            writeToLog(INFO_DECOMPRESSING_FILE . $sZipFile . ".", $this->sRobotLogFile);
+            // Les backslashes du chemin de la variable d'environnement TEMP sont remplacés par des slashes
+            $this->aProperties["extract_dir"] = str_replace("\\", "/", $this->aProperties["extract_dir"]);
+            $sExtractDir = $this->aProperties["extract_dir"] . "/" . $this->UniqFileName() . "/";
+            $this->sSourceTemp = $sExtractDir;
+            if (unZip($sZipFile, $sExtractDir)) {
+                writeToLog(INFO_FILE_COMPRESSION_DIRECTORY . $sExtractDir . ".", $this->sRobotLogFile);
+            } else {
+                $this->bErreur = true;
+                writeToLog(INFO_TREATMENT_FAILURE, $this->sRobotLogFile);
+                writeToLog(str_replace('[sZipFile]', $sZipFile, INFO_FILE_COMPRESSION_FAILURE) . $sExtractDir . ".", $this->sRobotLogFile);
+                $this->sMessageErreur = "Impossible de dézipper le fichier. Consultez le log du robot.";
+                $sExtractDir = "";
+            }
+            return $sExtractDir;
+        }
+    }
+
+    /*
+     * Fonction qui se charge de la mise à jour du paramètre "source" s'il existe
+     * $oGtfFmwParser : Objet GtfFmwParser contenant les GUI
+     * $oGui : Objet GUI de la source
+     * $sDirSource : Chaine de caractère contenant le chemin d'accés à la source de données
+     */
+
+    function updateSourceParam($oGui, $oGtfFmwParser, $sDirSource) {
+        $sdelimiterFichier = '""';
+        $sdelimiterParam = '""';
+        $sSourceMacro = $sdelimiterFichier;
+        $i = 0;
+
+        if (is_dir($sDirSource)) {
+            $this->aExtension = $oGui->getExtensionArray($oGui->sFiltreSource);
+            $iExtension = count($this->aExtension);
+            if (($this->aExtension[0] == "*.*" and $oGui->sType == "FILE_OR_URL") or $oGui->sType == "DIRNAME_SRC" or $oGui->sType == "SOURCE_GEODATABASE") {
+                writeToLog(INFO_VALID_DATA_SOURCE_FILE_EXTENSION . $this->aExtension[0], $this->sRobotLogFile);
+                $sSourceMacro.= $sdelimiterParam . $sDirSource . '/**/' . $sdelimiterParam;
+            } else {
+                foreach ($this->aExtension as $sExtension) {
+                    if ($sExtension != "*.*" or ( $sExtension == "*.*" and $iExtension == 1)) { // Si le filtre est différent de *.* (ex : *.mdb) ou si le filtre est seulement *.*. Si le filtre est multiple et que l'un d'eux est *.* (ex : *.*, *.mdb...), il ne sera pas pris en compte
+                        $aExtension = explode(".", $sExtension);
+                        if ($this->countFilesExtension($sDirSource, $aExtension[1]) > 0) {
+                            if ($i != 0)
+                                $sSourceMacro.= "<space>";
+                            writeToLog(INFO_VALID_DATA_SOURCE_FILE_EXTENSION . $sExtension, $this->sRobotLogFile);
+                            $sSourceMacro.= $sdelimiterParam . $sDirSource . '/**/' . $sExtension . $sdelimiterParam;
+                            $i++;
+                        }
+                    }
+                }
+            }
+        }else {
+            $sSourceMacro.= $sdelimiterParam . $sDirSource . $sdelimiterParam;
+        }
+        $sSourceMacro .= $sdelimiterFichier;
+        $this->aParametre[$oGui->sDefault_Macro] = $sSourceMacro;
+        return $sSourceMacro;
+    }
+
+    // Compte le nombre de fichier
+    // $sDirSource : Répertoire de base
+    // $sExtension : Filtre
+    function countFilesExtension($sDirSource, $sExtension) {
+        $num = 0;
+        if (!is_dir($sDirSource)) {
+            $path_parts = pathinfo($sDirSource);
+            if (is_file($sDirSource) && strtoupper($path_parts['extension']) == strtoupper($sExtension))
+                return 1;
+            else
+                return false;
+        }
+        foreach (scandir($sDirSource) AS $entry) {
+            if (!in_array($entry, array('..', '.')))
+                $num += $this->countFilesExtension($sDirSource . "/" . $entry, $sExtension);
+        }
+        return $num;
+    }
+
+    /*
+     * Fonction qui se charge de la mise à jour du paramètre "source" s'il existe
+     * $oGtfFmwParser : Objet GtfFmwParser contenant les GUI
+     * $oGui : Objet GUI de la source
+     * $sDirSource : Chaine de caractère contenant le chemin d'accés à la source de données
+     */
+
+    function updateDestParam($oGui, $oGtfFmwParser, $sNewDir, $sDest) {
+        $this->aExtension = $oGui->getExtensionArray($oGui->sFiltreDest);
+        if ($sDest == "" && $oGui->sType != "DIRNAME") {
+            $sDest = $sNewDir;
+        }
+        $this->aParametre[$oGui->sDefault_Macro] = "";
+        $sDest = normalizeString($sDest);
+        $aDest = explode(".", $sDest);
+        if ($oGui->sType == "DIRNAME" or $oGui->sType == "DEST_GEODATABASE") {
+            $this->aParametre[$oGui->sDefault_Macro] = $this->aProperties["dir_export"] . "/gtf/" . $sNewDir . "/" . $sDest;
+            writeToLog(INFO_OUTPUT_DATA_DIRECTORY . $this->aParametre[$oGui->sDefault_Macro], $this->sRobotLogFile);
+        }
+        if ($oGui->sType == "FILENAME") {
+            if (count($aDest) > 1) { // Dans GTF, la valeur du champ [nom de fichier en sortie] comporte une extension. Ex : result.xls (le fichier résultat sera de l'excel et sera nommé result.
+                $sResult = $sDest;
+            } else {
+                $sResult = str_replace("*", $sDest, $this->aExtension[0]);
+            }
+            $this->aParametre[$oGui->sDefault_Macro].= $this->aProperties["dir_export"] . "/gtf/" . $sNewDir . '/' . $sResult;
+            $this->sDestination = $sResult;
+
+            writeToLog(INFO_OUTPUT_DATA_FILE . $this->aParametre[$oGui->sDefault_Macro], $this->sRobotLogFile);
+        }
+        else if ($oGui->sType == "FILENAME_EXISTING")
+            $this->aParametre[$oGui->sDefault_Macro] = $sDest;
+        return $this->aParametre[$oGtfFmwParser->sDestMacro];
+    }
+
+    /*     * *************************************************************************************** */
+    /*                                          Codage                                        */
+
+    function unichr($u) {
+        return mb_convert_encoding('&#' . intval($u) . ';', 'UTF-8', 'HTML-ENTITIES');
+    }
+
+    function ordutf8($string, &$offset) {
+        $code = ord(substr($string, $offset, 1));
+        if ($code >= 128) {        //otherwise 0xxxxxxx
+            if ($code < 224)
+                $bytesnumber = 2;                //110xxxxx
+            else if ($code < 240)
+                $bytesnumber = 3;        //1110xxxx
+            else if ($code < 248)
+                $bytesnumber = 4;    //11110xxx
+            $codetemp = $code - 192 - ($bytesnumber > 2 ? 32 : 0) - ($bytesnumber > 3 ? 16 : 0);
+            for ($i = 2; $i <= $bytesnumber; $i++) {
+                $offset ++;
+                $code2 = ord(substr($string, $offset, 1)) - 128;        //10xxxxxx
+                $codetemp = $codetemp * 64 + $code2;
+            }
+            $code = $codetemp;
+        }
+        $offset += 1;
+        if ($offset >= strlen($string))
+            $offset = -1;
+        return $code;
+    }
+
+    function encoderFME($sStr) {
+        //table de correcpondance des symboles UTF-8 avec les codes FME/GTF
+        // ATTENTION : laisser < > en premier sinon replace remplace les balises par d'autre balise
+        $aReplaceGTFToFMW = array("<" => "<lt>", ">" => "<gt>");
+        $sReplaced = $sStr;
+
+        //on gere les chevrons simultanèment pour ne pas gener l'encodage après
+        if (strpos($sReplaced, "<") !== false && strpos($sReplaced, ">") !== false) {
+            $sReplaced = strtr($sReplaced, $aReplaceGTFToFMW);
+        }
+
+        //on remplace tous les encodage par leurs symboles
+        for ($i = 0; $i < count($this->aReplaceGTF); $i++) {
+            if (strpos($sReplaced, $this->aReplaceGTF[$i]) !== false) {
+                $sReplaced = str_replace($this->aReplaceGTF[$i], $this->aReplaceFME[$i], $sReplaced);
+            }
+        }
+
+        // on encode les balises UTF-8 		
+
+        $offset = 0;
+        $iPos = 0;
+
+        while ($offset >= 0) {
+            $iCode = $this->ordutf8($sReplaced, $offset);
+            if ($iCode > 127) {
+                $cLetter = dechex($iCode);
+                while (strlen($sLetter) < 4) {
+                    $cLetter = "0" . $cLetter;
+                }
+                $sReplaced = str_replace($sReplaced[$iPos], "<u" . $cLetter . ">", $sReplaced);
+            }
+            $iPos += 1;
+        }
+
+        return $sReplaced;
+    }
+
+    function decoderFME($sStr) {
+        //table de correcpondance des symboles UTF-8 avec les codes FME/GTF
+        // ATTENTION : laisser < > en premier sinon replace remplace les balises par d'autre balise
+        $aReplaceFMWToGTF = array("<lt>" => "<", "<gt>" => ">");
+        $sReplaced = $sStr;
+
+        //on gere les chevrons simultanèment pour ne pas gener l'encodage après
+        if (strpos($sReplaced, "<lt>") !== false && strpos($sReplaced, "<gt>") !== false) {
+            $sReplaced = strtr($sReplaced, $aReplaceFMWToGTF);
+        }
+        //on remplace tous les encodage par leurs symboles
+        for ($i = 0; $i < count($this->aReplaceGTF); $i++) {
+            if (strpos($sReplaced, $this->aReplaceFME[$i]) !== false) {
+                $sReplaced = str_replace($this->aReplaceFME[$i], $this->aReplaceGTF[$i], $sReplaced);
+            }
+        }
+
+        // on decode les balises UTF-8 		
+        $matches = array();
+
+        preg_match_all("/<u[0-9a-fA-F]{4}>/", $sStr, $matches);
+
+        for ($i = 0; $i < count($matches[0]); $i++) {
+            $iCode = hexdec(substr($matches[0][$i], 2, 4));
+            $cChr = $this->unichr($iCode);
+            $sReplaced = str_replace($matches[0][$i], $cChr, $sReplaced);
+        }
+		if (mb_detect_encoding($sReplaced, "UTF-8, ISO-8859-1") != "ISO-8859-1") {
+			$sReplaced = iconv("UTF-8", "ISO-8859-1", $sReplaced);
+		}
+        return $sReplaced;
+    }
+
+    function isDecode($sStr) {
+        for ($i = 0; $i < count($this->aReplaceFME); $i++) {
+            if (strpos($sStr, $this->aReplaceFME[$i]) !== false && strpos($sStr, $this->aReplaceGTF[$i]) === false) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    function isEncode($sStr) {
+        for ($i = 0; $i < count($this->aReplaceFME); $i++) {
+            if (strpos($sStr, $this->aReplaceFME[$i]) === false && strpos($sStr, $this->aReplaceGTF[$i]) !== false) {
+                error_log($this->aReplaceFME[$i]);
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /*     * *************************************************************************************** */
+
+    /*
+     *  Fonction qui permet de concaténer tous les paramètres nécessaire pour l'appel du TCL
+     *  et qui retourne $sChaine, la chaine des paramètres à passer au TCL
+     *  $oGtfFmwParser : Objet GtfFmwParser contenant les GUI
+     */
+
+    function getTclParams($oGtfFmwParser, $sNewDir) {
+        $aTGui = array();
+        $sChaine = "";
+        foreach ($oGtfFmwParser->aGuiObject as $aGui) {
+            if ($aGui->sDefault_Macro != "") {
+                array_push($aTGui, $aGui);
+            }
+        }
+        foreach ($aTGui as $oGui) {
+            //Teste si le paramètre est une source
+            if ($oGui->bIsSource) {
+                if ($this->aParametre[$oGui->sDefault_Macro] != "" && substr($this->aParametre[$oGui->sDefault_Macro], 0, 7) != "<quote>") {
+                    $sDirSource = $this->unZipSource($this->aParametre[$oGui->sDefault_Macro]);
+                    $this->updateSourceParam($oGui, $oGtfFmwParser, $sDirSource);
+                }
+            }
+            if ($oGui->bIsDest) {
+                $sDest = $this->aParametre[$oGui->sDefault_Macro];
+                $this->updateDestParam($oGui, $oGtfFmwParser, $sNewDir, $sDest);
+            }
+
+            if ($this->aParametre[$oGui->sDefault_Macro] != "") {
+
+                if (!$oGui->bIsSource) {
+                    // Protection des guillemets de chaque valeur pour qu'ils soient correctement envoyé à traitement.tcl
+                    // Cette protection s'effectue uniquement pour les paramètre qui ne sont pas sources (un paramètre source est de ce type : """"param1"" ""param2"" ""param3"""" : les guillemets seraient donc protégé et cela fait planter l'exécution)
+                    //$this->aParametre[$oGui->sDefault_Macro] = str_replace('"', '""', $this->aParametre[$oGui->sDefault_Macro]);
+                }
+                $aBaliseToReplace = array('<GTF_EQUAL>', '<GTF_PIPE>');
+                $aReplacedBalise = array('=', '|');
+                $sGTFOutput = str_replace($aBaliseToReplace, $aReplacedBalise, $this->aParametre[$oGui->sDefault_Macro]);
+                switch ($oGui->sType) {
+                    case "FLOAT":
+                        $sGTFOutput = str_replace(",", ".", $sGTFOutput);
+                        if (!$this->isDecode($sGTFOutput))
+                            $sGTFOutput = $this->decoderFME($sGTFOutput);
+                        break;
+                    case "LOOKUP_CHOICE":
+                        if (!$this->isEncode($sGTFOutput))
+                            $sGTFOutput = $this->encoderFME($sGTFOutput);
+                        break;
+                    case "TEXT_EDIT" :
+                    case "TEXT_EDIT_OR_NUM" :
+                        if (!$this->isEncode($sGTFOutput)) {
+                            //$sGTFOutput = $this->decoderFME($sGTFOutput);
+                            $sGTFOutput = $this->encoderFME($sGTFOutput);
+                        }
+                        break;
+                    case "CHOICE":
+                    case "LOOKUP_LISTBOX":
+                        $sGTFOutput = str_replace('"', '""', $sGTFOutput);
+                        if (!$this->isDecode($sGTFOutput))
+                            $sGTFOutput = $this->decoderFME($sGTFOutput);
+                        break;
+                    default :
+                        $sGTFOutput = str_replace('"', '""', $sGTFOutput);
+                        if (!$this->isDecode($sGTFOutput))
+                            $sGTFOutput = $this->decoderFME($sGTFOutput);
+                        break;
+                }
+
+                $sChaine .= " --" . $oGui->sDefault_Macro . " \"" . $sGTFOutput . "\"";
+            }
+        }
+
+        // $sChaine = substr($sChaine, 0, -1)."\"";
+        //$sChaine = substr($sChaine, 0, -1);
+
+        return $sChaine;
+    }
+
+    function listDir($sDossier, $iDemandeId) {
+        $ouverture = @opendir($sDossier);
+        if (!$ouverture)
+            return false;
+        while ($sFichier = readdir($ouverture)) {
+            if ($sFichier == '.' || $sFichier == '..')
+                continue;
+            if (is_dir($sDossier . $sFichier)) {
+                closedir($ouverture);
+                return true;
+            } else {
+                $path_parts = pathinfo($sDossier . $sFichier);
+                if ($sFichier != "fme_" . $iDemandeId . ".log") {
+                    closedir($ouverture);
+                    return true;
+                }
+            }
+        }
+        closedir($ouverture);
+        return False;
+    }
+
+    /*
+     * Fonction qui retourne le nom du fichier résultat qui sera zippé.
+     *  $sDossier correspond au chemin complet dans lequel les fichiers/dossiers résultats seront générés
+     *  $sNewDir correspond au numéro unique du dossier dans lequel les fichiers/dossiers résultats seront générés
+     *  $iDemandeId correspond au numéro de la demande
+     * \return Retourne NULL (s'il y a plusieurs fichiers résultat à zipper) ou le fichier résultat qui sera zippé sous la forme 20140324141501876/ventes.xlsx
+     */
+
+    function CheckResult($sDossier, $sNewDir, $iDemandeId) {
+        $ouverture = @opendir($sDossier);
+        $NbFile = 0;
+        while ($sFichier = readdir($ouverture)) {
+            if ($sFichier == '.' || $sFichier == '..')
+                continue;
+            if (is_dir($sDossier . $sFichier)) {
+                $NbFile = $NbFile + 2;
+            } else {
+                $path_parts = pathinfo($sDossier . $sFichier);
+                if ($sFichier != "fme_" . $iDemandeId . ".log") {
+                    $NbFile = $NbFile + 1;
+                }
+            }
+        }
+        closedir($ouverture);
+        $ouverture = @opendir($sDossier);
+        if ($NbFile != 1) {
+            return "";
+        } else {
+            $pattern = '/^' . str_replace("*", ".+", str_replace(".", "\\.", $this->aProperties['not_compressed_extension'])) . '$/';
+            while ($sFichier = readdir($ouverture)) {
+                if ($sFichier == '.' || $sFichier == '..')
+                    continue;
+                if ($sFichier != "fme_" . $iDemandeId . ".log") {
+                    if (preg_match($pattern, $sFichier)) {
+                        return $sNewDir . "/" . $sFichier;
+                    } else {
+                        return "";
+                    }
+                }
+            }
+        }
+        closedir($ouverture);
+    }
+
+    /*
+     * fonction qui lance la génération de la ligne de commande, l'éxécution de la demande et la mise en forme du résultat
+     * \return Retourne les fichiers résultant zippés
+     */
+
+    function Process() {
+        $oGtfFmwParser = new GtfFmwParser($this->aProperties["workspace_dir"] . "/" . $this->sFmwFileName);
+        // Création du répertoire de sortie des données
+        $sNewDir = $this->UniqFileName();
+		 if (!file_exists($this->aProperties["dir_export"] . "/gtf/")){
+			mkdir($this->aProperties["dir_export"] . "/gtf/");
+		}
+        $sDestDir = $this->aProperties["dir_export"] . "/gtf/" . $sNewDir;
+        mkdir($sDestDir);
+        // Création de l'URL de téléchargement des données
+        $sDestUrl = $this->aProperties["url_export"] . "/gtf/" . $sNewDir;
+
+        //1 Initialisation & calcul du chemin d'accés du fichier TCL
+        $sCommandLine = '"' . $this->aProperties["fme_path"] . '" "' . getenv("GTF_HOME") . "/" . utf8_decode($this->sFmwFileName) . '"';
+
+        //3 Ajout des paramètres propres au traitement
+        $sTclParams = $this->getTclParams($oGtfFmwParser, $sNewDir);
+        if ($sTclParams != "")
+            $sCommandLine .= $sTclParams;
+        // Ajout de trois paramètres GTF_ORDER_ID, GTF_SHARED_DIR et GTF_CONNECTION_STRING qui seront passés à chaque demande de traitement
+        $sCommandLine .= " --GTF_ORDER_ID \"" . $this->iDemandeId . "\" --GTF_SHARED_DIR \"" . $this->aProperties["shared_dir"] . "\" --GTF_CONNECTION_STRING \"" . $this->aProperties["server"] . "," . $this->aProperties["port"] . "," . $this->aProperties["database"] . "," . $this->aProperties["login"] . "\" --GTF_REST_URL \"" . $this->aProperties["web_server_name"] . "/" . $this->aProperties["services_alias"] . "/\"" ;
+        /*
+         * 2 Passage des paramètres généraux
+         * - FMWFILENAME : fichier Fmw
+         * - LOG_ROBOT : fichier log du robot
+         * - LOG_FILENAME : fichier log pour FME
+         */
+        $sCommandLine.= " -LOG_FILENAME \"" . $sDestDir . "/fme_" . $this->iDemandeId . ".log\" 2>&1";
+        writeToLog(INFO_GTF_HOME . getenv("GTF_HOME"), $this->sRobotLogFile);
+        writeToLog(INFO_FME_PATH . getenv("FME_PATH"), $this->sRobotLogFile);
+        writeToLog(INFO_TREATMENT_COMMAND_LINE . $sCommandLine, $this->sRobotLogFile);
+
+        //4 Lancement de la ligne de commande
+        $this->sLogFme = $sNewDir . "/fme_" . $this->iDemandeId . ".log";
+        $sSql = "UPDATE " . $this->aProperties['schema_gtf'] . ".order SET log_url='" . $this->sLogFme . "' WHERE order_id=" . $this->iDemandeId;
+        $this->oBd->execute($sSql);
+        $this->execute($sCommandLine, $sDestDir . "/fme_" . $this->iDemandeId . ".log");
+        writeToLog(INFO_TREATMENT_COMMAND_LINE . $sCommandLine, $this->sRobotLogFile);
+        if (file_exists($sDestDir . "/fme_" . $this->iDemandeId . ".log") == false) {
+            $this->sLogFme = "";
+        }
+        $bHasFile = $this->listDir($sDestDir, $this->iDemandeId);
+        if ($this->sSourceTemp != "" && $this->aProperties["debug_mode"] == false) {
+            clearDir($this->sSourceTemp);
+        }
+        if ($bHasFile) {
+            $sIsToZip = $this->CheckResult($sDestDir, $sNewDir, $this->iDemandeId);
+
+            if ($sIsToZip == "") {
+                //Compression en zip des fichiers résultant. Le parametres Array() permet de filtrer les extensions à compresser. Exemples : Array("shp","shx","dbf") ; Array("*")		
+                $sZipFile = $this->zipFile($sDestDir, $sDestDir, $sDestUrl, $this->iDemandeId);
+                $sZipFile = str_replace($sDestUrl, $sNewDir, $sZipFile);
+            } else {
+                $sZipFile = str_replace($sDestUrl, $sNewDir, $sIsToZip);
+            }
+        } else {
+            $sZipFile = "";
+        }
+        return $sZipFile;
+    }
+    
+    /**
+     * Get the log file of a job.
+     * @param {object} $oFmeServer FmeServer class object.
+     * @param {array} $aOrder Order parameters.
+     * @param {array} $aWorkspace Workpace parameters.
+     * @param {array} $aUser User infos.
+     */
+    function processFmeServerOrder($oFmeServer, $aOrder, $aWorkspace, $aUser, $oAmazonS3 = null) {
+        $sNewDir = $this->UniqFileName();
+        $oGtfFmwParser = new GtfFmwParser($this->aProperties["workspace_dir"] . "/" . $this->sFmwFileName);
+        // Fichiers sources en entrée et sortie.
+        $aSourceFiles = array();
+        $aDestinationFiles = '';
+        foreach ($oGtfFmwParser->aGuiObject as $oGui) {
+            if ($oGui->sDefault_Macro != "") {
+                //Teste si le paramètre est une source
+                if ($oGui->bIsSource)
+                    $aSourceFiles[] = $oGui->sDefault_Macro;
+                else if ($oGui->bIsDest)
+                    $aDestinationFiles = $oGui->sDefault_Macro;
+            }
+        }
+        // Liste des paramètres publiés.
+        $aWkParams = explode('|', $aOrder['wk_params']);
+        $aPublishedParams = array();
+        foreach($aWkParams as $sWkParam) {
+            $aWkParam = explode('=', $sWkParam);
+            $aPublishedParams[$aWkParam[0]] = $aWkParam[1];
+        }
+        // Création d'un dépot pour l'utilisateur si inexistant.
+        $sRepository = $aUser["login"];
+        $oFmeServer->createRepository($sRepository, $aUser["name"]);
+        // Création d'un répertoire dans les ressources si inexistant.
+        $sResource = 'FME_SHAREDRESOURCE_TEMP';
+        $sPath = 'gtf';
+        $oFmeServer->createResourceConnectionDirectory($sResource, $sPath, $sNewDir);
+        $sPath .= '/' . $sNewDir;
+        // Upload des fichiers sources.
+        foreach($aSourceFiles as $sParamName) {
+            // Si un objet de la classe AmazonS3 est passé, les ressources seront envoyées sur S3 puis téléchargéss dans FME Server.
+            if (empty($oAmazonS3))
+                $oFmeServer->uploadResourceFile($this->aProperties['upload_dir'] . '/' . $aPublishedParams[$sParamName], $sResource, $sPath, true, true);
+            else {
+                // Upload d'un fichier source vers S3.
+                $sBucket = 'dev-gtf-fmecloud';
+                $sKey = $sPath . '/' . $aPublishedParams[$sParamName];
+                $oAmazonS3->uploadFile($sBucket, $sKey, $this->aProperties['upload_dir'] . '/' . $aPublishedParams[$sParamName]);
+                // Upload du fichier S3Downloader.fmw (si inexistant).
+                $oFmeServer->uploadWorkspaceFile('E:\_Docs\GTF moteur serveur\S3Downloader.fmw', $sRepository);
+                // Téléchargement depuis FME Server du fichier envoyé sur S3.
+                $aS3Params = array(
+                    'access_key_id' => $oAmazonS3->sAwsAccessKeyId,
+                    'secret_access_key' => $oAmazonS3->sAwsSecretAccessKey,
+                    'bucket_name' => $sBucket,
+                    'object_key' => $sKey
+                );
+                $oJobResult = $oFmeServer->uploadResourceFileFromS3($aS3Params, $sRepository, $sResource, $sPath);
+            }
+        }
+        // Upload du fichier .fmw.
+        $sFmwFileName = $this->aProperties["workspace_dir"] . "/" .$this->sFmwFileName;
+        $oFmeServer->uploadWorkspaceFile($sFmwFileName, $sRepository, true);
+        // Paramètres publiés dans les données de la requête.
+        $aJobParams = array(
+            'publishedParameters' => array(),
+            'NMDirectives' => array(
+                'successTopics' => array(
+                    'TEST_TOPIC_FRED'
+                ),
+                'failureTopics' => array(
+                    'TEST_TOPIC_FRED'
+                ),
+                'directives' => array(
+                    array('name' => 'order_id', 'value' => $this->iDemandeId)
+                )
+                //'subsection' => 'REST_SERVICE'
+            )
+        );
+        foreach ($aPublishedParams as $sParamName => $sParamValue) {
+            if (in_array($sParamName, $aSourceFiles))
+                $aJobParams['publishedParameters'][] = array("name" => $sParamName, "value" => array('$(' . $sResource . ')/' . $sPath . '/' . pathinfo($sParamValue, PATHINFO_BASENAME)));
+            else
+                $aJobParams['publishedParameters'][] = array("name" => $sParamName, "value" => '$(' . $sResource . ')/' . $sPath . '/' . $sNewDir . '.zip/' . $sParamValue);
+        }
+        // Envoi d'une demande sur un traitement.
+        $this->oJobResult = $oFmeServer->submitJob($sRepository, $aWorkspace['fmw_file'], $aJobParams);
+        // Téléchargement du fichier de log du traitement.
+        $sZipFile = '';
+        if (!empty($this->oJobResult->id)) {
+            // Sauve l'url de log fme.
+            $this->sLogFme = $sNewDir . "/fme_" . $this->iDemandeId . ".log";
+            $sSql = "UPDATE " . $this->aProperties['schema_gtf'] . ".order SET log_url='" . $this->sLogFme . "' WHERE order_id=" . $this->iDemandeId;
+            $this->oBd->execute($sSql);
+            // Création du répertoire de sortie des données
+             if (!file_exists($this->aProperties["dir_export"] . "/gtf/"))
+                mkdir($this->aProperties["dir_export"] . "/gtf/");
+            $sDestDir = $this->aProperties["dir_export"] . "/gtf/" . $sNewDir;
+            mkdir($sDestDir);
+            // Création de l'URL de téléchargement des données
+            $sDestUrl = $this->aProperties["url_export"] . "/gtf/" . $sNewDir;
+            $oFmeServer->getJobLog($this->oJobResult->id, $sDestDir . "/fme_" . $this->iDemandeId . ".log");
+            // Télécharge les fichiers de résultat.
+            if (!empty($aDestinationFiles)) {
+                $oFmeServer->downloadResourceFile($sResource, $sPath . '/' . $sNewDir . '.zip', $sDestDir . '/' . $this->iDemandeId . '.zip');
+                $sZipFile = $sNewDir . '/' . $this->iDemandeId . '.zip';
+            }
+        }
+        return $sZipFile;
+    }
+}
+?>
diff --git a/src/module_gtf/gtf.engine/gtf.engines/cacert.pem b/src/module_gtf/gtf.engine/gtf.engines/cacert.pem
new file mode 100755
index 0000000000000000000000000000000000000000..39ba33683c57f4edfc507b1d3dff0a894660d536
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/cacert.pem
@@ -0,0 +1,3646 @@
+##
+## Bundle of CA Root Certificates
+##
+## Certificate data from Mozilla as of: Wed Sep 20 03:12:05 2017 GMT
+##
+## This is a bundle of X.509 certificates of public Certificate Authorities
+## (CA). These were automatically extracted from Mozilla's root certificates
+## file (certdata.txt).  This file can be found in the mozilla source tree:
+## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
+##
+## It contains the certificates in PEM format and therefore
+## can be directly used with curl / libcurl / php_curl, or with
+## an Apache+mod_ssl webserver for SSL client authentication.
+## Just configure this file as the SSLCACertificateFile.
+##
+## Conversion done with mk-ca-bundle.pl version 1.27.
+## SHA256: 2b2dbe5244e0047e088c597998883a913f6c5fffd1cb5c0fe5a368c8466cb2ec
+##
+
+
+GlobalSign Root CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
+GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
+b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
+BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
+VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
+DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
+THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
+Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
+c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
+gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
+AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
+Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
+j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
+hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
+X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
+ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
+s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
+S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
+TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
+ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
+YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
+BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
+9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
+01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
+9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
+TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
+dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
+EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
+cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
+EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
+055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
+ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
+j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
+/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
+xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
+t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
+
+Entrust.net Premium 2048 Secure Server CA
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
+ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
+bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
+BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
+NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
+d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
+MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
+ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
+Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
+hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
+nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
+VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
+KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
+T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
+zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
+J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
+nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
+-----END CERTIFICATE-----
+
+Baltimore CyberTrust Root
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
+ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
+ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
+SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
+dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
+uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
+UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
+G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
+XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
+l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
+VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
+cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
+hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
+Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
+RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+
+AddTrust External Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
+VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
+NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
+cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
+Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
+Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
+aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
+2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
+7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
+VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
+VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
+IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
+j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
+e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
+G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
+b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
+A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
+MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
+MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
+Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
+dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
+A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
+Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
+j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
+rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
+MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
+hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
+Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
+v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
+W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
+tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
+-----END CERTIFICATE-----
+
+GeoTrust Global CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
+MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
+LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
+BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
+8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
+T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
+vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
+zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
+d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
+mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
+XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
+Mw==
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
+MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
+Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
+JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
+RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
+7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
+8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
+qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
+Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
+Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
+KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
+ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
+XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
+hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
+aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
+qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
+oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
+xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
+KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
+DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
+xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
+p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
+P/rmMuGNG2+k5o7Y+SlIis5z/iw=
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA 2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
+MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
+SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
+DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
+j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
+JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
+QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
+WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
+20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
+ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
+SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
+8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
+BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
+dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
+4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
+A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
+Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
+pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
+FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
+gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
+X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
+-----END CERTIFICATE-----
+
+Visa eCommerce Root
+===================
+-----BEGIN CERTIFICATE-----
+MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
+EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
+QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
+WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
+VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
+bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
+F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
+RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
+TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
+/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
+GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
+MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
+CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
+YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
+zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
+YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
+398znM/jra6O1I7mT1GvFpLgXPYHDw==
+-----END CERTIFICATE-----
+
+Certum Root CA
+==============
+-----BEGIN CERTIFICATE-----
+MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
+ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
+Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
+by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
+wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
+kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
+89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
+Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
+NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
+GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
+GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
+0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
+qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
+-----END CERTIFICATE-----
+
+Comodo AAA Services root
+========================
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
+MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
+c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
+BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
+C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
+i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
+Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
+Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
+Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
+BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
+cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
+LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
+7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
+8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
+12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+
+QuoVadis Root CA
+================
+-----BEGIN CERTIFICATE-----
+MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
+ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
+MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
+cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
+EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
+J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
+F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
+YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
+AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
+PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
+ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
+MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
+YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
+ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
+Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
+Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
+BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
+FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
+tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
+fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
+LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
+gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
+5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
+5nrQNiOKSnQ2+Q==
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2
+==================
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
+ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
+XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
+lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
+lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
+lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
+66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
+wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
+D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
+BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
+J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
+DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
+a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
+ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
+Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
+UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
+VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
+IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
+WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
+f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
+4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
+VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3
+==================
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
+OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
+DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
+KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
+DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
+BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
+p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
+nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
+MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
+Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
+uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
+BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
+YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
+aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
+BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
+VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
+ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
+AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
+qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
+hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
+POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
+Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
+8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
+bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
+g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
+vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
+qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+
+Security Communication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
+8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
+DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
+5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
+DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
+JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
+0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
+mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
+s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
+6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
+FL39vmwLAw==
+-----END CERTIFICATE-----
+
+Sonera Class 2 Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
+U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
+NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
+IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
+/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
+dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
+f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
+tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
+nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
+XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
+0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
+cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
+Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
+EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
+llpwrN9M
+-----END CERTIFICATE-----
+
+Camerfirma Chambers of Commerce Root
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
+QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
+ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
+NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
+cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
+MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
+AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
+xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
+NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
+DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
+d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
+EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
+cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
+AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
+bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
+VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
+aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
+fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
+L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
+UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
+ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
+erfutGWaIZDgqtCYvDi1czyL+Nw=
+-----END CERTIFICATE-----
+
+Camerfirma Global Chambersign Root
+==================================
+-----BEGIN CERTIFICATE-----
+MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
+QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
+ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
+NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
+YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
+MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
+ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
+1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
+by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
+6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
+8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
+BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
+aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
+Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
+aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
+ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
+bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
+PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
+gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
+PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
+IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
+t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
+-----END CERTIFICATE-----
+
+XRamp Global CA Root
+====================
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
+BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
+dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
+HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
+U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
+IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
+foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
+zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
+AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
+xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
+oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
+AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
+/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
+qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
+nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
+8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
+
+Go Daddy Class 2 CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
+VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
+A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
+RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
+ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
+2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
+qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
+YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
+vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
+BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
+atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
+MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
+PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
+I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
+HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
+Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
+vZ8=
+-----END CERTIFICATE-----
+
+Starfield Class 2 CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
+U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
+MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
+A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
+SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
+bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
+JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
+epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
+F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
+MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
+hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
+bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
+afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
+PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
+xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
+KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
+QBFGmh95DmK/D5fs4C8fF5Q=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority
+================================
+-----BEGIN CERTIFICATE-----
+MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
+ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
+NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
+LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
+U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
+o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
+Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
+eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
+2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
+6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
+osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
+untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
+UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
+37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
+FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
+Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
+YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
+AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
+Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
+U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
+LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
+cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
+dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
+AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
+3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
+vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
+fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
+fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
+EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
+yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
+1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
+lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
+g14=
+-----END CERTIFICATE-----
+
+Taiwan GRCA
+===========
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
+EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
+DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
+dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
+w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
+BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
+1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
+htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
+J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
+Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
+B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
+O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
+lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
+HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
+09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
+TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
+Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
+Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
+D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
+DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
+Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
+7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
+CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
+MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
+9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
+UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
+/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
+oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
+GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
+66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
+hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
+EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
+SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
+8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+
+DigiCert Global Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
+MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
+TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
+BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
+4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
+7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
+o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
+8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
+BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
+EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
+tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
+UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+
+DigiCert High Assurance EV Root CA
+==================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
+KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
+MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
+MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
+Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
+Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
+OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
+MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
+NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
+h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
+Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
+JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
+V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
+myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
+mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
+-----END CERTIFICATE-----
+
+Certplus Class 2 Primary CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
+BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
+OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
+dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
+5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
+Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
+YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
+e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
+CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
+YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
+L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
+P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
+TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
+7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
+//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
+l7+ijrRU
+-----END CERTIFICATE-----
+
+DST Root CA X3
+==============
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
+ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
+DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
+cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
+rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
+UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
+xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
+utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
+MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
+dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
+GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
+RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
+fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----
+
+DST ACES CA X6
+==============
+-----BEGIN CERTIFICATE-----
+MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
+MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
+MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
+CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
+DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
+pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
+GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
+MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
+Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
+dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
+CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
+5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
+Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
+nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
+vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
+oKfN5XozNmr6mis=
+-----END CERTIFICATE-----
+
+SwissSign Gold CA - G2
+======================
+-----BEGIN CERTIFICATE-----
+MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
+EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
+MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
+c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
+t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
+jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
+vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
+ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
+AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
+jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
+peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
+7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
+GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
+OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
+L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
+5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
+44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
+Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
+Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
+mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
+vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
+KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
+NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
+viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
+-----END CERTIFICATE-----
+
+SwissSign Silver CA - G2
+========================
+-----BEGIN CERTIFICATE-----
+MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
+BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
+DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
+aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
+N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
+6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
+MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
+qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
+FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
+ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
+celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
+CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
+tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
+cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
+4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
+kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
+3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
+/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
+DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
+e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
+WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
+DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
+DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
+CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
+cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
+b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
+nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
+RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
+tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
+hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
+Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
+NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
+Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
+1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
+-----END CERTIFICATE-----
+
+thawte Primary Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
+MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
+SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
+KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
+FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
+oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
+1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
+q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
+aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
+afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
+AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
+uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
+xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
+jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
+z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G5
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
+biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
+dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
+YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
+j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
+Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
+fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
+BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
+Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
+SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
+KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
+Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
+ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
+
+SecureTrust CA
+==============
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
+dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
+BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
+OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
+DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
+GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
+01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
+ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
+SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
+mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
+nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
+3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+
+Secure Global CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
+bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
+MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
+Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
+YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
+bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
+8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
+HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
+0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
+oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
+MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
+CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
+3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
+f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+
+COMODO Certification Authority
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
+BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
+A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
+MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
+T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
+xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
+4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
+1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
+rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
+b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
+AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
+OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
+RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
+IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
+-----END CERTIFICATE-----
+
+Network Solutions Certificate Authority
+=======================================
+-----BEGIN CERTIFICATE-----
+MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
+EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
+IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
+MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
+MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
+jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
+aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
+crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
+/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
+AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
+bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
+A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
+4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
+GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
+wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
+ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
+-----END CERTIFICATE-----
+
+COMODO ECC Certification Authority
+==================================
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
+R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
+ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
+GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
+4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
+wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
+FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
+U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+
+Security Communication EV RootCA1
+=================================
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
+dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
+BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
+Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
+/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
+WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
+ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
+bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
+9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
+SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
+iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
+Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
+mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
+T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
+-----END CERTIFICATE-----
+
+OISTE WISeKey Global Root GA CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
+BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
+A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
+bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
+VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
+IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
+IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
+Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
+Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
+d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
+/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
+LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
+MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
+hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
+okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
+-----END CERTIFICATE-----
+
+Certigna
+========
+-----BEGIN CERTIFICATE-----
+MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
+EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
+MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
+Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
+XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
+GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
+ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
+DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
+Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
+tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
+BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
+SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
+hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
+PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
+1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
+WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
+-----END CERTIFICATE-----
+
+Deutsche Telekom Root CA 2
+==========================
+-----BEGIN CERTIFICATE-----
+MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
+RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
+A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
+MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
+A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
+b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
+bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
+KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
+AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
+Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
+jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
+HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
+E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
+zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
+rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
+dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
+Cm26OWMohpLzGITY+9HPBVZkVw==
+-----END CERTIFICATE-----
+
+Cybertrust Global Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
+ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
+MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
+ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
+0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
+AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
+89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
+8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
+MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
+A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
+lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
+5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
+hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
+X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
+WL1WMRJOEcgh4LMRkWXbtKaIOM5V
+-----END CERTIFICATE-----
+
+ePKI Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
+EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
+MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
+MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
+IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
+lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
+qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
+12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
+WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
+lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
+vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
+Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
+MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
+ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
+1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
+KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
+xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
+NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
+GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
+xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
+gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
+sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
+BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
+-----END CERTIFICATE-----
+
+T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
+=============================================================================================================================
+-----BEGIN CERTIFICATE-----
+MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
+DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
+aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
+b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
+BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
+S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
+MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
+IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
+n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
+IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
+dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
+cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
+Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
+xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
+6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
+hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
+BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
+N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
+y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
+LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
+dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
+-----END CERTIFICATE-----
+
+certSIGN ROOT CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
+VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
+Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
+CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
+JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
+rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
+ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
+0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
+AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
+Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
+AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
+SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
+x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
+vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
+TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G3
+=============================================
+-----BEGIN CERTIFICATE-----
+MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
+BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
+IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
+NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
+YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
+LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
+K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
+c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
+IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
+dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
+2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
+cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
+Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
+AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
+t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
+VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
+IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
+Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
+MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
+b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
+IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
+LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
+8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
+G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
+rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
+ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
+d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
+VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
+A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
+P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
+7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
+vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
+KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
+A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
+t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
+8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
+er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G2
+=============================================
+-----BEGIN CERTIFICATE-----
+MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
+Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
+OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
+MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
+b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
+BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
+KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
+EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
+ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
+npaqBA+K
+-----END CERTIFICATE-----
+
+VeriSign Universal Root Certification Authority
+===============================================
+-----BEGIN CERTIFICATE-----
+MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
+1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
+MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
+9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
+AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
+tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
+CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
+a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
+DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
+Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
+Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
+P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
+wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
+mJO37M2CYfE45k+XmCpajQ==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G4
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
+VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
+b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
+ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
+cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
+b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
+Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
+rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
+HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
+Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
+A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
+AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
+-----END CERTIFICATE-----
+
+NetLock Arany (Class Gold) Főtanúsítvány
+========================================
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
+A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
+dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
+cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
+MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
+ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
+c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
+0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
+/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
+H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
+fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
+neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
+qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
+YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
+bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
+NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
+dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G2
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
+5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
+vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
+CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
+e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
+OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
+CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
+48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
+trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
+qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
+AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
+ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
+A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
+f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
+kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
+CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
+URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
+CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
+oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
+IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
+66+KAQ==
+-----END CERTIFICATE-----
+
+Hongkong Post Root CA 1
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
+DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
+NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
+IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
+ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
+auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
+qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
+V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
+HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
+h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
+l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
+IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
+T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
+c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
+-----END CERTIFICATE-----
+
+SecureSign RootCA11
+===================
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
+SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
+b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
+KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
+cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
+TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
+wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
+g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
+O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
+bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
+t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
+OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
+bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
+Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
+y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
+lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
+-----END CERTIFICATE-----
+
+ACEDICOM Root
+=============
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
+T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
+MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
+A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
+WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
+YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
+MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
+m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
+HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
+xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
+3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
+2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
+TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
+4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
+9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
+bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
+aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
+eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
+zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
+ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
+KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
+nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
+I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
+MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
+tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
+-----END CERTIFICATE-----
+
+Microsec e-Szigno Root CA 2009
+==============================
+-----BEGIN CERTIFICATE-----
+MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
+MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
+c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
+dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
+BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
+U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
+fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
+0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
+pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
+1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
+AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
+QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
+FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
+lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
+I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
+tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
+yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
+LXpUq3DDfSJlgnCW
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R3
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
+iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
+0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
+rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
+OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
+xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
+lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
+EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
+bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
+YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
+kpeDMdmztcpHWD9f
+-----END CERTIFICATE-----
+
+Autoridad de Certificacion Firmaprofesional CIF A62634068
+=========================================================
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
+BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
+MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
+QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
+NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
+Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
+B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
+7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
+ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
+plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
+MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
+LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
+bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
+vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
+EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
+DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
+cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
+bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
+ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
+51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
+R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
+T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
+Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
+osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
+crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
+saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
+KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
+6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
+-----END CERTIFICATE-----
+
+Izenpe.com
+==========
+-----BEGIN CERTIFICATE-----
+MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
+EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
+MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
+QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
+03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
+ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
+PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
+OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
+F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
+0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
+leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
+AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
+SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
+NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
+MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
+Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
+kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
+hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
+g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
+aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
+nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
+ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
+Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
+WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
+-----END CERTIFICATE-----
+
+Chambers of Commerce Root - 2008
+================================
+-----BEGIN CERTIFICATE-----
+MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
+Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
+ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
+EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
+cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
+XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
+h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
+ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
+NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
+D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
+lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
+0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
+ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
+EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
+G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
+BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
+bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
+bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
+CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
+AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
+wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
+3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
+RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
+M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
+YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
+9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
+zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
+nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
+OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
+-----END CERTIFICATE-----
+
+Global Chambersign Root - 2008
+==============================
+-----BEGIN CERTIFICATE-----
+MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
+NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
+Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
+QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
+aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
+VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
+XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
+ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
+/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
+TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
+H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
+Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
+HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
+wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
+AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
+BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
+BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
+aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
+aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
+1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
+dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
+/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
+ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
+dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
+9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
+foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
+qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
+P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
+c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
+09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
+-----END CERTIFICATE-----
+
+Go Daddy Root Certificate Authority - G2
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
+MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
+MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
+A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
+9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
+fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
+NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
+BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
+vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
+5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
+N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
+-----END CERTIFICATE-----
+
+Starfield Root Certificate Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
+DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
+VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
+dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
+W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
+bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
+N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
+ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
+JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
+TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
+4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
+F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
+pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
+c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
+-----END CERTIFICATE-----
+
+Starfield Services Root Certificate Authority - G2
+==================================================
+-----BEGIN CERTIFICATE-----
+MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
+IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
+BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
+dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
+h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
+hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
+LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
+rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
+SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
+E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
+xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
+iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
+YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
+-----END CERTIFICATE-----
+
+AffirmTrust Commercial
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
+MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
+DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
+C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
+BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
+MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
+HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
+hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
+qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
+0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
+sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
+-----END CERTIFICATE-----
+
+AffirmTrust Networking
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
+MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
+Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
+dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
+/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
+h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
+HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
+UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
+12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
+WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
+/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
+-----END CERTIFICATE-----
+
+AffirmTrust Premium
+===================
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
+OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
+dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
+BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
+5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
+GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
+p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
+S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
+6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
+/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
+MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
+Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
+6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
+L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
+BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
+IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
+g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
+zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
+-----END CERTIFICATE-----
+
+AffirmTrust Premium ECC
+=======================
+-----BEGIN CERTIFICATE-----
+MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
+BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
+MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
+cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
+N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
+BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
+BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
+57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
+eQ==
+-----END CERTIFICATE-----
+
+Certum Trusted Network CA
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
+ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
+MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
+ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
+l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
+J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
+fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
+cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
+Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
+DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
+jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
+mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
+Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
+03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
+-----END CERTIFICATE-----
+
+Certinomis - Autorité Racine
+============================
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
+Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
+LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
+A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
+JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
+wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
+Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
+2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
+jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
+c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
+lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
+xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
+530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
+4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
+KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
+WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
+R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
+nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
+CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
+JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
+qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
+WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
+wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
+vgt2Fl43N+bYdJeimUV5
+-----END CERTIFICATE-----
+
+TWCA Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
+VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
+EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
+IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
+QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
+oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
+4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
+y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
+BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
+9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
+mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
+QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
+T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
+Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
+-----END CERTIFICATE-----
+
+Security Communication RootCA2
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
+dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
+SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
+aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
+3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
+spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
+EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
+QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
+CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
+u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
+3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
+tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
+mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
+-----END CERTIFICATE-----
+
+EC-ACC
+======
+-----BEGIN CERTIFICATE-----
+MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
+BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
+ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
+VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
+CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
+BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
+MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
+SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
+Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
+cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
+w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
+ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
+HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
+E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
+0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
+VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
+Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
+dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
+lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
+Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
+l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
+E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
+5EI=
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions RootCA 2011
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
+O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
+aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
+AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
+IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
+1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
+71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
+8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
+3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
+MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
+MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
+b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
+XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
+TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
+/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
+7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
+-----END CERTIFICATE-----
+
+Actalis Authentication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
+BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
+AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
+MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
+IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
+wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
+by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
+zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
+YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
+oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
+EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
+hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
+EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
+jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
+iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
+ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
+WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
+JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
+K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
+Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
+4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
+2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
+lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
+OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
+vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
+-----END CERTIFICATE-----
+
+Trustis FPS Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
+EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
+IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
+BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
+RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
+H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
+cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
+o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
+AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
+BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
+GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
+yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
+8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
+l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
+iB6XzCGcKQENZetX2fNXlrtIzYE=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority
+================================
+-----BEGIN CERTIFICATE-----
+MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
+ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
+NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
+LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
+U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
+o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
+Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
+eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
+2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
+6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
+osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
+untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
+UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
+37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
+Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
+dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
+c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
+bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
+aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
+L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
+cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
+fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
+N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
+Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
+tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
+e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
+2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
+HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
+JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
+D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority G2
+===================================
+-----BEGIN CERTIFICATE-----
+MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
+ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
+o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
+4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
+Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
+Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
+O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
+vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
+nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
+FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
+z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
+KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
+2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
+J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
+/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
+nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
+blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
+l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
+7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
+obp573PYtlNXLfbQ4ddI
+-----END CERTIFICATE-----
+
+Buypass Class 2 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
+DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
+g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
+9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
+/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
+CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
+awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
+zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
+Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
+Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
+M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
+A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
+osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
+aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
+DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
+LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
+oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
+wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
+CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
+rJgWVqA=
+-----END CERTIFICATE-----
+
+Buypass Class 3 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
+DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
+sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
+5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
+7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
+ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
+2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
+/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
+RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
+Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
+j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
+cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
+uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
+Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
+ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
+KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
+6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
+UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
+eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
+Cp/HuZc=
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 3
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
+MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
+9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
+NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
+iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
+0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
+AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
+fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
+ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
+P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
+e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
+-----END CERTIFICATE-----
+
+EE Certification Centre Root CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
+EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
+dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
+MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
+UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
+ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
+TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
+rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
+93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
+P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
+MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
+BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
+xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
+lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
+uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
+3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
+dcGWxZ0=
+-----END CERTIFICATE-----
+
+TURKTRUST Certificate Services Provider Root 2007
+=================================================
+-----BEGIN CERTIFICATE-----
+MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
+MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
+QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
+DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
+a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
+BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
+bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
+YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
+KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
+KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
+rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
+AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
+Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
+aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
+Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
+BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
+poRq0Tl9
+-----END CERTIFICATE-----
+
+D-TRUST Root Class 3 CA 2 2009
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
+Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
+LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
+ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
+BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
+KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
+p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
+AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
+4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
+eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
+MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
+PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
+OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
+2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
+o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
+dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
+X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
+-----END CERTIFICATE-----
+
+D-TRUST Root Class 3 CA 2 EV 2009
+=================================
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
+OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
+OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
+egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
+zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
+7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
+sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
+11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
+cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
+ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
+MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
+b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
+c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
+PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
+nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
+ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
+NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
+w9y4AyHqnxbxLFS1
+-----END CERTIFICATE-----
+
+PSCProcert
+==========
+-----BEGIN CERTIFICATE-----
+MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
+ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
+MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
+dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
+cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
+IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
+MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
+DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
+ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
+Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
+wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
+3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
+RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
+EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
+0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
+0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
+td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
+Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
+r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
+AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
+Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
+xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
+ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
+EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
+Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
+ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
+9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
+MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
+LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
+ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
+YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
+Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
+dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
+T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
+g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
+uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
+n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
+FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
+5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
+3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
+poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
+eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
+-----END CERTIFICATE-----
+
+CA Disig Root R1
+================
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
+EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
+ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
+EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
+c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
+3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
+u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
+m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
+CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
+YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
+vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
+LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
+ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
+XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
+04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
+xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
+LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
+CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
+VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
+YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
+ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
+lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
+UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
+a7+h89n07eLw4+1knj0vllJPgFOL
+-----END CERTIFICATE-----
+
+CA Disig Root R2
+================
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
+EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
+ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
+EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
+c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
+w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
+xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
+A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
+GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
+g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
+5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
+koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
+Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
+Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
+Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
+tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
+sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
+dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
+1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
+mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
+utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
+sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
+UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
+7+ZtsH8tZ/3zbBt1RqPlShfppNcL
+-----END CERTIFICATE-----
+
+ACCVRAIZ1
+=========
+-----BEGIN CERTIFICATE-----
+MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
+SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
+MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
+UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
+jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
+RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
+aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
+0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
+WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
+8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
+5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
+9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
+Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
+Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
+Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
+VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
+Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
+QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
+AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
+YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
+AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
+IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
+aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
+dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
+MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
+hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
+R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
+YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
+nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
+TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
+sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
+I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
+Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
+3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
+EfbRD0tVNEYqi4Y7
+-----END CERTIFICATE-----
+
+TWCA Global Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
+CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
+QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
+EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
+nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
+r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
+Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
+tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
+KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
+sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
+yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
+kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
+zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
+cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
+LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
+8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
+/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
+lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
+A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
+i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
+EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
+zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
+-----END CERTIFICATE-----
+
+TeliaSonera Root CA v1
+======================
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
+CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
+MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
+VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
+6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
+3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
+B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
+Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
+oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
+F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
+oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
+gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
+TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
+AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
+DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
+zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
+0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
+pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
+G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
+c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
+JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
+qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
+Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
+WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
+-----END CERTIFICATE-----
+
+E-Tugra Certification Authority
+===============================
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
+DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
+ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
+ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
+NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
+QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
+cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
+DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
+hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
+CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
+ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
+BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
+E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
+rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
+jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
+rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
+dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
+/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
+MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
+kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
+XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
+VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
+a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
+dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
+KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
+Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
+8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
+C7TbO6Orb1wdtn7os4I07QZcJA==
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 2
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
+MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
+SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
+vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
+2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
+WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
+YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
+r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
+vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
+3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
+9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
+-----END CERTIFICATE-----
+
+Atos TrustedRoot 2011
+=====================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
+cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
+MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
+A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
+hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
+54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
+HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
+z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
+l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
+bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
+CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
+k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
+TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
+61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
+3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 1 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
+PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
+PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
+Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
+ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
+g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
+7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
+9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
+iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
+t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
+hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
+MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
+GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
+Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
+3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
+wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
+O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
+FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
+hMJKzRwuJIczYOXD
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
+ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
+NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
+oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
+MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
+V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
+L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
+sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
+6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
+lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
+hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
+AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
+pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
+x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
+dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
+U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
+mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
+zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
+JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
+O3jtZsSOeWmD3n+M
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
+IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
+Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
+6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
+I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
+VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
+5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
+Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
+dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
+rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
+hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
+KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
+t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
+TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
+DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
+Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
+hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
+0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
+dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
+PpxxVJkES/1Y+Zj0
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
+MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
+35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
+bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
+VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
+YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
+lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
+w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
+0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
+d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
+hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
+jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
+VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
+BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
+RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
+KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
+UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
+YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
+1vUhZscv6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
+
+DigiCert Global Root G2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
+MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
+kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
+3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
+BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
+UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
+5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
+F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
+WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
+QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
+iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
+
+DigiCert Global Root G3
+=======================
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
+VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
+MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
+aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
+AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
+YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
+Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
+3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
+VOKa5Vt8sycX
+-----END CERTIFICATE-----
+
+DigiCert Trusted Root G4
+========================
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
+HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
+pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
+k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
+vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
+QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
+MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
+mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
+f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
+dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
+oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
+ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
+yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
+7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
+ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
+5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
+/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
+5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
+G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
+82Z+
+-----END CERTIFICATE-----
+
+WoSign
+======
+-----BEGIN CERTIFICATE-----
+MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
+EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
+QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
+BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
+CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
+2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
+KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
++ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
+EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
+lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
+8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
+yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
+AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
+8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
+LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
+T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
+y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
+2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
+5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
+EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
+mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
+kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
+kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
+-----END CERTIFICATE-----
+
+WoSign China
+============
+-----BEGIN CERTIFICATE-----
+MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
+EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
+geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
+VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
+8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
+uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
+dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
+Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
+b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
+76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
++Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
+yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
+GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
+A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
+yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
+r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
+j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
+kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
+qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
+jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
+ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
+T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
+kI26oQ==
+-----END CERTIFICATE-----
+
+COMODO RSA Certification Authority
+==================================
+-----BEGIN CERTIFICATE-----
+MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE
+BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
+A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC
+R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
+ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn
+dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ
+FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+
+5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG
+x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX
+2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL
+OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3
+sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C
+GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5
+WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
+FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
+DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt
+rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+
+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg
+tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW
+sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp
+pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA
+zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq
+ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52
+7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I
+LaZRfyHBNVOFBkpdn627G190
+-----END CERTIFICATE-----
+
+USERTrust RSA Certification Authority
+=====================================
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
+ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
+ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz
+0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j
+Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn
+RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O
++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq
+/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE
+Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM
+lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8
+yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+
+eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
+BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW
+FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ
+7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ
+Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM
+8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi
+FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi
+yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c
+J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw
+sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx
+Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
+-----END CERTIFICATE-----
+
+USERTrust ECC Certification Authority
+=====================================
+-----BEGIN CERTIFICATE-----
+MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
+0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
+nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
+HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
+HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
+9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
+-----END CERTIFICATE-----
+
+GlobalSign ECC Root CA - R4
+===========================
+-----BEGIN CERTIFICATE-----
+MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
+OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
+AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
+MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
+JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
+-----END CERTIFICATE-----
+
+GlobalSign ECC Root CA - R5
+===========================
+-----BEGIN CERTIFICATE-----
+MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
+SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
+h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
+BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
+uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
+yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G3
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
+olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
+x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
+EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
+Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
+mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
+1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
+07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
+FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
+41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
+yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
+U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
+KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
+v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
+8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
+8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
+mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
+1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
+JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
+tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden EV Root CA
+================================
+-----BEGIN CERTIFICATE-----
+MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
+MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
+cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
+SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
+O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
+0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
+Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
+XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
+08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
+0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
+74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
+fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
+ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
+eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
+c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
+5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
+b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
+f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
+5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
+WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
+DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
+eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
+-----END CERTIFICATE-----
+
+IdenTrust Commercial Root CA 1
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS
+b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES
+MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB
+IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld
+hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/
+mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi
+1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C
+XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl
+3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy
+NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV
+WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg
+xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix
+uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI
+hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
+6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg
+ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt
+ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV
+YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX
+feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro
+kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe
+2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz
+Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
+cGzM7vRX+Bi6hG6H
+-----END CERTIFICATE-----
+
+IdenTrust Public Sector Root CA 1
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv
+ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV
+UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS
+b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy
+P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6
+Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI
+rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf
+qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS
+mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn
+ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh
+LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v
+iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
+4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
+Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw
+DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
+t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A
+mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt
+GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt
+m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx
+NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4
+Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI
+ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC
+ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ
+3Wl9af0AVqW3rLatt8o+Ae+c
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
+bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
+b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
+HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
+DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
+OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
+/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
+HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
+s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
+TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
+AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
+0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
+iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
+Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
+nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
+e4pIb4tF9g==
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - EC1
+==========================================
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
+FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
+YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
+ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
+FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
+LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
+IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
+AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
+9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
+vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
+kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
+-----END CERTIFICATE-----
+
+CFCA EV ROOT
+============
+-----BEGIN CERTIFICATE-----
+MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE
+CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB
+IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw
+MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD
+DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV
+BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD
+7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN
+uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW
+ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7
+xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f
+py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K
+gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol
+hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ
+tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf
+BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
+ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q
+ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua
+4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG
+E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
+BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn
+aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy
+PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
+kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
+ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
+-----END CERTIFICATE-----
+
+TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
+====================================================
+-----BEGIN CERTIFICATE-----
+MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
+BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
+bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
+RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
+ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
+SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
+n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
+ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
+jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
+ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
+9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
+4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
+HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
+hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
+BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
+URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
+lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
+B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
+-----END CERTIFICATE-----
+
+Certinomis - Root CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
+Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
+LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
+EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
+ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
+P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
+d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
+z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
+8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
+RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
+6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
+FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
+PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
+i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
+YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
+6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
+AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
+WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
+Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
+lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
+y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
+Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
+DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
+I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
+cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
+hkIGuUE=
+-----END CERTIFICATE-----
+
+OISTE WISeKey Global Root GB CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
+EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
+ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
+MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
+VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
+b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
+scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
+rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
+9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
+Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
+GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
+hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
+dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
+VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
+HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
+Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
+-----END CERTIFICATE-----
+
+Certification Authority of WoSign G2
+====================================
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG
+EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx
+CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai
+XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du
+W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9
+5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK
+v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI
+hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY
+P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3
+TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu
++sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+
+7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
+-----END CERTIFICATE-----
+
+CA WoSign ECC Root
+==================
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD
+TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v
+dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK
+ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI
+zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU
+t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw
+QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R
+MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0
+Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
+a/GRspBl9JrmkO5K
+-----END CERTIFICATE-----
+
+SZAFIR ROOT CA2
+===============
+-----BEGIN CERTIFICATE-----
+MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
+A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
+BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
+BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
+VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
+qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
+DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
+2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
+ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
+ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
+AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
+AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
+O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
+oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
+4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
+-----END CERTIFICATE-----
+
+Certum Trusted Network CA 2
+===========================
+-----BEGIN CERTIFICATE-----
+MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
+BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
+bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
+ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
+TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
+IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
+7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
+CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
+Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
+uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
+GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
+9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
+Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
+hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
+BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
+Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
+L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
+clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
+pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
+w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
+J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
+ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
+is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
+zAYspsbiDrW5viSP
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions RootCA 2015
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT
+BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0
+aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
+YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx
+MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg
+QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV
+BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw
+MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv
+bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh
+iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+
+6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd
+FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr
+i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F
+GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2
+fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu
+iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
+Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI
+hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+
+D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM
+d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y
+d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn
+82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb
+davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F
+Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt
+J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa
+JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q
+p/UsQu0yrbYhnr68
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions ECC RootCA 2015
+===========================================================
+-----BEGIN CERTIFICATE-----
+MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0
+aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
+cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
+aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw
+MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj
+IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD
+VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290
+Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP
+dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK
+Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA
+GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn
+dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
+-----END CERTIFICATE-----
+
+Certplus Root CA G1
+===================
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUAMD4xCzAJBgNV
+BAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTAe
+Fw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhD
+ZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHN
+r49aiZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt6kuJPKNx
+Qv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP0FG7Yn2ksYyy/yARujVj
+BYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTv
+LRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDEEW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2
+z4QTd28n6v+WZxcIbekN1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc
+4nBvCGrch2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCTmehd
+4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV4EJQeIQEQWGw9CEj
+jy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPOWftwenMGE9nTdDckQQoRb5fc5+R+
+ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0G
+A1UdDgQWBBSowcCbkahDFXxdBie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHY
+lwuBsTANBgkqhkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh
+66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7/SMNkPX0XtPG
+YX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BSS7CTKtQ+FjPlnsZlFT5kOwQ/
+2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F
+6ALEUz65noe8zDUa3qHpimOHZR4RKttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilX
+CNQ314cnrUlZp5GrRHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWe
+tUNy6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEVV/xuZDDC
+VRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5g4VCXA9DO2pJNdWY9BW/
++mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl++O/QmueD6i9a5jc2NvLi6Td11n0bt3+
+qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo=
+-----END CERTIFICATE-----
+
+Certplus Root CA G2
+===================
+-----BEGIN CERTIFICATE-----
+MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4xCzAJBgNVBAYT
+AkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjAeFw0x
+NDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0
+cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BM0PW1aC3/BFGtat93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uN
+Am8xIk0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0PAQH/BAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMB8GA1Ud
+IwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqGSM49BAMDA2gAMGUCMHD+sAvZ94OX7PNV
+HdTcswYO/jOYnYs5kGuUIe22113WTNchp+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjl
+vPl5adytRSv3tjFzzAalU5ORGpOucGpnutee5WEaXw==
+-----END CERTIFICATE-----
+
+OpenTrust Root CA G1
+====================
+-----BEGIN CERTIFICATE-----
+MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUAMEAxCzAJBgNV
+BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcx
+MB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
+CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzEwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICkES3d5oeuXT2R0odsN7fa
+Yp6bwiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1cJwzdMOWo010hOHQX/uMftk87
+ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHcYTSSjFR077F9jAHiOH3BX2pfJLKO
+YheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGPuY4zbGneWK2gDqdkVBFpRGZPTBKnjix9
+xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLxp2NX5Ntqp66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO
+9z0M+Yo0FMT7MzUj8czxKselu7Cizv5Ta01BG2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq
+3ywgsNw2TgOzfALU5nsaqocTvz6hdLubDuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+WG+Oi
+n6+Sx+31QrclTDsTBM8clq8cIqPQqwWyTBIjUtz9GVsnnB47ev1CI9sjgBPwvFEVVJSmdz7QdFG9
+URQIOTfLHzSpMJ1ShC5VkLG631UAC9hWLbFJSXKAqWLXwPYYEQRVzXR7z2FwefR7LFxckvzluFqr
+TJOVoSfupb7PcSNCupt2LQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUl0YhVyE12jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/Px
+N3DlCPaTKbYwDQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000E
+PLuHIT839HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kfgLMtMrpkZ2Cv
+uVnN35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbSFXJfLkur1J1juONI5f6ELlgK
+n0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+WVLh
+X4SPgPL0DTatdrOjteFkdjpY3H1PXlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4Fdvb8e80
+nR14SohWZ25g/4/Ii+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvyDEsMpZTGMKcm
+GS3tTAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4poEL0L9109S5zvE/
+bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/KyPu1svf0OnWZzsD2097+o
+4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJAwSQiumPv+i2tCqjI40cHLI5kqiPAlxA
+OXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx
+-----END CERTIFICATE-----
+
+OpenTrust Root CA G2
+====================
+-----BEGIN CERTIFICATE-----
+MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUAMEAxCzAJBgNV
+BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcy
+MB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
+CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+
+Ntmh/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78eCbY2albz
+4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/61UWY0jUJ9gNDlP7ZvyCV
+eYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fEFY8ElggGQgT4hNYdvJGmQr5J1WqIP7wt
+UdGejeBSzFfdNTVY27SPJIjki9/ca1TSgSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz
+3GIZ38i1MH/1PCZ1Eb3XG7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj
+3CzMpSZyYhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaHvGOz
+9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4t/bQWVyJ98LVtZR0
+0dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/gh7PU3+06yzbXfZqfUAkBXKJOAGT
+y3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUajn6QiL35okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59
+M4PLuG53hq8wDQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz
+Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0nXGEL8pZ0keI
+mUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qTRmTFAHneIWv2V6CG1wZy7HBG
+S4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpTwm+bREx50B1ws9efAvSyB7DH5fitIw6mVskp
+EndI2S9G/Tvw/HRwkqWOOAgfZDC2t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ
+6e18CL13zSdkzJTaTkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97kr
+gCf2o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU3jg9CcCo
+SmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eAiN1nE28daCSLT7d0geX0
+YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14fWKGVyasvc0rQLW6aWQ9VGHgtPFGml4vm
+u7JwqkwR3v98KzfUetF3NI/n+UL3PIEMS1IK
+-----END CERTIFICATE-----
+
+OpenTrust Root CA G3
+====================
+-----BEGIN CERTIFICATE-----
+MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAxCzAJBgNVBAYT
+AkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEczMB4X
+DTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9w
+ZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAARK7liuTcpm3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5B
+ta1doYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4GA1UdDwEB
+/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAf
+BgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAKBggqhkjOPQQDAwNpADBmAjEAj6jcnboM
+BBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta
+3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmTk51V6s2N8fvB
+-----END CERTIFICATE-----
+
+ISRG Root X1
+============
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE
+BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD
+EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG
+EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT
+DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r
+Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1
+3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K
+b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN
+Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ
+4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf
+1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu
+hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH
+usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r
+OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G
+A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY
+9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV
+0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt
+hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw
+TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx
+e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA
+JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD
+YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n
+JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ
+m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
+
+AC RAIZ FNMT-RCM
+================
+-----BEGIN CERTIFICATE-----
+MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT
+AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw
+MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD
+TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf
+qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr
+btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL
+j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou
+08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw
+WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT
+tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ
+47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC
+ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa
+i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o
+dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
+nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s
+D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ
+j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT
+Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW
++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7
+Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d
+8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm
+5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG
+rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
+-----END CERTIFICATE-----
+
+Amazon Root CA 1
+================
+-----BEGIN CERTIFICATE-----
+MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
+VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
+MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
+bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
+FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
+gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
+dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
+VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
+DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
+CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
+8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
+2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
+xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
+-----END CERTIFICATE-----
+
+Amazon Root CA 2
+================
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD
+VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1
+MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
+bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4
+kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp
+N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9
+AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd
+fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx
+kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS
+btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0
+Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN
+c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+
+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw
+DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA
+A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE
+YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW
+xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ
+gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW
+aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV
+Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3
+KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi
+JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw=
+-----END CERTIFICATE-----
+
+Amazon Root CA 3
+================
+-----BEGIN CERTIFICATE-----
+MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
+EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
+NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
+MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
+f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
+Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
+rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
+eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
+-----END CERTIFICATE-----
+
+Amazon Root CA 4
+================
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
+EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
+NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
+MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
+/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
+83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
+MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
+AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
+-----END CERTIFICATE-----
+
+LuxTrust Global Root 2
+======================
+-----BEGIN CERTIFICATE-----
+MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG
+A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh
+bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW
+MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm
+Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2
+xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC
+wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm
+1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm
+FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF
+wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/
+a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U
+ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ
+MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB
+/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5
+Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
++Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ
+FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN
+H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW
+7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu
+ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA
+VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR
+TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt
+/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc
+7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I
+iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
+-----END CERTIFICATE-----
+
+TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
+D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
+IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
+TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
+ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
+VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
+c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
+bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
+IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
+6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
+wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
+3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
+WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
+ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
+AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
+lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
+e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
+q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
+-----END CERTIFICATE-----
diff --git a/vas/rest/conf/constants.inc b/src/module_gtf/gtf.engine/gtf.engines/constants.inc
similarity index 100%
rename from vas/rest/conf/constants.inc
rename to src/module_gtf/gtf.engine/gtf.engines/constants.inc
diff --git a/src/module_gtf/gtf.engine/gtf.engines/engine b/src/module_gtf/gtf.engine/gtf.engines/engine
new file mode 100755
index 0000000000000000000000000000000000000000..53b01477108bf7e5f77ce52eb5b0c48c458e2dd6
Binary files /dev/null and b/src/module_gtf/gtf.engine/gtf.engines/engine differ
diff --git a/src/module_gtf/gtf.engine/gtf.engines/engine.exe b/src/module_gtf/gtf.engine/gtf.engines/engine.exe
new file mode 100755
index 0000000000000000000000000000000000000000..299a2bc1ca56950134511a6694772126a6f3c03c
Binary files /dev/null and b/src/module_gtf/gtf.engine/gtf.engines/engine.exe differ
diff --git a/src/module_gtf/gtf.engine/gtf.engines/engine.php b/src/module_gtf/gtf.engine/gtf.engines/engine.php
new file mode 100755
index 0000000000000000000000000000000000000000..ecd6de0b583d2e419710b292fc9c2f9a5b6312b2
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/engine.php
@@ -0,0 +1,896 @@
+<?php
+
+/**
+ * \file engine.php
+ * \brief engine.php \n \n Ce fichier contient un programme php.
+ *
+ * Ce programme permet de traiter des demandes de traitements.
+ *
+ * \author Fabien Marty <fabien.marty@veremes.com>
+ */
+$properties["id_gtf_engine"] = $_SERVER['argv'][1]; //Identifiant du moteur calculé à partir de la valeur passée en argument
+$ErrorLicense = $_SERVER['argv'][2]; //Identifiant du moteur calculé à partir de la valeur passée en argument
+// Si "$_SERVER["HTTP_HOST"]" n'est pas renseigné -> php notice.
+if (!isset($_SERVER["HTTP_HOST"]))
+    $_SERVER["HTTP_HOST"] = 'localhost';
+//
+require_once ("php_engine_conf.inc");
+require_once ("vmlib/BD.class.inc");
+require_once ("vmlib/logUtil.inc");
+require_once("vmlib/dbUtil.inc");
+require_once ("gtf_lib/phpUtility.inc");
+require_once("vmlib/phpUtil.inc");
+
+require_once ("properties_engine.inc");
+require_once ("engine.sql.inc");
+//require_once ("PEAR/Mail.php");
+require_once("Ldap.class.inc");
+
+require_once("vmlib/Email.class.inc");
+require_once("gtf_lib/gtf_object/Order.class.inc");
+require_once("vmlib/error.inc");
+require_once 'string.inc';
+
+require_once 'gtf_lib/FmeCloud.class.inc';
+require_once 'gtf_lib/FmeServer.class.inc';
+require_once 'gtf_lib/AmazonS3.class.inc';
+require_once 'gtf_lib/FmeCloudForGtf.class.inc';
+
+
+loadLang("engines", $properties["language"]);
+if ($ErrorLicense == "0") {
+    //writeToLog('|INFO |PHP| dump prop '. var_export($properties,true),$properties["engine_log_file"]);
+
+    $sDateDebut = new DateTime(date("Y-m-d H:i:s"));
+    $sDateFin = new DateTime(date("Y-m-d H:i:s"));
+
+    //Connexion à la base de données de Données gtf : pas de mot de passe pour le robot
+    $oBd = new BD($properties["login"], '', $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $properties["page_encoding"]);
+    //$oBd = new Vm  ('admin', 'admin', $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $properties["page_encoding"]);
+    if ($oBd->erreurRencontree) {
+        writeToLog(INFO_BASE_CONNECTION_ERROR . $properties["database"], $properties["engine_log_file"]);
+    } else {
+        writeToLog(INFO_BASE_CONNECTION . $properties["database"], $properties["engine_log_file"]);
+
+        // Données du moteur fme utilisé.
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+        $aParams['gtf_engine_id'] = array('value' => $properties['id_gtf_engine'], 'type' => 'number');
+        $oPDOResult4 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["getFmeEngine"], $aParams);
+        $aFmeEngine = $oBd->ligneSuivante($oPDOResult4);
+        
+        // Variables d'environnement.
+        if ($aFmeEngine['fme_engine_type_id'] == 'desktop') {
+            //Recherche du Moteur V2 (ExecuteWithParams)
+            //Selection du chemin fme
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $properties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['gtf_engine_id'] = array('value' => $properties['id_gtf_engine'], 'type' => 'number');
+            $oPDOResult = $oBd->executeWithParams($aSql['pgsql']['select_fme_path'], $aParams);
+
+            if ($aRecord = $oBd->ligneSuivante($oPDOResult)) {
+                $properties["fme_path"] = $aRecord['fme_path'];
+            } else {
+                $properties["fme_path"] = '';
+            }
+            putenv("FME_PATH=" . $properties["fme_path"]);
+            putenv("GTF_HOME=" . $properties["workspace_dir"] . "/");
+        }
+
+        /*
+        // Traitement des demandes en fonction du moteur
+        $iNbTraitement = 0;
+        $aUserToRefresh = Array();
+        //$sSql = $aSql[$properties["sgbd"]]["boucle_1"];
+        if (TesteHeureCreuse($properties["heure_creuse_min"], $properties["heure_creuse_max"])) { // On est en heure creuse (0 correspond à "Heure Creuse")
+            $iPlageHorraire = 0;
+            $sSql = $aSql[$properties["sgbd"]]["boucle_1"];
+        } else { // On est PAS en heure creuse
+            $iPlageHorraire = 0;
+            $sSql = $aSql[$properties["sgbd"]]["boucle_2"];
+        }
+        $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+        $sSql = str_replace("[iPriorityId]", $iPlageHorraire, $sSql);
+        $sSql = str_replace("[iIdGtfEngine]", $properties["id_gtf_engine"], $sSql);
+        if ($properties["nbr_order_max"] < 1)
+            $properties["nbr_order_max"] = 1;
+        $sSql = str_replace("[iNnbrOrderMax]", $properties["nbr_order_max"], $sSql);
+        $sEnErreur = 2;
+        $oPDOResult = $oBd->execute($sSql);
+        //*/
+        
+        ///*
+        // Traitement des demandes en fonction du moteur7
+        // Gestion des heures creuses
+        $iNbTraitement = 0;
+        $aUserToRefresh = Array();
+        $aParams = array();
+
+        $iPlageHorraire = 0;
+        
+        $aParams['sSchemaGtf'] = array('value' => $properties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['iPriorityId'] = array('value' => $iPlageHorraire, 'type' => 'number');
+        $aParams['iIdGtfEngine'] = array('value' => $properties["id_gtf_engine"], 'type' => 'number');
+        if ($properties["nbr_order_max"] < 1)
+            $properties["nbr_order_max"] = 1;
+        $aParams['iNnbrOrderMax'] = array('value' => $properties["nbr_order_max"], 'type' => 'number');
+
+        $sEnErreur = 2;
+        
+        if (TesteHeureCreuse($properties["heure_creuse_min"], $properties["heure_creuse_max"])) { // On est en heure creuse (0 correspond à "Heure Creuse")
+            $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["boucle_1"], $aParams);
+        } else { // On est PAS en heure creuse
+            $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["boucle_2"], $aParams);
+        }
+        
+        while ($aDemande = $oBd->ligneSuivante($oPDOResult)) {
+            //test pour connaitre les nombres de tentatives de chaque demande
+            //if ($aDemande['attempt']>=1){    modif par og 26/04/13
+            if ($properties["max_attempt"] == '') {
+                $properties["max_attempt"] = 2;
+            }
+            if ($aDemande['attempt'] >= $properties["max_attempt"]) {
+                writeToLog(str_replace("[aDemande['order_id']]", $aDemande['order_id'], INFO_TOO_MANY_ORDER_ATTEMPT), $properties["engine_log_file"]);
+                $iStatut = 4;
+
+                /*
+                  //Mise à jour de la demande.
+                  $sDateTraitement = Date('Y-m-d H:i:s');
+                  $sSql = $aSql[$properties["sgbd"]]["update_demande"];
+                  $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                  $sSql = str_replace("[iStatut]", $iStatut, $sSql);
+                  $sSql = str_replace("[iNbSec]", 0, $sSql);
+                  $sSql = str_replace("[sMessage]", $sMessage, $sSql);
+                  $sSql = str_replace("[sDateTraitement]", $sDateTraitement, $sSql);
+                  $sSql = str_replace("[sResultat]", $sResultat, $sSql);
+                  $sSql = str_replace("[sLogFme]", $sLogFme, $sSql);
+
+                  $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
+                  $oPDOResult2 = $oBd->execute($sSql);
+                  // */
+
+                //Mise à jour de la demande V2
+                // Requete d'update de la demande
+                $aParams = array();
+                $aParams['sSchemaGtf'] = array('value' => $properties['schema_gtf'], 'type' => 'schema_name');
+                $aParams['iStatut'] = array('value' => $iStatut, 'type' => 'number');
+                $aParams['iNbSec'] = array('value' => 0, 'type' => 'number');
+                $aParams['sDateTraitement'] = array('value' => $sDateTraitement, 'type' => 'string');
+                $aParams['sResultat'] = array('value' => $sResultat, 'type' => 'string');
+                $aParams['sLogFme'] = array('value' => $sLogFme, 'type' => 'string');
+                $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
+                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande"], $aParams);
+
+                if ($oBd->erreurRencontree) {
+                    writeToLog(INFO_ORDER_UPDATE_ERROR . "(SQL : $sSql)", $properties["engine_log_file"]);
+                } else {
+                    writeToLog(INFO_ORDER_UPDATE, $properties["engine_log_file"]);
+                    // La demande passe en cours
+                    sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
+                        'action' => 'event',
+                        'service' => 'GtfEvents',
+                        'data' => array(
+                            'event' => 'order_started',
+                            'order' => array(
+                                'order_id' => $aDemande['order_id'],
+                                'order_status_id' => $aDemande['order_status_id'],
+                                'user_id' => $aDemande['user_id'],
+                                'workspace_id' => $aDemande['workspace_id']
+                            )
+                        )
+                    ));
+                }
+                $oPDOResult2 = $oBd->fermeResultat();
+            } else {
+
+                /*
+                  //Vérification des droits de l'utilsateur
+                  $sSql = $aSql[$properties["sgbd"]]["getLogin"];
+                  $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
+                  $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
+                  $oPDOResult2 = $oBd->execute($sSql);
+                  // */
+
+                //Vérification des droits de l'utilsateur
+                // Recuperation des login et droits de l'utilisateur en cour
+                $aParams = array();
+                $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
+                $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
+                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["getLogin"], $aParams);
+
+                $aUser = $oBd->ligneSuivante($oPDOResult2);
+                $sGroupListId = getUserGroupsEngines($aUser["login"], $oBd, $properties["mixed_rights_management"]);
+                // Mise à jour du nombre de tentative dans la base
+                $iTentative = $aDemande['attempt'] + 1;
+                $sTable = $properties["schema_gtf"] . ".order";
+                $sChamp = "attempt";
+                $sWhere = "order_id";
+                $sListDemande = $aDemande['order_id'];
+                $oBd->updateLinkedTable($sTable, $sChamp, $sWhere, $sListDemande, $iTentative);
+
+                // Mise à jour de l'état de la demande de traitement
+                $oBd->updateLinkedTable($sTable, "order_status_id", $sWhere, $sListDemande, 5);
+
+                writeToLog(str_replace("[aDemande['order_id']]", $aDemande['order_id'], INFO_ORDER_PROCESSING), $properties["engine_log_file"]);
+                // OG 27/03/2013 for table job
+                $sBeginExecutionDate = Date('Y-m-d H:i:s');
+                $date = new DateTime();
+                $iTimeStampBegin = $date->getTimestamp(); // Pour calcul de la durée
+                // fin OG 27/03/2013 for job
+                // $sContenuMail = "";
+                $iNbTraitement = $iNbTraitement + 1;
+                $aUserToRefresh[$iNbTraitement] = $aDemande['user_id'];
+                $aUserToRefresh[$iNbTraitement] = $aDemande['user_id'];
+
+                /*
+                  //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
+                  $sSql = $aSql[$properties["sgbd"]]["right_user"];
+                  $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                  $sSql = str_replace("[sGroupListId]", $sGroupListId, $sSql);
+                  $oPDOResult2 = $oBd->execute($sSql);
+                  // */
+
+                ///*
+                //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
+                $aParams = array();
+                $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                $aParams['sGroupListId'] = array('value' => str_replace(',', '|', $sGroupListId), 'type' => 'group');
+                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["right_user"], $aParams);
+                //*/
+
+                if ($oBd->erreurRencontree) {
+                    writeToLog(INFO_REQUEST_ERROR . $sSql, $properties["engine_log_file"]);
+                    writeToLog(INFO_PHP_ERROR, $properties["engine_log_file"]);
+                    $sMessage = "Erreur SQL.";
+                    // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
+                    $iStatut = $sEnErreur;
+                } else {
+                    if ($sGroupListId == "0") {
+                        $bAutorisationDemande = true;
+                    } else {
+                        $bAutorisationDemande = false;
+                        while ($aTraitementsAutorise = $oBd->ligneSuivante($oPDOResult2)) {
+
+                            if ($aTraitementsAutorise['workspace_id'] == $aDemande['workspace_id']) {
+                                $bAutorisationDemande = true;
+                            }
+                        }
+                    }
+                    if ($bAutorisationDemande == true) {
+                        if (class_exists("Traitement.class.inc") == false) {
+                            include_once ("Traitement.class.inc");
+                        }
+
+                        /*
+                          // recuperer le nom du fichier fmw a traiter
+                          $sSql = $aSql[$properties["sgbd"]]["select_traitement"];
+                          $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                          $sSql = str_replace("[iWorkspaceId]", $aDemande['workspace_id'], $sSql);
+                          $oPDOResult3 = $oBd->execute($sSql);
+                          // */
+
+                        ///*
+                        // recuperer le nom du fichier fmw a traiter
+                        $aParams = array();
+                        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                        $aParams['iWorkspaceId'] = array('value' => $aDemande['workspace_id'], 'type' => 'number');
+                        $oPDOResult3 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["select_traitement"], $aParams);
+                        //*/
+
+                        $aTraitement = $oBd->ligneSuivante($oPDOResult3);
+                        $iEmailTemplateId = $aTraitement['email_template_id'];
+                        $oPDOResult3 = $oBd->fermeResultat();
+                        // $sSql = $aSql[$properties["sgbd"]]["select_transit_dir"];
+                        // $oPDOResult4 = $oBd->execute($sSql);
+                        // $aAction = $oBd->ligneSuivante ($oPDOResult4);
+                        // $properties["transit_dir"] = $aAction["value"];
+                        // $oPDOResult4 = $oBd->fermeResultat();
+                        
+                        //Lancement du traitement correspondant à la demande.
+                        $bValidFmeLicence = false;
+                        switch($aFmeEngine['fme_engine_type_id']) {
+                            // Traitement exécuté par une occurrence de FME Cloud via l'api rest.
+                            case 'fme_cloud_for_gtf':
+                                $oFmeCloudForGtf = new FmeCloudForGtf($aFmeEngine['iam_access_key_id'], $aFmeEngine['iam_secret_access_key'], $aFmeEngine['s3_region'], 'u0jtg81u4c', 'te', $properties['gtf_instance_id']);
+                            break;
+                            // Traitement exécuté par une occurrence de FME Cloud via l'api rest.
+                            case 'fme_cloud':
+                                $oFmeCloud = new FmeCloud($aFmeEngine['server_url'], $aFmeEngine['fme_cloud_api_token']);
+                                // Liste des occurrences de FME Server.
+                                $aFmeServerInstances = $oFmeCloud->serviceRequest('instances');
+                                if (!empty($aFmeServerInstances)) {
+                                    //print_r($aFmeServerInstances);
+                                    $oFmeServerInstance = $aFmeServerInstances[0];
+                                    // Démarrage de l'occurence si elle est en pause.
+                                    if ($oFmeServerInstance->state == 'PAUSED') {
+                                        $oFmeCloud->startInstance($oFmeServerInstance->id);
+                                        // Statut = en cours.
+                                        $iStatut = 1;
+                                    }
+                                    else if ($oFmeServerInstance->state == 'RUNNING') {
+                                        //print_r($oFmeServer->getToken());
+                                        $oFmeServer = new FmeServer($oFmeServerInstance->instance_url, $aFmeEngine['login'], $aFmeEngine['password'], 'day', 1);
+                                        // Statut de la licence FME --> erreur avec FME Cloud .
+                                        //$oLicenseStatus = $oFmeServer->serviceRequest('licensing/license/status');
+                                        //if ($oLicenseStatus->isLicensed === true && $oLicenseStatus->isLicenseExpired === false) {
+                                            $bValidFmeLicence = true;
+                                            //
+                                            $oAmazonS3 = new AmazonS3($aFmeEngine['s3_access_key_id'], $aFmeEngine['s3_secret_access_key'], $aFmeEngine['s3_region']);
+                                            //
+                                            $oTraitement = new Traitement($oBd, $aDemande['order_id'], $properties["engine_log_file"], $aDemande['wk_params'], $properties, $aDemande['workspace_id'] . "/fme/" . $aTraitement['fmw_file']);
+                                            if (!$oTraitement->bErreur) {
+                                                $sResultat = $oTraitement->processFmeServerOrder($oFmeServer, $aDemande, $aTraitement, $aUser, $oAmazonS3);
+                                                //$sDateFin = new DateTime(date("Y-m-d H:i:s"));
+                                                $sLogFme = $oTraitement->sLogFme;
+                                            }
+                                            // http 200 : $oFmeServer->aLastCurlRequestInfo->http_code
+                                            if ($oTraitement->oJobResult->status == 'SUCCESS') {
+                                                $sMessage = "";
+                                                $iStatut = 3;
+                                                // Fichier de résultat.
+                                                //if ($sResultat != "")
+                                                    //$sLienResultat = $sResultat;
+                                                $sLienLogFme = $sLogFme;
+                                            }
+                                            else {
+                                                $sMessage = "";
+                                                $iStatut = $sEnErreur;
+                                            }
+                                        //}
+                                        // Mise en pause de l'occurence.
+                                        $oFmeCloud->pauseInstance($oFmeServerInstance->id);
+                                    }
+                                }
+                            break;
+                            // Traitement exécuté par un serveur fme via l'api rest.
+                            case 'fme_server':
+                                $oFmeServer = new FmeServer($aFmeEngine['server_url'], $aFmeEngine['login'], $aFmeEngine['password'], 'day', 1);
+                                // Statut de la licence FME.
+                                $oLicenseStatus = $oFmeServer->serviceRequest('licensing/license/status');
+                                if ($oLicenseStatus->isLicensed === true && $oLicenseStatus->isLicenseExpired === false) {
+                                    $bValidFmeLicence = true;
+                                    $oTraitement = new Traitement($oBd, $aDemande['order_id'], $properties["engine_log_file"], $aDemande['wk_params'], $properties, $aDemande['workspace_id'] . "/fme/" . $aTraitement['fmw_file']);
+                                    if (!$oTraitement->bErreur) {
+                                        $sResultat = $oTraitement->processFmeServerOrder($oFmeServer, $aDemande, $aTraitement, $aUser);
+                                        //$sDateFin = new DateTime(date("Y-m-d H:i:s"));
+                                        $sLogFme = $oTraitement->sLogFme;
+                                    }
+                                    // http 200 : $oFmeServer->aLastCurlRequestInfo->http_code
+                                    if ($oTraitement->oJobResult->status == 'SUCCESS') {
+                                        $sMessage = "";
+                                        $iStatut = 3;
+                                        // Fichier de résultat.
+                                        //if ($sResultat != "")
+                                            //$sLienResultat = $sResultat;
+                                        $sLienLogFme = $sLogFme;
+                                    }
+                                    else {
+                                        $sMessage = "";
+                                        $iStatut = $sEnErreur;
+                                    }
+                                }
+                            break;
+                            // Traitement exécuté par un fme local.
+                            case 'desktop':
+                                $aLicence = getFmeLicence($properties['fme_path']);
+                                $bLicenceIsValid = $aLicence['valid'];
+                                $aLicence['valid'] = 1;
+                                if ($aLicence['valid'] == 1) {
+                                    $bValidFmeLicence = true;
+                                    $sDateDebut = new DateTime(date("Y-m-d H:i:s"));
+                                    $oTraitement = new Traitement($oBd, $aDemande['order_id'], $properties["engine_log_file"], $aDemande['wk_params'], $properties, $aDemande['workspace_id'] . "/fme/" . $aTraitement['fmw_file']);
+
+                                    if (!$oTraitement->bErreur) {
+                                        $sResultat = $oTraitement->Process();
+                                        $sDateFin = new DateTime(date("Y-m-d H:i:s"));
+                                        $sLogFme = $oTraitement->sLogFme;
+                                    }
+                                    //Gestion des erreurs.
+
+                                    if ($oTraitement->bFmeCrash)
+                                        $iStatut = 1;
+                                    elseif ($oTraitement->bErreur) {
+                                        if ($aTraitement["failed_action_id"] != "" && $oTraitement->sSource != "") {
+                                            $aSource = explode("/", $oTraitement->sSource);
+                                            $sSourceDirectory = $properties["upload_dir"] . $aSource[0];
+
+                                            if ($aTraitement["failed_action_id"] == 1) {
+                                                clearDir($sSourceDirectory);
+                                                writeToLog(INFO_DELETE_DIRECTORY . $sSourceDirectory . '.', $properties["engine_log_file"]);
+                                            } elseif ($aTraitement["failed_action_id"] == 2) {
+                                                /*
+                                                  $sSql = $aSql[$properties["sgbd"]]["select_user"];
+                                                  $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
+                                                  $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
+                                                  $oPDOResult2 = $oBd->execute($sSql);
+                                                  // */
+                                                ///*
+                                                // Selection de l'utilisateur
+                                                $aParams = array();
+                                                $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
+                                                $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
+                                                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["select_user"], $aParams);
+                                                //*/
+                                                if ($oBd->erreurRencontree) {
+                                                    writeToLog(INFO_GET_USER_INFO_ERROR . $aDemande['user_id'] . ". (SQL = " . $sSql . ")", $properties["engine_log_file"]);
+                                                } else {
+                                                    $aUser = $oBd->ligneSuivante($oPDOResult2);
+
+                                                    $sUser = userToFolder($aUser["name"]);
+                                                    if (file_exists($properties["transit_dir"])) {
+                                                        if (!file_exists($properties["transit_dir"] . "/failed/")) {
+                                                            mkdir($properties["transit_dir"] . "/failed/");
+                                                        }
+                                                        if (!file_exists($properties["transit_dir"] . "/failed/" . $sUser)) {
+                                                            mkdir($properties["transit_dir"] . "/failed/" . $sUser);
+                                                        }
+                                                        if (!file_exists($properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"])) {
+                                                            mkdir($properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"]);
+                                                        }
+                                                        rename($sSourceDirectory, $properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"]);
+                                                        writeToLog(str_replace('[sSourceDirectory]', $sSourceDirectory, INFO_MOVING_FILE) . $properties["transit_dir"] . "/failed/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"] . '.', $properties["engine_log_file"]);
+                                                    } else {
+                                                        writeToLog(str_replace("[properties['transit_dir']]", $properties['transit_dir'], INFO_DIRECTORY_NOT_FOUND_ENGINE), $properties["engine_log_file"]);
+                                                        $iStatut = $sEnErreur;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                        $sMessage = $oTraitement->sMessageErreur;
+                                        $iStatut = $sEnErreur;
+                                        $sResultat = '';
+                                        // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
+                                        // $sContenuMail .= "Contactez l'administrateur pour consulter le fichier de log du robot.<br>";
+                                        $sLienLogFme = $sLogFme;
+                                    } else {
+                                        if ($aTraitement["success_action_id"] != "" && $oTraitement->sSource != "") {
+                                            $aSource = explode("/", $oTraitement->sSource);
+                                            $sSourceDirectory = $properties["upload_dir"] . $aSource[0];
+                                            if ($aTraitement["success_action_id"] == 1) {
+                                                clearDir($sSourceDirectory);
+                                                writeToLog(INFO_DELETE_DIRECTORY . $sSourceDirectory . '.', $properties["engine_log_file"]);
+                                            } elseif ($aTraitement["success_action_id"] == 2) {
+
+                                                /*
+                                                  $sSql = $aSql[$properties["sgbd"]]["select_user"];
+                                                  $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
+                                                  $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
+                                                  $oPDOResult2 = $oBd->execute($sSql);
+                                                  // */
+                                                ///*
+                                                //Selection de l'utilisateur
+                                                $aParams = array();
+                                                $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
+                                                $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
+                                                $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["select_user"], $aParams);
+                                                //*/
+
+                                                if ($oBd->erreurRencontree) {
+                                                    writeToLog(INFO_GET_USER_INFO_ERROR . $aDemande['user_id'] . ". (SQL = " . $sSql . ")", $properties["engine_log_file"]);
+                                                } else {
+                                                    $aUser = $oBd->ligneSuivante($oPDOResult2);
+
+                                                    $sUser = userToFolder($aUser["name"]);
+                                                    if (file_exists($properties["transit_dir"])) {
+                                                        if (!file_exists($properties["transit_dir"] . "/success/")) {
+                                                            mkdir($properties["transit_dir"] . "/success/");
+                                                        }
+                                                        if (!file_exists($properties["transit_dir"] . "/success/" . $sUser)) {
+                                                            mkdir($properties["transit_dir"] . "/success/" . $sUser);
+                                                        }
+                                                        if (!file_exists($properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"])) {
+                                                            mkdir($properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"]);
+                                                        }
+                                                        rename($sSourceDirectory, $properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"]);
+                                                        writeToLog(str_replace('[sSourceDirectory]', $sSourceDirectory, INFO_MOVING_FILE) . $properties["transit_dir"] . "/success/" . $sUser . "/" . $aTraitement["workspace_id"] . "/" . $aDemande["order_id"] . '.', $properties["engine_log_file"]);
+                                                    } else {
+                                                        writeToLog(str_replace("[properties['transit_dir']]", $properties['transit_dir'], INFO_DIRECTORY_NOT_FOUND_ENGINE), $properties["engine_log_file"]);
+                                                        $iStatut = $sEnErreur;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                        $sMessage = "";
+                                        $iStatut = 3;
+                                        // $sContenuMail = "Votre demande de traitement '".$aDemande['workspace_nom']."' a réussi.<br>";
+                                        if ($sResultat != "") {
+                                            // $sContenuMail .= '<A href="'.$properties["url_export"]."/".$sResultat.'">Télécharger le résultat</A><br>';
+                                            $sLienResultat = $sResultat;
+                                        }
+                                        $sLienLogFme = $sLogFme;
+                                    }
+                                    unset($oTraitement);
+                                }
+                            break;
+                        }
+                        // Licence invalide.
+                        if (!$bValidFmeLicence) {
+                            $iTentative = $iTentative - 1;
+                            $sTable = $properties["schema_gtf"] . ".order";
+                            $sChamp = "attempt";
+                            $sWhere = "order_id";
+                            $sListDemande = $aDemande['order_id'];
+                            $oBd->updateLinkedTable($sTable, $sChamp, $sWhere, $sListDemande, $iTentative);
+                            writeToLog(INFO_INVALID_FME_LICENCE_FILE, $properties["engine_log_file"]);
+                            writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["engine_log_file"]);
+                            $sMessage = "Invalid FME licence file. ";
+                            // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
+                            $iStatut = 1;
+                            $sLienLogFme = 'Non disponible';
+                        }
+                        
+                    } else {
+                        writeToLog(INFO_NO_USER_GRANT . $aDemande['workspace_nom'] . ' n\'a pas été défini.', $properties["engine_log_file"]);
+                        writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["engine_log_file"]);
+                        $sMessage = "Vous n''avez pas les droits nécessaires pour réaliser ce traitement.";
+                        // $sContenuMail = 'Votre demande de traitement "'.$aDemande['workspace_nom'].'" a échoué. Voici le message d\'erreur renvoyé : <br><font color="#FF0000">'.$sMessage.'</font><br>';
+                        $iStatut = 6;
+
+                        if (file_exists($sLogFme)) {
+                            $sLienLogFme = $sLogFme;
+                        } else {
+                            $sLienLogFme = 'Non disponible';
+                        }
+                    }
+                }
+                $oPDOResult2 = $oBd->fermeResultat();
+
+                //Mise à jour de la demande.
+
+                if ($iStatut == 3) {
+                    /*
+                      $sSql = $aSql[$properties["sgbd"]]["update_message"];
+                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
+                      $oPDOResult2 = $oBd->execute($sSql);
+                      // */
+                    ///*
+                    // Mise a jour du message
+                    $aParams = array();
+                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
+                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_message"], $aParams);
+                    //*/
+                    if ($oBd->erreurRencontree) {
+                        writeToLog(INFO_TEST_REQUEST_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
+                    }
+                    // Fin - OG 27/03/2013 for table job
+                    $oPDOResult2 = $oBd->fermeResultat();
+                }
+                if ($iStatut == 2 || $iStatut == 4) {
+
+                    /*
+                      $sSql = $aSql[$properties["sgbd"]]["delete_message"];
+                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
+                      $oPDOResult2 = $oBd->execute($sSql);
+                      // */
+                    ///*
+                    
+                    // Mise a jour du message
+                    $aParams = array();
+                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
+                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_message"], $aParams);
+                    //*/
+
+                    if ($oBd->erreurRencontree) {
+                        writeToLog(INFO_TEST_REQUEST_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
+                    }
+                    // Fin - OG 27/03/2013 for table job
+                    $oPDOResult2 = $oBd->fermeResultat();
+                }
+                $sDateTraitement = Date('Y-m-d H:i:s');
+
+                /*
+                $sSql = $aSql[$properties["sgbd"]]["update_demande"];
+                $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                if ($iStatut != 1) {
+                    $timeFirst = strtotime(date_format($sDateDebut, 'Y-m-d H:i:s'));
+                    $timeSecond = strtotime(date_format($sDateFin, 'Y-m-d H:i:s'));
+                    $diff = $timeSecond - $timeFirst;
+                    $iNbSec = $diff;
+                } else {
+                    $iNbSec = "NULL";
+                }
+                // OG 27/03/2013 for table job
+                $date = new DateTime();
+                $iTimeStampEnd = $date->getTimestamp();
+                $iDelay = $iTimeStampEnd - $iTimeStampBegin;
+                $sSql = str_replace("[iNbSec]", $iDelay, $sSql);
+                $sSql = str_replace("[$iStatut]", $iStatut, $sSql);
+                /* $sSql = str_replace("[sMessage]", $sMessage, $sSql); *//*
+                $sSql = str_replace("[sDateTraitement]", $sDateTraitement, $sSql);
+                $sSql = str_replace("[sResultat]", utf8_encode($sResultat), $sSql);
+                $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
+                if ($sLogFme == "") {
+                    $sSql = str_replace("'[sLogFme]'", "NULL", $sSql);
+                } else {
+                    $sSql = str_replace("[sLogFme]", $sLogFme, $sSql);
+                }
+
+                $oPDOResult2 = $oBd->execute($sSql);
+                //*/
+
+                //*
+                // Mise a jour de la demande
+                  $aParams = array();
+                  $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                  if ($iStatut != 1) {
+                      $timeFirst = strtotime(date_format($sDateDebut, 'Y-m-d H:i:s'));
+                      $timeSecond = strtotime(date_format($sDateFin, 'Y-m-d H:i:s'));
+                      $diff = $timeSecond - $timeFirst;
+                      $iNbSec = $diff;
+                  } else
+                    $iNbSec = "NULL";
+                  // OG 27/03/2013 for table job
+                  $date = new DateTime();
+                  $iTimeStampEnd = $date->getTimestamp();
+                  $iDelay = $iTimeStampEnd - $iTimeStampBegin;
+                  $aParams['iNbSec'] = array('value' => $iDelay, 'type' => 'number');
+                  $aParams['iStatut'] = array('value' => $iStatut, 'type' => 'number');
+                  $aParams['sDateTraitement'] = array('value' => $sDateTraitement, 'type' => 'string');
+                  $aParams['sResultat'] = array('value' =>  utf8_encode($sResultat), 'type' => 'string');
+                  $aParams['iOrderId'] = array('value' =>  $aDemande["order_id"], 'type' => 'number');
+                  if ($sLogFme == "") {
+                  $aParams['sLogFme'] = array('value' =>  "NULL", 'type' => 'string');
+                  } else {
+                  $aParams['sLogFme'] = array('value' =>  $sLogFme, 'type' => 'string');
+                  }
+
+                  $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande"], $aParams);
+                  // */
+
+
+                if ($oBd->erreurRencontree) {
+                    writeToLog(INFO_ORDER_UPDATE_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
+                } else {
+                    writeToLog(INFO_ORDER_UPDATE, $properties["engine_log_file"]);
+                    // La demande est terminée avec un résultat
+                    sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
+                        'action' => 'event',
+                        'service' => 'GtfEvents',
+                        'data' => array(
+                            'event' => 'order_finished_with_result',
+                            'order' => array(
+                                'order_id' => $aDemande['order_id'],
+                                'order_status_id' => $aDemande['order_status_id'],
+                                'user_id' => $aDemande['user_id'],
+                                'workspace_id' => $aDemande['workspace_id']
+                            )
+                        )
+                    ));
+                }
+                if ($iStatut != 1) {
+                    /*
+                      $sSql = $aSql[$properties["sgbd"]]["insertJob"];
+                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
+                      $sSql = str_replace("[iWorkspaceId]", $aDemande["workspace_id"], $sSql);
+                      $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
+                      $sSql = str_replace("[sBeginExecutionDate]", $sBeginExecutionDate, $sSql);
+                      $sSql = str_replace("[iDelay]", $iDelay, $sSql);
+                      $sSql = str_replace("[iGtfEngineId]", $properties["id_gtf_engine"], $sSql);
+                      $sSql = str_replace("[iStatut]", $iStatut, $sSql);
+                      //writeToLog('|INFORM|PHP|Test requête OG : '.$sSql,$properties["engine_log_file"]);
+                      $oPDOResult2 = $oBd->execute($sSql);
+                      // */
+                    ///*
+                    // Insert de schemaGtf
+                    $aParams = array();
+                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
+                    $aParams['iWorkspaceId'] = array('value' => $aDemande["workspace_id"], 'type' => 'number');
+                    $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
+                    $aParams['sBeginExecutionDate'] = array('value' => $sBeginExecutionDate, 'type' => 'string');
+                    $aParams['iDelay'] = array('value' => $iDelay, 'type' => 'number');
+                    $aParams['iGtfEngineId'] = array('value' => $properties["id_gtf_engine"], 'type' => 'number');
+                    $aParams['iDelay'] = array('value' => $iDelay, 'type' => 'number');
+                    $aParams['iStatut'] = array('value' => $iStatut, 'type' => 'number');
+                    //writeToLog('|INFORM|PHP|Test requête OG : '.$sSql,$properties["engine_log_file"]);
+                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["insertJob"], $aParams);
+                    //*/
+                    if ($oBd->erreurRencontree) {
+                        writeToLog(INFO_TEST_REQUEST_ERROR . '(' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
+                    }
+                    // Fin - OG 27/03/2013 for table job
+                    $oPDOResult2 = $oBd->fermeResultat();
+                }
+                // Mise à jour de la demande si resultat est vide
+                if ($sResultat == "") {
+
+                    /*
+                      $sSql = $aSql[$properties["sgbd"]]["update_demande_resultat_null"];
+                      $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                      $sSql = str_replace("[iOrderId]", $aDemande["order_id"], $sSql);
+                      $oPDOResult2 = $oBd->execute($sSql);
+                      // */
+
+                    ///*
+                    // Mise a jour de la demande si resultat null
+                    $aParams = array();
+                    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                    $aParams['iOrderId'] = array('value' => $aDemande["order_id"], 'type' => 'number');
+                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande_resultat_null"], $aParams);
+                    //*/
+
+                    if ($oBd->erreurRencontree) {
+                        writeToLog(INFO_ORDER_UPDATE_ERROR . ' (' . $oBd->getBDMessage() . ')', $properties["engine_log_file"]);
+                    } else {
+                        writeToLog(INFO_INFO_ORDER_UPDATE_NULL, $properties["engine_log_file"]);
+                        // La demande est terminée où en erreur
+                        sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
+                            'action' => 'event',
+                            'service' => 'GtfEvents',
+                            'data' => array(
+                                'event' => 'order_finished_or_error',
+                                'order' => array(
+                                    'order_id' => $aDemande['order_id'],
+                                    'order_status_id' => $aDemande['order_status_id'],
+                                    'user_id' => $aDemande['user_id'],
+                                    'workspace_id' => $aDemande['workspace_id']
+                                )
+                            )
+                        ));
+                    }
+                    $oPDOResult2 = $oBd->fermeResultat();
+                }
+
+                // Notification par e-mail.
+                $bMailToSend = false;
+                switch (strtoupper(trim($aDemande['email_option_id']))) {
+                    case 1:
+                        $bMailToSend = True;
+                        break;
+                    case 2:
+                        $bMailToSend = False;
+                        break;
+                    case 3:
+                        if ($iStatut == $sEnErreur) {
+                            $bMailToSend = True;
+                        }
+                        break;
+                    case 4:
+                        if ($iStatut != $sEnErreur) {
+                            $bMailToSend = True;
+                        }
+                        break;
+                    default:
+                        $bMailToSend = True;
+                }
+
+                // Licence invalide.
+                if ($iStatut == 2 && !$bLicenceIsValid) {
+                    // Mise à jour de l'état de la demande de traitement (en attente).
+                    $oBd->updateLinkedTable($properties["schema_gtf"] . ".order", "order_status_id", "order_id", $aDemande['order_id'], 1);
+                    // Licence invalide : 1 mail par jour max.
+                    $sToday = date('d/m/Y');
+                    $sMailLicenceFile = __DIR__ . '\mail_licence.txt';
+                    if (file_exists($sMailLicenceFile))
+                        if (file_get_contents($sMailLicenceFile) == $sToday)
+                            $bMailToSend = false;
+                    file_put_contents($sMailLicenceFile, $sToday);
+                    // Mise à jour du nombre de tentative dans la base.
+                    $oBd->updateLinkedTable($properties["schema_gtf"] . ".order", "attempt", "order_id", $aDemande['order_id'], 0);
+                }
+                
+                // Envoi du mail.
+                if ($bMailToSend == true) {
+                    /*
+                      $sSql = $aSql[$properties["sgbd"]]["select_user"];
+                      $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
+                      $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
+                      $oPDOResult2 = $oBd->execute($sSql);
+                      // */
+                    ///*
+                    
+                    //Mise a jour de la demande si resultat null
+                    $aParams = array();
+                    $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
+                    $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
+                    $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["update_demande_resultat_null"], $aParams);
+                    //*/
+                    if ($oBd->erreurRencontree) {
+                        writeToLog(INFO_GET_USER_INFO_ERROR . $aDemande['user_id'] . ". (SQL = " . $sSql . ")", $properties["engine_log_file"]);
+                    } else {
+                        // $aUser = $oBd->ligneSuivante ($oPDOResult2);
+                        // $sContenuMail = "Bonjour ".$aUser["name"].",<br><br><br>".$sContenuMail;
+                        // $sContenuMail .= "<br><br><cite><h6>Cet e-mail a été envoyé par un robot, merci de ne pas répondre.</h6></cite><br>";
+                        //	
+
+                        if (empty($iEmailTemplateId))
+                            $iEmailTemplateId = $properties['default_mail_model'];
+
+                        /*
+                          // Nom des moteurs GTF et FME
+                          $sSql = $aSql[$properties["sgbd"]]["get_gtf_engine_name"];
+                          $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                          $sSql = str_replace('[gtf_engine_id]', $aDemande['gtf_engine_id'], $sSql);
+                          $oPDOResult2 = $oBd->execute($sSql);
+                          // */
+                        ///*
+                        // Nom des moteurs GTF et FME
+                        $aParams = array();
+                        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                        $aParams['gtf_engine_id'] = array('value' => $aDemande['gtf_engine_id'], 'type' => 'number');
+                        $oPDOResult2 = $oBd->executeWithParams($sSql = $aSql[$properties["sgbd"]]["get_gtf_engine_name"], $aParams);
+                        //*/
+
+
+                        if ($oBd->erreurRencontree) {
+                            writeToErrorLog(ERROR_0001);
+                        } else
+                            $aRow = $oBd->ligneSuivante($oPDOResult2);
+
+                        // URL de téléchargement du résultat
+                        $sResultUrl = '';
+                        if ($sResultat != "")
+                            $sResultUrl = '<a href="' . $properties["url_export"] . "/gtf/" . $sResultat . '">Télécharger le résultat</a>';
+
+                        // Dates
+                        $sOrderDate = date_format(date_create($aDemande['order_date']), 'd/m/Y H:i:s');
+
+                        // Envoi du mail
+                        $aObjects = array();
+                        if (!empty($sMessage))
+                            $aObjects['error'] = $sMessage;
+                        $aObjects['oOrder'] = new OrderLib($oBd, $aDemande["order_id"], $properties, "v_order");
+                        $aObjects['oOrder']->formatOrderEmail();
+                        $oEmail = new Email($oBd, $iEmailTemplateId, $properties, $aObjects);
+                        if (!empty($oEmail->oEmailTemplate->name))
+                            $oEmail->send();
+                    }
+                    $oPDOResult2 = $oBd->fermeResultat();
+                } else {
+                    // pas d'envoi de mail
+                    writeToLog(INFO_NO_MAIL_SEND, $properties["engine_log_file"]);
+                }
+            } //fin du if sur les tentatives
+            //fin de while	
+        }
+        if ($iNbTraitement >= 1) {
+            //Crée ou modifie le fichier de maj de l'application pour l'utilisateur.
+            writeToLog(INFO_END_ORDER_PROCESSING, $properties["engine_log_file"]);
+        }
+        $oPDOResult = $oBd->fermeResultat();
+    }
+} else {
+    writeToErrorLog(constant($ErrorLicense));
+}
+
+//Teste si le traitement est autorisé si la demande est en heure creuse.
+//retourne true si le traitement est autorisé, retourne false si le traitement n'est pas autorisé.
+function TesteHeureCreuse($sHeureMin, $sHeureMax) {
+    $sHeure = date('H');
+    $sMinute = date('i');
+    $aHeureMin = explode(":", $sHeureMin);
+    $aHeureMax = explode(":", $sHeureMax);
+    $bMax = false;
+    $bMin = false;
+    //Test de l'heure minimale.
+    if ($sHeure > $aHeureMin[0]) {
+        $bMin = true;
+    } else {
+        if ($sHeure == $aHeureMin[0] && $sMinute >= $aHeureMin[1]) {
+            $bMin = true;
+        }
+    }
+    //Test de l'heure maximale. 
+    if ($sHeure < $aHeureMax[0]) {
+        $bMax = true;
+    } else {
+        if (($aHeureMax[0] < $aHeureMin[0]) && ($sHeure < 24)) {
+            $bMax = true;
+        }
+        if ($sHeure == $aHeureMax[0] && $sMinute <= $aHeureMax[1]) {
+            $bMax = true;
+        }
+    }
+    if ($bMin && $bMax) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+?>
diff --git a/src/module_gtf/gtf.engine/gtf.engines/engine.sql.inc b/src/module_gtf/gtf.engine/gtf.engines/engine.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..9238c05f34c70114a95d81de0ce93e15aad66ef5
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/engine.sql.inc
@@ -0,0 +1,18 @@
+<?php
+//Requête pour engine.php pgsql
+$aSql['pgsql']['boucle_1']='SELECT "order".*, rt_priority.priority_id, rt_priority.label_id as priorite_libelle_id, workspace.name as workspace_nom FROM ([sSchemaGtf]."order" LEFT JOIN [sSchemaGtf].rt_priority ON "order".priority_id = rt_priority.priority_id) LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id WHERE (order_status_id = 1 or order_status_id = 5) AND "order".period_id IS NULL AND "order".deleted IS not TRUE AND "order".gtf_engine_id=[iIdGtfEngine] AND "order".priority_id >= [iPriorityId] ORDER BY "order".priority_id ASC, "order".order_id ASC LIMIT [iNnbrOrderMax]';
+$aSql['pgsql']['boucle_2']='SELECT "order".*, rt_priority.priority_id, rt_priority.label_id as priorite_libelle_id, workspace.name as workspace_nom FROM ([sSchemaGtf]."order" LEFT JOIN [sSchemaGtf].rt_priority ON "order".priority_id = rt_priority.priority_id) LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id WHERE (order_status_id = 1 or order_status_id = 5) AND "order".period_id IS NULL AND "order".deleted IS not TRUE AND "order".gtf_engine_id=[iIdGtfEngine] AND "order".priority_id >  [iPriorityId] ORDER BY "order".priority_id ASC, "order".order_id ASC LIMIT [iNnbrOrderMax]';
+$aSql['pgsql']['right_user']='SELECT workspace."workspace_id" FROM [sSchemaGtf].workspace RIGHT JOIN [sSchemaGtf].workspace_group ON workspace.workspace_id = workspace_group.workspace_id  GROUP BY workspace."workspace_id", workspace_group."group_id" HAVING workspace_group."group_id" IN ([sGroupListId]) ORDER BY workspace."workspace_id" ASC';
+$aSql['pgsql']['update_demande']="UPDATE [sSchemaGtf].order SET length_sec = [iNbSec], order_status_id=[iStatut], execution_date=[sDateTraitement], result_url=[sResultat], log_url=[sLogFme] WHERE order_id=[iOrderId]";
+$aSql['pgsql']['update_demande_resultat_null']="UPDATE [sSchemaGtf].order SET result_url=NULL WHERE order_id=[iOrderId]";
+$aSql['pgsql']['select_user']='SELECT * FROM [sSchemaFramework].user WHERE "user_id"=[iUserId]';
+$aSql['pgsql']['select_traitement']='SELECT * FROM [sSchemaGtf].workspace WHERE workspace_id=[iWorkspaceId]';
+//$aSql['pgsql']['select_transit_dir']='SELECT value FROM [sSchemaGtf].property WHERE property=\'$properties["transit_dir"]\'';
+$aSql['pgsql']['select_fme_path']='select local_path as fme_path from [sSchemaGtf].gtf_engine, [sSchemaGtf].fme_engine where fme_engine.fme_engine_id = gtf_engine.fme_engine_id AND gtf_engine.gtf_engine_id = [gtf_engine_id]';
+$aSql['pgsql']['update_message']="UPDATE [sSchemaGtf].message SET status=1 WHERE order_id=[iOrderId]";
+$aSql['pgsql']['delete_message']="DELETE FROM [sSchemaGtf].message where order_id=[iOrderId]";
+$aSql['pgsql']['get_gtf_engine_name'] = 'SELECT gtf_engine.name AS gtf_engine_name,fme_engine.name AS fme_engine_name FROM [sSchemaGtf].gtf_engine,[sSchemaGtf].fme_engine WHERE gtf_engine.fme_engine_id=fme_engine.fme_engine_id AND gtf_engine_id=[gtf_engine_id]';
+$aSql['pgsql']["getLogin"] = 'SELECT "login" from [sSchemaFramework]."user" where user_id = [iUserId]';
+$aSql['pgsql']["insertJob"] = 'INSERT INTO [sSchemaGtf].job(order_id, workspace_id, "user_id", execution_date, length_sec, engine_id, order_status_id) VALUES ([iOrderId], [iWorkspaceId], [iUserId], [sBeginExecutionDate] , [iDelay], [iGtfEngineId], [iStatut])';
+$aSql['pgsql']["getFmeEngine"] = 'SELECT * from [sSchemaGtf].fme_engine WHERE fme_engine_id = (SELECT fme_engine_id FROM [sSchemaGtf].gtf_engine WHERE gtf_engine_id = [gtf_engine_id])';
+?>
diff --git a/src/module_gtf/gtf.engine/gtf.engines/lang_engines/en-lang.inc b/src/module_gtf/gtf.engine/gtf.engines/lang_engines/en-lang.inc
new file mode 100755
index 0000000000000000000000000000000000000000..be577b8a73f3ac1d5a237a13e6597b69177e3c0d
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/lang_engines/en-lang.inc
@@ -0,0 +1,7 @@
+<?php
+
+//Error Licence
+define('E001', "Orders unprocessed: Invalid lincense file");
+define('E002', "Orders unprocessed: Expired license file");
+define('E003', "Orders unprocessed: Number of the GTF engine upper than available engines");
+?>
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/lang_engines/fr-lang.inc b/src/module_gtf/gtf.engine/gtf.engines/lang_engines/fr-lang.inc
new file mode 100755
index 0000000000000000000000000000000000000000..7d5d50467c79c859e3bbc9b6426827a4d139e006
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/lang_engines/fr-lang.inc
@@ -0,0 +1,8 @@
+<?php
+
+//Error Licence
+define('E001', "Demandes non trait�es : Fichier de licence invalide");
+define('E002', "Demandes non trait�es : Fichier de licence expir�");
+define('E003', "Demandes non trait�es : Num�ro du moteur GTF sup�rieur au nombre de moteurs disponibles");
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/licenses/license.txt b/src/module_gtf/gtf.engine/gtf.engines/licenses/license.txt
new file mode 100755
index 0000000000000000000000000000000000000000..3c36fb544038981697144e6b626959999445908d
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/licenses/license.txt
@@ -0,0 +1,7 @@
+#GTF  License file
+Product: GTF
+License number: Sgtf-0001
+Expiry date: Permanent
+Engines: 5
+Owner: Veremes
+Key: 295C919B 5A83DA4D 23CC819F 68CB7E3A A41BB54F 
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/php_engine_conf.inc b/src/module_gtf/gtf.engine/gtf.engines/php_engine_conf.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f43c4cc8e9e90bd3b0113870ae1a1155623a6118
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/php_engine_conf.inc
@@ -0,0 +1,4 @@
+<?php
+set_include_path('C:\svn\gtf_next_version\gtf.engines;C:\svn\vitis_next_version\vas\rest\conf;C:\svn\vitis_next_version\vas\rest\class');
+ini_set ('error_log', 'C:/svn/gtf_next_version/gtf.engines/php/log/php_errors.log');
+?>
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/properties_engine.inc b/src/module_gtf/gtf.engine/gtf.engines/properties_engine.inc
new file mode 100755
index 0000000000000000000000000000000000000000..83162f38c8cfa9e062df6c79879b94556699aafc
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/properties_engine.inc
@@ -0,0 +1,17 @@
+<?php
+require_once ("properties.inc");
+$properties["robot_root_dir"] = str_replace("\\","/",dirname($_SERVER["PHP_SELF"])); // Chemin du répertoire courant : gtf.engines
+if ($properties["id_gtf_engine"] != '') {
+	$subdir = '/engine_'.$properties["id_gtf_engine"];
+} else {
+	$subdir = '/subscription';
+}
+
+$properties["engine_log_home"] = $properties['vas_home']."/log/engines/".date($properties['log_period']).$subdir;
+$properties["debug_log_file"] = $properties["engine_log_home"]."/debug.log";
+$properties["engine_log_file"] = $properties["engine_log_home"]."/engine.log";
+$properties["notify_log_file"] = $properties["engine_log_home"]."/notify.log";
+$properties["sql_log_file"] = $properties["engine_log_home"]."/sql.log";
+$properties["subscription_log_file"] = $properties["engine_log_home"]."/subscription.log";
+$properties["error_log_file"] = $properties['vas_home']."/log/engines"."/error.log";
+?>
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/regex2.dll b/src/module_gtf/gtf.engine/gtf.engines/regex2.dll
new file mode 100755
index 0000000000000000000000000000000000000000..f84a847a0de92fc59fa2ff8494ff700e62b87326
Binary files /dev/null and b/src/module_gtf/gtf.engine/gtf.engines/regex2.dll differ
diff --git a/src/module_gtf/gtf.engine/gtf.engines/string.inc b/src/module_gtf/gtf.engine/gtf.engines/string.inc
new file mode 100755
index 0000000000000000000000000000000000000000..26ffca304f8d99f30136f889c18a8ec11f367835
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/string.inc
@@ -0,0 +1,57 @@
+<?php
+// subscription.php
+	define('INFO_BASE_CONNECTION_ERROR', '|FATAL |PHP|Connexion impossible a la base ');
+	define('INFO_BASE_CONNECT', '|INFORM|PHP|Connect to ');
+	define('INFO_SUBSCRIPTION_PROCESSING', '|INFORM|PHP|Processing subscription order_id= ');
+	define('INFO_REQUEST_ERROR', '|FATAL |PHP| Erreur lors de l éxécution de la requête : ');
+	define('INFO_PHP_ERROR', '|ERROR|PHP| .');
+	define('INFO_ORDER_CREATED', '|INFORM|PHP|Order [iNouvelId] has been created.');
+	define('INFO_ORDER_CREATION_ERROR', '|ERROR|PHP|Problème lors de la création d\'un nouvel enregistrement dans la table "demande"');
+	define('INFO_CHECK_SQL_LOG', '|FATAL |PHP|Consultez le log sql.');
+	define('INFO_NO_USER_GRANT', '|FATAL |PHP|L utilisateur n a pas les droits nécessaires pour réaliser un traitement :');
+	define('INFO_CONTACT_ADMINISTRATOR', '|ERROR|PHP|Contactez l\'administrateur.');
+	define('INFO_CHECK_ORDER_FILES', '***************** Vérification des fichiers présents pour la demande [aDemande["order_id"]] *******************');
+	define('INFO_CHECK_DIRECTORY', '|INFORM|PHP|Check directory ');
+	define('INFO_MOVE_DIRECTORY', '|INFORM|PHP|Move directory from ');
+	define('INFO_MOVE_FILE', '|INFORM|PHP|Move file ');
+	define('INFO_DIRECTORY_NOT_FOUND_SUBSCRIPTION', "|ERROR|PHP| Le dossier [sFolder] n'existe pas. Contactez l'administrateur et vérifiez le dossier configuré dans l'interface de configuration de surveillance des dossier");
+	define('INFO_ORDER_PERIOD_NOT_FOUND', "|ERROR|PHP| La période d'abonnement n°[iPeriodeId] n'existe pas. Contactez l'administrateur et vérifiez la période d'abonnement ajoutée dans l'utilitaire pycron");
+	define('INFO_END_ORDER_PROCESSING', '***************** Fin du traitement des demandes *******************');
+	
+// Traitement.class.inc
+	define('INFO_RESOURCES', '|INFORM|PHP| Ressources : robot.php, Traitement.class.inc, Paramètres = [sParams], Fmw = [this->sFmwFileName]');
+	define('INFO_NULL_ELEMENT', '|WARN  |PHP| Un élément est null lors de la création de la demande : ');
+	define('INFO_DB_PARAM', 'Params : [aValeurs[0]] - Valeur : ');
+	define('INFO_ERROR', '|ERROR|');
+	define('INFO_COMMAND_ERROR', '|ERROR|PHP| Erreur lors de l exécution de la commande : ');
+	define('INFO_INFORM', '|INFORM|');
+	define('INFO_SUCCESSFUL_TREATMENT', '|INFORM|PHP| Traitement réussi.');
+	define('INFO_FILE_COMPRESSION', '|INFORM|PHP| Compression des fichiers du répertoire [sZipDir] en zip.');
+	define('INFO_TREATMENT_FAILURE', '|FATAL |PHP| Treatment failure.');
+	define('INFO_FILES_COMPRESSION_FAILURE', '|ERROR|PHP| Impossible de zipper les fichiers du répertoire [sZipDir] vers [sZipFileDir] dans fichier ');
+	define('INFO_COMPRESSED_FILES', '|INFORM|PHP| Compressed files : ');
+	define('INFO_DECOMPRESSING_FILE', '|INFORM|PHP| Décompression du fichier ');
+	define('INFO_FILE_COMPRESSION_FAILURE', '|ERROR|PHP| Impossible de dézipper le fichier [sZipFile] vers ');
+	define('INFO_FILE_COMPRESSION_DIRECTORY', '|INFORM|PHP| Fichiers décompressés vers ');
+	define('INFO_VALID_DATA_SOURCE_FILE_EXTENSION', '|INFORM|PHP| Extension valide pour le fichier de la source de données : ');
+	define('INFO_OUTPUT_DATA_DIRECTORY', '|INFORM|PHP| Répertoire de sortie des données : ');
+	define('INFO_OUTPUT_DATA_FILE', '|INFORM|PHP| Fichier de sortie des données : ');
+	define('INFO_GTF_HOME', '|INFORM|PHP| GTF_HOME=');
+	define('INFO_FME_PATH', '|INFORM|PHP| FME_PATH=');
+	define('INFO_TREATMENT_COMMAND_LINE', '|INFORM|PHP| Ligne de commande exécutant le traitement : ');
+	
+// engine.php
+	define('INFO_BASE_CONNECTION', '|INFORM|PHP| Connexion à la base de données ');
+	define('INFO_TOO_MANY_ORDER_ATTEMPT', "|INFORM|PHP| La demande [aDemande['order_id']] n'a pas été traitée suite à de trop nombreuses tentatives.");
+	define('INFO_ORDER_UPDATE_ERROR', '|ERROR|PHP| Impossible de mettre à jour la demande. ');
+	define('INFO_ORDER_UPDATE', '|INFORM|PHP| Mise à jour de la demande.');
+	define('INFO_ORDER_PROCESSING', "***************** Traitement de la demande [aDemande['order_id']] *******************");
+	define('INFO_DELETE_DIRECTORY', '|INFORM|PHP| Supression du dossier ');
+	define('INFO_GET_USER_INFO_ERROR', "|ERROR|PHP| Impossible de récupérer les informations sur l'utilisateur numéro ");
+	define('INFO_MOVING_FILE', '|INFORM|PHP| Déplacement du dossier [sSourceDirectory] vers le dossier ');
+	define('INFO_DIRECTORY_NOT_FOUND_ENGINE', "|ERROR|PHP| Le dossier [properties['transit_dir']] n'existe pas.");
+	define('INFO_INVALID_FME_LICENCE_FILE', '|FATAL |PHP| Invalid FME Licence file.');
+	define('INFO_TEST_REQUEST_ERROR', '|ERROR|PHP|Requête test en erreur. ');
+	define('INFO_INFO_ORDER_UPDATE_NULL', '|INFORM|PHP| Mise à jour de la demande (resultat null).');
+	define('INFO_NO_MAIL_SEND', "|INFORM|PHP| Aucun mail n'a été envoyé ");
+?>
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/subscription.bat b/src/module_gtf/gtf.engine/gtf.engines/subscription.bat
new file mode 100755
index 0000000000000000000000000000000000000000..f1830d76cc9f1ade733005ddb559e81b70133b3c
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/subscription.bat
@@ -0,0 +1,5 @@
+@echo off
+set GTF_ENGINE_HOME=%~dp0
+set PHP_HOME=%GTF_ENGINE_HOME%php
+rem %1 correspond au param�tre pass� par pycron
+"%PHP_HOME%\php.exe" "%GTF_ENGINE_HOME%\subscription.php" %1
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/subscription.php b/src/module_gtf/gtf.engine/gtf.engines/subscription.php
new file mode 100755
index 0000000000000000000000000000000000000000..68d5006129c8a22b1ff2e319691b5804e4d65db0
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/subscription.php
@@ -0,0 +1,363 @@
+<?php
+
+/**
+ * \file subscription.php
+ * \brief subscription.php \n \n Ce fichier contient un programme php.
+ *
+ * Ce programme permet de traiter les demandes d'abonnement de traitements.
+ *
+ * \author Laurent Panabieres <laurent.panabieres@veremes.com>
+ */
+//set_include_path(dirname($_SERVER["PHP_SELF"]).'/../gtf.client'.';'.dirname($_SERVER["PHP_SELF"]).'/php/lib');
+//ini_set ('writeToErrorLog', dirname($_SERVER["PHP_SELF"]).'/php/php.log');
+// Si "$_SERVER["HTTP_HOST"]" n'est pas renseigné -> php notice.
+if (!isset($_SERVER["HTTP_HOST"]))
+    $_SERVER["HTTP_HOST"] = 'localhost';
+
+require_once ("php_engine_conf.inc");
+require_once ("gtf_lib/GtfFmwParser.class.inc");
+require_once ("vmlib/Vm.class.inc");
+require_once ("vmlib/phpUtil.inc");
+require_once("vmlib/dbUtil.inc");
+//require_once ("robot_properties.inc");
+//require_once ("engine_properties.inc");
+$properties["id_gtf_engine"] = "";
+require_once ("properties_engine.inc");
+require_once ("subscription.sql.inc");
+require_once ("vmlib/logUtil.inc");
+require_once("Ldap.class.inc");
+require_once 'vmlib/error.inc';
+require_once 'string.inc';
+
+//writeToLog('|INFO  |PHP| dump prop '. var_export($properties,true),$properties["subscription_log_file"]);
+
+/*
+  // Création du dossier journalier pour l'écriture du log
+  if (!is_dir($properties["engine_log_home"]. "/".date($properties["log_period"]))){
+  // Le dossier pour l'écritude du log n'existe pas, il est créé
+  if (!mkdir($properties["engine_log_home"]. "/".($properties["log_period"]), 0777, true)) {
+  writeToErrorLog(ERROR_0025.$properties["engine_log_home"]. "/".date($properties["log_period"]).'"');
+  }
+  }
+ */
+//Pas besoin de mot de passe pour le robot
+$oBd = new Vm($properties["login"], '', $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $properties["page_encoding"]);
+if ($oBd->erreurRencontree) {
+    writeToLog(INFO_BASE_CONNECTION_ERROR . $properties["database"], $properties["subscription_log_file"]);
+} else {
+    writeToLog(INFO_BASE_CONNECT . $properties["database"], $properties["subscription_log_file"]);
+    // Traitement des demandes d'abonnement.
+    $iNbTraitement = 0;
+    // Récupération de l'identifiant de la période d'abonnement qui est lancé !
+    $iPeriodeId = $_SERVER['argv'][1];
+    
+    /*
+    $sSql = $aSql[$properties["sgbd"]]["verif_period_id"];
+    $sSql = str_replace("[iOrderPeriodId]", $iPeriodeId, $sSql);
+    $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+    $oPDOResult = $oBd->execute($sSql);
+    */
+    
+    // Récupération de l'identifiant de la période d'abonnement qui est lancé !
+    $aParams = array();
+    $aParams['iOrderPeriodId'] = array('value' => $iPeriodeId, 'type' => 'number');
+    $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+    $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["verif_period_id"], $aParams);
+
+    if ($oBd->ligneSuivante($oPDOResult) != "") {
+        
+        /*
+        $sSql = $aSql[$properties["sgbd"]]["abonnement"];
+        $sSql = str_replace("[iOrderPeriodId]", $iPeriodeId, $sSql);
+        $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+        $oPDOResult = $oBd->execute($sSql);
+         */
+        
+        // Recuperation des éléments de gestion des abonnements Gtf
+        $aParams = array();
+        $aParams['iOrderPeriodId'] = array('value' => $iPeriodeId, 'type' => 'number');
+        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+        $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["abonnement"], $aParams);
+        
+        while ($aDemande = $oBd->ligneSuivante($oPDOResult)) {
+            if (is_null($aDemande['order_date'])) {
+                $sDateTraitement = $aDemande['order_date'];
+            } else {
+                $sDateTraitement = $aDemande['execution_date'];
+            }
+            
+            /*
+            $sSql = $aSql[$properties["sgbd"]]["getLogin"];
+            $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
+            $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
+            $oPDOResult2 = $oBd->execute($sSql);
+            */
+            
+            // Récupération des information de connection de l'utilisateur et de ses droits
+            $aParams = array();
+            $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
+            $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
+            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["getLogin"], $aParams);
+            
+            $aUser = $oBd->ligneSuivante($oPDOResult2);
+            $sGroupListId = getUserGroupsEngines($aUser["login"], $oBd, $properties["mixed_rights_management"]);
+            writeToLog(INFO_SUBSCRIPTION_PROCESSING . $aDemande["order_id"], $properties["subscription_log_file"]);
+            $iNbTraitement = $iNbTraitement + 1;
+            //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
+            /*
+            $sSql = $aSql[$properties["sgbd"]]["right_user"];
+            $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+            $sSql = str_replace("[sGroupListId]", $sGroupListId, $sSql);
+            $oPDOResult2 = $oBd->execute($sSql);
+            */
+            
+            // Verification des droits utilisateur sur la demande
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+            $aParams['sGroupListId'] = array('value' => str_replace(',', '|', $sGroupListId), 'type' => 'group');
+            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["right_user"], $aParams);
+
+            if ($oBd->erreurRencontree) {
+                writeToLog(INFO_REQUEST_ERROR . $sSql, $properties["subscription_log_file"]);
+                writeToLog(INFO_PHP_ERROR, $properties["subscription_log_file"]);
+            } else {
+                if ($sGroupListId == "0") {
+                    $bAutorisationDemande = true;
+                } else {
+                    $bAutorisationDemande = false;
+                    while ($aTraitementsAutorise = $oBd->ligneSuivante($oPDOResult2)) {
+                        if ($aTraitementsAutorise['workspace_id'] == $aDemande['workspace_id']) {
+                            $bAutorisationDemande = true;
+                        }
+                    }
+                }
+                if ($bAutorisationDemande == true) {
+                    //Création d'une nouvelle demande.
+                    require_once("gtf_lib/gtf_object//Order.class.inc");
+                    $iNouvelId = $oBd->insert($properties["schema_gtf"], "order", Array("priority_id" => 1, "workspace_id" => $aDemande['workspace_id'], "order_status_id" => 1, "user_id" => $aDemande['user_id'], "period_id" => "", "order_date" => date("Y-m-d H:i:s"), "execution_date" => null, "wk_params" => $aDemande['wk_params'], "result_url" => "", "message" => "", "email_option_id" => $aDemande['email_option_id'], "gtf_engine_id" => $aDemande['gtf_engine_id'], "email_notifications" => $aDemande['email_notifications']), $properties["schema_gtf"] . ".seq_order", "order_id");
+                    $oOrder = new OrderLib($oBd, -1, $properties);
+                    $oOrder->getIdEngine($iNouvelId, "order", $aDemande['workspace_id']);
+                    $oOrder->update();
+                    if ($iNouvelId != "") {
+                        writeToLog(str_replace('[iNouvelId]', $iNouvelId, INFO_ORDER_CREATED), $properties["subscription_log_file"]);
+                        // L'abonnement crée une demande
+                        sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
+                            'action' => 'event',
+                            'service' => 'GtfEvents',
+                            'data' => array(
+                                'event' => 'subscription_creating_order',
+                                'order' => array(
+                                    'order_id' => $aDemande['order_id'],
+                                    'order_status_id' => $aDemande['order_status_id'],
+                                    'user_id' => $aDemande['user_id'],
+                                    'workspace_id' => $aDemande['workspace_id']
+                                )
+                            )
+                        ));
+                    } else {
+                        writeToLog(INFO_ORDER_CREATION_ERROR, $properties["subscription_log_file"]);
+                        writeToLog(INFO_CHECK_SQL_LOG, $properties["subscription_log_file"]);
+                    }
+                } else {
+                    writeToLog(INFO_NO_USER_GRANT . $aDemande['name'] . ' n\'as pas été définie.', $properties["subscription_log_file"]);
+                    writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["subscription_log_file"]);
+                    $iNouvelId = $oBd->update($properties["schema_gtf"], "order", Array("enabled" => FALSE), "order_id", $aDemande["order_id"], "");
+                }
+            }
+            $oPDOResult2 = $oBd->fermeResultat();
+        }
+        /*
+        $sSql = $aSql[$properties["sgbd"]]["dir_survey"];
+        $sSql = str_replace("[iOrderPeriodId]", $iPeriodeId, $sSql);
+        $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
+        $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+        writeToErrorLog($sSql);
+        $oPDOResult = $oBd->execute($sSql);
+        */
+        
+        $aParams = array();
+        $aParams['iOrderPeriodId'] = array('value' => $iPeriodeId, 'type' => 'number');
+        $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
+        $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+        $oPDOResult = $oBd->executeWithParams($aSql[$properties["sgbd"]]["dir_survey"], $aParams);
+        
+        while ($aDemande = $oBd->ligneSuivante($oPDOResult)) {
+            if (is_null($aDemande['order_date'])) {
+                $sDateTraitement = $aDemande['order_date'];
+            } else {
+                $sDateTraitement = $aDemande['execution_date'];
+            }
+            //writeToLog(str_replace('[aDemande["order_id"]]', $aDemande["order_id"], INFO_CHECK_ORDER_FILES), $properties["subscription_log_file"]); 
+            writeToLog(INFO_CHECK_DIRECTORY . $aDemande["condition"] . ' for survey order_id=' . $aDemande["order_id"], $properties["subscription_log_file"]);
+            //parcours du dossier de la condition de la demande
+            $sFolder = utf8_decode($aDemande["condition"]);
+            if (is_dir($sFolder)) {
+                $MyDirectory = opendir($sFolder);
+                while ($Entry = @readdir($MyDirectory)) {
+
+                    if ($Entry != '.' && $Entry != '..') {
+                        //deplacement vers le dossier upload en fonction du type
+                        $bCopie = false;
+                        $bIsFile = false;
+                        $sUnique = UniqFileName();
+                        if (is_dir($sFolder . '/' . $Entry)) {
+                            $bIsFile = false;
+                            $bCopie = rename($sFolder . "/" . $Entry, $properties["upload_dir"] . "/" . $sUnique);
+                            writeToLog(INFO_MOVE_DIRECTORY . $sFolder . "/" . $Entry . ' to ' . $properties["upload_dir"] . "/" . $sUnique, $properties["subscription_log_file"]);
+                        } else {
+                            $bIsFile = true;
+                            mkdir($properties["upload_dir"] . "/" . $sUnique);
+                            $bCopie = rename($sFolder . "/" . $Entry, $properties["upload_dir"] . "/" . $sUnique . "/" . $Entry);
+                            writeToLog(INFO_MOVE_FILE . $sFolder . "/" . $Entry . ' to ' . $properties["upload_dir"] . "/" . $sUnique . "/" . $Entry, $properties["subscription_log_file"]);
+                        }
+                        if ($bCopie) {
+                            //creation de la demande
+                            //Vérification si l'utilisateur a les droits pour faire une demande de ce traitement.
+                            /*
+                            $sSql = $aSql[$properties["sgbd"]]["getLogin"];
+                            $sSql = str_replace("[sSchemaFramework]", $properties["schema_framework"], $sSql);
+                            $sSql = str_replace("[iUserId]", $aDemande['user_id'], $sSql);
+                            $oPDOResult2 = $oBd->execute($sSql);
+                            */
+                            
+                            // Récupération des infos utilisateurs
+                            $aParams = array();
+                            $aParams['sSchemaFramework'] = array('value' => $properties["schema_framework"], 'type' => 'schema_name');
+                            $aParams['iUserId'] = array('value' => $aDemande['user_id'], 'type' => 'number');
+                            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["getLogin"], $aParams);
+
+                            $aUser = $oBd->ligneSuivante($oPDOResult2);
+                            $sGroupListId = getUserGroupsEngines($aUser["login"], $oBd, $properties["mixed_rights_management"]);
+                            /*
+                            $sSql = $aSql[$properties["sgbd"]]["right_user"];
+                            $sSql = str_replace("[sSchemaGtf]", $properties["schema_gtf"], $sSql);
+                            $sSql = str_replace("[sGroupListId]", $sGroupListId, $sSql);
+                            $oPDOResult2 = $oBd->execute($sSql);
+                            */
+                            
+                            // Vérification des droits de l'utilisateurs pour la demande
+                            $aParams = array();
+                            $aParams['sSchemaGtf'] = array('value' => $properties["schema_gtf"], 'type' => 'schema_name');
+                            $aParams['sGroupListId'] = array('value' => str_replace(',', '|', $sGroupListId), 'type' => 'group');
+                            $oPDOResult2 = $oBd->executeWithParams($aSql[$properties["sgbd"]]["right_user"], $aParams);
+
+                            if ($oBd->erreurRencontree) {
+                                writeToLog(INFO_REQUEST_ERROR . $sSql, $properties["subscription_log_file"]);
+                                writeToLog(INFO_PHP_ERROR, $properties["subscription_log_file"]);
+                            } else {
+                                if ($sGroupListId == "0") {
+                                    $bAutorisationDemande = true;
+                                } else {
+                                    $bAutorisationDemande = false;
+                                    while ($aTraitementsAutorise = $oBd->ligneSuivante($oPDOResult2)) {
+                                        if ($aTraitementsAutorise['workspace_id'] == $aDemande['workspace_id']) {
+                                            $bAutorisationDemande = true;
+                                        }
+                                    }
+                                }
+                                if ($bAutorisationDemande == true) {
+                                    //Création d'une nouvelle demande.
+                                    //writeToLog($properties["workspace_dir"],$properties["subscription_log_file"]);
+                                    $oGtfFmwParser = new GtfFmwParser($properties['vas_home'] . '/ws_data/gtf/workspace' . "/" . $aDemande['workspace_id'] . "/fme/" . $aDemande['fmw_file']);
+                                    $iNouvelId = "";
+
+                                    if ($bIsFile) {
+                                        $aDemande['wk_params'] = getParams($oGtfFmwParser, $sUnique . "/" . utf8_encode($Entry), $aDemande['wk_params']);
+                                    } else {
+                                        $aDemande['wk_params'] = getParams($oGtfFmwParser, $sUnique . "/", $aDemande['wk_params']);
+                                    }
+                                    require_once("gtf_lib/gtf_object/Order.class.inc");
+                                    $iNouvelId = $oBd->insert($properties["schema_gtf"], "order", Array("priority_id" => 1, "workspace_id" => $aDemande['workspace_id'], "order_status_id" => 1, "user_id" => $aDemande['user_id'], "period_id" => "", "order_date" => date("Y-m-d H:i:s"), "execution_date" => null, "wk_params" => $aDemande['wk_params'], "result_url" => "", "message" => "", "email_option_id" => $aDemande['email_option_id'], "gtf_engine_id" => $aDemande['gtf_engine_id'], "email_notifications" => $aDemande['email_notifications']), $properties["schema_gtf"] . ".seq_order", "order_id");
+                                    $oOrder = new OrderLib($oBd, -1, $properties);
+                                    $oOrder->getIdEngine($iNouvelId, "order", $aDemande['workspace_id']);
+                                    $oOrder->update();
+                                    if ($iNouvelId != "") {
+                                        writeToLog(str_replace('[iNouvelId]', $iNouvelId, INFO_ORDER_CREATED), $properties["subscription_log_file"]);
+                                        // La surveillance crée une demande
+                                        sendWebsocketMessage($properties['websocket_server'], $properties['websocket_port'], $properties['websocket_alias'], array(
+                                            'action' => 'event',
+                                            'service' => 'GtfEvents',
+                                            'data' => array(
+                                                'event' => 'survey_creating_order',
+                                                'order' => array(
+                                                    'order_id' => $aDemande['order_id'],
+                                                    'order_status_id' => $aDemande['order_status_id'],
+                                                    'user_id' => $aDemande['user_id'],
+                                                    'workspace_id' => $aDemande['workspace_id']
+                                                )
+                                            )
+                                        ));
+                                    } else {
+                                        writeToLog(INFO_ORDER_CREATION_ERROR, $properties["subscription_log_file"]);
+                                        writeToLog(INFO_CHECK_SQL_LOG, $properties["subscription_log_file"]);
+                                    }
+                                } else {
+                                    writeToLog(INFO_NO_USER_GRANT . $aDemande['name'] . ' n\'as pas été définie.', $properties["subscription_log_file"]);
+                                    writeToLog(INFO_CONTACT_ADMINISTRATOR, $properties["subscription_log_file"]);
+                                    $iNouvelId = $oBd->update($properties["schema_gtf"], "order", Array("enabled" => FALSE), "order_id", $aDemande["order_id"], "");
+                                }
+                            }
+                        }
+                    }
+                }
+            } else {
+                writeToLog(str_replace('[sFolder]', $sFolder, INFO_DIRECTORY_NOT_FOUND_SUBSCRIPTION), $properties["subscription_log_file"]);
+            }
+        }
+    } else {
+        writeToLog(str_replace('[iPeriodeId]', $iPeriodeId, INFO_ORDER_PERIOD_NOT_FOUND), $properties["subscription_log_file"]);
+    }
+
+    if ($iNbTraitement >= 1) {
+        //writeToLog(INFO_END_ORDER_PROCESSING, $properties["subscription_log_file"]);
+    }
+    $oPDOResult = $oBd->fermeResultat();
+}
+
+function getParams($oGtfFmwParser, $sNewSource, $sParams) {
+    $aTGui = array();
+    $sChaine = "";
+    $aParams = dbParamsAsArray($sParams);
+    foreach ($oGtfFmwParser->aGuiObject as $aGui) {
+        if ($aGui->sDefault_Macro != "") {
+            array_push($aTGui, $aGui);
+        }
+    }
+    foreach ($aTGui as $oGui) {
+        //Teste si le paramètre est une source
+        if ($oGui->bIsSource) {
+            writeToErrorLog($oGui->sDefault_Macro);
+            writeToErrorLog($sNewSource);
+            $aParams[$oGui->sDefault_Macro] = $sNewSource;
+        }
+    }
+    $aKeys = array_keys($aParams);
+
+    for ($i = 0; $i < count($aKeys); $i++) {
+        if ($sChaine == "") {
+            $sChaine = $aKeys[$i] . "=" . $aParams[$aKeys[$i]];
+        } else {
+            $sChaine .= "|" . $aKeys[$i] . "=" . $aParams[$aKeys[$i]];
+        }
+    }
+    //$sChaine = substr($sChaine, 0, -1)."\"";
+    return $sChaine;
+}
+
+function dbParamsAsArray($sAllParams) {
+    $aAllParams = Array();
+    //$aLigne = explode("|", $sAllParams);
+    $aLigne = stringExplode($sAllParams, "|", "\"", "\"");
+    foreach ($aLigne as $sValeur) {
+        $sValeur = str_replace("\"", "", $sValeur);
+        $aValeurs = explode("=", $sValeur);
+        if ($aValeurs[2] != "") {
+            $sTemp = $aValeurs[1] . "=" . $aValeurs[2];
+            $aValeurs[1] = $sTemp;
+        }
+        $aAllParams[$aValeurs[0]] = $aValeurs[1];
+    }
+    return $aAllParams;
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/subscription.sql.inc b/src/module_gtf/gtf.engine/gtf.engines/subscription.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..46786f56f4b581f40195a98f7317c6ae107a3859
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/subscription.sql.inc
@@ -0,0 +1,8 @@
+<?php
+//Requête pour subscription.php pgsql
+$aSql['pgsql']['verif_period_id']='SELECT period_id, name FROM [sSchemaGtf].period WHERE period_id = [iOrderPeriodId]';
+$aSql['pgsql']['abonnement']='SELECT "order".*, workspace.*, period.cron_expression FROM ([sSchemaGtf].order LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id) LEFT JOIN [sSchemaGtf].period ON period.period_id = "order".period_id WHERE order_status_id = 1 AND "order".period_id = [iOrderPeriodId] AND "order".period_id IS NOT NULL AND "order".survey_id IS NULL AND "order"."enabled" = TRUE ';
+$aSql['pgsql']['dir_survey']='SELECT "order".*, workspace.*, period.cron_expression, REPLACE(inbox.name, \'$user\', "user"."login") || \'/\' || "order".condition as condition FROM ([sSchemaGtf].order LEFT JOIN [sSchemaFramework].user on "order".user_id = "user"."user_id" LEFT JOIN [sSchemaGtf].inbox on "order".inbox_id = inbox.inbox_id LEFT JOIN [sSchemaGtf].workspace ON "order".workspace_id=workspace.workspace_id) LEFT JOIN [sSchemaGtf].period ON period.period_id = "order".period_id WHERE order_status_id = 1 AND "order".period_id = [iOrderPeriodId] AND "order".period_id IS NOT NULL AND "order".survey_id = 1 AND "order"."enabled" = TRUE';
+$aSql['pgsql']['right_user']='SELECT workspace."workspace_id" FROM [sSchemaGtf].workspace RIGHT JOIN [sSchemaGtf].workspace_group ON workspace.workspace_id = workspace_group.workspace_id GROUP BY workspace."workspace_id", workspace_group."group_id" HAVING workspace_group."group_id" IN ([sGroupListId]) ORDER BY workspace."workspace_id" ASC';
+$aSql['pgsql']["getLogin"]='SELECT "login" FROM [sSchemaFramework]."user" WHERE user_id = [iUserId]';
+?>
\ No newline at end of file
diff --git a/src/module_gtf/gtf.engine/gtf.engines/tcl/Traitement.tcl b/src/module_gtf/gtf.engine/gtf.engines/tcl/Traitement.tcl
new file mode 100755
index 0000000000000000000000000000000000000000..84defdd90f71dd4f671d9b42610fe24d3070c1d8
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/tcl/Traitement.tcl
@@ -0,0 +1,64 @@
+# Récupération des variables d'environnement
+set sEnginesDir [file dirname $argv0]/..
+
+set sGtfDir $env(GTF_HOME)
+set sFmePath \{$env(FME_PATH)\}
+
+# Lecture de la librairie tclUtil
+source "$sEnginesDir/tcl/tclUtil.tcl"
+
+# Récupération des parametres sous forme de variables TCL
+set lLParams [stringToParam [lindex $argv 0] "|" "="]
+set lParametre [lindex $lLParams 0]
+set lValeur [lindex $lLParams 1]
+
+set sFmwFileName [lindex $lValeur 0]
+set sRobotLogName [lindex $lValeur 1] 
+set sFmeLogName [lindex $lValeur 2] 
+
+set i 0
+set sFmeParam ""
+foreach sParam $lParametre {
+  if {$sParam!="LOG_ROBOT" && $sParam!="LOG_FILENAME" && $sParam!="FMWFILENAME"} then {
+	set valeur [lindex $lValeur $i]
+	
+	# Vérification de l'emplacement de la balise <space>
+	set iSpacePlace [string first <space> $valeur]
+	# Si la balise existe, elle est remplacée par un espace (ça permet de gérer les cas ou la source (ex : de type access) peut contenir plusieurs extensions (mdb, accdb)
+	if {$iSpacePlace > 0} then {
+		set valeur [string map {<space> \ } $valeur]
+	}
+ 	set sFmeParam "$sFmeParam --$sParam \{$valeur\}"
+  }
+	incr i 
+}
+
+# Création de nouvelles variables
+set sScriptPath $sGtfDir/$sFmwFileName
+
+# Ecriture des parametres du traitement FME dans le log
+set sLigne "$sFmePath {$sScriptPath} $sFmeParam -LOG_FILENAME {$sFmeLogName}"
+
+# Variable qui va permettre d'écrire la commande TCL dans un fichier avec un nom unique
+set rand [expr int([expr rand() * 100000])]
+
+set sCommandeFile "$sEnginesDir/tcl/$rand.tcl"
+
+# Permet de récupérer un guillement (ajouté pour Edgar)
+set sLigne [string map {<quote> \"} $sLigne] 
+# Permet de récupérer un backslash (ajouté pour Edgar)
+set sLigne [string map {<backslashes> \\} $sLigne]
+
+set fCommande [open $sCommandeFile w+]
+# subst -nobackslashes $sLigne -- ligne inutile. Mis en commentaire le 20/06/12 par L.P.	
+puts $fCommande $sLigne
+close $fCommande
+
+if [ catch { source "$sCommandeFile" } sErreurFME] {
+	puts stdout "1|$sErreurFME" 
+} else {
+	puts stdout "0|Traitement réalisé avec succés"
+}
+
+file delete -force $sCommandeFile
+
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat b/src/module_gtf/gtf.engine/gtf.engines/tcl/commande.tcl
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat
rename to src/module_gtf/gtf.engine/gtf.engines/tcl/commande.tcl
diff --git a/src/module_gtf/gtf.engine/gtf.engines/tcl/tclUtil.tcl b/src/module_gtf/gtf.engine/gtf.engines/tcl/tclUtil.tcl
new file mode 100755
index 0000000000000000000000000000000000000000..873ec019c0f13dbaae06f4a35897d1e9d23bf454
--- /dev/null
+++ b/src/module_gtf/gtf.engine/gtf.engines/tcl/tclUtil.tcl
@@ -0,0 +1,50 @@
+# + ---------------------------------------------------------------------- +
+# + tclUtil.tcl                                                            +
+# + Fonction TCL qui peuvent �tre r�utilis�es                              +
+# + Veremes - Fabien Marty - Mai 2007                                      +
+# + ---------------------------------------------------------------------- +
+
+
+##
+#D�coupe une chaine et renvoie les �l�ments d'une liste 
+#contenant une liste des param�tres et une liste des valeurs.
+##
+
+proc stringToParam {sString sDelimited1 sDelimited2} {
+	set lParams [split $sString $sDelimited1]
+	
+	foreach sParam $lParams {
+		set lResult [split $sParam =]
+		set sParametre [lindex $lResult 0]
+		set iLength [llength $lResult]
+	
+		if  { $iLength > 2 } {
+		set i 1
+		 while {$i < $iLength} {
+			set sTemp [lindex $lResult $i]
+			append sValeur $sTemp =
+		  set i [incr i]
+		 }
+
+		set sValue [string trimright $sValeur =]
+		} else {
+
+		set sValue [lindex $lResult 1]
+		}
+	lappend lListeParam $sParametre
+	lappend lListeValue $sValue
+	}	
+ return  [list $lListeParam $lListeValue]
+}
+
+##
+#�criture dans le log de la chaine pass�e en param�tre. 
+##
+
+proc writeToLog {sLogName sString sType} {
+	set oLogFile [open $sLogName "a"]
+	set sHeure [clock seconds]
+	set sHeureFormat [clock format $sHeure -format "%d/%m/%Y %H:%M:%S" -gmt false]
+	puts $oLogFile "$sHeureFormat	|$sType|TCL| $sString"
+	close $oLogFile
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/configuration/configuration_vitis_configuration_gtfConfig.json b/src/module_gtf/module/forms/configuration/configuration_vitis_configuration_gtfConfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..2c3d7e25557d9a332a252de8c57f13252c5bf535
--- /dev/null
+++ b/src/module_gtf/module/forms/configuration/configuration_vitis_configuration_gtfConfig.json
@@ -0,0 +1,204 @@
+{
+    "search":{},
+    "update":{
+        "name":"configuration_gtf_config_update_form",
+        "title":"",
+        "input_size":"xs",
+        "event":"updateProperties('gtf')",
+        "nb_cols":7,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "label":"TITLE_PROPERTIES_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "name":"title_properties",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "class": "form-field-inline gtf-instance-id",
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"gtf_instance_id",
+                        "label":"FORM_GTF_INSTANCE_ID_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "read_only":true,
+                        "nb_cols":10
+                    },
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 2,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "btn_generate_gtf_instance_id",
+                                "label": "FORM_BTN_GENERATE_GTF_INSTANCE_ID_WORKSPACE_EDIT_WIDGET",
+                                "class": "btn-primary",
+                                "event": "generateGtfInstanceId()"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"not_compressed_extension",
+                        "label":"FORM_NOT_COMPRESSED_EXTENSION_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"default_mail_model",
+                        "label":"FORM_DEFAULT_MAIL_MODEL_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "web_service":{
+                            "ressource_id":"gtf/emailtemplates",
+                            "id_key":"email_template_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":5
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"pycron_dir",
+                        "label":"FORM_PYCRON_DIR_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "label":"FORM_THEME_ENGINE_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "name":"title_properties_engine",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"heure_creuse_min",
+                        "label":"FORM_HEURE_CREUSE_MIN_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"heure_creuse_max",
+                        "label":"FORM_HEURE_CREUSE_MAX_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"number",
+                        "name":"nbr_order_max",
+                        "label":"FORM_NBR_ORDER_MAX_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "min": 0,
+                        "max": 20,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"number",
+                        "name":"max_attempt",
+                        "label":"FORM_MAX_ATTEMPT_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "min": 0,
+                        "max": 20,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "label":"FORM_LOG_SECTION_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "name":"title_properties_log",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"log_directories.Pycron",
+                        "label":"FORM_PYCRON_LOG_DIRECTORY_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "label":"FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_GTF_CONFIG",
+                        "name":"title_properties_ext_conn_string",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"connectionStringExternalIp",
+                        "label":"FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_CONNECTIONSTRINGIP",
+                        "nb_cols":6
+                    },{
+                        "type":"number",
+                        "name":"connectionStringExternalPort",
+                        "label":"FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_CONNECTIONSTRINGPORT",
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{},
+    "display":{}
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/configuration/configuration_vitis_configuration_gtfLicense.json b/src/module_gtf/module/forms/configuration/configuration_vitis_configuration_gtfLicense.json
new file mode 100755
index 0000000000000000000000000000000000000000..f0c7d45ad3dd78f704271e2f364078891f4c2349
--- /dev/null
+++ b/src/module_gtf/module/forms/configuration/configuration_vitis_configuration_gtfLicense.json
@@ -0,0 +1,96 @@
+{
+    "search":{},
+    "update":{
+        "name":"configuration_gtf_license_update_form",
+        "title":"",
+        "input_size":"xs",
+        "event":"activateGtfLicense()",
+        "nb_cols":7,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "label":"FORM_SUBTITLE_INFORMATIONS_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "name":"title_licence_infos",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "label":"FORM_SUBTITLE_REQUEST_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "name":"title_licence_request",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"gtf_file_license_request_",
+                                "label":"FORM_FILE_REQUEST_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                                "event": "showGtfLincenseFileRequestForm()",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "label":"FORM_ACTIVATION_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "name":"title_licence_activation",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"upload",
+                        "name":"license_file",
+                        "label":"FORM_LICENSE_FILE_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "required": true,
+                        "options": {
+                                "allowedFileExtensions": ["txt"],
+                                "showRemove": false,
+                                "showUpload": false,
+                                "showPreview": false
+                        },
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_ACTIVATE_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{},
+    "display":{}
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/configuration/gtf_license_file_request.json b/src/module_gtf/module/forms/configuration/gtf_license_file_request.json
new file mode 100755
index 0000000000000000000000000000000000000000..c0935f715d57a0c89a8699a2a144320357f04f3e
--- /dev/null
+++ b/src/module_gtf/module/forms/configuration/gtf_license_file_request.json
@@ -0,0 +1,78 @@
+{
+    "search":{
+    },
+    "update":{
+        "name":"gtf_license_file_request_form",
+        "title":"",
+        "input_size":"xs",
+        "event":"askGtfLicenseFile()",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"to",
+                        "label":"FORM_TO_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"email",
+                        "name":"reply_to",
+                        "label":"FORM_REPLY_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "required": true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"license_number",
+                        "label":"FORM_LICENSE_NUMBER_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"message",
+                        "label":"FORM_MAIL_BODY_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                        "size":8,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"send_request",
+                                "label":"FORM_SEND_MAIL_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE",
+                                "class":"btn-primary gtf-license-file-request-connect-btn"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+
+    },
+    "display":{
+            
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/engine/engine_gtf_fme_engine.json b/src/module_gtf/module/forms/engine/engine_gtf_fme_engine.json
new file mode 100644
index 0000000000000000000000000000000000000000..5aee23e556f2b293b27cc4cf195ab82d01f5edb2
--- /dev/null
+++ b/src/module_gtf/module/forms/engine/engine_gtf_fme_engine.json
@@ -0,0 +1,1000 @@
+{
+    "search":{
+        "name":"gtf_v_fme_engine_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_FME_ENGINE",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"server_id",
+                        "label":"FORM_SERVER_ENGINE_FME_ENGINE",
+                        "web_service":{
+                            "ressource_id":"gtf/servers",
+                            "id_key":"server_id",
+                            "label_key":"hostname",
+                            "parameters":{
+                                    "order_by":"hostname"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"fme_engine_type_id",
+                        "label":"FORM_TYPE_ENGINE_FME_ENGINE",
+                        "web_service":{
+                            "ressource_id":"gtf/fmeenginetypes",
+                            "id_key":"fme_engine_type_id",
+                            "label_key":"fme_engine_type_label",
+                            "parameters":{
+                                    "filter":{
+                                            "lang":"getProperty('language')"
+                                    },
+                                    "order_by":"fme_engine_type_label"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"url",
+                        "name":"server_url",
+                        "label":"FORM_SERVER_URL_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_v_fme_engine_update_form",
+        "title":"FORM_TITLE_ENGINE_FME_ENGINE",
+        "input_size":"xs",
+        "initEvent":"initGtfFmeEngineForm()",
+        "event":"sendSimpleForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_engine_id",
+                        "label":"FORM_ID_ENGINE_FME_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"server_id",
+                        "label":"FORM_SERVER_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "web_service":{
+                            "ressource_id":"gtf/servers",
+                            "id_key":"server_id",
+                            "label_key":"hostname",
+                            "parameters":{
+                                    "order_by":"hostname"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields": [
+                  {
+                    "type": "radio",
+                    "name": "useexternaldbconnection",
+                    "label": "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE",
+                    "nb_cols": 12,
+                    "id": "Element_0_1_1",
+                    "options": {
+                      "choices": [
+                        {
+                          "label": "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_YES",
+                          "value": true
+                        },
+                        {
+                          "label": "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_NO",
+                          "value": false
+                        }
+                      ]
+                    }
+                  }
+                ]
+              },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"fme_engine_type_id",
+                        "label":"FORM_TYPE_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "web_service":{
+                            "ressource_id":"gtf/fmeenginetypes",
+                            "id_key":"fme_engine_type_id",
+                            "label_key":"fme_engine_type_label",
+                            "parameters":{
+                                    "filter":{
+                                            "lang":"getProperty('language')"
+                                    },
+                                    "order_by":"fme_engine_type_label"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"local_path",
+                        "label":"FORM_PATH_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"url",
+                        "name":"server_url",
+                        "label":"FORM_SERVER_URL_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"fme_cloud_api_token",
+                        "label":"FORM_FME_CLOUD_API_TOKEN_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "name":"fme_server_instance_title",
+                        "label":"FORM_FME_SERVER_INSTANCE_TITLE_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "class":"h5",
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"fme_server_instance_name",
+                        "label":"FORM_FME_SERVER_INSTANCE_NAME_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"login",
+                        "label":"FORM_LOGIN_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"password",
+                        "name":"password",
+                        "label":"FORM_PASSWORD_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_server_instance_status",
+                        "label":"FORM_FME_SERVER_INSTANCE_STATUS_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "class":"fme_cloud_button",
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"fme_cloud_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"start_fme_server_instance",
+                                "label":"FORM_BTN_START_FME_SERVER_INSTANCE_ENGINE_FME_ENGINE",
+                                "class":"btn-success",
+                                "event":"StartFmeServerInstance()",
+                                "disabled": true
+                            },
+                            {
+                                "type":"button",
+                                "name":"pause_fme_server_instance",
+                                "label":"FORM_BTN_PAUSE_FME_SERVER_INSTANCE_ENGINE_FME_ENGINE",
+                                "class":"btn-warning",
+                                "event":"PauseFmeServerInstance()",
+                                "disabled": true
+                            },
+                            {
+                                "type":"button",
+                                "name":"fme_server_instance_version",
+                                "label":"FORM_BTN_FME_SERVER_INSTANCE_VERSION_ENGINE_FME_ENGINE",
+                                "class":"btn-primary",
+                                "event":"displayFmeServerInstanceInfo()",
+                                "disabled": true
+                            },
+                            {
+                                "type":"button",
+                                "name":"refresh_fme_server_instance_status",
+                                "glyphicon":"refresh",
+                                "class":"btn-primary",
+                                "event":"refreshFmeServerInstanceStatus()",
+                                "tooltip": {
+                                    "title":"FORM_BTN_REFRESH_FME_SERVER_INSTANCE_STATUT_STATUT_ENGINE_FME_ENGINE",
+                                    "placement": "bottom",
+                                    "trigger": "hover",
+                                    "container": "body"
+                                }
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "name":"amazon_s3_title",
+                        "label":"FORM_AMAZON_S3_TITLE_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "class":"h5",
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"s3_access_key_id",
+                        "label":"FORM_S3_ACCESS_KEY_ID_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"password",
+                        "name":"s3_secret_access_key",
+                        "label":"FORM_S3_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"fme_server_s3_bucket",
+                        "label":"FORM_FME_SERVER_S3_BUCKET_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"iam_access_key_id",
+                        "label":"FORM_IAM_ACCESS_KEY_ID_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"password",
+                        "name":"iam_secret_access_key",
+                        "label":"FORM_IAM_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"s3_region",
+                        "label":"FORM_S3_REGION_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "options":[
+                            "FORM_S3_REGION_US-EAST-2_ENGINE_FME_ENGINE|us-east-2",
+                            "FORM_S3_REGION_US-EAST-1_ENGINE_FME_ENGINE|us-east-1",
+                            "FORM_S3_REGION_US-WEST-1_ENGINE_FME_ENGINE|us-west-1",
+                            "FORM_S3_REGION_US-WEST-2_ENGINE_FME_ENGINE|us-west-2",
+                            "FORM_S3_REGION_AP-SOUTH-1_ENGINE_FME_ENGINE|ap-south-1",
+                            "FORM_S3_REGION_AP-NORTHEAST-2_ENGINE_FME_ENGINE|ap-northeast-2",
+                            "FORM_S3_REGION_AP-SOUTHEAST-1_ENGINE_FME_ENGINE|ap-southeast-1",
+                            "FORM_S3_REGION_AP-SOUTHEAST-2_ENGINE_FME_ENGINE|ap-southeast-2",
+                            "FORM_S3_REGION_AP-NORTHEAST-1_ENGINE_FME_ENGINE|ap-northeast-1",
+                            "FORM_S3_REGION_CA-CENTRAL-1_ENGINE_FME_ENGINE|ca-central-1",
+                            "FORM_S3_REGION_CN-NORTH-1_ENGINE_FME_ENGINE|cn-north-1",
+                            "FORM_S3_REGION_EU-CENTRAL-1_ENGINE_FME_ENGINE|eu-central-1",
+                            "FORM_S3_REGION_EU-WEST-1_ENGINE_FME_ENGINE|eu-west-1",
+                            "FORM_S3_REGION_EU-WEST-2_ENGINE_FME_ENGINE|eu-west-2",
+                            "FORM_S3_REGION_EU-WEST-3_ENGINE_FME_ENGINE|eu-west-3",
+                            "FORM_S3_REGION_SA-EAST-1_ENGINE_FME_ENGINE|sa-east-1"
+                        ],
+                        "visible":false,
+                        "nb_cols":12
+                    }
+                ]
+            },            
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"amazon_s3_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"test_amazon_s3_bucket",
+                                "label":"FORM_BTN_TEST_AMAZON_S3_BUCKET_ENGINE_FME_ENGINE",
+                                "class":"btn-primary",
+                                "event":"testAmazonS3BucketConnection()"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"update_button",
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"test_fme_engine",
+                                "label":"FORM_BTN_TEST_FME_ENGINE_ENGINE_FME_ENGINE",
+                                "class":"btn-primary",
+                                "event":"testFmeEngine('local_path')",
+                                "visible": false
+                            },
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_v_fme_engine_insert_form",
+        "title":"FORM_TITLE_ENGINE_FME_ENGINE",
+        "input_size":"xs",
+        "initEvent":"initGtfFmeEngineForm()",
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"server_id",
+                        "label":"FORM_SERVER_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "web_service":{
+                            "ressource_id":"gtf/servers",
+                            "id_key":"server_id",
+                            "label_key":"hostname",
+                            "parameters":{
+                                    "order_by":"hostname"
+                            }
+                        },
+                        "options":["|"],
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields": [
+                  {
+                    "type": "radio",
+                    "name": "useexternaldbconnection",
+                    "label": "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE",
+                    "nb_cols": 12,
+                    "id": "Element_0_1_1",
+                    "options": {
+                      "choices": [
+                        {
+                          "label": "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_YES",
+                          "value": true
+                        },
+                        {
+                          "label": "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_NO",
+                          "value": false
+                        }
+                      ]
+                    },
+                    "default_value": false
+                  }
+                ]
+              },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"fme_engine_type_id",
+                        "label":"FORM_TYPE_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "web_service":{
+                            "ressource_id":"gtf/fmeenginetypes",
+                            "id_key":"fme_engine_type_id",
+                            "label_key":"fme_engine_type_label",
+                            "parameters":{
+                                    "filter":{
+                                            "lang":"getProperty('language')"
+                                    },
+                                    "order_by":"fme_engine_type_label"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"local_path",
+                        "label":"FORM_PATH_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"url",
+                        "name":"server_url",
+                        "label":"FORM_SERVER_URL_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"fme_cloud_api_token",
+                        "label":"FORM_FME_CLOUD_API_TOKEN_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "name":"fme_server_instance_title",
+                        "label":"FORM_FME_SERVER_INSTANCE_TITLE_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "class":"h5",
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"fme_server_instance_name",
+                        "label":"FORM_FME_SERVER_INSTANCE_NAME_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"login",
+                        "label":"FORM_LOGIN_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"password",
+                        "name":"password",
+                        "label":"FORM_PASSWORD_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "name":"amazon_s3_title",
+                        "label":"FORM_AMAZON_S3_TITLE_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "class":"h5",
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"s3_access_key_id",
+                        "label":"FORM_S3_ACCESS_KEY_ID_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"password",
+                        "name":"s3_secret_access_key",
+                        "label":"FORM_S3_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"fme_server_s3_bucket",
+                        "label":"FORM_FME_SERVER_S3_BUCKET_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"iam_access_key_id",
+                        "label":"FORM_IAM_ACCESS_KEY_ID_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"password",
+                        "name":"iam_secret_access_key",
+                        "label":"FORM_IAM_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"s3_region",
+                        "label":"FORM_S3_REGION_ENGINE_FME_ENGINE",
+                        "required":true,
+                        "options":[
+                            "FORM_S3_REGION_US-EAST-2_ENGINE_FME_ENGINE|us-east-2",
+                            "FORM_S3_REGION_US-EAST-1_ENGINE_FME_ENGINE|us-east-1",
+                            "FORM_S3_REGION_US-WEST-1_ENGINE_FME_ENGINE|us-west-1",
+                            "FORM_S3_REGION_US-WEST-2_ENGINE_FME_ENGINE|us-west-2",
+                            "FORM_S3_REGION_AP-SOUTH-1_ENGINE_FME_ENGINE|ap-south-1",
+                            "FORM_S3_REGION_AP-NORTHEAST-2_ENGINE_FME_ENGINE|ap-northeast-2",
+                            "FORM_S3_REGION_AP-SOUTHEAST-1_ENGINE_FME_ENGINE|ap-southeast-1",
+                            "FORM_S3_REGION_AP-SOUTHEAST-2_ENGINE_FME_ENGINE|ap-southeast-2",
+                            "FORM_S3_REGION_AP-NORTHEAST-1_ENGINE_FME_ENGINE|ap-northeast-1",
+                            "FORM_S3_REGION_CA-CENTRAL-1_ENGINE_FME_ENGINE|ca-central-1",
+                            "FORM_S3_REGION_CN-NORTH-1_ENGINE_FME_ENGINE|cn-north-1",
+                            "FORM_S3_REGION_EU-CENTRAL-1_ENGINE_FME_ENGINE|eu-central-1",
+                            "FORM_S3_REGION_EU-WEST-1_ENGINE_FME_ENGINE|eu-west-1",
+                            "FORM_S3_REGION_EU-WEST-2_ENGINE_FME_ENGINE|eu-west-2",
+                            "FORM_S3_REGION_EU-WEST-3_ENGINE_FME_ENGINE|eu-west-3",
+                            "FORM_S3_REGION_SA-EAST-1_ENGINE_FME_ENGINE|sa-east-1"
+                        ],
+                        "visible":false,
+                        "nb_cols":12
+                    }
+                ]
+            },            
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "name":"insert_button",
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_v_fme_engine_display_form",
+        "title":"FORM_TITLE_ENGINE_FME_ENGINE",
+        "initEvent":"initGtfFmeEngineForm()",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_engine_id",
+                        "label":"FORM_ID_ENGINE_FME_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_FME_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"server_name",
+                        "label":"FORM_SERVER_ENGINE_FME_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_engine_type_label",
+                        "label":"FORM_TYPE_ENGINE_FME_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"local_path",
+                        "label":"FORM_PATH_ENGINE_FME_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"server_url",
+                        "label":"FORM_SERVER_URL_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_cloud_api_token",
+                        "label":"FORM_FME_CLOUD_API_TOKEN_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "name":"fme_server_instance_title",
+                        "label":"FORM_FME_SERVER_INSTANCE_TITLE_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "class":"h5",
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_server_instance_name",
+                        "label":"FORM_FME_SERVER_INSTANCE_NAME_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"login",
+                        "label":"FORM_LOGIN_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"password",
+                        "label":"FORM_PASSWORD_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"title",
+                        "name":"amazon_s3_title",
+                        "label":"FORM_AMAZON_S3_TITLE_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "class":"h5",
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"s3_access_key_id",
+                        "label":"FORM_S3_ACCESS_KEY_ID_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"s3_secret_access_key",
+                        "label":"FORM_S3_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_server_s3_bucket",
+                        "label":"FORM_FME_SERVER_S3_BUCKET_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"iam_access_key_id",
+                        "label":"FORM_IAM_ACCESS_KEY_ID_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"iam_secret_access_key",
+                        "label":"FORM_IAM_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE",
+                        "nb_cols":12,
+                        "visible":false
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"s3_region",
+                        "label":"FORM_S3_REGION_ENGINE_FME_ENGINE",
+                        "visible":false,
+                        "nb_cols":12
+                    }
+                ]
+            },            
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "name":"display_button",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/engine/engine_gtf_gtf_engine.json b/src/module_gtf/module/forms/engine/engine_gtf_gtf_engine.json
new file mode 100755
index 0000000000000000000000000000000000000000..ad3758059535eb6db8a42118cef466f4d9ccd406
--- /dev/null
+++ b/src/module_gtf/module/forms/engine/engine_gtf_gtf_engine.json
@@ -0,0 +1,524 @@
+{
+    "datasources": {
+        "datasource_server_id": {
+            "type": "web_service",
+            "dataType": "webService",
+            "name": "datasource_server",
+            "description": "",
+            "ressource_id": "gtf/Servers",
+            "webservice": {
+                "name": "gtf"
+            },
+            "ressource": {
+                "name": "Servers"
+            }
+        },
+        "datasource_fme_engine_id_insert": {
+            "type": "web_service",
+            "dataType": "webService",
+            "name": "datasource_fme_engine_id",
+            "description": "",
+            "ressource_id": "gtf/FmeEngines",
+            "webservice": {
+                "name": "gtf"
+            },
+            "ressource": {
+                "name": "FmeEngines"
+            },
+            "callback": "selectFirstOption('fme_engine_id')"
+        },
+        "datasource_fme_engine_id_update": {
+            "type": "web_service",
+            "dataType": "webService",
+            "name": "datasource_fme_engine_id",
+            "description": "",
+            "ressource_id": "gtf/FmeEngines",
+            "webservice": {
+                "name": "gtf"
+            },
+            "ressource": {
+                "name": "FmeEngines"
+            }
+        }
+    },
+    "search":{
+        "name":"gtf_v_gtf_engine_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_GTF_ENGINE",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"server_id",
+                        "label":"FORM_SERVER_ENGINE_GTF_ENGINE",
+                        "web_service":{
+                            "ressource_id":"gtf/servers",
+                            "id_key":"server_id",
+                            "label_key":"hostname",
+                            "parameters":{
+                                    "order_by":"hostname"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_v_gtf_engine_update_form",
+        "title":"FORM_TITLE_ENGINE_GTF_ENGINE",
+        "input_size":"xs",
+        "initEvent": "initGtfEngineForm()",
+        "event":"sendSimpleForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"gtf_engine_id",
+                        "label":"FORM_ID_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_GTF_ENGINE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"number",
+                        "min":0,
+                        "max":60,
+                        "name":"period",
+                        "label":"FORM_PERIOD_ENGINE_GTF_ENGINE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled_yes",
+                        "label":"FORM_ENABLED_ENGINE_GTF_ENGINE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_ENGINE_GTF_ENGINE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_ENGINE_GTF_ENGINE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "server_id",
+                        "label": "FORM_SERVER_ENGINE_GTF_ENGINE",
+                        "required": true,
+                        "nb_cols": 12,
+                        "datasource": {
+                            "datasource_id": "datasource_server_id",
+                            "sort_order": "ASC",
+                            "distinct": "true",
+                            "label_key": "hostname",
+                            "order_by": "hostname",
+                            "id_key": "server_id",
+                            "attributs": "server_id|hostname",
+                            "parameters":{
+                                "order_by":"hostname"
+                            }
+                        }
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                    "type": "select",
+                    "name": "fme_engine_id",
+                    "label": "FORM_FME_ENGINE_GTF_ENGINE",
+                    "required": false,
+                    "nb_cols": 12,
+                    "datasource": {
+                        "datasource_id": "datasource_fme_engine_id_update",
+                        "sort_order": "ASC",
+                        "distinct": "true",
+                        "label_key": "name",
+                        "order_by": "name",
+                        "id_key": "fme_engine_id",
+                        "attributs": "fme_engine_id|name",
+                        "parameters":{
+                            "order_by":"name"
+                        },
+                        "parents": [
+                            {
+                                "name": "server_id",
+                                "filter_attr": "server_id",
+                                "filter_equality": "=",
+                                "wait_for_parent": true
+                            }
+                        ]
+                    }
+                  }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"editable_double_select",
+                        "name":"tags",
+                        "label":"FORM_TAGS_ENGINE_GTF_ENGINE",
+                        "label_from":"FORM_AVAILABLE_TAGS_ENGINE_GTF_ENGINE",
+                        "label_to":"FORM_LINKED_TAGS_ENGINE_GTF_ENGINE",
+                        "size":"6",
+                        "web_service":{
+                            "ressource_id":"gtf/tags",
+                            "id_key":"tag",
+                            "label_key":"tag",
+                            "parameters":{
+                                    "order_by":"tag"
+                            }
+                        },
+                        "options":{
+                                "tagClass": "label label-success"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_v_gtf_engine_insert_form",
+        "title":"FORM_TITLE_ENGINE_GTF_ENGINE",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "afterEvent":"afterGtfEngineForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_GTF_ENGINE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"number",
+                        "min":0,
+                        "max":60,
+                        "name":"period",
+                        "label":"FORM_PERIOD_ENGINE_GTF_ENGINE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled_yes",
+                        "label":"FORM_ENABLED_ENGINE_GTF_ENGINE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_ENGINE_GTF_ENGINE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_ENGINE_GTF_ENGINE",
+                                    "value": false
+                                }]
+                        },
+                        "default_value": 1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "server_id",
+                        "label": "FORM_SERVER_ENGINE_GTF_ENGINE",
+                        "required": true,
+                        "nb_cols": 12,
+                        "datasource": {
+                            "datasource_id": "datasource_server_id",
+                            "sort_order": "ASC",
+                            "distinct": "true",
+                            "label_key": "hostname",
+                            "order_by": "hostname",
+                            "id_key": "server_id",
+                            "attributs": "server_id|hostname",
+                            "parameters":{
+                                "order_by":"hostname"
+                            }
+                        },
+                        "options":["|"]
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                    "type": "select",
+                    "name": "fme_engine_id",
+                    "label": "FORM_FME_ENGINE_GTF_ENGINE",
+                    "required": false,
+                    "nb_cols": 12,
+                    "datasource": {
+                        "datasource_id": "datasource_fme_engine_id_insert",
+                        "sort_order": "ASC",
+                        "distinct": "true",
+                        "label_key": "name",
+                        "order_by": "name",
+                        "id_key": "fme_engine_id",
+                        "attributs": "fme_engine_id|name",
+                        "parameters":{
+                            "order_by":"name"
+                        },
+                        "parents": [
+                            {
+                                "name": "server_id",
+                                "filter_attr": "server_id",
+                                "filter_equality": "=",
+                                "wait_for_parent": true
+                            }
+                        ]
+                    }
+                  }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"editable_double_select",
+                        "name":"tags",
+                        "label":"FORM_TAGS_ENGINE_GTF_ENGINE",
+                        "label_from":"FORM_AVAILABLE_TAGS_ENGINE_GTF_ENGINE",
+                        "label_to":"FORM_LINKED_TAGS_ENGINE_GTF_ENGINE",
+                        "size":"6",
+                        "web_service":{
+                            "ressource_id":"gtf/tags",
+                            "id_key":"tag",
+                            "label_key":"tag",
+                            "parameters":{
+                                    "order_by":"tag"
+                            }
+                        },
+                        "options":{
+                                "tagClass": "label label-success"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_v_gtf_engine_display_form",
+        "title":"FORM_TITLE_ENGINE_GTF_ENGINE",
+        "initEvent": "initGtfEngineForm()",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"gtf_engine_id",
+                        "label":"FORM_ID_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"period",
+                        "label":"FORM_PERIOD_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"enabled",
+                        "label":"FORM_ENABLED_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"server_name",
+                        "label":"FORM_SERVER_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"fme_name",
+                        "label":"FORM_FME_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"tags",
+                        "label":"FORM_LINKED_TAGS_ENGINE_GTF_ENGINE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/engine/engine_gtf_server.json b/src/module_gtf/module/forms/engine/engine_gtf_server.json
new file mode 100755
index 0000000000000000000000000000000000000000..376fcaa7a7aaf8a137795e46991e49f4585d3c08
--- /dev/null
+++ b/src/module_gtf/module/forms/engine/engine_gtf_server.json
@@ -0,0 +1,263 @@
+{
+    "search":{
+        "name":"gtf_server_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_ENGINE_SERVER",
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_server_update_form",
+        "title":"FORM_TITLE_ENGINE_SERVER",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"server_id",
+                        "label":"FORM_ID_ENGINE_SERVER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"hostname",
+                        "label":"FORM_NAME_ENGINE_SERVER",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"scheduler_network_home",
+                        "label":"FORM_SCHEDULER_ENGINE_SERVER",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"engines_home",
+                        "label":"FORM_ENGINE_ENGINE_SERVER",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "name":"old_hostname",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_server_insert_form",
+        "title":"FORM_TITLE_ENGINE_SERVER",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"hostname",
+                        "label":"FORM_NAME_ENGINE_SERVER",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"scheduler_network_home",
+                        "label":"FORM_SCHEDULER_ENGINE_SERVER",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"engines_home",
+                        "label":"FORM_ENGINE_ENGINE_SERVER",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_server_display_form",
+        "title":"FORM_TITLE_ENGINE_SERVER",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"server_id",
+                        "label":"FORM_ID_ENGINE_SERVER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"hostname",
+                        "label":"FORM_NAME_ENGINE_SERVER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"scheduler_network_home",
+                        "label":"FORM_SCHEDULER_ENGINE_SERVER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"engines_home",
+                        "label":"FORM_ENGINE_ENGINE_SERVER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/my_work/my_work_gtf_user_order.json b/src/module_gtf/module/forms/my_work/my_work_gtf_user_order.json
new file mode 100755
index 0000000000000000000000000000000000000000..a8ca40f83a1445996af53f5c338b65b308edff2e
--- /dev/null
+++ b/src/module_gtf/module/forms/my_work/my_work_gtf_user_order.json
@@ -0,0 +1,265 @@
+{
+    "search":{
+        "name":"gtf_v_user_order_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"date",
+                        "name":"order_date",
+                        "label":"FORM_ORDER_DATE_MY_WORK_USER_ORDER",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"order_status_id",
+                        "label":"FORM_ORDER_STATE_MY_WORK_USER_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/orderstatutes",
+                            "id_key":"order_status_id",
+                            "label_key":"order_status_label",
+                            "parameters":{
+                                    "filter":{
+                                            "lang":"getProperty('language')"
+                                    },
+                                    "order_by":"order_status_label"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "label":"FORM_TREATMENT_MY_WORK_USER_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/userworkspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+
+    },
+    "insert":{
+        "name":"gtf_v_user_order_insert_form",
+        "title":"FORM_TITLE_INSERT_ORDER_MY_WORK_USER_ORDER",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_ORDER_DATE_MY_WORK_USER_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"category_id",
+                        "label":"FORM_CATEGORY_MY_WORK_USER_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/categories",
+                            "id_key":"category_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "options": ["FORM_ALL_CATEGORIES_MY_WORK_USER_ORDER|"],
+                        "default_value": "",
+                        "required":true,
+                        "child_select":"workspace_id",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "id": "workspace_id",
+                        "label":"FORM_TREATMENT_MY_WORK_USER_ORDER",
+                        "size":13,
+                        "web_service":{
+                            "ressource_id":"gtf/userworkspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "callback": "showWorkspaceDescription()",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"email_option_id",
+                        "label":"FORM_SEND_MAIL_MY_WORK_USER_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/emailoptions",
+                            "id_key":"email_option_id",
+                            "label_key":"email_option_label",
+                            "parameters":{
+                                    "filter":{
+                                            "lang":"getProperty('language')"
+                                    },
+                                    "order_by":"email_option_label"
+                            }
+                        },
+                        "default_value":1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"email_notifications",
+                        "label":"FORM_SEND_MAIL_COPY_MY_WORK_USER_ORDER",
+                        "size":8,
+                        "nb_cols":12, 
+                        "pattern" : "^(([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})(\\s*(\n)\\s*))*([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})$"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"datetime",
+                        "name":"minexecdate",
+                        "label":"FORM_MINEXECDATE_MY_WORK_USER_ORDER",
+                        "options": {
+                            "minDate": []
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "name":"wk_params",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"hidden",
+                        "name":"user_id",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"hidden",
+                        "name":"upload_directory",
+                        "nb_cols":4
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_v_user_order_display_form",
+        "title":"FORM_TITLE_DISPLAY_ORDER_MY_WORK_USER_ORDER",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_id",
+                        "label":"FORM_ORDER_ID_MY_WORK_USER_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_name",
+                        "label":"FORM_TREATMENT_MY_WORK_USER_ORDER",
+                        "multiple":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_ORDER_DATE_MY_WORK_USER_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"execution_date",
+                        "label":"FORM_EXECUTION_DATE_MY_WORK_USER_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"minexecdate",
+                        "label":"FORM_MINEXECDATE_MY_WORK_USER_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/my_work/my_work_gtf_user_subscription.json b/src/module_gtf/module/forms/my_work/my_work_gtf_user_subscription.json
new file mode 100755
index 0000000000000000000000000000000000000000..7893cff1ab81e749fa7f8b3a401e5d6edca7d4ff
--- /dev/null
+++ b/src/module_gtf/module/forms/my_work/my_work_gtf_user_subscription.json
@@ -0,0 +1,457 @@
+{
+    "search":{
+        "name":"gtf_v_user_subscription_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"date",
+                        "name":"order_date",
+                        "label":"FORM_DATE_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "label":"FORM_TREATMENT_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/userworkspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                "filter" : {
+                                    "subscription" : "true"
+                                },
+                                "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"period_id",
+                        "label":"FORM_PERIOD_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/periods",
+                            "id_key":"period_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_v_user_subscription_insert_form",
+        "title":"FORM_TITLE_UPDATE_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_id",
+                        "label":"FORM_ID_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_DATE_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled",
+                        "label":"FORM_ENABLED_MY_WORK_USER_SUBSCRIPTION",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_MY_WORK_USER_SUBSCRIPTION",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_MY_WORK_USER_SUBSCRIPTION",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"category_id",
+                        "label":"FORM_CATEGORY_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/categories",
+                            "id_key":"category_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "options": ["FORM_ALL_CATEGORIES_MY_WORK_USER_SUBSCRIPTION|"],
+                        "default_value": "",
+                        "required":true,
+                        "child_select":"workspace_id",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "id": "workspace_id",
+                        "label":"FORM_TREATMENT_MY_WORK_USER_SUBSCRIPTION",
+                        "size": 13,
+                        "web_service":{
+                            "ressource_id":"gtf/userworkspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                "filter" : {
+                                    "subscription" : "true"
+                                },
+                                "order_by":"name"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"period_id",
+                        "label":"FORM_PERIOD_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/periods",
+                            "id_key":"period_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"email_option_id",
+                        "label":"FORM_SEND_MAIL_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/emailoptions",
+                            "id_key":"email_option_id",
+                            "label_key":"email_option_label",
+                            "parameters":{
+                                    "filter":{
+                                            "lang":"getPropertie('language')"
+                                    },
+                                    "order_by":"email_option_label"
+                            }
+                        },
+                        "default_value":1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"email_notifications",
+                        "label":"FORM_SEND_MAIL_COPY_MY_WORK_USER_SUBSCRIPTION",
+                        "size":8,
+                        "nb_cols":12, 
+                        "pattern" : "^(([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})(\\s*(\n)\\s*))*([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})$"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "name":"wk_params",
+                        "nb_cols":6
+                    },
+                    {
+                        "type":"hidden",
+                        "name":"user_id",
+                        "nb_cols":6
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_v_user_subscription_insert_form",
+        "title":"FORM_TITLE_INSERT_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_DATE_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled",
+                        "label":"FORM_ENABLED_MY_WORK_USER_SUBSCRIPTION",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_MY_WORK_USER_SUBSCRIPTION",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_MY_WORK_USER_SUBSCRIPTION",
+                                    "value": false
+                                }]
+                        },
+                        "default_value": 1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"category_id",
+                        "label":"FORM_CATEGORY_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/categories",
+                            "id_key":"category_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "options": ["FORM_ALL_CATEGORIES_MY_WORK_USER_SUBSCRIPTION|"],
+                        "default_value": "",
+                        "required":true,
+                        "child_select":"workspace_id",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "id": "workspace_id",
+                        "label":"FORM_TREATMENT_MY_WORK_USER_SUBSCRIPTION",
+                        "size": 13,
+                        "web_service":{
+                            "ressource_id":"gtf/userworkspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                                "parameters":{
+                                    "filter" : {
+                                        "subscription" : "true"
+                                    },
+                                    "order_by":"name"
+                                },
+                            "callback": "showWorkspaceDescription()"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"period_id",
+                        "label":"FORM_PERIOD_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/periods",
+                            "id_key":"period_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "default_value":1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"email_option_id",
+                        "label":"FORM_SEND_MAIL_MY_WORK_USER_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/emailoptions",
+                            "id_key":"email_option_id",
+                            "label_key":"email_option_label",
+                            "parameters":{
+                                "filter":{
+                                    "lang":"getPropertie('language')"
+                                },
+                                "order_by":"email_option_label"
+                            }
+                        },
+                        "default_value":1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"email_notifications",
+                        "label":"FORM_SEND_MAIL_COPY_MY_WORK_USER_SUBSCRIPTION",
+                        "size":8,
+                        "nb_cols":12, 
+                        "pattern" : "^(([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})(\\s*(\n)\\s*))*([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})$"
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "name":"wk_params",
+                        "nb_cols":6
+                    },
+                    {
+                        "type":"hidden",
+                        "name":"user_id",
+                        "nb_cols":6
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_v_user_subscription_display_form",
+        "title":"FORM_TITLE_DISPLAY_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_id",
+                        "label":"FORM_ID_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_name",
+                        "label":"FORM_TREATMENT_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_DATE_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_period_libelle",
+                        "label":"FORM_PERIOD_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"notification",
+                        "label":"FORM_SEND_MAIL_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"enabled",
+                        "label":"FORM_ENABLED_MY_WORK_USER_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/my_work/my_work_gtf_user_survey.json b/src/module_gtf/module/forms/my_work/my_work_gtf_user_survey.json
new file mode 100755
index 0000000000000000000000000000000000000000..3bbc1d83f5c907b50bf410f9f5fbae94dfe3cfcc
--- /dev/null
+++ b/src/module_gtf/module/forms/my_work/my_work_gtf_user_survey.json
@@ -0,0 +1,576 @@
+{
+    "search": {
+        "name": "gtf_v_user_survey_search_form",
+        "title": "",
+        "input_size": "xxs",
+        "nb_cols": 12,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "date",
+                        "name": "order_date",
+                        "label": "FORM_DATE_MY_WORK_USER_SURVEY",
+                        "nb_cols": 4
+                    },
+                    {
+                        "type": "select",
+                        "name": "workspace_id",
+                        "label": "FORM_TREATMENT_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/userworkspaces",
+                            "id_key": "workspace_id",
+                            "label_key": "name",
+                            "parameters": {
+                                "filter": {
+                                    "survey": "true"
+                                },
+                                "order_by":"name"
+                            }
+                        },
+                        "nb_cols": 4
+                    },
+                    {
+                        "type": "select",
+                        "name": "period_id",
+                        "label": "FORM_PERIOD_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/periods",
+                            "id_key": "period_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-xs",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "search",
+                                "label": "FORM_SEARCH_BUTTON",
+                                "class": "btn-primary",
+                                "event": "setGridFilter()"
+                            },
+                            {
+                                "type": "reset",
+                                "name": "reset",
+                                "label": "FORM_RESET_BUTTON",
+                                "class": "btn-primary",
+                                "event": "resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update": {
+        "name": "gtf_v_user_survey_insert_form",
+        "title": "FORM_TITLE_UPDATE_SURVEY_MY_WORK_USER_SURVEY",
+        "input_size": "xs",
+        "nb_cols": 6,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "order_id",
+                        "label": "FORM_ID_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "order_date",
+                        "label": "FORM_DATE_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "category_id",
+                        "label": "FORM_CATEGORY_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/categories",
+                            "id_key": "category_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "options": ["FORM_ALL_CATEGORIES_MY_WORK_USER_SURVEY|"],
+                        "default_value": "",
+                        "required":true,
+                        "child_select": "workspace_id",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "workspace_id",
+                        "id": "workspace_id",
+                        "label": "FORM_TREATMENT_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/userworkspaces",
+                            "id_key": "workspace_id",
+                            "label_key": "name",
+                            "parameters": {
+                                "filter": {
+                                    "survey": "true"
+                                },
+                                "order_by":"name"
+                            }
+                        },
+                        "size": 13,
+                        "nb_cols": 12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled_yes",
+                        "label":"FORM_ENABLED_MY_WORK_USER_SURVEY",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_MY_WORK_USER_SURVEY",
+                                    "value": 1
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_MY_WORK_USER_SURVEY",
+                                    "value": 0
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "period_id",
+                        "label": "FORM_PERIOD_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/periods",
+                            "id_key": "period_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "email_option_id",
+                        "label": "FORM_SEND_MAIL_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/emailoptions",
+                            "id_key": "email_option_id",
+                            "label_key": "email_option_label",
+                            "parameters": {
+                                "filter": {
+                                    "lang": "getPropertie('language')"
+                                },
+                                "order_by": "email_option_label"
+                            }
+                        },
+                        "default_value": 1,
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "textarea",
+                        "name": "email_notifications",
+                        "label": "FORM_SEND_MAIL_COPY_MY_WORK_USER_SURVEY",
+                        "size": 8,
+                        "nb_cols": 12,
+                        "pattern": "^(([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})(\\s*(\n)\\s*))*([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})$"
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "survey_id",
+                        "label": "FORM_SURVEY_TYPE_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/surveytypes",
+                            "id_key": "survey_id",
+                            "label_key": "survey_label",
+                            "parameters": {
+                                "filter": {
+                                    "lang": "getPropertie('language')"
+                                },
+                                "order_by": "survey_label"
+                            }
+                        },
+                        "default_value": 1,
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "inbox_id",
+                        "label": "FORM_DIRECTORY_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/inboxes",
+                            "id_key": "inbox_id",
+                            "label_key": "alias",
+                            "parameters":{
+                                    "order_by":"alias"
+                            }
+                        },
+                        "nb_cols": 12,
+						"required":true
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "condition",
+                        "label": "FORM_SUBDIRECTORY_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "hidden",
+                        "name": "wk_params",
+                        "nb_cols": 6
+                    },
+                    {
+                        "type": "hidden",
+                        "name": "user_id",
+                        "nb_cols": 6
+                    }
+                ]
+            }
+        ]
+    },
+    "insert": {
+        "name": "gtf_v_user_survey_insert_form",
+        "title": "FORM_TITLE_INSERT_SURVEY_MY_WORK_USER_SURVEY",
+        "input_size": "xs",
+        "nb_cols": 6,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "order_date",
+                        "label": "FORM_DATE_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "category_id",
+                        "label": "FORM_CATEGORY_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/categories",
+                            "id_key": "category_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "options": ["FORM_ALL_CATEGORIES_MY_WORK_USER_SURVEY|"],
+                        "default_value": "",
+                        "required":true,
+                        "child_select": "workspace_id",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "workspace_id",
+                        "id": "workspace_id",
+                        "label": "FORM_TREATMENT_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/userworkspaces",
+                            "id_key": "workspace_id",
+                            "label_key": "name",
+                            "parameters": {
+                                "filter": {
+                                    "survey": "true"
+                                },
+                                "order_by":"name"
+                            },
+                            "callback": "showWorkspaceDescription()"
+                        },
+                        "size": 13,
+                        "nb_cols": 12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled_yes",
+                        "label":"FORM_ENABLED_MY_WORK_USER_SURVEY",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_MY_WORK_USER_SURVEY",
+                                    "value": 1
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_MY_WORK_USER_SURVEY",
+                                    "value": 0
+                                }]
+                        },
+                        "default_value": 1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "period_id",
+                        "label": "FORM_PERIOD_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/periods",
+                            "id_key": "period_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "default_value": 1,
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "email_option_id",
+                        "label": "FORM_SEND_MAIL_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/emailoptions",
+                            "id_key": "email_option_id",
+                            "label_key": "email_option_label",
+                            "parameters": {
+                                "filter": {
+                                    "lang": "getPropertie('language')"
+                                },
+                                "order_by": "email_option_label"
+                            }
+                        },
+                        "default_value": 1,
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "textarea",
+                        "name": "email_notifications",
+                        "label": "FORM_SEND_MAIL_COPY_MY_WORK_USER_SURVEY",
+                        "size": 8,
+                        "nb_cols": 12,
+                        "pattern": "^(([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})(\\s*(\n)\\s*))*([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})$"
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "survey_id",
+                        "label": "FORM_SURVEY_TYPE_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/surveytypes",
+                            "id_key": "survey_id",
+                            "label_key": "survey_label",
+                            "parameters": {
+                                "filter": {
+                                    "lang": "getPropertie('language')"
+                                },
+                                "order_by": "survey_label"
+                            }
+                        },
+                        "default_value": 1,
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "inbox_id",
+                        "label": "FORM_DIRECTORY_MY_WORK_USER_SURVEY",
+                        "web_service": {
+                            "ressource_id": "gtf/inboxes",
+                            "id_key": "inbox_id",
+                            "label_key": "alias",
+                            "parameters":{
+                                    "order_by":"alias"
+                            }
+                        },
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "condition",
+                        "label": "FORM_SUBDIRECTORY_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "hidden",
+                        "name": "wk_params",
+                        "nb_cols": 6
+                    },
+                    {
+                        "type": "hidden",
+                        "name": "user_id",
+                        "nb_cols": 6
+                    }
+                ]
+            }
+        ]
+    },
+    "display": {
+        "name": "gtf_v_user_survey_display_form",
+        "title": "FORM_TITLE_DISPLAY_SURVEY_MY_WORK_USER_SURVEY",
+        "input_size": "xs",
+        "nb_cols": 6,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "order_id",
+                        "label": "FORM_ID_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "workspace_name",
+                        "label": "FORM_TREATMENT_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "enabled",
+                        "label": "FORM_ENABLED_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "order_date",
+                        "label": "FORM_DATE_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "order_period_libelle",
+                        "label": "FORM_PERIOD_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "notification",
+                        "label": "FORM_SEND_MAIL_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "survey_name",
+                        "label": "FORM_SURVEY_TYPE_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "condition",
+                        "label": "FORM_DIRECTORY_MY_WORK_USER_SURVEY",
+                        "nb_cols": 12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/import_publication_workspace.json b/src/module_gtf/module/forms/publication/import_publication_workspace.json
new file mode 100755
index 0000000000000000000000000000000000000000..3e75830daa9b6dbab52da4f0f62ea7e3087865f4
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/import_publication_workspace.json
@@ -0,0 +1,40 @@
+{
+    "search":{
+        "name":"gtf_workspace_project_directory_update_form",
+        "title":"FORM_TITLE_IMPORT_PROJECT_PUBLICATION_WORKSPACE",
+        "event":"",
+        "input_size":"xs",
+        "nb_cols":12,
+        "class":"import-workspace-upload-form",
+        "rows":[
+            {
+                "class":"form-field-inline",
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":6,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"selectObject('publication_workspace', 'search')"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        
+    },
+    "insert":{
+            
+    },
+    "display":{
+        
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/import_token_connection.json b/src/module_gtf/module/forms/publication/import_token_connection.json
new file mode 100755
index 0000000000000000000000000000000000000000..5a274f3b97fd445c5f0cf2f86ee9d527833bc0df
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/import_token_connection.json
@@ -0,0 +1,72 @@
+{
+    "search":{
+    },
+    "update":{
+        "name":"import_token_connection_form",
+        "title":"",
+        "input_size":"xs",
+        "event":"loadPrivateToken()",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"user",
+                        "label":"FORM_USER_IMPORT_TOKEN_CONNECTION",
+                        "required": true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"password",
+                        "name":"password",
+                        "label":"FORM_PASSWORD_IMPORT_TOKEN_CONNECTION",
+                        "required": true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"date",
+                        "name":"end_date",
+                        "label":"FORM_END_DATE_IMPORT_TOKEN_CONNECTION",
+                        "options": {
+                            "minDate": "now"
+                        },
+                        "required": true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm import-user-ad-connect-btn",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_BTN_GENERATE_TOKEN_IMPORT_TOKEN_CONNECTION",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+
+    },
+    "display":{
+            
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_category.json b/src/module_gtf/module/forms/publication/publication_gtf_category.json
new file mode 100755
index 0000000000000000000000000000000000000000..372ed13d00732159b2fc2a116f643bad10eca02f
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_category.json
@@ -0,0 +1,284 @@
+{
+    "search":{
+        "name":"gtf_category_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_CATEGORY",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"text",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_CATEGORY",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_category_update_form",
+        "title":"FORM_TITLE_PUBLICATION_CATEGORY",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"category_id",
+                        "label":"FORM_ID_PUBLICATION_CATEGORY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_CATEGORY",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_CATEGORY",
+                        "size":13,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"workspaces",
+                        "name_from":"workspace",
+                        "name_to":"workspaces",
+                        "label":"FORM_WORKSPACE_PUBLICATION_CATEGORY",
+                        "label_from":"FORM_AVAILABLE_WORKSPACE_PUBLICATION_CATEGORY",
+                        "label_to":"FORM_LINKED_WORKSPACE_PUBLICATION_CATEGORY",
+                        "web_service":{
+                            "ressource_id":"gtf/workspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":15,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_category_insert_form",
+        "title":"FORM_TITLE_PUBLICATION_CATEGORY",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_CATEGORY",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_CATEGORY",
+                        "size":13,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"workspaces",
+                        "name_from":"workspace",
+                        "name_to":"workspaces",
+                        "label":"FORM_WORKSPACE_PUBLICATION_CATEGORY",
+                        "label_from":"FORM_AVAILABLE_WORKSPACE_PUBLICATION_CATEGORY",
+                        "label_to":"FORM_LINKED_WORKSPACE_PUBLICATION_CATEGORY",
+                        "web_service":{
+                            "ressource_id":"gtf/workspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":15,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_category_display_form",
+        "title":"FORM_TITLE_PUBLICATION_CATEGORY",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"category_id",
+                        "label":"FORM_ID_PUBLICATION_CATEGORY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_CATEGORY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_CATEGORY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspaces_label",
+                        "label":"FORM_WORKSPACE_PUBLICATION_CATEGORY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_email_template.json b/src/module_gtf/module/forms/publication/publication_gtf_email_template.json
new file mode 100755
index 0000000000000000000000000000000000000000..bb411a91ec29fd1d718ff01bf3b2d51174af14b9
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_email_template.json
@@ -0,0 +1,291 @@
+{
+    "search":{
+        "name":"gtf_email_template_general_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_EMAIL_TEMPLATE",
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_email_template_general_update_form",
+        "title":"FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE",
+        "input_size":"xs",
+        "initEvent": "initPublicationEmailTemplateGeneralForm()",
+        "event":"sendSimpleForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"email_template_id",
+                        "label":"FORM_ID_PUBLICATION_EMAIL_TEMPLATE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_EMAIL_TEMPLATE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"rt_emailcontext_id",
+                        "label":"FORM_CONTEXT_PUBLICATION_EMAIL_TEMPLATE",
+                        "required":true,
+                        "web_service":{
+                            "ressource_id":"gtf/emailcontexts",
+                            "id_key":"rt_emailcontext_id",
+                            "label_key":"rt_emailcontext_id",
+                            "parameters":{
+                                    "order_by":"rt_emailcontext_id"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"use_advanced",
+                        "id":"use_advanced",
+                        "label":"FORM_USE_ADVANCED_PUBLICATION_EMAIL_TEMPLATE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_USE_ADVANCED_YES_PUBLICATION_EMAIL_TEMPLATE",
+                                    "value": 1
+                                },
+                                {
+                                    "label": "FORM_USE_ADVANCED_NO_PUBLICATION_EMAIL_TEMPLATE",
+                                    "value": 0
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_email_template_general_insert_form",
+        "title":"FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_EMAIL_TEMPLATE",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"rt_emailcontext_id",
+                        "label":"FORM_CONTEXT_PUBLICATION_EMAIL_TEMPLATE",
+                        "required":true,
+                        "web_service":{
+                            "ressource_id":"gtf/emailcontexts",
+                            "id_key":"rt_emailcontext_id",
+                            "label_key":"rt_emailcontext_id",
+                            "parameters":{
+                                    "order_by":"rt_emailcontext_id"
+                            },
+                            "callback": "selectFirstOption('rt_emailcontext_id')"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"use_advanced",
+                        "id":"use_advanced",
+                        "label":"FORM_USE_ADVANCED_PUBLICATION_EMAIL_TEMPLATE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_USE_ADVANCED_YES_PUBLICATION_EMAIL_TEMPLATE",
+                                    "value": 1
+                                },
+                                {
+                                    "label": "FORM_USE_ADVANCED_NO_PUBLICATION_EMAIL_TEMPLATE",
+                                    "value": 0
+                                }]
+                        },
+                        "default_value": 0,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_email_template_general_display_form",
+        "title":"FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE",
+        "initEvent": "initPublicationEmailTemplateGeneralForm()",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"email_template_id",
+                        "label":"FORM_ID_PUBLICATION_EMAIL_TEMPLATE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_EMAIL_TEMPLATE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"rt_emailcontext_id",
+                        "label":"FORM_CONTEXT_PUBLICATION_EMAIL_TEMPLATE",
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"use_advanced",
+                        "label":"FORM_USE_ADVANCED_PUBLICATION_EMAIL_TEMPLATE",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_email_template_email_template_advanced_edition.json b/src/module_gtf/module/forms/publication/publication_gtf_email_template_email_template_advanced_edition.json
new file mode 100755
index 0000000000000000000000000000000000000000..a578b24e176d0fe96014aada0a717d07556c2c2c
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_email_template_email_template_advanced_edition.json
@@ -0,0 +1,127 @@
+{
+    "search":{
+
+    },
+    "update":{
+        "name":"gtf_email_template_advanced_definition_update_form",
+        "title":"FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE",
+        "beforeEvent":"checkEmailTemplateCode()",
+        "event":"sendSimpleForm()",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"generate_code",
+                                "label":"FORM_GENERATE_CODE_EMAIL_TEMPLATE",
+                                "class":"btn-primary",
+                                "event":"generateEmailTemplateCode()"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"codemirror",
+                        "name":"code",
+                        "label":"FORM_CODE_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_ADVANCED_EDITION",
+                        "nb_cols":12,
+                        "codemirrorOptions":{
+                            "runnable":true,
+                            "lineNumbers":true,
+                            "matchBrackets":true,
+                            "mode":"text\/x-php",
+                            "indentUnit":4,
+                            "indentWithTabs":true,
+                            "enterMode":"keep",
+                            "tabMode":"shift",
+                            "height":"100%"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+
+    },
+    "display":{
+        "name":"gtf_email_template_advanced_definition_display_form",
+        "title":"FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"codemirror",
+                        "name":"code",
+                        "label":"FORM_CODE_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_ADVANCED_EDITION",
+                        "nb_cols":12,
+                        "codemirrorOptions":{
+                            "runnable":true,
+                            "lineNumbers":true,
+                            "matchBrackets":true,
+                            "mode":"text\/x-php",
+                            "indentUnit":4,
+                            "indentWithTabs":true,
+                            "enterMode":"keep",
+                            "tabMode":"shift",
+                            "height":"100%",
+                            "readOnly":"nocursor"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_email_template_email_template_simple_edition.json b/src/module_gtf/module/forms/publication/publication_gtf_email_template_email_template_simple_edition.json
new file mode 100755
index 0000000000000000000000000000000000000000..0e15fcbd7f143fcf0b885fa1b712fa5de92e1f0f
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_email_template_email_template_simple_edition.json
@@ -0,0 +1,175 @@
+{
+    "search":{
+
+    },
+    "update":{
+        "name":"gtf_email_template_simple_definition_update_form",
+        "title":"FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE",
+        "event":"sendSimpleForm()",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"to",
+                        "label":"FORM_TO_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "size":4,
+                        "required":true,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"cc",
+                        "label":"FORM_CC_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "size":4,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"cci",
+                        "label":"FORM_CCI_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "size":4,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"subject",
+                        "label":"FORM_SUBJECT_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "required":true,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"body",
+                        "label":"FORM_BODY_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+
+    },
+    "display":{
+        "name":"gtf_email_template_simple_definition_display_form",
+        "title":"FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"to",
+                        "label":"FORM_TO_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "nb_rows":4,
+                        "required":true,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"cc",
+                        "label":"FORM_CC_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "nb_rows":4,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"cci",
+                        "label":"FORM_CCI_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "nb_rows":4,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"subject",
+                        "label":"FORM_SUBJECT_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "required":true,
+                        "nb_cols":6
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"textarea",
+                        "name":"body",
+                        "label":"FORM_BODY_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_inbox.json b/src/module_gtf/module/forms/publication/publication_gtf_inbox.json
new file mode 100755
index 0000000000000000000000000000000000000000..4ef208526e2637a8d21ed8333dfd99c9800f1b4e
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_inbox.json
@@ -0,0 +1,299 @@
+{
+    "search":{
+        "name":"gtf_inbox_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_PATH_PUBLICATION_INBOX",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"text",
+                        "name":"alias",
+                        "label":"FORM_ALIAS_PUBLICATION_INBOX",
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_inbox_update_form",
+        "title":"FORM_TITLE_PUBLICATION_INBOX",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"inbox_id",
+                        "label":"FORM_ID_PUBLICATION_INBOX",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_PATH_PUBLICATION_INBOX",
+                        "required":true,
+                        "tooltip": {
+                            "title": "FORM_PATH_PUBLICATION_INBOX",
+                            "content": "FORM_PATH_TOOLTIP_CONTENT_PUBLICATION_INBOX",
+                            "width": "250px"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"alias",
+                        "label":"FORM_ALIAS_PUBLICATION_INBOX",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"groups",
+                        "name_from":"group",
+                        "name_to":"groups",
+                        "label":"FORM_GROUP_PUBLICATION_INBOX",
+                        "label_from":"FORM_AVAILABLE_GROUP_PUBLICATION_INBOX",
+                        "label_to":"FORM_LINKED_GROUP_PUBLICATION_INBOX",
+                        "web_service":{
+                            "ressource_id":"vitis/groups",
+                            "id_key":"group_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":15,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_inbox_insert_form",
+        "title":"FORM_TITLE_PUBLICATION_INBOX",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_PATH_PUBLICATION_INBOX",
+                        "required":true,
+                        "tooltip": {
+                            "title": "FORM_PATH_PUBLICATION_INBOX",
+                            "content": "FORM_PATH_TOOLTIP_CONTENT_PUBLICATION_INBOX",
+                            "width": "250px"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"alias",
+                        "label":"FORM_ALIAS_PUBLICATION_INBOX",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"groups",
+                        "name_from":"group",
+                        "name_to":"groups",
+                        "label":"FORM_GROUP_PUBLICATION_INBOX",
+                        "label_from":"FORM_AVAILABLE_GROUP_PUBLICATION_INBOX",
+                        "label_to":"FORM_LINKED_GROUP_PUBLICATION_INBOX",
+                        "web_service":{
+                            "ressource_id":"vitis/groups",
+                            "id_key":"group_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":15,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_inbox_display_form",
+        "title":"FORM_TITLE_PUBLICATION_INBOX",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"server_id",
+                        "label":"FORM_ID_PUBLICATION_INBOX",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"name",
+                        "label":"FORM_PATH_PUBLICATION_INBOX",
+                        "tooltip": {
+                            "title": "FORM_PATH_PUBLICATION_INBOX",
+                            "content": "FORM_PATH_TOOLTIP_CONTENT_PUBLICATION_INBOX",
+                            "width": "250px"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"alias",
+                        "label":"FORM_ALIAS_PUBLICATION_INBOX",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"groups_label",
+                        "label":"FORM_LINKED_GROUP_PUBLICATION_INBOX",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_period.json b/src/module_gtf/module/forms/publication/publication_gtf_period.json
new file mode 100755
index 0000000000000000000000000000000000000000..12299b7be9bf7b38abf32dbeb1171c5709154789
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_period.json
@@ -0,0 +1,304 @@
+{
+    "search":{
+        "name":"gtf_period_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_PERIOD",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"text",
+                        "name":"cron_expression",
+                        "label":"FORM_CODE_PUBLICATION_PERIOD",
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"gtf_period_update_form",
+        "title":"FORM_TITLE_PUBLICATION_PERIOD",
+        "input_size":"xs",
+        "initEvent": "initPublicationPeriodForm()",
+        "event":"sendSimpleForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"period_id",
+                        "label":"FORM_ID_PUBLICATION_PERIOD",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_PERIOD",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"cron_expression",
+                        "label":"FORM_CODE_PUBLICATION_PERIOD",
+                        "required":true,
+                        "tooltip": {
+                                "title":"FORM_CRON_HELP_TOOLTIP_TITLE_PUBLICATION_PERIOD",
+                                "content":"FORM_CRON_HELP_TOOLTIP_CONTENT_PUBLICATION_PERIOD",
+                                "html": true
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled",
+                        "label":"FORM_PUBLISHED_PUBLICATION_PERIOD",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_PUBLISHED_YES_PUBLICATION_PERIOD",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_PUBLISHED_NO_PUBLICATION_PERIOD",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"btn_test_period",
+                                "label":"FORM_BTN_TEST_PERIOD_PUBLICATION_PERIOD",
+                                "class":"btn-primary",
+                                "event":"checkCronExpression('cron_expression')"
+                            },
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"gtf_period_insert_form",
+        "title":"FORM_TITLE_PUBLICATION_PERIOD",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "afterEvent":"editSectionForm()",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_PERIOD",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"cron_expression",
+                        "label":"FORM_CODE_PUBLICATION_PERIOD",
+                        "required":true,
+                        "tooltip": {
+                                "title":"FORM_CRON_HELP_TOOLTIP_TITLE_PUBLICATION_PERIOD",
+                                "content":"FORM_CRON_HELP_TOOLTIP_CONTENT_PUBLICATION_PERIOD",
+                                "html": true
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled",
+                        "label":"FORM_PUBLISHED_PUBLICATION_PERIOD",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_PUBLISHED_YES_PUBLICATION_PERIOD",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_PUBLISHED_NO_PUBLICATION_PERIOD",
+                                    "value": false
+                                }]
+                        },
+                        "default_value": 1,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"btn_test_period",
+                                "label":"FORM_BTN_TEST_PERIOD_PUBLICATION_PERIOD",
+                                "class":"btn-primary",
+                                "event":"checkCronExpression('cron_expression')"
+                            },
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_CREATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display":{
+        "name":"gtf_period_display_form",
+        "title":"FORM_TITLE_PUBLICATION_PERIOD",
+        "initEvent": "initPublicationPeriodForm()",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"period_id",
+                        "label":"FORM_ID_PUBLICATION_PERIOD",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"name",
+                        "label":"FORM_NAME_PUBLICATION_PERIOD",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"cron_expression",
+                        "label":"FORM_CODE_PUBLICATION_PERIOD",
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"enabled",
+                        "label":"FORM_PUBLISHED_PUBLICATION_PERIOD",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_workspace.json b/src/module_gtf/module/forms/publication/publication_gtf_workspace.json
new file mode 100755
index 0000000000000000000000000000000000000000..acd287f47cceeacf9375eb5195a6b2bc4236ee1b
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_workspace.json
@@ -0,0 +1,798 @@
+{
+    "search": {
+        "name": "gtf_workspace_search_form",
+        "title": "",
+        "input_size": "xxs",
+        "nb_cols": 12,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "select",
+                        "name": "category_id",
+                        "label": "FORM_CATEGORY_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/categories",
+                            "id_key": "category_id",
+                            "label_key": "name",
+                            "parameters": {
+                                "order_by": "name"
+                            }
+                        },
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "text",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "select",
+                        "name": "owner",
+                        "label": "FORM_OWNER_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "vitis/users",
+                            "id_key": "user_id",
+                            "label_key": "login",
+                            "parameters": {
+                                "order_by": "login"
+                            }
+                        },
+                        "nb_cols": 3
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "last_save_build",
+                        "label": "FORM_BUILD_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "select",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/tags",
+                            "id_key": "tag",
+                            "label_key": "tag",
+                            "parameters": {
+                                "order_by": "tag"
+                            }
+                        },
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "text",
+                        "name": "key",
+                        "label": "FORM_KEY_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    }
+                ]
+            }, {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "subscription",
+                        "id": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "radio",
+                        "name": "survey",
+                        "id": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 3
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-xs",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "search",
+                                "label": "FORM_SEARCH_BUTTON",
+                                "class": "btn-primary",
+                                "event": "setGridFilter()"
+                            },
+                            {
+                                "type": "reset",
+                                "name": "reset",
+                                "label": "FORM_RESET_BUTTON",
+                                "class": "btn-primary",
+                                "event": "resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update": {
+        "name": "gtf_workspace_update_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "beforeEvent": "beforePublicationWorkspaceGeneralForm()",
+        "initEvent": "initPublicationWorkspaceGeneralForm()",
+        "event": "sendSimpleForm()",
+        "afterEvent": "reloadSection()",
+        "input_size": "xs",
+        "nb_cols": 8,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "workspace_id",
+                        "label": "FORM_ID_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "key",
+                        "label": "FORM_KEY_PUBLICATION_WORKSPACE",
+                        "tooltip": {
+                            "title": "FORM_KEY_PUBLICATION_WORKSPACE",
+                            "content": "FORM_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE",
+                            "width": "500px"
+                        },
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "linkurl",
+                        "name": "fmw_file_url",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "target": "_self",
+                        "nb_cols": 7
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "owner",
+                        "label": "FORM_OWNER_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "vitis/users",
+                            "id_key": "user_id",
+                            "label_key": "login",
+                            "parameters":{
+                                    "order_by":"login"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "creation_date",
+                        "label": "FORM_CREATE_DATE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "comp_file",
+                        "label": "FORM_ADDITIONNAL_RESOURCES_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/tags",
+                            "id_key": "tag",
+                            "label_key": "tag",
+                            "parameters":{
+                                    "order_by":"tag"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "email_template_id",
+                        "label": "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/emailtemplates",
+                            "id_key": "email_template_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "subscription",
+                        "id": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "radio",
+                        "name": "survey",
+                        "id": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 5
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "dataencrypt",
+                        "label": "FORM_DATAENCRYPT_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5,
+                        "options": {
+                            "choices": [
+                                {
+                                    "label": "Oui",
+                                    "value": true
+                                },
+                                {
+                                    "label": "Non",
+                                    "value": false
+                                }
+                            ]
+                        },
+                        "default_value": false
+                    },
+                    {
+                        "type": "radio",
+                        "name": "usepersonaldata",
+                        "label": "FORM_USEPERSONALDATA_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5,
+                        "options": {
+                            "choices": [
+                                {
+                                    "label": "Oui",
+                                    "value": true
+                                },
+                                {
+                                    "label": "Non",
+                                    "value": false
+                                }
+                            ]
+                        },
+                        "default_value": false
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "float",
+                        "name": "unitcost",
+                        "label": "FORM_UNITCOST_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "float",
+                        "name": "costpersecond",
+                        "label": "FORM_COSTPERSECOND_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "form_type",
+                        "label": "FORM_FORM_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "submit",
+                                "name": "form_submit",
+                                "label": "FORM_UPDATE",
+                                "class": "btn-primary"
+                            },
+                            {
+                                "type": "button",
+                                "name": "return_list",
+                                "label": "FORM_RETURN_LIST",
+                                "class": "btn-primary",
+                                "event": "setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert": {
+        "name": "gtf_workspace_insert_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size": "xs",
+        "beforeEvent": "beforePublicationWorkspaceGeneralForm()",
+        "event": "sendSimpleForm()",
+        "afterEvent": "editSectionForm()",
+        "nb_cols": 8,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "comp_file",
+                        "label": "FORM_ADDITIONNAL_RESOURCES_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "default_value": "default",
+                        "web_service": {
+                            "ressource_id": "gtf/tags",
+                            "id_key": "tag",
+                            "label_key": "tag",
+                            "parameters":{
+                                    "order_by":"tag"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "email_template_id",
+                        "label": "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/emailtemplates",
+                            "id_key": "email_template_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "default_value": "getPropertie('default_mail_model')",
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "subscription",
+                        "id": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "default_value": 0,
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "radio",
+                        "name": "survey",
+                        "id": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "default_value": 0,
+                        "nb_cols": 5
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "dataencrypt",
+                        "label": "FORM_DATAENCRYPT_USER_USER",
+                        "nb_cols": 5,
+                        "options": {
+                            "choices": [
+                                {
+                                    "label": "Oui",
+                                    "value": true
+                                },
+                                {
+                                    "label": "Non",
+                                    "value": false
+                                }
+                            ]
+                        },
+                        "default_value": false
+                    },
+                    {
+                        "type": "radio",
+                        "name": "usepersonaldata",
+                        "label": "FORM_USEPERSONALDATA_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5,
+                        "options": {
+                            "choices": [
+                                {
+                                    "label": "Oui",
+                                    "value": true
+                                },
+                                {
+                                    "label": "Non",
+                                    "value": false
+                                }
+                            ]
+                        },
+                        "default_value": false
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "float",
+                        "name": "unitcost",
+                        "label": "FORM_UNITCOST_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "float",
+                        "name": "costpersecond",
+                        "label": "FORM_COSTPERSECOND_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "submit",
+                                "name": "form_submit",
+                                "label": "FORM_CREATE",
+                                "class": "btn-primary"
+                            },
+                            {
+                                "type": "button",
+                                "name": "return_list",
+                                "label": "FORM_RETURN_LIST",
+                                "class": "btn-primary",
+                                "event": "setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display": {
+        "name": "gtf_workspace_display_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size": "xs",
+        "initEvent": "initPublicationWorkspaceGeneralForm()",
+        "nb_cols": 8,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "workspace_id",
+                        "label": "FORM_ID_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "key",
+                        "label": "FORM_KEY_PUBLICATION_WORKSPACE",
+                        "tooltip": {
+                            "title": "FORM_KEY_PUBLICATION_WORKSPACE",
+                            "content": "FORM_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE",
+                            "width": "500px"
+                        },
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "linkurl",
+                        "name": "fmw_file_url",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "target": "_self",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "login",
+                        "label": "FORM_OWNER_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "creation_date",
+                        "label": "FORM_CREATE_DATE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "email_template",
+                        "label": "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "label",
+                        "name": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "dataencrypt",
+                        "label": "FORM_DATAENCRYPT_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "label",
+                        "name": "usepersonaldata",
+                        "label": "FORM_USEPERSONALDATA_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "unitcost",
+                        "label": "FORM_UNITCOST_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "label",
+                        "name": "costpersecond",
+                        "label": "FORM_COSTPERSECOND_PUBLICATION_WORKSPACE",
+                        "nb_cols": 5
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "form_type",
+                        "label": "FORM_FORM_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "return_list",
+                                "label": "FORM_RETURN_LIST",
+                                "class": "btn-primary",
+                                "event": "setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_workspace_SubForm.json b/src/module_gtf/module/forms/publication/publication_gtf_workspace_SubForm.json
new file mode 100755
index 0000000000000000000000000000000000000000..c56703d139ab53a2ed0692174f45ed94540ebff7
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_workspace_SubForm.json
@@ -0,0 +1,49 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_sub_form_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "event":"sendSimpleForm()",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_sub_form_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_workspace_editWidget.json b/src/module_gtf/module/forms/publication/publication_gtf_workspace_editWidget.json
new file mode 100755
index 0000000000000000000000000000000000000000..21ec64329650db91a854b93db7144f317c9d36d6
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_workspace_editWidget.json
@@ -0,0 +1,294 @@
+{
+    "search": {
+
+    },
+    "update": {
+        "name": "gtf_workspace_edit_widget_update_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "event": "generateCodeWidget()",
+        "input_size": "xs",
+        "nb_cols": 12,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "workspace_id",
+                        "label": "FORM_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "key",
+                        "label": "FORM_WORKSPACE_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "widgetType",
+                        "label": "FORM_WIDGET_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "options": ["FORM_WIDGET_TYPE_POPUP_PUBLICATION_WORKSPACE_EDIT_WIDGET|Pop-up", "FORM_WIDGET_TYPE_EMBEDDED_PUBLICATION_WORKSPACE_EDIT_WIDGET|Embedded", "Page html|File"],
+                        "default_value": "Pop-up",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "widget_title",
+                        "label": "FORM_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": "FORM_WIDGET_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "buttonText",
+                        "label": "FORM_BUTTON_TEXT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": "FORM_WIDGET_BTN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "height",
+                        "label": "FORM_HEIGHT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": 600,
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "width",
+                        "label": "FORM_WIDTH_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": 600,
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "class": "form-field-inline",
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "token",
+                        "label": "FORM_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "tooltip": {
+                            "title": "FORM_TOKEN_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_TOKEN_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px"
+                        },
+                        "required": true,
+                        "nb_cols": 6
+                    },
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 6,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "btn_gen_public_token",
+                                "label": "FORM_PUBLIC_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                                "class": "btn-primary",
+                                "event": "loadPublicToken()"
+                            },
+                            {
+                                "type": "button",
+                                "name": "btn_gen_private_token",
+                                "label": "FORM_GENERATE_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                                "class": "btn-primary",
+                                "event": "importToken()"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "divId",
+                        "label": "FORM_WINDOW_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": "gtf_widget",
+                        "tooltip": {
+                            "title": "FORM_WINDOW_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_WINDOW_ID_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px"
+                        },
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "captcha",
+                        "label": "FORM_CAPTCHA_SELECT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "options": ["FORM_CAPTCHA_DISABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET|disable", "FORM_CAPTCHA_ENABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET|enable"],
+                        "default_value": "disable",
+                        "tooltip": {
+                            "title": "FORM_CAPTCHA_SELECT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_CAPTCHA_SELECT_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px",
+                            "html": true
+                        },
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {                        
+                        "type": "text",
+                        "name": "captcha_key",
+                        "label": "FORM_CAPTCHA_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "tooltip": {
+                            "title": "FORM_CAPTCHA_KEY_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_CAPTCHA_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px",
+                            "html": true
+                        },
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "notificationsType",
+                        "label": "FORM_NOTIFICATIONS_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "web_service": {
+                            "ressource_id": "gtf/emailoptions",
+                            "id_key": "email_option_id",
+                            "label_key": "email_option_label",
+                            "parameters": {
+                                "filter": {
+                                    "lang": "getPropertie('language')"
+                                },
+                                "order_by": "email_option_label"
+                            }
+                        },
+                        "default_value": 1,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "notifications",
+                        "label": "FORM_NOTIFICATIONS_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "options": ["FORM_NOTIFICATIONS_OPTIONAL_PUBLICATION_WORKSPACE_EDIT_WIDGET|optional", "FORM_NOTIFICATIONS_NEEDED_PUBLICATION_WORKSPACE_EDIT_WIDGET|needed", "FORM_NOTIFICATIONS_NONE_PUBLICATION_WORKSPACE_EDIT_WIDGET|none"],
+                        "default_value": "optional",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 8,
+                        "buttons": [
+                            {
+                                "type": "submit",
+                                "name": "form_submit",
+                                "label": "FORM_GENERATE_CODE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                                "class": "btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "class": "form-field-inline",
+                "fields": [
+                    {
+                        "type": "linkurl",
+                        "name": "url_widget_file",
+                        "label": "Lien vers le widget",
+                        "visible": false,
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 6,
+                        "buttons": [
+                            {
+                                "type": "button_download",
+                                "name": "btn_download_widget_file",
+                                "label": "FORM_BUTTON_DOWNLOAD_WIDGET",
+                                "class": "btn-primary",
+                                "visible": false
+                            },
+                            {
+                                "type": "button",
+                                "name": "btn_delete_widget_file",
+                                "label": "FORM_BUTTON_DELETE_WIDGET",
+                                "class": "btn-primary",
+                                "event": "deleteWidgetFile()",
+                                "visible": false
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "class": "widget_codemirror",
+                "fields": [
+                    {
+                        "type": "codemirror",
+                        "name": "code",
+                        "label": "FORM_CODE_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_ADVANCED_EDITION",
+                        "nb_cols": 12,
+                        "codemirrorOptions": {
+                            "runnable": true,
+                            "lineNumbers": true,
+                            "matchBrackets": true,
+                            "mode": "xml",
+                            "htmlMode": true,
+                            "indentUnit": 4,
+                            "indentWithTabs": true,
+                            "enterMode": "keep",
+                            "tabMode": "shift"
+                        },
+                        "visible": false
+                    }
+                ]
+            }
+        ]
+    },
+    "insert": {
+
+    },
+    "display": {
+
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_workspace_loadProjectDirectory.json b/src/module_gtf/module/forms/publication/publication_gtf_workspace_loadProjectDirectory.json
new file mode 100755
index 0000000000000000000000000000000000000000..4e4f7ac191e83130684b35746b2ea6860e76befd
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_workspace_loadProjectDirectory.json
@@ -0,0 +1,121 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_project_directory_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "beforeEvent":"beforeProjectDirectory()",
+        "event":"sendSimpleForm()",
+        "afterEvent":"afterProjectDirectory()",
+        "input_size":"xs",
+        "nb_cols":12,
+        "class":"project-directory-upload-form",
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"btn_download_file",
+                                "glyphicon":"download",
+                                "class":"btn-primary btn-xs",
+                                "event":"downloadFile()",
+                                "tooltip": {
+                                        "title":"FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                        "placement": "bottom",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"btn_refresh_treeview",
+                                "glyphicon":"refresh",
+                                "class":"btn-primary btn-xs",
+                                "event":"loadTreeview()",
+                                "tooltip": {
+                                        "title":"FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                        "placement": "bottom",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"btn_delete_file",
+                                "glyphicon":"trash",
+                                "class":"btn-primary btn-xs",
+                                "event":"deleteFile()",
+                                "tooltip": {
+                                        "title":"FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                        "placement": "bottom",
+                                        "trigger": "hover"
+                                }
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "class":"form-field-inline",
+                "fields":[
+                    {
+                        "type":"upload",
+                        "name":"fmw_file",
+                        "label":"FORM_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                        "nb_cols":5
+                    },
+                    {
+                        "type":"upload",
+                        "name":"comp_file",
+                        "label":"FORM_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                        "nb_cols":5
+                    }
+                ]
+            },
+            {
+                "class":"form-field-inline",
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":6,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"btn_upload_fmw_file",
+                                "label":"FORM_UPLOAD_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_project_directory_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "name":"fmw_file",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_workspace_updateMetadata.json b/src/module_gtf/module/forms/publication/publication_gtf_workspace_updateMetadata.json
new file mode 100755
index 0000000000000000000000000000000000000000..5b97ac6caba77e44df2a631ef6f753d610e5b5ff
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_workspace_updateMetadata.json
@@ -0,0 +1,370 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_update_metadata_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "initEvent": "initPublicationWorkspaceUpdateMetaDataForm()",
+        "event":"sendSimpleForm()",
+        "input_size":"xs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"title",
+                        "label":"FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "tooltip": {
+                            "title": "FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "content": "FORM_TITLE_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "width": "500px"
+                        },
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"category_id",
+                        "label":"FORM_CATEGORY_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "web_service":{
+                            "ressource_id":"gtf/categories",
+                            "id_key":"category_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_date",
+                        "label":"FORM_LAST_SAVE_DATE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_build",
+                        "label":"FORM_BUILD_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"file_encoding",
+                        "label":"FORM_FILE_ENCODING_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"usage",
+                        "label":"FORM_USAGE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"requirements",
+                        "label":"FORM_REQUIREMENTS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"legal_terms_conditions",
+                        "label":"FORM_LEGAL_TERMS_CONDITIONS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "class": "tooltip-button-xl",
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":8,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"regenerate_metadata",
+                                "label":"FORM_BTN_REGENERATE_METADATA_PUBLICATION_WORKSPACE",
+                                "class":"btn-primary",
+                                "event":"regenerateWorkspaceMetaData()",
+                                "tooltip": {
+                                        "title":"FORM_BTN_REGENERATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE",
+                                        "placement": "top",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"reintegrate_metadata",
+                                "label":"FORM_BTN_REINTEGRATE_METADATA_PUBLICATION_WORKSPACE",
+                                "class":"btn-primary",
+                                "event":"reintegrateWorkspaceMetaData()",
+                                "tooltip": {
+                                        "title":"FORM_BTN_REINTEGRATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE",
+                                        "placement": "top",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_update_metadata_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "initEvent": "initPublicationWorkspaceUpdateMetaDataForm()",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"title",
+                        "label":"FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "tooltip": {
+                            "title": "FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "content": "FORM_TITLE_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "width": "500px"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"category_name",
+                        "label":"FORM_CATEGORY_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_date",
+                        "label":"FORM_LAST_SAVE_DATE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_build",
+                        "label":"FORM_BUILD_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"file_encoding",
+                        "label":"FORM_FILE_ENCODING_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"usage",
+                        "label":"FORM_USAGE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"requirements",
+                        "label":"FORM_REQUIREMENTS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"legal_terms_conditions",
+                        "label":"FORM_LEGAL_TERMS_CONDITIONS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication/publication_gtf_workspace_updateRight.json b/src/module_gtf/module/forms/publication/publication_gtf_workspace_updateRight.json
new file mode 100755
index 0000000000000000000000000000000000000000..cc9ddd04ef517321c6e421dd26526bb5eae317cb
--- /dev/null
+++ b/src/module_gtf/module/forms/publication/publication_gtf_workspace_updateRight.json
@@ -0,0 +1,120 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_update_right_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "event":"sendSimpleForm()",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"groups",
+                        "name_from":"group",
+                        "name_to":"groups",
+                        "label":"FORM_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "label_from":"FORM_AVAILABLE_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "label_to":"FORM_LINKED_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "web_service":{
+                            "ressource_id":"vitis/groups",
+                            "id_key":"group_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":18,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_update_right_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"groups_label",
+                        "label":"FORM_LINKED_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author.json b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author.json
new file mode 100755
index 0000000000000000000000000000000000000000..0b1c42e800790eaf6dbc5191202f75f00b91e501
--- /dev/null
+++ b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author.json
@@ -0,0 +1,628 @@
+{
+    "search": {
+        "name": "gtf_workspace_author_search_form",
+        "title": "",
+        "input_size": "xxs",
+        "nb_cols": 12,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "select",
+                        "name": "category_id",
+                        "label": "FORM_CATEGORY_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/categories",
+                            "id_key": "category_id",
+                            "label_key": "name",
+                            "parameters": {
+                                "order_by": "name"
+                            }
+                        },
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "text",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "text",
+                        "name": "last_save_build",
+                        "label": "FORM_BUILD_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/tags",
+                            "id_key": "tag",
+                            "label_key": "tag",
+                            "parameters": {
+                                "order_by": "tag"
+                            }
+                        },
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "text",
+                        "name": "key",
+                        "label": "FORM_KEY_PUBLICATION_WORKSPACE",
+                        "nb_cols": 3
+                    }
+                ]
+            }, {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "subscription",
+                        "id": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 3
+                    },
+                    {
+                        "type": "radio",
+                        "name": "survey",
+                        "id": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 3
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-xs",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "search",
+                                "label": "FORM_SEARCH_BUTTON",
+                                "class": "btn-primary",
+                                "event": "setGridFilter()"
+                            },
+                            {
+                                "type": "reset",
+                                "name": "reset",
+                                "label": "FORM_RESET_BUTTON",
+                                "class": "btn-primary",
+                                "event": "resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update": {
+        "name": "gtf_workspace_author_update_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "beforeEvent": "beforePublicationWorkspaceGeneralForm()",
+        "initEvent": "initPublicationWorkspaceGeneralForm()",
+        "event": "sendSimpleForm()",
+        "afterEvent": "reloadSection()",
+        "input_size": "xs",
+        "nb_cols": 8,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "workspace_id",
+                        "label": "FORM_ID_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "key",
+                        "label": "FORM_KEY_PUBLICATION_WORKSPACE",
+                        "tooltip": {
+                            "title": "FORM_KEY_PUBLICATION_WORKSPACE",
+                            "content": "FORM_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE",
+                            "width": "500px"
+                        },
+                        "nb_cols": 4
+                    },
+                    {
+                        "type": "linkurl",
+                        "name": "fmw_file_url",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "target": "_self",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "login",
+                        "label": "FORM_OWNER_PUBLICATION_WORKSPACE",
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "creation_date",
+                        "label": "FORM_CREATE_DATE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "comp_file",
+                        "label": "FORM_ADDITIONNAL_RESOURCES_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/tags",
+                            "id_key": "tag",
+                            "label_key": "tag",
+                            "parameters":{
+                                    "order_by":"tag"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "email_template_id",
+                        "label": "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/emailtemplates",
+                            "id_key": "email_template_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "subscription",
+                        "id": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 4
+                    },
+                    {
+                        "type": "radio",
+                        "name": "survey",
+                        "id": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "form_type",
+                        "label": "FORM_FORM_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "submit",
+                                "name": "form_submit",
+                                "label": "FORM_UPDATE",
+                                "class": "btn-primary"
+                            },
+                            {
+                                "type": "button",
+                                "name": "return_list",
+                                "label": "FORM_RETURN_LIST",
+                                "class": "btn-primary",
+                                "event": "setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert": {
+        "name": "gtf_workspace_author_insert_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size": "xs",
+        "beforeEvent": "beforePublicationWorkspaceGeneralForm()",
+        "event": "sendSimpleForm()",
+        "afterEvent": "editSectionForm()",
+        "nb_cols": 8,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "upload",
+                        "name": "comp_file",
+                        "label": "FORM_ADDITIONNAL_RESOURCES_PUBLICATION_WORKSPACE",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "default_value": "default",
+                        "web_service": {
+                            "ressource_id": "gtf/tags",
+                            "id_key": "tag",
+                            "label_key": "tag",
+                            "parameters":{
+                                    "order_by":"tag"
+                            }
+                        },
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "email_template_id",
+                        "label": "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE",
+                        "web_service": {
+                            "ressource_id": "gtf/emailtemplates",
+                            "id_key": "email_template_id",
+                            "label_key": "name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "default_value": "getPropertie('default_mail_model')",
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "radio",
+                        "name": "subscription",
+                        "id": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "default_value": 0,
+                        "nb_cols": 4
+                    },
+                    {
+                        "type": "radio",
+                        "name": "survey",
+                        "id": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE",
+                                    "value": false
+                                }]
+                        },
+                        "default_value": 0,
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "submit",
+                                "name": "form_submit",
+                                "label": "FORM_CREATE",
+                                "class": "btn-primary"
+                            },
+                            {
+                                "type": "button",
+                                "name": "return_list",
+                                "label": "FORM_RETURN_LIST",
+                                "class": "btn-primary",
+                                "event": "setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "display": {
+        "name": "gtf_workspace_author_display_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size": "xs",
+        "initEvent": "initPublicationWorkspaceGeneralForm()",
+        "nb_cols": 8,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "workspace_id",
+                        "label": "FORM_ID_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "name",
+                        "label": "FORM_NAME_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "key",
+                        "label": "FORM_KEY_PUBLICATION_WORKSPACE",
+                        "tooltip": {
+                            "title": "FORM_KEY_PUBLICATION_WORKSPACE",
+                            "content": "FORM_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE",
+                            "width": "500px"
+                        },
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "linkurl",
+                        "name": "fmw_file_url",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "target": "_self",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "login",
+                        "label": "FORM_OWNER_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "creation_date",
+                        "label": "FORM_CREATE_DATE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "tag",
+                        "label": "FORM_TAG_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "email_template",
+                        "label": "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "subscription",
+                        "label": "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 4
+                    },
+                    {
+                        "type": "label",
+                        "name": "survey",
+                        "label": "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE",
+                        "nb_cols": 4
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "form_type",
+                        "label": "FORM_FORM_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 12,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "return_list",
+                                "label": "FORM_RETURN_LIST",
+                                "class": "btn-primary",
+                                "event": "setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_SubForm.json b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_SubForm.json
new file mode 100755
index 0000000000000000000000000000000000000000..ef731ba008cfe17943b45820d8ff28c2e0c44113
--- /dev/null
+++ b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_SubForm.json
@@ -0,0 +1,49 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_author_sub_form_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "event":"sendSimpleForm()",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_author_sub_form_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_editWidget.json b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_editWidget.json
new file mode 100755
index 0000000000000000000000000000000000000000..8368cf541b5040e134c26e8d05b22196ee17ef85
--- /dev/null
+++ b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_editWidget.json
@@ -0,0 +1,294 @@
+{
+    "search": {
+
+    },
+    "update": {
+        "name": "gtf_workspace_author_edit_widget_update_form",
+        "title": "FORM_TITLE_PUBLICATION_WORKSPACE",
+        "event": "generateCodeWidget()",
+        "input_size": "xs",
+        "nb_cols": 12,
+        "rows": [
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "workspace_id",
+                        "label": "FORM_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "key",
+                        "label": "FORM_WORKSPACE_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "widgetType",
+                        "label": "FORM_WIDGET_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "options": ["FORM_WIDGET_TYPE_POPUP_PUBLICATION_WORKSPACE_EDIT_WIDGET|Pop-up", "FORM_WIDGET_TYPE_EMBEDDED_PUBLICATION_WORKSPACE_EDIT_WIDGET|Embedded", "Page html|File"],
+                        "default_value": "Pop-up",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "widget_title",
+                        "label": "FORM_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": "FORM_WIDGET_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "buttonText",
+                        "label": "FORM_BUTTON_TEXT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": "FORM_WIDGET_BTN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "height",
+                        "label": "FORM_HEIGHT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": 600,
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "width",
+                        "label": "FORM_WIDTH_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": 600,
+                        "required": true,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "class": "form-field-inline",
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "token",
+                        "label": "FORM_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "tooltip": {
+                            "title": "FORM_TOKEN_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_TOKEN_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px"
+                        },
+                        "required": true,
+                        "nb_cols": 6
+                    },
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 6,
+                        "buttons": [
+                            {
+                                "type": "button",
+                                "name": "btn_gen_public_token",
+                                "label": "FORM_PUBLIC_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                                "class": "btn-primary",
+                                "event": "loadPublicToken()"
+                            },
+                            {
+                                "type": "button",
+                                "name": "btn_gen_private_token",
+                                "label": "FORM_GENERATE_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                                "class": "btn-primary",
+                                "event": "importToken()"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "text",
+                        "name": "divId",
+                        "label": "FORM_WINDOW_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "default_value": "gtf_widget",
+                        "tooltip": {
+                            "title": "FORM_WINDOW_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_WINDOW_ID_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px"
+                        },
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "captcha",
+                        "label": "FORM_CAPTCHA_SELECT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "options": ["FORM_CAPTCHA_DISABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET|disable", "FORM_CAPTCHA_ENABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET|enable"],
+                        "default_value": "disable",
+                        "tooltip": {
+                            "title": "FORM_CAPTCHA_SELECT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_CAPTCHA_SELECT_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px",
+                            "html": true
+                        },
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {                        
+                        "type": "text",
+                        "name": "captcha_key",
+                        "label": "FORM_CAPTCHA_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "tooltip": {
+                            "title": "FORM_CAPTCHA_KEY_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "content": "FORM_CAPTCHA_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                            "width": "500px",
+                            "html": true
+                        },
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "notificationsType",
+                        "label": "FORM_NOTIFICATIONS_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "web_service": {
+                            "ressource_id": "gtf/emailoptions",
+                            "id_key": "email_option_id",
+                            "label_key": "email_option_label",
+                            "parameters": {
+                                "filter": {
+                                    "lang": "getPropertie('language')"
+                                },
+                                "order_by": "email_option_label"
+                            }
+                        },
+                        "default_value": 1,
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "select",
+                        "name": "notifications",
+                        "label": "FORM_NOTIFICATIONS_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                        "options": ["FORM_NOTIFICATIONS_OPTIONAL_PUBLICATION_WORKSPACE_EDIT_WIDGET|optional", "FORM_NOTIFICATIONS_NEEDED_PUBLICATION_WORKSPACE_EDIT_WIDGET|needed", "FORM_NOTIFICATIONS_NONE_PUBLICATION_WORKSPACE_EDIT_WIDGET|none"],
+                        "default_value": "optional",
+                        "nb_cols": 8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 8,
+                        "buttons": [
+                            {
+                                "type": "submit",
+                                "name": "form_submit",
+                                "label": "FORM_GENERATE_CODE_PUBLICATION_WORKSPACE_EDIT_WIDGET",
+                                "class": "btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "class": "form-field-inline",
+                "fields": [
+                    {
+                        "type": "linkurl",
+                        "name": "url_widget_file",
+                        "label": "Lien vers le widget",
+                        "visible": false,
+                        "nb_cols": 5
+                    },
+                    {
+                        "type": "button",
+                        "class": "btn-ungroup btn-group-sm",
+                        "nb_cols": 6,
+                        "buttons": [
+                            {
+                                "type": "button_download",
+                                "name": "btn_download_widget_file",
+                                "label": "FORM_BUTTON_DOWNLOAD_WIDGET",
+                                "class": "btn-primary",
+                                "visible": false
+                            },
+                            {
+                                "type": "button",
+                                "name": "btn_delete_widget_file",
+                                "label": "FORM_BUTTON_DELETE_WIDGET",
+                                "class": "btn-primary",
+                                "event": "deleteWidgetFile()",
+                                "visible": false
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "class": "widget_codemirror",
+                "fields": [
+                    {
+                        "type": "codemirror",
+                        "name": "code",
+                        "label": "FORM_CODE_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_ADVANCED_EDITION",
+                        "nb_cols": 12,
+                        "codemirrorOptions": {
+                            "runnable": true,
+                            "lineNumbers": true,
+                            "matchBrackets": true,
+                            "mode": "xml",
+                            "htmlMode": true,
+                            "indentUnit": 4,
+                            "indentWithTabs": true,
+                            "enterMode": "keep",
+                            "tabMode": "shift"
+                        },
+                        "visible": false
+                    }
+                ]
+            }
+        ]
+    },
+    "insert": {
+
+    },
+    "display": {
+
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_loadProjectDirectory.json b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_loadProjectDirectory.json
new file mode 100755
index 0000000000000000000000000000000000000000..28d926f9b7ce1abb502c15fd13522c55873b8bcb
--- /dev/null
+++ b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_loadProjectDirectory.json
@@ -0,0 +1,121 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_author_project_directory_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "beforeEvent":"beforeProjectDirectory()",
+        "event":"sendSimpleForm()",
+        "afterEvent":"afterProjectDirectory()",
+        "input_size":"xs",
+        "nb_cols":12,
+        "class":"project-directory-upload-form",
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"btn_download_file",
+                                "glyphicon":"download",
+                                "class":"btn-primary btn-xs",
+                                "event":"downloadFile()",
+                                "tooltip": {
+                                        "title":"FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                        "placement": "bottom",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"btn_refresh_treeview",
+                                "glyphicon":"refresh",
+                                "class":"btn-primary btn-xs",
+                                "event":"loadTreeview()",
+                                "tooltip": {
+                                        "title":"FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                        "placement": "bottom",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"btn_delete_file",
+                                "glyphicon":"trash",
+                                "class":"btn-primary btn-xs",
+                                "event":"deleteFile()",
+                                "tooltip": {
+                                        "title":"FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                        "placement": "bottom",
+                                        "trigger": "hover"
+                                }
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "class":"form-field-inline",
+                "fields":[
+                    {
+                        "type":"upload",
+                        "name":"fmw_file",
+                        "label":"FORM_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                        "nb_cols":5
+                    },
+                    {
+                        "type":"upload",
+                        "name":"comp_file",
+                        "label":"FORM_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                        "nb_cols":5
+                    }
+                ]
+            },
+            {
+                "class":"form-field-inline",
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":6,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"btn_upload_fmw_file",
+                                "label":"FORM_UPLOAD_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_author_project_directory_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "name":"fmw_file",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_updateMetadata.json b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_updateMetadata.json
new file mode 100755
index 0000000000000000000000000000000000000000..e7ca90e18e697bd77c0f09d6b1ce924e48a4c395
--- /dev/null
+++ b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_updateMetadata.json
@@ -0,0 +1,370 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_author_update_metadata_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "initEvent": "initPublicationWorkspaceUpdateMetaDataForm()",
+        "event":"sendSimpleForm()",
+        "input_size":"xs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"title",
+                        "label":"FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "tooltip": {
+                            "title": "FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "content": "FORM_TITLE_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "width": "500px"
+                        },
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"category_id",
+                        "label":"FORM_CATEGORY_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "web_service":{
+                            "ressource_id":"gtf/categories",
+                            "id_key":"category_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_date",
+                        "label":"FORM_LAST_SAVE_DATE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_build",
+                        "label":"FORM_BUILD_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"file_encoding",
+                        "label":"FORM_FILE_ENCODING_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":8
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"usage",
+                        "label":"FORM_USAGE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"requirements",
+                        "label":"FORM_REQUIREMENTS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"legal_terms_conditions",
+                        "label":"FORM_LEGAL_TERMS_CONDITIONS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":10,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "plugins": ["image"],
+                            "toolbar": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
+                        }
+                    }
+                ]
+            },
+            {
+                "class": "tooltip-button-xl",
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":8,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"regenerate_metadata",
+                                "label":"FORM_BTN_REGENERATE_METADATA_PUBLICATION_WORKSPACE",
+                                "class":"btn-primary",
+                                "event":"regenerateWorkspaceMetaData()",
+                                "tooltip": {
+                                        "title":"FORM_BTN_REGENERATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE",
+                                        "placement": "top",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"reintegrate_metadata",
+                                "label":"FORM_BTN_REINTEGRATE_METADATA_PUBLICATION_WORKSPACE",
+                                "class":"btn-primary",
+                                "event":"reintegrateWorkspaceMetaData()",
+                                "tooltip": {
+                                        "title":"FORM_BTN_REINTEGRATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE",
+                                        "placement": "top",
+                                        "trigger": "hover",
+                                        "container": "body"
+                                }
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_author_update_metadata_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "initEvent": "initPublicationWorkspaceUpdateMetaDataForm()",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"title",
+                        "label":"FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "tooltip": {
+                            "title": "FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "content": "FORM_TITLE_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                            "width": "500px"
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"category_name",
+                        "label":"FORM_CATEGORY_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields": [
+                    {
+                        "type": "label",
+                        "name": "fmw_file",
+                        "label": "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE",
+                        "nb_cols": 12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_date",
+                        "label":"FORM_LAST_SAVE_DATE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"last_save_build",
+                        "label":"FORM_BUILD_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"file_encoding",
+                        "label":"FORM_FILE_ENCODING_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"description",
+                        "label":"FORM_DESCRIPTION_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"usage",
+                        "label":"FORM_USAGE_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"requirements",
+                        "label":"FORM_REQUIREMENTS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"tinymce",
+                        "name":"legal_terms_conditions",
+                        "label":"FORM_LEGAL_TERMS_CONDITIONS_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12,
+                        "tinymceOptions":{
+                            "min_height":200,
+                            "readonly" : 1
+                        }
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_updateRight.json b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_updateRight.json
new file mode 100755
index 0000000000000000000000000000000000000000..a208427babaa3a7c795af1dfe78f2424da718d23
--- /dev/null
+++ b/src/module_gtf/module/forms/publication_author/publication_author_gtf_workspace_author_updateRight.json
@@ -0,0 +1,120 @@
+{
+    "search":{
+            
+    },
+    "update":{
+        "name":"gtf_workspace_author_update_right_update_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "event":"sendSimpleForm()",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"groups",
+                        "name_from":"group",
+                        "name_to":"groups",
+                        "label":"FORM_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "label_from":"FORM_AVAILABLE_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "label_to":"FORM_LINKED_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "web_service":{
+                            "ressource_id":"vitis/groups",
+                            "id_key":"group_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":18,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+            
+    },
+    "display":{
+        "name":"gtf_workspace_author_update_right_display_form",
+        "title":"FORM_TITLE_PUBLICATION_WORKSPACE",
+        "input_size":"xs",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_id",
+                        "label":"FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"groups_label",
+                        "label":"FORM_LINKED_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/statistics/statistics_gtf_statistics.json b/src/module_gtf/module/forms/statistics/statistics_gtf_statistics.json
new file mode 100755
index 0000000000000000000000000000000000000000..50809748ac57d22ae8dc1aef802fdbf78f95f089
--- /dev/null
+++ b/src/module_gtf/module/forms/statistics/statistics_gtf_statistics.json
@@ -0,0 +1,218 @@
+{
+    "search":{
+
+    },
+    "update":{
+        "name":"statistics_form",
+        "title":"FORM_STATS_TITLE_STATISTICS_STATISTICS",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"variable_id",
+                        "id":"variable_id",
+                        "label":"FORM_STATS_VARIABLE_ID_TITLE_STATISTICS_STATISTICS",
+                        "options": [
+                                "FORM_STATS_VARIABLE_ID_VAR_TJL_STATISTICS_STATISTICS|var_tjl",
+                                "FORM_STATS_VARIABLE_ID_VAR_UJL_STATISTICS_STATISTICS|var_ujl",
+                                "FORM_STATS_VARIABLE_ID_VAR_JN_STATISTICS_STATISTICS|var_jn"
+                        ],
+                        "default_value": "var_tjl",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"unit_id",
+                        "id":"unit_id",
+                        "label":"FORM_STATS_UNIT_ID_TITLE_STATISTICS_STATISTICS",
+                        "options": [
+                                "FORM_STATS_UNIT_ID_UNIT_SEC_STATISTICS_STATISTICS|unit_sec",
+                                "FORM_STATS_UNIT_ID_UNIT_MIN_STATISTICS_STATISTICS|unit_min",
+                                "FORM_STATS_UNIT_ID_UNIT_HOUR_STATISTICS_STATISTICS|unit_hour",
+                                "FORM_STATS_UNIT_ID_UNIT_PC_STATISTICS_STATISTICS|unit_pc"
+                        ],
+                        "default_value": "unit_sec",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"gb_id",
+                        "id":"gb_id",
+                        "label":"FORM_STATS_LEGEND_TITLE_STATISTICS_STATISTICS",
+                        "options": [
+                                "FORM_STATS_LEGEND_GB_WORKSPACE_STATISTICS_STATISTICS|gb_workspace",
+                                "FORM_STATS_LEGEND_GB_USER_STATISTICS_STATISTICS|gb_user",
+                                "FORM_STATS_LEGEND_GB_ENGINE_STATISTICS_STATISTICS|gb_engine",
+                                "FORM_STATS_LEGEND_GB_STATUS_STATISTICS_STATISTICS|gb_status"
+                        ],
+                        "default_value": "gb_workspace",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"per_type",
+                        "id":"per_type",
+                        "label":"FORM_STATS_PER_TYPE_TITLE_STATISTICS_STATISTICS",
+                        "options": [
+                                "FORM_STATS_PER_TYPE_PER_DAY_STATISTICS_STATISTICS|per_day",
+                                "FORM_STATS_PER_TYPE_PER_WEEK_STATISTICS_STATISTICS|per_week",
+                                "FORM_STATS_PER_TYPE_PER_MONTH_STATISTICS_STATISTICS|per_month",
+                                "FORM_STATS_PER_TYPE_PER_YEAR_STATISTICS_STATISTICS|per_year"
+                        ],
+                        "default_value": "per_week",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"date",
+                        "name":"per_date",
+                        "id":"per_date",
+                        "label":"FORM_STATS_PER_DATE_STATISTICS_STATISTICS",
+                        "required":true,
+                        "options": {
+                                "ignoreReadonly": true
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"number",
+                        "name":"max_elements",
+                        "id":"max_elements",
+                        "label":"FORM_STATS_MAX_ELEMENTS_STATISTICS_STATISTICS",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"number",
+                        "name":"max_labels_characters",
+                        "id":"max_labels_characters",
+                        "label":"FORM_STATS_MAX_LABELS_CHARACTERS_STATISTICS_STATISTICS",
+                        "required":true,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"graph_colors",
+                        "id":"graph_colors",
+                        "label":"FORM_STATS_COLORS_TITLE_STATISTICS_STATISTICS",
+                        "options": [
+                                "FORM_STATS_COLORS_PALETTE_1_STATISTICS_STATISTICS|palette1",
+                                "FORM_STATS_COLORS_PALETTE_2_STATISTICS_STATISTICS|palette2"
+                        ],
+                        "default_value": "palette1",
+                        "nb_cols":12
+                    }
+                ]
+            },{
+                "class": "form-stats-view-mode",
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"view_id",
+                        "id":"view_id",
+                        "label":"FORM_STATS_DISPLAY_TITLE_STATISTICS_STATISTICS",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_STATS_DISPLAY_GRAPHIC_STATISTICS_STATISTICS",
+                                    "value": "view_graph"
+                                },
+                                {
+                                    "label": "FORM_STATS_DISPLAY_TABLE_STATISTICS_STATISTICS",
+                                    "value": "view_table"
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"hidden",
+                        "id":"first_day_week",
+                        "name":"first_day_week",
+                        "nb_cols":1
+                    },
+                    {
+                        "type":"hidden",
+                        "id":"per_date_sql",
+                        "name":"per_date_sql",
+                        "nb_cols":1
+                    },
+                    {
+                        "type":"hidden",
+                        "id":"date_format",
+                        "name":"date_format",
+                        "nb_cols":1
+                    },
+                    {
+                        "type":"hidden",
+                        "id":"graph_type",
+                        "name":"graph_type",
+                        "nb_cols":1
+                    },
+                    {
+                        "type":"hidden",
+                        "id":"per_type_save",
+                        "name":"per_type_save",
+                        "nb_cols":1
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-group-xs stats-calc-btn",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"btn_start_stats",
+                                "id":"btn_start_stats",
+                                "label":"FORM_CALCULATE_STATS",
+                                "class":"btn-primary"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+
+    },
+    "display":{
+
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/supervision/change_gtf_engine.json b/src/module_gtf/module/forms/supervision/change_gtf_engine.json
new file mode 100755
index 0000000000000000000000000000000000000000..460eb4b15c4f297682f49a354db4ce8c864bacbb
--- /dev/null
+++ b/src/module_gtf/module/forms/supervision/change_gtf_engine.json
@@ -0,0 +1,63 @@
+{
+    "search":{
+        "name":"change_gtf_engine_search_form",
+        "title":"",
+        "input_size":"xs",
+        "event":"setOrderGtfEngine()",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"gtf_engine_id",
+                        "label":"FORM_GTF_ENGINE_ID_CHANGE_GTF_ENGINE_SUPERVISION_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/gtfengines",
+                            "id_key":"gtf_engine_id",
+                            "label_key":"name",
+                            "callback": "selectFirstOption('gtf_engine_id')",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_BTN_SUBMIT_CHANGE_GTF_ENGINE_SUPERVISION_ORDER",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"close_window",
+                                "label":"FORM_BTN_CLOSE_WINDOW_CHANGE_GTF_ENGINE_SUPERVISION_ORDER",
+                                "class":"btn-primary",
+                                "event": "hideAllModalWindow()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+            
+    },
+    "insert":{
+
+    },
+    "display":{
+            
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/supervision/supervision_gtf_message.json b/src/module_gtf/module/forms/supervision/supervision_gtf_message.json
new file mode 100755
index 0000000000000000000000000000000000000000..dc9da5e6c28c0737118b6e86531a1df8c5d42a26
--- /dev/null
+++ b/src/module_gtf/module/forms/supervision/supervision_gtf_message.json
@@ -0,0 +1,70 @@
+{
+    "search":{
+        "name":"gtf_message_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"messageclass",
+                        "label":"FORM_MESSAGECLASS_SUPERVISION_MESSAGE",
+                        "web_service":{
+                            "ressource_id":"gtf/messageclasses",
+                            "id_key":"messageclass",
+                            "label_key":"messageclass",
+                            "parameters":{
+                                    "order_by":"messageclass"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"status",
+                        "label":"FORM_STATE_SUPERVISION_MESSAGE",
+                        "options": ["|", "FORM_PENDING_MESSAGE_SUPERVISION_MESSAGE|0", "FORM_PROCESSED_MESSAGE_SUPERVISION_MESSAGE|1", "FORM_PROCESSING_MESSAGE_SUPERVISION_MESSAGE|2"],
+                        "default_value": "",
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+
+    },
+    "insert":{
+
+    },
+    "display":{
+            
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/supervision/supervision_gtf_order.json b/src/module_gtf/module/forms/supervision/supervision_gtf_order.json
new file mode 100755
index 0000000000000000000000000000000000000000..9cf0cd54df09f18516a7c3caa9140090bd4f9147
--- /dev/null
+++ b/src/module_gtf/module/forms/supervision/supervision_gtf_order.json
@@ -0,0 +1,222 @@
+{
+    "search":{
+        "name":"gtf_v_order_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"user_id",
+                        "label":"FORM_USER_SUPERVISION_ORDER",
+                        "web_service":{
+                            "ressource_id":"vitis/users",
+                            "id_key":"user_id",
+                            "label_key":"login",
+                            "parameters":{
+                                    "order_by":"login"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "label":"FORM_TREATMENT_SUPERVISION_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/workspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"order_status_id",
+                        "label":"FORM_STATE_SUPERVISION_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/orderstatutes",
+                            "id_key":"order_status_id",
+                            "label_key":"order_status_label",
+                            "parameters":{
+                                    "filter":{
+                                            "lang":"getPropertie('language')"
+                                    },
+                                    "order_by":"order_status_label"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"date",
+                        "name":"order_date",
+                        "label":"FORM_DATE_SUPERVISION_ORDER",
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"gtf_engine_id",
+                        "label":"FORM_ENGINE_SUPERVISION_ORDER",
+                        "web_service":{
+                            "ressource_id":"gtf/gtfengines",
+                            "id_key":"gtf_engine_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"deleted",
+                        "id":"deleted",
+                        "label":"FORM_DELETE_SUPERVISION_ORDER",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_DELETE_YES_SUPERVISION_ORDER",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_DELETE_NO_SUPERVISION_ORDER",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            }, 
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+
+    },
+    "insert":{
+
+    },
+    "display":{
+        "name":"gtf_v_order_display_form",
+        "title":"FORM_TITLE_DISPLAY_ORDER_SUPERVISION_ORDER",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_id",
+                        "label":"FORM_ID_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"label_name",
+                        "label":"FORM_TREATMENT_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"login",
+                        "label":"FORM_OWNER_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_DATE_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"execution_date",
+                        "label":"FORM_WORK_DATE_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"minexecdate",
+                        "label":"FORM_MINEXECDATE_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"email_option_label",
+                        "label":"FORM_NOTIFICATION_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"result_url",
+                        "label":"FORM_URL_SUPERVISION_ORDER",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/supervision/supervision_gtf_subscription.json b/src/module_gtf/module/forms/supervision/supervision_gtf_subscription.json
new file mode 100755
index 0000000000000000000000000000000000000000..42933690b9d199066ac79bf17613ffbe0930cbca
--- /dev/null
+++ b/src/module_gtf/module/forms/supervision/supervision_gtf_subscription.json
@@ -0,0 +1,186 @@
+{
+    "search":{
+        "name":"gtf_v_subscription_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"user_id",
+                        "label":"FORM_OWNER_SUPERVISION_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"vitis/users",
+                            "id_key":"user_id",
+                            "label_key":"login",
+                            "parameters":{
+                                    "order_by":"login"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"period_id",
+                        "label":"FORM_PERIOD_SUPERVISION_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/periods",
+                            "id_key":"period_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "label":"FORM_TREATMENT_SUPERVISION_SUBSCRIPTION",
+                        "web_service":{
+                            "ressource_id":"gtf/workspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled_yes",
+                        "label":"FORM_ENABLED_SUPERVISION_SUBSCRIPTION",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_SUPERVISION_SUBSCRIPTION",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_SUPERVISION_SUBSCRIPTION",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+
+    },
+    "insert":{
+
+    },
+    "display":{
+        "name":"gtf_v_subscription_display_form",
+        "title":"FORM_TITLE_DISPLAY_SUBSCRIPTION_SUPERVISION_SUBSCRIPTION",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_id",
+                        "label":"FORM_ID_SUPERVISION_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"label_name",
+                        "label":"FORM_TREATMENT_SUPERVISION_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"login",
+                        "label":"FORM_OWNER_SUPERVISION_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_DATE_SUPERVISION_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_period_libelle",
+                        "label":"FORM_PERIOD_SUPERVISION_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"enabled",
+                        "label":"FORM_ENABLED_SUPERVISION_SUBSCRIPTION",
+                        "default_value": "setRadioTranslation('enabled')",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"notification",
+                        "label":"FORM_NOTIFICATION_SUPERVISION_SUBSCRIPTION",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/supervision/supervision_gtf_survey.json b/src/module_gtf/module/forms/supervision/supervision_gtf_survey.json
new file mode 100755
index 0000000000000000000000000000000000000000..32033f865acc9c1a7af2cc8a996e6f76976b17f5
--- /dev/null
+++ b/src/module_gtf/module/forms/supervision/supervision_gtf_survey.json
@@ -0,0 +1,195 @@
+{
+    "search":{
+        "name":"gtf_v_survey_search_form",
+        "title":"",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"select",
+                        "name":"user_id",
+                        "label":"FORM_OWNER_SUPERVISION_SURVEY",
+                        "web_service":{
+                            "ressource_id":"vitis/users",
+                            "id_key":"user_id",
+                            "label_key":"login",
+                            "parameters":{
+                                    "order_by":"login"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"period_id",
+                        "label":"FORM_PERIOD_SUPERVISION_SURVEY",
+                        "web_service":{
+                            "ressource_id":"gtf/periods",
+                            "id_key":"period_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    },
+                    {
+                        "type":"select",
+                        "name":"workspace_id",
+                        "label":"FORM_TREATMENT_SUPERVISION_SURVEY",
+                        "web_service":{
+                            "ressource_id":"gtf/workspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "nb_cols":4
+                    }
+                ]
+            },{
+                "fields":[
+                    {
+                        "type":"radio",
+                        "name":"enabled",
+                        "id":"enabled_yes",
+                        "label":"FORM_ENABLED_SUPERVISION_SURVEY",
+                        "options": {
+                            "choices": [{
+                                    "label": "FORM_ENABLED_YES_SUPERVISION_SURVEY",
+                                    "value": true
+                                },
+                                {
+                                    "label": "FORM_ENABLED_NO_SUPERVISION_SURVEY",
+                                    "value": false
+                                }]
+                        },
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-xs",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"search",
+                                "label":"FORM_SEARCH_BUTTON",
+                                "class":"btn-primary",
+                                "event":"setGridFilter()"
+                            },
+                            {
+                                "type":"reset",
+                                "name":"reset",
+                                "label":"FORM_RESET_BUTTON",
+                                "class":"btn-primary",
+                                "event":"resetGridFilter()"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+
+    },
+    "insert":{
+
+    },
+    "display":{
+        "name":"gtf_v_survey_display_form",
+        "title":"FORM_TITLE_DISPLAY_SURVEY_SUPERVISION_SURVEY",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_id",
+                        "label":"FORM_ID_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"label_name",
+                        "label":"FORM_WORKSPACE_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"login",
+                        "label":"FORM_OWNER_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_date",
+                        "label":"FORM_DATE_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"order_period_libelle",
+                        "label":"FORM_PERIOD_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"survey_name",
+                        "label":"FORM_SURVEY_TYPE_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"condition",
+                        "label":"FORM_DIRECTORY_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"notification",
+                        "label":"FORM_NOTIFICATION_SUPERVISION_SURVEY",
+                        "nb_cols":12
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/users/users_vitis_group_gtf_group.json b/src/module_gtf/module/forms/users/users_vitis_group_gtf_group.json
new file mode 100755
index 0000000000000000000000000000000000000000..9d23f053d17a8f53da77eb3df116e1fc9180e353
--- /dev/null
+++ b/src/module_gtf/module/forms/users/users_vitis_group_gtf_group.json
@@ -0,0 +1,163 @@
+{
+    "search":{
+        
+    },
+    "update":{
+        "name":"gtf_group_update_form",
+        "title":"FORM_TITLE_USERS_GROUP",
+        "input_size":"xs",
+        "event":"sendSimpleForm()",
+        "nb_cols":8,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"group_id",
+                        "label":"FORM_ID_USERS_GROUP_GTF_GROUP",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"workspaces",
+                        "name_from":"workspace",
+                        "name_to":"workspaces",
+                        "label":"FORM_WORKSPACE_USERS_GROUP_GTF_GROUP",
+                        "label_from":"FORM_AVAILABLE_WORKSPACE_USERS_GROUP_GTF_GROUP",
+                        "label_to":"FORM_LINKED_WORKSPACE_USERS_GROUP_GTF_GROUP",
+                        "web_service":{
+                            "ressource_id":"gtf/workspaces",
+                            "id_key":"workspace_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":15,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"double_select",
+                        "name":"inboxes",
+                        "name_from":"inbox",
+                        "name_to":"inboxes",
+                        "label":"FORM_INBOX_USERS_GROUP_GTF_GROUP",
+                        "label_from":"FORM_AVAILABLE_INBOX_USERS_GROUP_GTF_GROUP",
+                        "label_to":"FORM_LINKED_INBOX_USERS_GROUP_GTF_GROUP",
+                        "web_service":{
+                            "ressource_id":"gtf/inboxes",
+                            "id_key":"inbox_id",
+                            "label_key":"name",
+                            "parameters":{
+                                    "order_by":"name"
+                            }
+                        },
+                        "size":15,
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"submit",
+                                "name":"form_submit",
+                                "label":"FORM_UPDATE",
+                                "class":"btn-primary"
+                            },
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+
+    },
+    "display":{
+        "name":"gtf_group_display_form",
+        "title":"FORM_TITLE_USERS_GROUP",
+        "input_size":"xs",
+        "nb_cols":6,
+        "rows":[
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"group_id",
+                        "label":"FORM_ID_USERS_GROUP_GTF_GROUP",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"name",
+                        "label":"FORM_NAME_USERS_GROUP_GTF_GROUP",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"workspace_group",
+                        "label":"FORM_LINKED_WORKSPACE_USERS_GROUP_GTF_GROUP",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"label",
+                        "name":"inboxes",
+                        "label":"FORM_LINKED_INBOX_USERS_GROUP_GTF_GROUP",
+                        "nb_cols":12
+                    }
+                ]
+            },
+            {
+                "fields":[
+                    {
+                        "type":"button",
+                        "class":"btn-ungroup btn-group-sm",
+                        "nb_cols":12,
+                        "buttons":[
+                            {
+                                "type":"button",
+                                "name":"return_list",
+                                "label":"FORM_RETURN_LIST",
+                                "class":"btn-primary",
+                                "event":"setMode(\"search\")"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/forms/users/users_vitis_group_qualigeo.json b/src/module_gtf/module/forms/users/users_vitis_group_qualigeo.json
new file mode 100755
index 0000000000000000000000000000000000000000..88b3dbe798162c8f5f4cd42ef131aab01aadc925
--- /dev/null
+++ b/src/module_gtf/module/forms/users/users_vitis_group_qualigeo.json
@@ -0,0 +1,155 @@
+{
+  "display": {
+    "name": "qualigeo_group-display-form",
+    "title": "FORM_TITLE_USERS_GROUP",
+    "input_size": "xxs",
+    "nb_cols": 9,
+    "javascript": false,
+    "rows": [
+    {
+        "fields": [
+          {
+            "type": "label",
+            "name": "group_schema",
+            "label": "FORM_USERS_GROUP_QUALIGEO_DOUBLE_SELECT",
+            "nb_cols": 12,
+            "id": "Element_0_2_1"
+          }
+        ]
+    }
+    ],
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "group_schema"
+          ]
+        }
+      ]
+    },
+    "event": "sendSimpleForm()",
+    "afterEvent": "editSectionForm()"
+  },
+  "search": {},
+  "insert": {},
+  "update": {
+	
+    "name": "qualigeo_group-update-form",
+    "title": "FORM_TITLE_USERS_GROUP",
+    "input_size": "xxs",
+    "nb_cols": 9,
+    "javascript": false,
+    "rows": [
+      {
+        "fields": [
+          {
+            "type": "double_select",
+            "name": "group_schema",
+            "label": "FORM_USERS_GROUP_QUALIGEO_DOUBLE_SELECT",
+            "required": false,
+            "nb_cols": 12,
+            "id": "Element_0_2_1",
+            "name_to": "group_schema",
+            "name_from": "group_schema_from",
+            "label_from": "FORM_USERS_GROUP_QUALIGEO_SCHEMA_AVAILABLE",
+            "label_to": "FORM_USERS_GROUP_QUALIGEO_SCHEMA_ASSOCIATE",
+            "id_from": "Element_0_2_1_from",
+            "datasource": {
+              "datasource_id": "datasource_3",
+              "sort_order": "ASC",
+              "distinct": "true",
+              "id_key": "id_schema",
+              "label_key": "schema",
+              "attributs": "schema|id_schema",
+              "order_by": "schema"
+            },
+            "size": 12
+          }
+        ]
+      },
+      {
+        "fields": [
+          {
+            "type": "button",
+            "class": "btn-ungroup btn-group-sm",
+            "nb_cols": 12,
+            "name": "insert_button",
+            "buttons": [
+              {
+                "type": "submit",
+                "name": "form_submit",
+                "label": "FORM_UPDATE",
+                "class": "btn-primary"
+              },
+              {
+                "type": "button",
+                "name": "return_list",
+                "label": "FORM_RETURN_LIST",
+                "class": "btn-primary",
+                "event": "setMode(\"search\")"
+              }
+            ],
+            "id": "undefined_5_1"
+          }
+        ]
+      }
+    ],
+    "tabs": {
+      "position": "top",
+      "list": [
+        {
+          "label": "Tab 0",
+          "elements": [
+            "insert_button",
+            "group_schema"
+          ]
+        }
+      ]
+    },
+    "event": "sendSimpleForm()"
+  },
+  "datasources": {
+    "datasource_1": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_1",
+      "description": "",
+      "parameters": {
+        "schema": "s_wab",
+        "table": "v_module_t"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_1"
+    },
+    "datasource_2": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_2",
+      "description": "",
+      "parameters": {
+        "schema": "s_wab",
+        "table": "v_privilege_t"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_2"
+    },
+    "datasource_3": {
+      "type": "web_service",
+      "dataType": "tableValue",
+      "name": "datasource_3",
+      "description": "",
+      "parameters": {
+        "filter": {
+          "relation": "AND",
+          "operators": []
+        },
+        "schema": "q_constraint",
+        "table": "schema"
+      },
+      "ressource_id": "vitis/genericquerys",
+      "id": "datasource_3"
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm
new file mode 100755
index 0000000000000000000000000000000000000000..935929cdfef0e8126e20c359b51452256daaae04
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm
@@ -0,0 +1,364 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>  Journaux (logs)</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="#" class="selected">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="10"><span class="span_1"> </span>Journaux (logs)</a>
+                            </h1>
+                            <h2 class="Titre2"><a name="10.1"><span class="span_1"> </span>Consultation des fichiers de logs de l’application</a> <![CDATA[ ]]></h2>
+                            <p>&#160;</p>
+                            <p>Le mode Logs permet d’accéder à l’ensemble des fichiers de logs Apache, Pycron, Php, GTF et web.</p>
+                            <p>L’administrateur a la possibilité de supprimer les fichiers en fonction de leur ancienneté.&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm
new file mode 100755
index 0000000000000000000000000000000000000000..f9bddba55371d51c5d1305a44742b528948d4241
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm
@@ -0,0 +1,462 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title> Configuration et procédures d'exploitation</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="#" class="selected">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="11"><span class="span_1"> </span>Configuration et procédures d'exploitation</a>
+                            </h1>
+                            <h2 class="Titre2"><a name="11.1"><span class="span_1">  <![CDATA[ ]]></span>Configuration de l’application</a>
+                            </h2>
+                            <p>Le mode Configuration permet d'éditer les paramètres de configuration stockés dans des fichiers de type "properties" et de consulter l'état de l'application.</p>
+                            <h3 class="Titre3"> <a name="11.1.1"></a>Paramètres généraux de configuration </h3>
+                            <p>La section Configuration permet de consulter et modifier les paramètres généraux de l’application. Organisée en rubriques cette section permet l'édition des paramètres généraux de l'application, des serveurs HTTP, des paramètres de gestion d'écriture des logs et de <a href="#11.1.1..1compte_public" class="selected">sécurité</a>, et la consultation des informations relatives à la base de données.</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png">
+                                </img>La taille maximale de fichier uploadé est définie par défaut à 100 Mo. Pour augmenter cette valeur, il est nécessaire de modifier  les 2 properties 'upload_max_filesize' et 'post_max_size' du fichier de configuration php.ini avant de configurer cette valeur directement dans le mode configuration de GTF.</p>
+                            <p>&#160;</p>
+                            <p>L'administrateur personnalise l'application et améliore ses performances en déterminant les délais d'expiration de l'interface graphique, les taillles maximales des fichiers uploadés sur le serveur, ainsi que le type fichiers interdits...</p>
+                            <p> Il définit également l'emplacement du répertoire temporaire exploité par GTF</p>
+                            <p class="Paragraphedeliste_1">&#160;</p>
+                            <h4 class="h5"><a name="11.1.1..1compte_public"><span class="span_1"></span> Stratégie de sécurité : configuration du compte public et gestion des groupes</a>
+                            </h4>
+                            <p>La partie Sécurité de la section Configuration permet de définir un compte de connexion Public pour lequel un jeton de connexion doit être associé. </p>
+                            <p>&#160;</p>
+                            <p>Le jeton de connexion est l'identifiant de connexion appelant un service GTF, intégré directement dans une page Internet. Créer un compte public avec son jeton de connexion est un moyen simple pour un administrateur de donner accès à un formulaire GTF&#160; à un utilisateur avec un minimum de droits.</p>
+                            <p>&#160;</p>
+                            <p>L'administrateur choisit dans la liste déroulante quel compte est le compte public, il saisit ensuite son mot de passe, puis nomme le jeton tel qu'il le souhaite : </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_3">
+                                <img src="../resources/images/attention.png">
+                                </img>Le jeton de connexion public doit être une chaîne de caractères non vide et sans espace. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000049.png" style="height: 169px;width: 503px;" class="img_1">
+                                </img>
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Le bouton 'Autoriser les connexions avec le compte PUBLIC' permet d'activer/désactiver l'accès aux services GTF du compte PUBLIC. </p>
+                            <p>&#160;</p>
+                            <p>La partie sécurité de section sécurité permet la configuration de la <a href="5_gestion_des_utilisateurs.htm#5.2.4">gestion mixte des utilisateurs</a>. </p>
+                            <p>&#160;</p>
+                            <h4 class="h5"><a name="11.1.1.2_Gestion_des_journaux_&#xA;"></a> Gestion des journaux </h4>
+                            <p>Cette section permet de définir les journaux à générer, la période de journalisation ainsi que la taille maximale en Ko d'un fichier de log au delà de laquelle ce dernier ne pourra s'afficher dans l'interface. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="11.1.2_versions"></a>Version des composants</h3>
+                            <p>La section Version permet de consulter le numéro de version de GTF et le build installé. L'état des composants installés est consultables ainsi que les informations relatives au serveur et serveur web. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="11.1.3_PHP"></a> Informations PHP</h3>
+                            <p>La section PHP Info permet de consulter les paramètres de la version PHP installée.</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="11.1.4"></a>Fichier de licence FME&#160;</h3>
+                            <p>Cette section licence permet de faire une demande de fichier de licence, de l'installer puis de l'activer.</p>
+                            <p>Le bouton «&#160;Demande de fichier de licence&#160;» permet d’envoyer au service administratif de Veremes  une demande de génération de fichier de licence. Indiquer le numéro de licence fourni dans l’accusé de réception de votre commande, ainsi que l’adresse mail à laquelle le fichier doit être envoyé. </p>
+                            <p>Une fois obtenu,&#160; indiquer l’emplacement du fichier de licence délivré par Veremes dans le champ 'Fichier .txt', puis cliquer sur «&#160;Activer&#160;». </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="11.1.5_config_gtf"></a>Configuration du module GTF</h3>
+                            <p> Cette section permet l'édition des paramètres de configuration spécifiques au module GTF. </p>
+                            <p>&#160;</p>
+                            <p>Le répertoire du Pycron est à définir dans le champ 'Répertoire de Pycron', ainsi que le modèle d'e-mail utilisé par défaut pour l'envoi des notifications des résultats des traitements.</p>
+                            <p>&#160;</p>
+                            <p>On peut exclure des formats de la compression en définissant les extensions de fichiers non compressibles. </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />Les formats de fichiers uniques tels que .xls, .html, .htm sont par défaut non compressibles. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h4 class="h5"><a name="11.1.5.1_Configuration_du_serveur_SMTP"></a>Configuration du serveur SMTP</h4>
+                            <p>Les paramètres du serveur SMTP  sont configurables dans cette rubrique. </p>
+                            <p>&#160;</p>
+                            <p>L'adresse mail et le nom de l'expéditeur des mails de notification sont définis  ainsi que le nom du serveur SMTP et le port qu'il utilise. </p>
+                            <p>&#160;</p>
+                            <p>L'authentification SMTP permet de définir si l'expéditeur peut envoyer des mails sans avoir à s'authentifier. Si une authentification est requise, alors le compte SMTP et le mot de passe SMTP doivent être renseignés. </p>
+                            <p>&#160;</p>
+                            <h4 class="Titre4"><a name="11.1.5.2_Configuration_des_moteurs_GTF"></a>Configuration des moteurs GTF</h4>
+                            <p>L'administrateur de GTF peut définir les heures creuses d’exécution des moteurs au format 'hh:mm' ainsi que  le nombre maximum de demandes exécutées en même temps. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="11.22"></a>Configuration des <a name="kanchor59"></a>répertoires Public et <a name="kanchor60"></a>Upload</h2>
+                            <p>Les répertoires Upload et Public, installés dans le répertoire d'installation de GTF, stockent respectivement les ressources chargées avec un projet et les résultats d'un traitement. Il est possible de déplacer ces deux répertoires sur un autre disque et d'assurer de la sorte une répartition des données pour faciliter les processus de sauvegarde. </p>
+                            <p>&#160;</p>
+                            <p>Pour cela, l'administrateur doit opérer en deux étapes : </p>
+                            <ul>
+                                <li value="1">Dans le fichier de configuration properties_post.inc du répertoire .\gtf.client, modifier les deux properties : </li>
+                            </ul>
+                            <p class="extraitcode_1">$properties['upload_dir'] = $properties['gtf_home'] . '/upload';</p>
+                            <p class="extraitcode_1">$properties['dir_export'] = $properties['gtf_home'] . '/public';</p>
+                            <p>en indiquant le chemin complet des répertoires upload et public. </p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1">Dans le fichier de configuration httpd.conf du répertoire .\server\Apache2.4\conf du répertoire d'installation de GTF , modifier la configuration : </li>
+                            </ul>
+                            <p class="extraitcode_1">Alias /public "C:/serveur/gtf_2015-01.00.b12674_betax64/public"en indiquant le chemin complet </p>
+                            <p class="extraitcode_1">&lt;Directory "C:/serveur/gtf_2015-01.00.b12674_betax64/public"&gt;</p>
+                            <p>en indiquant le chemin complet du répertoire public. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="11.2">Nettoyage et suppression des fichiers temporaires</a><![CDATA[  ]]></h2>
+                            <p>L’administrateur doit veiller à supprimer régulièrement les fichiers temporaires générés par l’application.</p>
+                            <p>&#160;</p>
+                            <p>Il dispose pour cela du projet FME <span class="span_10"></span>‘nettoyage_des_fichiers_temporaires.fmw’ contenu dans le fichier <span class="span_5">admin.gex</span>, disponible sur <a href="http://download.veremes.com/"><span class="Lienhypertexte">notre site de téléchargement.</span></a> Après avoir importé et publié ce projet dans GTF, l’administrateur peut s’abonner au traitement et assurer de la sorte une suppression régulière des fichiers temporaires. </p>
+                            <p>&#160;</p>
+                            <p>3 types de fichiers peuvent être supprimés : </p>
+                            <ul class="ul_4">
+                                <li class="Paragraphedeliste_1" value="1">Les fichiers temporaires produits par GTF</li>
+                                <li class="Paragraphedeliste_1" value="2">Les fichiers temporaires produits par FME </li>
+                                <li class="Paragraphedeliste_1" value="3">Les jeux de données sources chargés sur le serveur par les utilisateurs finaux contenus dans le répertoire &lt;gtf&gt;\upload</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Le paramètre ‘Age minimum des fichiers à supprimer’&#160; permet de définir l’ancienneté minimale (en jours) des fichiers à supprimer évitant ainsi la suppression de fichiers déposés sur le serveur sans avoir été traités ou en cours d’exécution. </p>
+                            <p>Un rapport de nettoyage dont le nom est défini par l'utilisateur est généré au format.txt. </p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/12_utilisation_des_services_web_de_gtf.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/12_utilisation_des_services_web_de_gtf.htm
new file mode 100755
index 0000000000000000000000000000000000000000..b919479f80fbb013a4871ce21bb5eaf13a83a41c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/12_utilisation_des_services_web_de_gtf.htm
@@ -0,0 +1,376 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>12 Utilisation des services WEB de GTF  </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="12"><span class="span_1">12 </span>Utilisation des services WEB de GTF</a> <![CDATA[ ]]></h1>
+                            <p>Il est possible de manipuler GTF sans passer par l’interface gtf.client mais à l'aide d'une simple URL. C'est l'aspect "web service" de GTF. Ce service permet d’utiliser plusieurs fonctionnalités de l’application via des URL (adresses web). </p>
+                            <p>&#160;</p>
+                            <p>Il existe actuellement plusieurs versions de l’API dans l’application. La version applicable est la version 4. La version 3 de l’API est dépréciée, mais reste  toujours exploitable. La documentation associée à la version 3  est disponible sur notre site de téléchargement à l'adresse <a href="http://download.veremes.com/"><span class="Lienhypertexte">http://download.veremes.com/</span></a>&#160; dans le répertoire gtf/archive.  </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004a.png" style="width: 330px;height: 273px;">
+                                </img>
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Comme l’indique le diagramme de séquence ci-dessus, l’appel d’une opération se fait en 2 temps : </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Votre application doit dans un premier temps générer le token (jeton de connexion)</li>
+                                <li class="Paragraphedeliste_1" value="2">Appel à l’api rest avec le token précédemment créé. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Toute la documentation relative aux services WEB de GTF et à l'API REST est disponible edans le menu AIide &gt; Service Web.</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/13_support_technique.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/13_support_technique.htm
new file mode 100755
index 0000000000000000000000000000000000000000..83da24b993965df0f23524e2a99395287ef0c96b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/13_support_technique.htm
@@ -0,0 +1,369 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title> Support technique</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="#" class="selected">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="12"><span class="span_1">  <![CDATA[ ]]></span>Support technique</a>
+                            </h1>
+                            <p>&#160;</p>
+                            <p>&#160;Pour toute information complémentaire, vous pouvez contacter l’équipe de Veremes par mail à l'adresse <a href="mailto:support@veremes.com" class="Lienhypertexte">support@veremes.com</a> ou poser votre question sur la pateforme d'assistance <a href="Annexes.htm/#http://support.veremes.com/" title="http://support.veremes.com/&#xA;" alt="http://support.veremes.com/&#xA;"><p>http://support.veremes.com/</p></a></p>
+                            <p>&#160;</p>
+                            <p>Service commercial :</p>
+                            <p>+33 (0)4 68 38 65 27</p>
+                            <p>&#160;</p>
+                            <p>Support technique :</p>
+                            <p>+33 (0)4 11 81 98 01</p>
+                            <p class="p_20">&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm
new file mode 100755
index 0000000000000000000000000000000000000000..93c609484fbca1feee883b4abf625032658c1667
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm
@@ -0,0 +1,387 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title> Bienvenue dans GTF&#160;</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="#" class="selected">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="1"><span class="span_1"> </span>Bienvenue dans GTF</a>&#160;</h1>
+                            <p>&#160;</p>
+                            <p>GTF (Gestionnaire de Tâches pour FME) est une application 100% web qui permet de publier sur internet des traitements conçus avec FME et de les mettre à disposition d’un grand nombre d’utilisateurs. C’est un outil de partage, de planification et de supervision de traitements FME. </p>
+                            <p>&#160;</p>
+                            <p>GTF offre des fonctions d’administration pour la création et la gestion des utilisateurs et l’attribution des droits sur les traitements.</p>
+                            <p>&#160;</p>
+                            <p>GTF est particulièrement bien adapté pour répondre à des besoins de&#160;: </p>
+                            <ul>
+                                <li value="1"> conversion de fichiers</li>
+                                <li class="li_1" value="2">extraction de données</li>
+                                <li class="li_1" value="3">contrôle qualité </li>
+                                <li class="li_1" value="4">génération de rapport </li>
+                                <li class="li_1" value="5">gestion d’alertes</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p class="p_5">GTF se compose d’une application cliente, d’une API REST qui permet d'exploiter GTF sous forme de service web et d'une API Formulaire :</p>
+                            <p class="p_5">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">GTF Client  permet à l’administrateur de publier des traitements préalablement conçus avec FME Workbench. Par cette interface, l’administrateur gère les utilisateurs en leur attribuant des droits sur les traitements publiés, et peut également&#160; s'appuyer sur un annuaire MS-Active Directory pour assurer l'authentification et la gestion des droits. Il dispose par ailleurs de fonctions de supervision et de consultation de statistiques.  Les utilisateurs soumettent des demandes de traitements, chargent leurs propres données et téléchargent les résultats. Les traitements sont exécutés en mode asynchrone ce qui permet aux utilisateurs de continuer à travailler sans attendre la fin du traitement. Un e-mail avertit l'utilisateur de la disponibilité du résultat. GTF Client permet également&#160; de s’abonner à un traitement à la fréquence souhaitée pour automatiser la production d'un traitement.</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">L'API REST de GTF permet à n'importe quelle application de faire appel aux services de GTF de manière transparente pour les utilisateurs. C'est la solution idéale pour les développeurs souhaitant offrir leur propre interface graphique.</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">L'API Formulaire permet de mettre en forme le formulaire de saisie des paramètres en intégrant des composants (cartes open layer, arborescences de fichiers…)</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm
new file mode 100755
index 0000000000000000000000000000000000000000..dbd9a0b591d5740f8db976d4bb6fd1b4218c9264
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm
@@ -0,0 +1,440 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>  Les composants logiciels de GTF</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="#" class="selected">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="2"><span class="span_1"> <![CDATA[ ]]></span>Les composants logiciels de GTF</a>
+                            </h1>
+                            <p><a name="kanchor2"></a>L'architecture de GTF est constituée de plusieurs composants logiciels.</p>
+                            <p>&#160;</p>
+                            <table align="center" class="table_1">
+                                <col style="width: 105pt;">
+                                </col>
+                                <col style="width: 349pt;">
+                                </col>
+                                <tr style="height: 23pt;">
+                                    <td class="td_1">
+                                        <p class="p_6">Composants</p>
+                                    </td>
+                                    <td class="td_2">
+                                        <p class="p_6">Description</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">GTF Client</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Applications web&#160; permettant aux utilisateurs l’accès aux services GTF </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">Apache HTTPD</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Logiciel serveur HTTP.</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">PHP</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Langage de programmation</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">PostgreSQL </p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Système de gestion de base de données relationnelle utilisé pour le stockage des informations : demandes de traitements, traitements publiés, droits des utilisateurs... </p>
+                                        <p class="p_5">&#160;</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">PYCRON </p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Service Windows assurant l'exécution de tâches planifiées.</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">GTF Engine</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">GTF Engine désigne le moteur de GTF, la partie logicielle capable d’exécuter les traitements FME. GTF exploite au minimum un moteur GTF. Les moteurs supplémentaires permettent de répartir la charge sur plusieurs process ou machines. L'ajout de moteurs supplémentaires et soumis à l'acquisition des licences correspondantes.</p>
+                                        <p class="p_5">&#160;</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">FME</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Logiciel FME Professional Edition ou supérieure en licence fixe ou flottante. FME ne fait pas partie du logiciel GTF, mais il est indispensable à son fonctionnement. </p>
+                                    </td>
+                                </tr>
+                            </table>
+                            <p class="p_7"> &#160;</p>
+                            <p class="p_8">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000002.png" style="height: 377px;width: 534px;" class="img_1">
+                                </img>
+                            </p>
+                            <p class="p_5">&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm
new file mode 100755
index 0000000000000000000000000000000000000000..362d85d81094d911abac7067947258c5d0e6ec63
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm
@@ -0,0 +1,392 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="Installation de GTF">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>Initialisation du compte Administrateur </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="#" class="selected">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="3.2_Initialisation_du_compte_Administrateur_"></a><span class="span_1"><a name="kanchor3"></a></span>Initialisation du compte Administrateur </h1>
+                            <h2 class="Titre2"><a name="3.2.1_Configuration_du_compte_administrateur"></a>Configuration du compte administrateur </h2>
+                            <p>Le compte administrateur, défini en phase d'installation par la variable 'appAdmin', dispose initialement des privilèges vitis_user et vitis _admin.</p>
+                            <p>&#160;</p>
+                            <p>La configuration du compte administrateur  permet l'attribution des privilèges d'administration spécifiques à GTF, c'est à dire gtf_admin : </p>
+                            <p>&#160;</p>
+                            <p>•	Se connecter à GTF avec le compte administrateur</p>
+                            <p>•	Mode Utilisateurs &gt; onglet Utilisateur, éditer le compte administrateur et lui attribuer les privilèges gtf_admin. Attribuer à l'administrateur les autres privileges gtf_author et gtf_user.</p>
+                            <p>•	Associer le compte courant au groupe Administration</p>
+                            <p>•	Mettre à jour</p>
+                            <p>•	Se déconnecter</p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/confiig_admin.png" style="width: 491px;height: 476px;" /> </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Attribution de privilèges gtf_admin</p>
+                            <p class="Soustitre_figure" style="text-align: center;">&#160;</p>
+                            <p><a href="5_gestion_des_utilisateurs.htm#5.3">En savoir plus sur les privilèges</a> <![CDATA[ ]]></p>
+                            <h2 class="Titre2"><a name="test_connexion_admin"></a> Test de Connexion du compte administrateur </h2>
+                            <p>A ce stade de l’initialisation, le compte administrateur peut se connecter à GTF ( https://&lt;serveur&gt;/gtf) et accéder à l'intégralité des 10 modes de l'application. </p>
+                            <p>Les 10 modes sont correctement affichés dans la barre de gauche : </p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/10modes.png" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Interface Administrateur de GTF</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Le compte administrateur peut procéder à une demande de traitement. Cette dernière restera en attente et ne sera pas exécutée.</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />3 traitements sont intégrés dans GTF : <a href="annexes.htm#13.4">Admin-Import, Admin-export et Vérification des formulaires</a>. </p>
+                            <p>&#160;</p>
+                            <p>Après avoir configuré le compte administrateur, procéder à l’<a href="3.3_installation_du_moteur_gtf.htm">installation du moteur GTF.</a> <![CDATA[ ]]></p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm
new file mode 100755
index 0000000000000000000000000000000000000000..23d5dba22a672a22746f1faac839abf0ff943685
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm
@@ -0,0 +1,550 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="Installation de GTF">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>Installation du moteur GTF </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="#" class="selected">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="3.3_Installation_du_moteur_GTF_"></a>Installation du moteur GTF </h1>
+                            <p>L'installation du moteur GTF se décline en 5 étapes : </p>
+                            <ul>
+                                <li value="1"><a href="#install_pycr" class="selected">Installation de Pycron</a>
+                                </li>
+                                <li value="2"><a href="#installmoteurGTF" class="selected">Installation du moteur GTF</a>
+                                </li>
+                                <li value="3"><a href="#configmoteurGTF" class="selected">Configuration du moteur GTF </a>
+                                </li>
+                                <li value="4"><a href="#ConfigSMTP" class="selected">Configuration du serveur SMTP</a>
+                                </li>
+                                <li value="5"><a href="#Activation_fichierLicence" class="selected">Activation de la licence</a>
+                                </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="install_pycr"></a> Installation de Pycron </h3>
+                            <p>Pycron est le programme qui permet aux utilisateurs de systèmes Windows d’exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiées à l’avance.  Dans GTF, il permet l'exécution des  demandes GTF aux dates et heures spécifiées.</p>
+                            <p>&#160;</p>
+                            <p><a href="http://documentation.veremes.net/public/ressource/pycron_guide_installation.pdf#http://documentation.veremes.net/public/ressource/pycron_guide_installation.pdf" title="documentation Pycron" alt="documentation Pycron">Procédure d'installation de Pycron. </a>
+                            </p>
+                            <h4 class="Titre4">Configuration de Pycron</h4>
+                            <p>•	Démarrer le service de Pyrcon</p>
+                            <p>Démarrer le service de pycron en ligne de commande :</p>
+                            <p class="extraitcode">sc start PyCron</p>
+                            <p>&#160;</p>
+                            <h4 class="Titre4"> Test de l'installation de Pycron</h4>
+                            <p>Exécuter la commande suivante pour accéder à la liste des services de Windows : services.msc</p>
+                            <p>Rechercher dans la liste des services disponibles, le service Pycron (Python Cron Service).</p>
+                            <p>Vérifier que le service soit démarré et que le type de démarrage soit en mode Automatique. </p>
+                            <p>&#160;</p>
+                            <h4 class="h5"> Déclaration du serveur Pyrcon dans GTF</h4>
+                            <p>Dans GTF, indiquer le répertoire d'installation du Pycron dans le Mode Configuration&gt; Configuration GTF&gt; Répertoire de pycron.</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" /><b>Test</b> : Cette opération rajoute un répertoire 'Log' dans la fenêtre d'affichage des journaux du Mode Log. </p>
+                            <h3 class="Titre3"><a name="installmoteurGTF"></a> Installation du Moteur </h3>
+                            <p>&#160;</p>
+                            <p>Décompresser l'archive moteur_gtf.zip, dans le répertoire d'installation au même niveau que les répertoires client et vas.</p>
+                            <p>&#160;</p>
+                            <p><span class="span_2"><img src="../resources/images/attention.png"></img>Lors de la décompression de l'archive gtf.engines, l’administrateur doit penser à modifier manuellement le fichier de configuration de la base de données PostgreSQL pour autoriser la connexion de l'utilisateur scheduler à la base de données créée lors de l'installation de GTF. Dans le répertoire d’installation de PostgreSQL (répertoire data),&#160; modifier à l’aide d’un éditeur de texte le fichier pg_hba.conf en y insérant les lignes suivantes pour les deux connexions IPv4 et IPv6.</span>
+                            </p>
+                            <p>&#160;</p>
+                            <p>Immédiatement après « # IPv4 local connections » insérer la ligne :</p>
+                            <p class="extraitcode_1">host &lt;base de donnnées&gt; u_scheduler 127.0.0.1/32 trust</p>
+                            <p>Immédiatement après « # IPv6 local connections » insérer la ligne :</p>
+                            <p class="extraitcode_1">host&lt;base de donnnées&gt; u_scheduler ::1/128 trust</p>
+                            <p style="font-style: italic;">&#160;</p>
+                            <p style="font-style: italic;">où&lt;base de donnnées&gt; est le nom de la base de données créée en phase d'installation. (vitis par défaut)</p>
+                            <p style="font-style: italic;">&#160;</p>
+                            <p>Redémarrer le service PostgreSQL.</p>
+                            <h3 class="Titre3"><a name="configmoteurGTF"></a>Configuration du moteur GTF </h3>
+                            <h4 class="h5"><a name="declarationServeur"></a>Déclaration du serveur</h4>
+                            <p>La déclaration du serveur permet de définir les répertoires contenant l'ordonnanceur Pycron et le moteur GTF. </p>
+                            <p>•	Mode Moteur &gt; Onglet Serveur : Ajouter un serveur</p>
+                            <p>•	Nommer le serveur</p>
+                            <p>•	Définir le répertoire d'installation de Pycron.</p>
+                            <p>•	Définir le répertoire contenant le moteur GTF gtf.engines</p>
+                            <p>•	Cliquer sur Créer</p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/ajout_serveur.png" style="width: 584px;height: 410px;">
+                                </img>
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Déclaration de serveur.</p>
+                            <p>&#160;</p>
+                            <h4 class="h5"><a name="declarationMoteurFME"></a>Déclaration d'un moteur FME</h4>
+                            <p>Un <a name="kanchor4"></a>moteur FME est l’instance de FME en charge de l’exécution des projets. GTF permet d’exploiter différents moteurs hétérogènes. On peut ainsi exploiter un moteur FME 2015 en 32 bits et une instance de FME 2016 en 64 bits. </p>
+                            <p>&#160;</p>
+                            <p>La première étape consiste à déclarer un moteur FME exploitable par GTF. </p>
+                            <p>&#160;</p>
+                            <p>•	Mode Moteurs &gt; Onglet Moteur FME : Ajouter un moteur FME</p>
+                            <p>•	Nommer le moteur et  indiquer le chemin du moteur fme.exe.</p>
+                            <p>•	Associer le serveur désiré</p>
+                            <p>•	Cliquer sur Créer</p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/moteur.png" style="width: 387px;height: 369px;">
+                                </img>
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Déclaration de moteur FME.</p>
+                            <p class="Soustitre_figure" style="text-align: center;">&#160;</p>
+                            <p class="Paragraphedeliste_2">
+                                <img src="../resources/images/attention.png" />Il est conseillé de nommer le moteur FME en indiquant le numéro de version,  le numéro de build et le nombre de bits. Par exemple : «&#160;FME2016 b16494-32b&#160;».</p>
+                            <blockquote>
+                                <p><![CDATA[	]]><img src="../resources/images/attention.png" />Le bouton ‘Test’ permet de vérifier la validité de la licence FME. Avec FME 2016, pour que la licence soit valide, copier le fichier de licence présent dans  le répertoire C:\ProgramData\SafeSoftware\FME\Licenses) dans le répertoire \licenses du répertoire d'installation de FME2016.</p>
+                            </blockquote>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h4 class="h5"><a name="DeclarationMoteurGTF"></a>Déclaration de moteur GTF</h4>
+                            <p style="text-align: justify;">On entend par <a name="kanchor5"></a>Moteur GTF la capacité d’exploiter un moteur FME dans GTF. La création d’un moteur GTF permet d’associer à un serveur un moteur et de définir une période de déclenchement de l’activité spécifique. Un moteur GTF est associé à un seul moteur FME mais plusieurs moteurs GTF peuvent exploiter le même moteur FME.</p>
+                            <p style="text-align: justify;">L’ajout de moteurs GTF supplémentaires permet à l’administrateur d’appliquer une stratégie de traitement de projets en spécialisant par exemple certains moteurs et en permettant la parallélisation des traitements. </p>
+                            <p>&#160;</p>
+                            <p>Dans le mode Moteurs &gt; Onglet Moteur GTF, le bouton «&#160;Ajouter un moteur GTF&#160;» ouvre le formulaire de création&#160; de moteur GTF.</p>
+                            <p>&#160;</p>
+                            <p>Attribuer un nom au moteur GTF et définir la période d’activité en minutes de ce dernier (période de déclenchement du moteur). On peut choisir de rendre inactif ce moteur, puis on sélectionne le serveur et le moteur FME à associer.&#160;Associer ensuite un ou plusieurs mots clés au moteur. </p>
+                            <blockquote>
+                                <p style="font-style: italic;">
+                                    <img src="../resources/images/attention.png">
+                                    </img><a name="kanchor6"></a>Associer un ou plusieurs mots clés à un moteur permet à l'administrateur de mettre en place une stratégie de distribution des traitements sur plusieurs moteurs GTF : quand un utilisateur crée une demande de traitement, un moteur spécifique est spécifiquement attribué. Chaque moteur GTF est associé à un ou plusieurs mots clés. Chaque projet FME&#160;est ensuite associé à un mot clé. L'affiliation d'un projet à un moteur GTF se fait ainsi à partir de mots clés.</p>
+                                <p style="font-style: italic;">L'administrateur peut choisir des mots clés existants et déjà affiliés à d'autres moteurs dans la partie de gauche 'Mots clés disponibles', ou saisir directement le nom d'un nouveau mot clé dans le bloc de droite 'Mot clé lié au moteur'. Un simple clic sur un mot clé disponible permet de le lier au moteur GTF. </p>
+                            </blockquote>
+                            <p class="Paragraphedeliste_2">
+                                <img src="../resources/images/attention.png">
+                                </img>Il est recommandé de nommer le moteur GTF selon cette règle : ID (auto)_ FME Version Service Pack. Par exemple : «&#160; #3 FME 2013 SP 3&#160;».</p>
+                            <p class="Paragraphedeliste_2">&#160;</p>
+                            <p class="Paragraphedeliste_2" style="text-align: center;">
+                                <img src="../resources/images/moteur_gtf.png" style="width: 406px;height: 389px;">
+                                </img>
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Déclaration de moteur GTF.</p>
+                            <p>&#160;</p>
+                            <p>Cliquer ensuite sur le bouton ’Créer’ pour finaliser la création du moteur GTF</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="ConfigSMTP"></a>Configuration du serveur SMTP</h3>
+                            <p>La phase de configuration du serveur SMTP est nécessaire à ce stade de l'initialisation, pour que l'administrateur puisse demander le fichier de licence GTF en envoyant un mail au service administratif de Veremes. </p>
+                            <p>Dans le mode Configuration,configuration GTF, la section <a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">serveur SMTP</a> permet de procéder à la déclaration du serveur SMTP. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="Activation_fichierLicence"></a>Activation du fichier de licence GTF</h3>
+                            <p>L'installation du fichier de licence GTF est la dernière étape du processus d'initialisation de GTF. </p>
+                            <p>&#160;</p>
+                            <p>Dans le mode Configuration, la section <a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4" title="Demande de fichier de licence GTF" alt="Demande de fichier de licence GTF">Licence</a> permet de demander un fichier de licence nécessaire pour activer les licences permanentes. </p>
+                            <p>&#160;</p>
+                            <p>Le bouton «&#160;Demande de fichier de licence&#160;» permet d’envoyer au service administratif de Veremes  une demande de génération de fichier de licence. Indiquer le numéro de licence fourni dans l’accusé de réception de votre commande, ainsi que l’adresse mail à laquelle le fichier doit être envoyé. </p>
+                            <p>Une fois obtenu,&#160; indiquer l’emplacement du fichier de licence délivré par Veremes dans le champ 'Fichier .txt', puis cliquer sur «&#160;Activer&#160;». </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><span class="span_1"><a name="kanchor7"></a></span><a name="3.3.6"></a>Tests&#160;: Import de nouveaux traitements</h3>
+                            <p>A ce stade, pour s’assurer du bon fonctionnement de GTF, il est recommandé de procéder à l’import de nouveaux traitements. Pour cela, Veremes met à disposition sur son site de téléchargement des projets exemples au format .gex.</p>
+                            <p>Le projet 'Admin_Import' (associé au groupe Administration et installé automatiquement lors de l’installation de GTF) permet l’import de nouveaux traitements stockés dans un fichier .gex. Au préalable, l'administrateur doit être associé au groupe Administration pour pouvoir exploiter ces deux projets. </p>
+                            <p>&#160;</p>
+                            <p>Télécharger le fichier «exemples.gex»&#160; sur notre site de téléchargement. <a href="http://download.veremes.com"><span class="Lienhypertexte">http://download.veremes.com</span></a> (répertoire gtf/gex)</p>
+                            <p>&#160;</p>
+                            <p>Se connecter à GTF (compte administrateur) puis ajouter une demande.</p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/formulaire_import.png" style="width: 621px;height: 160px;">
+                                </img>
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Import du fichier d'exemples. </p>
+                            <p>&#160;</p>
+                            <p>Choisir le traitement "Admin-Import" puis dans « Fichier d'export GTF à importer (.gex) : », cliquer sur «&#160;Parcourir&#160;» et sélectionner le fichier exemples.gex préalablement téléchargé. Définir ensuite le nom du rapport html à générer.  Il indique la liste des projets importés, leurs clé et ID ainsi que le statut de l'importation<span> :</span> Inséré dans GTF, Mis à jour dans GTF ou Non mis à jour dans GTF. </p>
+                            <blockquote>
+                                <p>
+                                    <img src="../resources/images/attention.png">
+                                    </img><i>Il est obligatoire d'insérer l'extension .html dans le champs Nom du rapport  à générer. </i>
+                                </p>
+                            </blockquote>
+                            <blockquote>
+                                <p style="font-style: italic;">
+                                    <img src="../resources/images/attention.png">
+                                    </img>Le paramètre "Que faire des projets existants déjà dans la base GTF (même Clé)" indique à GTF s'il  doit charger ou pas les projets déjà existants dans la base GTF  et identifiés de façon unique&#160; par l'attribut Clé (cet attribut est généré automatiquement et est associé de façon unique  à chaque projet).  </p>
+                            </blockquote>
+                            <ul>
+                                <li style="font-style: italic;" value="1">Si ce paramètre vaut 'Ne pas importer' et que le fichier .gex contient un projet FME avec une clé déjà existante dans la base GTF, alors le fichier n'est pas chargé. </li>
+                                <li style="font-style: italic;" value="2">Inversement, si ce paramètre vaut 'Remplacer les projets existants', alors les projets dont la clé  existe déjà dans la base de données GTF seront écrasés. </li>
+                                <li style="font-style: italic;" value="3">Choisir 'Importer le projet avec un nouvel identifiant et un nouveau nom', si le projet FME avec la même clé existe déjà en base et que vous souhaitez importer le même projet mais avec un nouveau nom. Le projet est renommé en étant suffixé par la chaîne "(import date de l'import)". </li>
+                            </ul>
+                            <p style="font-style: italic;">&#160;</p>
+                            <p>&#160;</p>
+                            <p>Cliquer&#160; sur « Créer la demande ». La demande est prise en compte et se retrouve dans la file d'attente du moteur GTF.&#160;</p>
+                            <p>S’assurer que la Demande ait bien été traitée en consultant le mode Supervision, puis retourner dans le mode Publication pour consulter la liste des traitements nouvellement importés. </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000007.png" style="height: 144px;width: 550px;" class="img_1">
+                                </img>
+                            </p>
+                            <p class="p_1" style="text-align: left;">3 nouveaux traitements sont désormais disponibles dans GTF.</p>
+                            <p class="p_9">&#160;</p>
+                            <p class="Paragraphedeliste_3">&#160;</p>
+                            <h3 class="Titre3"><a name="_Import_des_traitements"></a><a name="4.5.2"><span class="span_1"></span>Import des traitements d’administration</a>
+                            </h3>
+                            <p>Le projet 'Nettoyage des fichiers temporaires' est disponible sur notre site de téléchargement, via le projet admin.gex.&#160;Il permet&#160;les fonctions d’administration suivantes&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">le nettoyage des fichiers temporaires stockés dans les répertoires temporaires de GTF et FME.</li>
+                            </ul>
+                            <p class="Paragraphedeliste_1">&#160;</p>
+                            <p>Pour importer ce fichier, procéder de la même manière que précédemment en téléchargeant sur le site <a href="http://download.veremes.com"><span class="Lienhypertexte">http://download.veremes.com</span></a> (répertoire gtf/gex) le fichier admin.gex. </p>
+                            <p>Se connecter ensuite à GTF et faire une demande du Traitement Admin-Import. Choisir le fichier admin.gex précédemment téléchargé. </p>
+                            <p>Assurez-vous que dans le mode Publication,&#160; ce nouveau traitement ait bien été importé&#160;: </p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Une fois le module GTF installé, l'administrateur peut procéder à la configuration spécifique de GTF en en définissant le <a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">compte public</a>, et mettant en place une <a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">stratégie de sécurité utilisateur</a>. </p>
+                            <p>&#160;</p>
+                            <p>Il créé ensuite <a href="5_gestion_des_utilisateurs.htm">les utilisateurs</a> et/ou les importe depuis un annuaire Active Directory.</p>
+                            <p> </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3_installation_de_gtf.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3_installation_de_gtf.htm
new file mode 100755
index 0000000000000000000000000000000000000000..62a153bb8cc7cb32edca749c2bf821eccb7a1eea
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/3_installation_de_gtf.htm
@@ -0,0 +1,491 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="Installation de GTF|Installation des composants pré requis et de GTF">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title> Installation de GTF </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="3"></a><span class="span_1"> <![CDATA[ ]]></span>Installation de GTF </h1>
+                            <p>&#160;</p>
+                            <p>Pour installer GTF, il faut télécharger l'installateur sur le site <a href="http://download.veremes.com/" title=" http://download.veremes.com" alt=" http://download.veremes.com">http://download.veremes.com</a>, dans le répertoire gtf/gtf2016.</p>
+                            <p>Les codes d'accès (login et password) sont fournis par e-mail à la suite d'une commande ou demande d'évaluation. Ces informations peuvent être renvoyées sur simple demande à codes@veremes.com.</p>
+                            <p>L'installateur comporte :</p>
+                            <p>•	Installateur _gtf_application_web, exécutable et scripts d'installation, de mise à jour et de suppression de GTF.</p>
+                            <p>•	Moteur_gf.zip, archive d'installation du module GTF</p>
+                            <p>•	Pycron-0.5.9.0.exe, installateur de Pycron</p>
+                            <p>•	Procedure_installation_gtf_windows.pdf, la présente documentation.</p>
+                            <p>Après téléchargement de l'installateur, décompresser l'intégralité de ces ressources dans un répertoire spécifique. Nous préconisons de nommer ce répertoire 'gtf_telechargement'.</p>
+                            <p>Le processus d'installation de GTF se déroule en 3 étapes :</p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1"><a href="#3.1InstalaltionPrerequis_GTF" class="selected">Installation des composants pré requis et de GTF</a>
+                                </li>
+                                <li value="2"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur de GTF</a>
+                                </li>
+                                <li value="3"><a href="3.3_installation_du_moteur_gtf.htm">Installation du Moteur GTF</a>
+                                </li>
+                            </ul>
+                            <h1 class="Titre1"><a name="3.1InstalaltionPrerequis_GTF"></a> Installation des composants pré-requis et de GTF</h1>
+                            <h3 class="Titre3"><a name="3.1.1Prerequis"></a> Installation des Pré-requis </h3>
+                            <h4 class="h5"><a name="3.1.1.1"></a> Installation de FME&#160;</h4>
+                            <p>Dans GTF, FME est en charge de l’exécution des projets.</p>
+                            <p>Procéder en premier lieu à l'installation de FME pour que GTF puisse fonctionner et exécuter des traitements.</p>
+                            <p>&#160;</p>
+                            <p><a href="http://documentation.veremes.net/public/fme/fme_guide_installation.pdf" title="Procédure d'installation de FME." alt="Procédure d'installation de FME.">Procédure d'installation de FME.</a> <![CDATA[ ]]></p>
+                            <h4 class="h5"><a name="3.1.1.2"></a> Installation du serveur https Apache 2.4  </h4>
+                            <p>GTF utilise le protocole sécurisé https qui assure le cryptage des échanges entre le Serveur d’Application Vitis et le poste client. Il est donc nécessaire d’installer une version spécifique du serveur http Apache compilé avec le module SSL.</p>
+                            <p>&#160;</p>
+                            <p><a href="http://www.veremes.com/installation-apache-2-4-mod_ssl-windows">Procédure d’installation Apache 2.4 pour Windows</a>
+                            </p>
+                            <p>&#160;</p>
+                            <h4 class="h5"><a name="3.1.1.3"></a> Installation de Postgresql</h4>
+                            <p>GTF utilise une base Postgresql pour stocker les informations sur les projets FME et les demandes de traitement ainsi que sur les utilisateurs et leurs droits. Si Postgresql est déjà installé sur votre poste, cette étape est facultative.</p>
+                            <p>&#160;</p>
+                            <p><a href="http://www.veremes.com/installation-postgresql-windows">Procédure d’installation Postgresql pour Windows</a>
+                            </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="3.1.2_Installation_de_GTF_"></a>Installation de GTF </h3>
+                            <p>Editer le setup install.cmd (Windows) du répertoire 'installateur_gtf_application_web' contenu dans le  répertoire de téléchargement des ressources,  afin de définir les paramètres de votre installation.</p>
+                            <p>Les variables à modifier pour l’installation sont :</p>
+                            <p>&#160;</p>
+                            <table style="border-top-left-radius: 1px;border-top-right-radius: 1px;border-bottom-right-radius: 1px;border-bottom-left-radius: 1px;border-left-style: solid;border-left-width: 1px;border-right-style: solid;border-right-width: 1px;border-top-style: solid;border-top-width: 1px;border-bottom-style: solid;border-bottom-width: 1px;margin-left: 0;margin-right: auto;">
+                                <col style="width: 148px;" />
+                                <col style="width: 783px;" />
+                                <tbody>
+                                    <tr>
+                                        <td style="font-weight: bold;">Variable</td>
+                                        <td style="font-weight: bold;">Description</td>
+                                    </tr>
+                                    <tr>
+                                        <td>dir</td>
+                                        <td>Répertoire d'installation (si le répertoire n'existe pas, il sera créé)</td>
+                                    </tr>
+                                    <tr>
+                                        <td>serveur</td>
+                                        <td>Serveur de la base de données</td>
+                                    </tr>
+                                    <tr>
+                                        <td>port</td>
+                                        <td>Port d'accès à la base de données</td>
+                                    </tr>
+                                    <tr>
+                                        <td>bdd</td>
+                                        <td>Nom de la base de données (La base de données peut être existante)</td>
+                                    </tr>
+                                    <tr>
+                                        <td>dblogin</td>
+                                        <td>Compte d'un super utilisateur de la base</td>
+                                    </tr>
+                                    <tr>
+                                        <td>dbpswd</td>
+                                        <td>Mot de passe du compte super utilisateur</td>
+                                    </tr>
+                                    <tr>
+                                        <td>apacheService</td>
+                                        <td>Nom du service Apache exploité par l'application</td>
+                                    </tr>
+                                    <tr>
+                                        <td>apachePort</td>
+                                        <td>Port du service https du serveur Apache</td>
+                                    </tr>
+                                    <tr>
+                                        <td>appAdmin</td>
+                                        <td>Compte PostgreSql de l'administrateur GTF. Ce compte sera créé s'il n'existe pas.</td>
+                                    </tr>
+                                    <tr>
+                                        <td>appPswd	</td>
+                                        <td>Mot de passe du compte précédent s'il doit être créé. Si le compte existe déjà, cette valeur n'est pas exploitée mais la présence d'une valeur est obligatoire. </td>
+                                    </tr>
+                                </tbody>
+                            </table>
+                            <p>&#160;</p>
+                            <p>L’installateur assure les opérations suivantes :</p>
+                            <ul>
+                                <li value="1">Copie du code du Serveur d’Application Vitis</li>
+                                <li value="2">Installation du PHP</li>
+                                <li value="3">Configuration du serveur HTTPS Apache</li>
+                                <li value="4">Création de la base de données dans PostgreSql</li>
+                                <li value="5">Création d’un compte administrateur dans PostgreSql</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Exécuter le script install.cmd pour lancer l’installation.</p>
+                            <p>&#160;</p>
+                            <p style="font-style: italic;">
+                                <img src="../resources/images/attention.png" />Attendre une minute environ pour obtenir un retour console.</p>
+                            <p>&#160;</p>
+                            <p>Un rapport d’installation install_report_dd-mm-yyyy.txt est généré dans le répertoire de téléchargement des ressources, il permet de savoir si l’installation s’est déroulée correctement.</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="3.1.3"></a> Test de l'installation de GTF </h3>
+                            <p>L' instance de GTF doit désormais être disponible à l’adresse : https://&lt;serveur&gt;/gtf</p>
+                            <p>Où &lt;serveur&gt; est l’adresse de la machine où l’application est installée. </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />Attention ! La connexion à GTF par l’adresse localhost est impossible.</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" /> Si l'on se connecte avec le protocole http, la connexion est automatiquement redirigée vers https.</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />Si vous avez généré un certificat de type "self signer", le serveur n’est pas sécurisé et le navigateur va afficher un message d’alerte. Créer alors une exception de sécurité afin de pouvoir accéder et se connecter à GTF. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Après exécution de l’installateur, il faut procéder à l’initialisation de l’application, c’est-à- dire à : </p>
+                            <ul>
+                                <li value="1"><a href="3.2_initialisation_du_compte_administrateur.htm#4">l'initialisation du compte administrateur de GTF</a>
+                                </li>
+                                <li value="2"><a href="3.3_installation_du_moteur_gtf.htm">l’installation du moteur GTF</a>
+                                </li>
+                            </ul>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm
new file mode 100755
index 0000000000000000000000000000000000000000..a7fecf0be7802f09a95c7370b2192972a25189a3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm
@@ -0,0 +1,551 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title> Gestion des utilisateurs  </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="#" class="selected">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="5"><span class="span_1">  <![CDATA[ ]]></span></a>Gestion des utilisateurs<a name="5"></a><![CDATA[  ]]></h1>
+                            <p>&#160;</p>
+                            <p>Un utilisateur GTF est un compte connu par l’application GTF qui peut se connecter à GTF et utiliser ses services.&#160; </p>
+                            <p>Deux profils d’utilisateurs GTF sont à distinguer : </p>
+                            <p class="Style1_1">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">«&#160;Utilisateurs PostgreSQL&#160;»&#160;: utilisateurs authentifiés par la base de données interne à GTF, PostgreSQL, créés directement dans GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">«&#160;Utilisateurs Active Directory (AD)&#160;»&#160;: utilisateurs d’un domaine et authentifiés par un annuaire Active Directory, importés dans GTF.</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>La procédure de création des utilisateurs GTF diffère selon le profil&#160;: </p>
+                            <h2 class="Titre2"><a name="5.1"><span class="span_1"> </span>Création d’utilisateurs et des groupes PostgreSQL</a>
+                            </h2>
+                            <p>Le mode ‘Utilisateurs &gt; Onglet Utilisateurs’ liste l’ensemble des utilisateurs. Il permet l’ajout de nouveaux utilisateurs, leur édition et suppression. Après avoir cliqué sur ‘Ajouter un utilisateur’, le formulaire suivant s’affiche :</p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/creation_utilisateur.png" style="width: 622px;height: 649px;" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Formulaire d'ajout d'utilisateur. </p>
+                            <p style="text-align: left;">&#160;</p>
+                            <p style="text-align: left;">Attribuer un compte de connexion, un nom, un e-mail, un organisme et un service à l’utilisateur en cours de création et lui associer son ou ses groupes d’appartenance. </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />Adresse IP du poste </p>
+                            <p>Une expression régulière permet de définir la ou les adresses IP&#160;à partir desquelles l'utilisateur peut se connecter. Si ce champ est laissé vide, alors toutes les adresses IP seront acceptées. </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" /><a name="kanchor11"></a>Restriction </p>
+                            <p>De la même façon, et dans le cadre de modules spécifiques , un administrateur peut restreindre l'accès à des données à un utilisateur en insérant une restriction sur une table. Le mécanisme de filtre doit être implémenté au préalable via un traitement GTF ou dans un module vMap tel que le module Cadastre. Par exemple, dans le cadre du module cadastre, l'administrateur peut restreindre l'accès aux données, à un utilisateur spécifique, via une  expression régulière : il peut par exemple, limiter l'accès  à deux communes en saisissant l'expression régulière  :' 75001|75002'</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Valider la création du compte en cliquant sur ‘Créer’. Saisir ensuite le mot de passe propre à l’utilisateur. En cliquant sur ‘Mettre à jour’, le processus de création d’un utilisateur est terminé. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="5.1.1"><span class="span_1">  <![CDATA[ ]]></span>Création de groupes d’utilisateurs PostgreSQL</a>
+                            </h3>
+                            <p>Chaque utilisateur doit être associé à un ou plusieurs groupes. Chaque groupe correspond à un profil d'utilisateurs ayant accès à des traitements qui leurs sont spécifiquement dédiés. Chaque groupe doit comporter au moins un traitement.</p>
+                            <p>&#160;</p>
+                            <p>Le mode ‘Utilisateurs &gt; Onglet Groupes’ liste les groupes d’utilisateurs. Il permet d’en ajouter ou d’en supprimer et de leur associer un ou plusieurs traitements, un ou plusieurs utilisateurs ainsi que un ou plusieurs Dépôts (Répertoires de surveillance). </p>
+                            <p>Après avoir cliqué sur “Ajouter groupe”, le formulaire suivant s’affiche : </p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/groupe_postgresql.png" style="width: 622px;height: 265px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <p class="Soustitre_figure" style="text-align: center;">Formulaire de création de groupe. </p>
+                            <p>&#160;</p>
+                            <p>Attribuer un nom au nouveau groupe et lui associer un ou plusieurs utilisateurs. La section GTF permet ensuite d'associer un ou plusieurs traitements et/ou dépôts au groupe. Cliquer ensuite sur « Mettre à jour». Le nom du groupe nouvellement créé apparaît désormais dans la liste des groupes.</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="5.2"><span class="span_1"> </span>Utilisateurs et groupes d’un annuaire Active Directory</a>
+                            </h2>
+                            <p>Il est possible de gérer plusieurs domaines et d’exploiter des groupes de sécurité définis directement dans un annuaire Active Directory. </p>
+                            <p>&#160;</p>
+                            <p>L’administrateur a la possibilité d’importer des utilisateurs et des groupes depuis Active Directory. Cette méthode permet d’hériter des droits issus de la gestion centralisée AD des utilisateurs au sein d’un organisme. </p>
+                            <p>&#160;</p>
+                            <p>L’administrateur crée dans GTF le nouveau domaine, puis importe les utilisateurs et les groupes. L’attribution des groupes ainsi que les mots de passe des utilisateurs ne pourront pas être changés.</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="5.2.1"><span class="span_1"> </span>Ajout de domaines Active Directory</a>
+                            </h3>
+                            <p>Le mode ‘Utilisateurs &gt; Onglet Domaines’ liste les domaines Active Directory. Il permet de créer, modifier et supprimer des domaines. Le bouton ‘Ajouter un Domaine’ affiche le formulaire suivant : </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/ajou_domaine.png" style="width: 415px;height: 492px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <p class="Soustitre_figure" style="text-align: center;">Ajout de domaine AD.</p>
+                            <p>&#160;</p>
+                            <p>L’administrateur saisit les informations suivantes&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Type, Nom et Alias du domaine&#160;: le nom de domaine utilisé pour la connexion. Par exemple,&#160; ‘siege.entreprise.com’.</li>
+                                <li class="Paragraphedeliste_1" value="2">IP ou nom de serveur&#160;: adresse IP ou nom du serveur assurant le rôle de serveur Active Directory.</li>
+                                <li class="Paragraphedeliste_1" value="3">Dn de base de recherche (utilisateur)&#160;: point d’entrée pour la recherche des utilisateurs. </li>
+                                <li class="Paragraphedeliste_1" value="4">Dn de base de recherche (groupe)&#160;: point d’entrée pour la recherche des groupes.</li>
+                                <li class="Paragraphedeliste_1" value="5">Filtre (utilisateur)&#160;: permet de définir des filtres pour la recherche des utilisateurs.</li>
+                                <li class="Paragraphedeliste_1" value="6">Filtre (groupe)&#160;: permet de définir des filtres pour la recherche des groupes.</li>
+                                <li class="Paragraphedeliste_1" value="7">Vérifier les droits lors du lancement du robot : permet au robot de vérifier si un utilisateur du domaine possède toujours les droits lors de l’exécution du traitement. Pour cela le robot a besoin de connaître le login et le mot de passe d’un utilisateur du domaine.</li>
+                                <li class="Paragraphedeliste_1" value="8">Login : login d’un utilisateur du domaine.</li>
+                                <li class="Paragraphedeliste_1" value="9">Mot de passe : mot de passe de l’utilisateur du domaine.</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Le login et le mot de passe saisis ici permettent de vérifier les droits de l’utilisateur Active Directory lors de l’exécution du robot. </p>
+                            <p>&#160;</p>
+                            <p>En cliquant sur «&#160;Créer&#160;» la procédure de création de domaine Active Directory dans GTF est finalisée. </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_3"><span class="span_2"><img src="../resources/images/attention.png"></img>L’administrateur doit </span><span class="span_2">ensuite</span><span class="span_2">&#160; modifier manuellement le fichier de configuration de la base de données PostgreSQL pour autoriser la connexion des utilisateurs du domaine. Dans le répertoire d’installation de PostgreSQL,&#160; modifier à l’aide d’un éditeur de texte le fichier pg_hba.conf situé dans le dossier data</span><span class="span_2"></span><span class="span_2">: </span>
+                            </p>
+                            <p class="Paragraphedeliste_1">&#160;</p>
+                            <p class="p_10">Avant modification vous devriez avoir la configuration suivante&#160;:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"># IPv6 local connections:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="Paragraphedeliste"><span class="span_2">Vous</span> devez rajouter les deux lignes suivantes&#160;:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_nomdomaine&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160; ldap ldapserver=nomduserveur ldapprefix=""</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_nomdomaine&#160; ::1/128&#160;&#160;&#160;&#160;&#160; ldap ldapserver=nomduserveur ldapprefix=""</p>
+                            <p class="extraitcode_1">&#160;</p>
+                            <p class="Paragraphedeliste_2">Pour obtenir la configuration suivante&#160;:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"><span class="span_2">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_</span><span class="span_3">nomdomaine</span><span class="span_2">&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160; ldap ldapserver=</span><span class="span_3">nomduserveur</span><span class="span_2"> ldapprefix=""</span>
+                            </p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"># IPv6 local connections:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"><span class="span_2">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_</span><span class="span_3">nomdomaine</span><span class="span_2">&#160; </span><span class="span_2">::1/128</span><span class="span_2">&#160;&#160;&#160;&#160;&#160; ldap ldapserver=</span><span class="span_3">nomduserveur</span><span class="span_2"> ldapprefix=""</span>
+                            </p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p style="text-indent: 0.5in;"><span class="span_4"><img src="../resources/images/attention.png" />Attention&#160;!&#160; </span><span class="span_4">L’ordre des lignes doit </span><span class="span_4">impérativement </span><span class="span_4">être respecté. </span>
+                            </p>
+                            <h3 class="Titre3"><a name="5.2.2"><span class="span_1"> </span>Import d’utilisateurs d’Active Directory</a>
+                            </h3>
+                            <p>&#160;</p>
+                            <p>Dans l'onglet Utilisateurs, le bouton «&#160;Importer de l’AD&#160;» permet d’importer des utilisateurs à partir d’un serveur Active Directory.</p>
+                            <p>Une interface de connexion apparaît à l’écran. L’administrateur saisit son login et mot de passe Active Directory  afin de se connecter au domaine précédemment créé. </p>
+                            <p>&#160;</p>
+                            <p>Une fois la connexion effectuée, l’administrateur GTF peut soit naviguer dans l’arborescence de l’annuaire du domaine, soit effectuer une recherche à partir de critères.</p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/import_ad.png" style="width: 221px;height: 169px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <h4 class="h5">Navigation dans l'arbre </h4>
+                            <p>L’arborescence du serveur Active Directory s’affiche dans la fenetre de gauche de l’écran. Lorsque l’administrateur sélectionne un nœud, la liste des utilisateurs apparaît dans la fenetre de droite.</p>
+                            <p>
+                                <img src="../resources/images/user_ad.png" style="width: 618px;height: 258px;" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Connexion à un serveur AD</p>
+                            <p>&#160;</p>
+                            <p>Sélectionner ensuite les utilisateurs désirés puis  cliquer sur le bouton «&#160;Importer&#160;». Le processus d’import est terminé. </p>
+                            <p>Pour se connecter, les utilisateurs devront utiliser un login de type <span class="span_5">login@nomdomaine</span></p>
+                            <h4 class="Titre4">Recherche d’utilisateur AD </h4>
+                            <p>Le formulaire de recherche de l'Active Directory s'affiche dans la partie gauche de l'écran, dans l'onglet Recherche. </p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/recerche_ad.png" style="width: 240px;height: 323px;" />
+                            </p>
+                            <p>La recherche d’utilisateurs peut se faire selon 3 critères&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Le compte utilisateur</li>
+                                <li class="Paragraphedeliste_1" value="2">Le ou les groupes AD</li>
+                                <li class="Paragraphedeliste_1" value="3">Le service</li>
+                            </ul>
+                            <p>Une fois l’utilisateur désiré trouvé, il suffit de le cocher puis de cliquer sur le bouton Importer. </p>
+                            <p>&#160;</p>
+                            <p>L’interface de connexion d’un utilisateur importé de la sorte, comporte désormais un champ Domaine, permettant la sélection du domaine AD d’appartenance. L’utilisateur s’authentifie  avec son&#160; login et mot de passe de l’annuaire AD.</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/connexion.png" style="width: 275px;height: 188px;" />
+                            </p>
+                            <h3 class="Titre3"><a name="5.2.3">Import de groupes Active Directory</a><![CDATA[  ]]></h3>
+                            <p>Le bouton «&#160;Importer de l’AD&#160;» permet d’importer des groupes à partir d’un serveur Active Directory.</p>
+                            <p>L’association des utilisateurs et des groupes Active Directory s’effectue directement dans l’Active Directory. L’application récupère les groupes d’un utilisateur Active Directory au moment de la connexion.</p>
+                            <p>&#160;</p>
+                            <p>Une interface de connexion apparaît à l’écran. Saisir le login et mot de passe afin de se connecter au domaine. </p>
+                            <p>Une fois la connexion effectuée, l’administrateur GTF peut soit naviguer dans l’arborescence de l’annuaire du domaine, soit effectuer une recherche à partir&#160; du nom du groupe. </p>
+                            <p>&#160;</p>
+                            <h4 class="Titre4">Navigation dans l’arbre</h4>
+                            <p> Lorsque l’administrateur sélectionne un nœud, la liste des groupes apparaît dans la partie droite de l’écran.</p>
+                            <p>Il suffit alors de sélectionner  le ou les groupes désirés puis de cliquer sur le bouton «&#160;Importer&#160;». Les groupes sont importés. Le groupe nouvellement créé apparaît dans la liste des groupes. </p>
+                            <p class="p_1">&#160;</p>
+                            <h4 class="Titre4">Recherche de groupe AD</h4>
+                            <p>La recherche d’un groupe AD peut se faire à partir du nom de groupe recherché. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                            </h3>
+                            <p>GTF permet d’attribuer aux utilisateurs d’un domaine Active Directory, un groupe local défini dans la base interne PostgreSQL. De la sorte, un administrateur GTF ne disposant pas de droits d’administration d’un annuaire Active Directory, peut tout de même créer ses propres groupes d’utilisateurs de GTF issus d’un annuaire. </p>
+                            <p>&#160;</p>
+                            <p>La sous-section «&#160;Sécurité&#160;» du mode Configuration permet d’activer la gestion mixte des utilisateurs en autorisant des utilisateurs du domaine à appartenir à des groupes locaux. </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gestion_mixte.png" style="width: 605px;height: 94px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="5.3"></a>Gestion des <a name="kanchor17"></a>privilèges utilisateurs </h2>
+                            <p>Les privilèges préfixés par "vitis_" correspondent aux droits propres au socle de développement Vitis : </p>
+                            <ul>
+                                <li value="1">Le privilège vitis_user permet l'accès au mode Utilisateur, offrant la possibilité d'éditer le compte et le mot de passe de l'utilisateur courant. </li>
+                                <li value="2">Le privilège vitis_admin permet l'accès aux modes Utilisateurs, Configuration, Logs. Il a en charge la gestion des paramètres système et de la configuration de GTF. Il accède également dans le mode Aide à la documentation relative à l'API Vitis. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>3 profils d'utilisateurs propres à GTF sont disponibles,  chacun ayant des privilèges spécifiques. L'accès aux modes dépend des privilèges attribués à l'utilisateur. </p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1">gtf_user = utilisateur de GTF ayant accès aux modes Mon travail, Utilisateurs et Aide. Un utilisateur ayant ce privilège exécute un projet FME&#160;mais n'en publie pas. </li>
+                                <li value="2">gtf_author = un utilisateur avec ce privilège est responsable de la publication de projets FME et à ce titre  a accès aux modes Publication, Statistiques et Supervision. Il supervise l'intégralité des projets (ceux qu'il a publiés mais également les autres). </li>
+                                <li value="3">gtf_admin = l'administrateur de l'application a tous les droits. En plus des privilèges vitis_admin, il accède au mode Moteurs dans lequel il configure les moteurs FME et GTF. Il a en charge la gestion des utilisateurs de GTF &#160;et de la base de données. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Dans le mode Utilisateurs, l'administrateur associe à l'utilisateur en cours de création le ou les privilèges désirés : </p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/privileges.png" />
+                            </p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/6_publication_de_traitements.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/6_publication_de_traitements.htm
new file mode 100755
index 0000000000000000000000000000000000000000..7a9ad021785476d6cf5ff54613aeb27a9f16c21c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/6_publication_de_traitements.htm
@@ -0,0 +1,1232 @@
+<?xml version="1.0" encoding="utf-8"?>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" MadCap:tocPath="" MadCap:InPreviewMode="false" MadCap:PreloadImages="false" MadCap:RuntimeFileType="Topic" MadCap:TargetType="WebHelp" lang="fr" xml:lang="fr" MadCap:PathToHelpSystem="../../" MadCap:HelpSystemFileName="gtf_manuel_utilisateur.xml" MadCap:SearchType="Stem">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../SkinSupport/Slideshow.css" rel="stylesheet" type="text/css" MadCap:generated="True" />
+        <link href="../SkinSupport/MadCap.css" rel="stylesheet" type="text/css" MadCap:generated="True" /><title>&#160;Publication de traitements</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../SkinSupport/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../SkinSupport/MadCapAll.js" type="text/javascript">
+        </script>
+        <script src="../SkinSupport/MadCapTopicAll.js" type="text/javascript">
+        </script>
+    </head>
+    <map id="map1" name="map1">
+        <area shape="rectangle" coords="62,30,164,128" dragDirection="0" />
+    </map>
+    <body>
+        <p class="MCWebHelpFramesetLink MCWebHelpFramesetLinkTop"><a href="../../gtf_manuel_utilisateur_CSH.htm#gtf_manuel_utilisateur/6_publication_de_traitements.htm" style="">Ouvrir la rubrique avec les liens de navigation</a>
+        </p>
+        <h1 class="Titre1"><a name="6"><span class="span_1"><p>&#160;</p></span>Publication de traitements</a>
+        </h1>
+        <p>Un utilisateur avec des droits d'auteur peut publier un traitement. Après avoir généré un projet dans FME, il crée un traitement dans GTF puis l'associe au projet.</p>
+        <p>Le mode Publication comporte l’ensemble des formulaires permettant la création et le paramétrage des traitements GTF. </p>
+        <h2 class="Titre2"><a name="6.1">Ajout de projet FME</a><![CDATA[  ]]></h2>
+        <p>Il existe deux façons dans GTF de créer des Projets FME : l'ajout de projet  et l'Import de projets par lot. </p>
+        <p>&#160;</p>
+        <h3 class="Titre3"><a name="6.1.1">Ajout de projet FME</a>&#160;  </h3>
+        <p>Le bouton ‘Ajouter un Projet FME’ de l’onglet Projets FME permet d’accéder au formulaire de création de projet. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/ajout_projet1.png" style="width: 618px;height: 438px;border-left-style: solid;border-left-width: 1px;border-right-style: solid;border-right-width: 1px;border-top-style: solid;border-top-width: 1px;border-bottom-style: solid;border-bottom-width: 1px;" title="Création de projet" />
+        </p>
+        <p style="text-align: center;"><span class="sousTitre">Formulaire de création de projet </span>
+        </p>
+        <p>La première étape consiste à Attribuer un nom au traitement. </p>
+        <p>&#160;</p>
+        <p style="font-style: normal;">
+            <img src="../resources/images/attention.png" /><a name="6.1.1.1"></a>Règles de <a name="kanchor19"></a>nommage des projets </p>
+        <p style="font-style: normal;">&#160;</p>
+        <p style="font-style: normal;">Plusieurs options sont possibles : </p>
+        <ul class="ul_1">
+            <li class="Paragraphedeliste_1" style="font-style: normal;" value="1">L'auteur nomme le projet directement dans GTF. Dans l'exemple, ci-dessus, le projet se nomme "Zone_inondable". </li>
+            <li class="Paragraphedeliste_1" style="font-style: normal;" value="2">L'auteur choisit d'utiliser le nom du script FME et laisse  dans GTF le champ 'Nom du traitement' vide. Le nom du traitement est le nom du script FME sans son extension. Dans l'exemple ci-dessus, le projet se nommerait "zone_inondableswfs2kml". </li>
+            <li class="Paragraphedeliste_1" style="color: #000000;font-style: normal;" value="3"> <span style="color: #000000;">Si le nom du traitement existe déjà, alors le nom du nouveau projet est suffixé par la date du jour. Dans l'exemple ci-dessus, le nouveau projet serait nommé 'Zone_inondable_jjmm.aaaa'. </span></li>
+        </ul>
+        <p style="font-style: italic;color: #000000;">&#160;</p>
+        <p>L’auteur charge  ensuite le  projet FME dans lequel il aura pris soin de publier certains paramètres comme par exemple le répertoire destination. Le paramètre <a name="kanchor20"></a>“Ressources complémentaires” permet d’associer les ressources nécessaires pour l'exécution du projet FME, comme par exemple des données sources.</p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" style="color: #3cb371;" />GTF  détecte les formats de types multifichiers (Shape File, EDIGEO…) contenus dans un fichier compressé ZIP que l’utilisateur uploade sur le serveur.&#160;Les fichiers sont automatiquement décompressés dans le répertoire projet.</p>
+        <p>&#160;</p>
+        <p>Il définit ensuite la disponibilité du traitement sur<a href="#6.3" class="selected"> abonnement</a> et pour <a href="#6.3.2" class="selected">Surveillance</a> .</p>
+        <p>&#160;</p>
+        <p>Le <a href="#6.5" class="selected">modèle d'email</a> à associer au traitement doit ensuite être défini, ainsi que le moteur GTF auquel rattacher le traitement. La stratégie d'affiliation se fait à partir de la liste des <a href="3.2_initialisation_du_compte_administrateur.htm#4.2">mots clés/moteurs</a>, définis au préalable par l'administrateur de l'application. </p>
+        <p>&#160;</p>
+        <p> Le bouton ‘Créer’ permet ensuite de finaliser la première étape du processus de création de traitement en générant le formulaire correspondant. </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" />La création d'un projet génère ensuite un attribut "Clé" qui correspond à un identifiant unique universel du projet. Il s'agit d'une<a name="_clé_unique"></a> clé unique qui permet par exemple en cas de réinstallation de GTF, d'assurer l'unicité et le référencement du projet. Sa valeur est conservée en cas d'installation du projet sur un nouveau serveur contrairement à l'identifiant système ID. </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" style="color: #9acd32;" /><span style="color: #000000;"><span style="color: #9acd32;"><span style="color: #000000;">Tous les visualiseurs contenus dans un projet FME sont désactivés lors du processus d'import ou d'ajout&#160; de projets dans GTF.</span><![CDATA[  ]]></span></span>
+        </p>
+        <p class="Paragraphedeliste_3">&#160;</p>
+        <h3 class="Titre3"><a name="6.1.2">Import de projets FME par lot</a><![CDATA[  ]]></h3>
+        <p>GTF offre des fonctionnalités de catalogage et de gestion du patrimoine de projets FME disponibles dans un organisme. A cette fin et pour faciliter la création de plusieurs projets en même temps,&#160;  la fonction d'ajout par lot a été créée permettant  le chargement   de plusieurs projets FME en une seule fois. </p>
+        <p>&#160;</p>
+        <p>Après avoir cliqué sur le bouton 'Ajout par lot', l'auteur clique sur le bouton Parcourir, et sélectionne les projets FME qu'il souhaite intégrer à GTF. Il clique ensuite sur le bouton 'Transférer'. </p>
+        <p class="p_1">&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/import_projets.png" style="width: 623px;height: 397px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Import de projets par lot </p>
+        <p style="font-size: 9pt; font-style: italic; text-align: center;">&#160;</p>
+        <p>Une fois chargés, les projets FME apparaissent dans la liste des projets FME du mode Publication. L'auteur est ensuite en charge de nommer ou renommer les fichiers, de gérer leur métadonnées et de leur associer les groupes et droits&#160; désirés. </p>
+        <p>&#160;</p>
+        <p class="Paragraphedeliste_3">
+            <img src="../resources/images/attention.png" style="color: #9acd32;" /><span style="color: #000000;"><span style="color: #9acd32;"><span style="color: #000000;">Tous les visualiseurs contenus dans un projet FME sont désactivés lors du processus d'import ou d'ajout&#160; de projets dans GTF.</span><![CDATA[  ]]></span></span>
+        </p>
+        <p class="Paragraphedeliste_3">&#160;</p>
+        <h3 class="Titre3"><a name="6.1.3">Attribution de droits au traitement</a><![CDATA[  ]]></h3>
+        <p>Pour pouvoir être exploité, un traitement doit être associé à un groupe. Dans la section ‘Droits’, l’auteur associe un groupe au projet nouvellement créé en faisant glisser le groupe choisi dans la partie de Groupes associés au traitement. Il clique ensuite sur le bouton « Mettre à jour ».</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/add_droits_projet.png" style="width: 605px;height: 285px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Attribution de droits à un traitement</p>
+        <h3 class="Titre3"><a name="6.1.4">Gestion des métadonnées</a><![CDATA[  ]]></h3>
+        <p> GTF permet la gestion des métadonnées d'un projet et l'exploitation des métadonnées natives issues des projets FME. </p>
+        <p>Les métadonnées d'un projet, définies dans FME via le Navigateur, sont  chargées dans GTF.</p>
+        <ul>
+            <li value="1"> Les sections Description, Catégorie, Conditions d'utilisation, Utilisation, Pré requis et Historique sont directement issues du projet FME et peuvent être modifiées .</li>
+            <li value="2"> La date de dernière sauvegarde, l'encodage et la version FME sont propres au projet FME source et sont modifiés automatiquement dans GTF  en cas de rechargement du projet FME. </li>
+        </ul>
+        <p><![CDATA[  ]]></p>
+        <p>
+            <img src="../resources/images/attention.png" /><i>Une catégorie définie dans un projet FME, est  importée dans GTF et créée dans le menu Catégories, si elle n'existe pas. </i>
+        </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/metadata.png" style="width: 623px;height: 394px;" />
+        </p>
+        <p>&#160;</p>
+        <p class="Soustitre_figure" style="text-align: center;">Métadonnées d'un projet</p>
+        <p>&#160;</p>
+        <p>La section Métadonnées du mode Publication permet à l'auteur, de modifier ces dernières et de les réécrire dans le projet FME. </p>
+        <ul>
+            <li value="1">Le bouton 'Mettre à jour' permet d'enregistrer les modifications des métadonnées dans GTF. </li>
+            <li value="2">Le bouton 'Relire le projet' permet de recharger les métadonnées  du projet FME initial. Les champs Description, Utilisation, Pré requis et Conditions d'utilisation saisies dans GTF sont remplacés par les valeurs issues du projet FME&#160;source. </li>
+            <li value="3">Le bouton 'Ecrire le projet' permet de modifier les métadonnées du projet FME source. Les valeurs des champs Description, Utilisation, Pré requis et Conditions d'utilisation initiales sont remplacées par les valeurs saisies dans GTF. Le projet .fmw modifié est disponible dans la section Répertoire Projet. </li>
+        </ul>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" /><span style="color: #000000;">Les métadonnées d'un projet sont chargées lors du premier chargement d'un projet FME. Si les métadonnées sont  ajoutées et/ou modifiées dans GTF et que l'on procède à un nouveau chargement du projet FME, alors les métadonnées du projet FME, n'écrasent pas celles éditées dans GTF. Les métadonnées sont ainsi chargées que lors du premier chargement d'un projet FME. Le bouton 'Relire le projet' permet de contourner ce fonctionnement pour permettre le rechargement des du projet FME source initialement chargé. </span><![CDATA[  ]]></p>
+        <h3 class="Titre3">&#160;</h3>
+        <h3 class="Titre3"><a name="6.1.5"><span class="span_1"><p>&#160;</p></span>Gestion et personnalisation des paramètres publiés : Travailler dans le studio</a>
+        </h3>
+        <p>La section Formulaire du mode Publication permet de gérer l’affichage du formulaire de demande de traitement tel qu'il sera affiché lors d’une demande émise par&#160; un utilisateur.</p>
+        <p>&#160;</p>
+        <p> Le <a name="kanchor25"></a>studio permet de personnaliser graphiquement chaque paramètre publié importé depuis FME, et permet la mise en page générale du formulaire de demande. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/studio.png" style="width: 689px;height: 511px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Studio de personnalisation de formulaire. </p>
+        <p>&#160;</p>
+        <p>Le studio de personnalisation des formulaires est composé de 4 fenêtres :</p>
+        <ul>
+            <li value="1">Une fenêtre centrale de prévisualisation du formulaire. Elle permet de prévisualiser le formulaire  tel qu'il sera affiché lors d'une demande de traitement, mais il est possible d'afficher le formulaire JSON ou Javascript en sélectionnant le type d'affichage désiré en haut de la fenêtre. <img src="../resources/images/previsualisation.png" style="width: 135px;height: 98px;" /></li>
+            <li value="2">Une fenêtre des paramètres publiés, à droite de l'écran : elle liste l'ensemble des paramètres publiés du projet et leur ordre d'affichage. Il est possible de modifier l'ordre d'affichage des paramètres <img src="../resources/images/depalcment_param_tre.png" />, de les supprimer <img src="../resources/images/suppression_parametre.png" /> et en d'en créer de nouveaux <img src="../resources/images/ajout_parametre.png" />.</li>
+            <li value="3">Une fenêtre de définition des paramètres, à gauche en bas de l'écran, qui permet leur édition et configuration. </li>
+            <li value="4">Une fenêtre formulaire, en haut à gauche de l'écran, qui permet l'enregistrement, la publication et le nommage de chaque formulaire. Il permet d'afficher le formulaire par défaut, le formulaire publié et le formulaire personnalisé.</li>
+        </ul>
+        <p>&#160;</p>
+        <h4 class="Titre4"><a name="6.1.5.1"></a>Formulaire<a name="kanchor26"></a> par défaut, Formulaire personnalisé, Formulaire publié </h4>
+        <p>Le formulaire par défaut comporte les paramètres publiés du projet FME. Après visualisation, l’auteur peut choisir de conserver en l’état ce formulaire ou de le personnaliser. </p>
+        <p>&#160;</p>
+        <p>Chaque projet FME chargé dans GTF est stocké dans le répertoire \workspace du répertoire d'installation de GTF. Le&#160; sous-répertoire workspace\fme stocke le projet .fmw et les ressources du projet, et le répertoire workspace\form stocke les fichiers de gestion et de personnalisation des formulaires du traitement. </p>
+        <p>&#160;</p>
+        <p>Une fois un projet créé, GTF créé 3 fichiers identiques : </p>
+        <ul class="ul_1">
+            <li class="Paragraphedeliste_1" value="1">DsubForm.json : formulaire par défaut du traitement, affiché dans le studio lorsque l'on sélectionne le bouton <img src="../resources/images/bouton_defaut.png" /></li>
+            <li class="Paragraphedeliste_1" value="2">SubForm.json : formulaire publié par GTF, affiché dans le studio lorsque l'on sélectionne le bouton <img src="../resources/images/bouton_publie.png" /></li>
+            <li class="Paragraphedeliste_1" value="3">WsubForm.json : formulaire destiné à être personnalisé, affiché dans le studio lorsque l'on sélectionne le bouton de personnalisation <img src="../resources/images/bouton_perso.png" /></li>
+        </ul>
+        <p>&#160;</p>
+        <p>Lors de la publication d'un formulaire personnalisé, le fichier WsubForm est modifié puis écrase le fichier SubForm. </p>
+        <p>&#160;</p>
+        <p>Lors de la création d'un projet, les 3 formulaires par défaut, personnalisé et publié sont identiques. L'auteur d'un projet peut ensuite  personnaliser le formulaire par défaut. Il choisit de publier ou pas le formulaire personnalisé. </p>
+        <p>A&#160;tout moment il peut revenir au formulaire par défaut et le publier à nouveau. </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" />En cas de re chargement d'un projet FME, si le formulaire publié est identique au formulaire par défaut alors les 3 formulaires sont écrasés. En revanche, lorsque le formulaire publié est identique au formulaire personnalisé, alors  seul le formulaire par défaut est écrasé. Dans ce cas de figure, les formulaires personnalisés et publiés sont donc conservés. </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" />Dans la liste des projets, on peut distinguer les projets publiés exploitant un formulaire par défaut, des projets exploitant un formulaire personnalisé par la couleur du pictogramme du champ Formulaire : un pictogramme vert signifie que le formulaire par défaut est publié. Un pictogramme bleu indique que le formulaire publié est un formulaire personnalisé. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/picto_firmulaire.png" style="width: 611px;height: 136px;" />
+        </p>
+        <p>&#160;</p>
+        <p class="Soustitre_figure" style="text-align: center;">Liste des projets et formulaires exploités</p>
+        <p class="Soustitre_figure" style="text-align: center;">&#160;</p>
+        <h4 class="Titre4"><a name="Onglets"></a>Création d'<a name="kanchor27"></a>onglets dans un formulaire</h4>
+        <p>L'auteur d'un projet peut choisir d'agencer le formulaire de demande de traitement sous forme d'onglets. Il peut ainsi répartir les paramètres sur plusieurs onglets. </p>
+        <p>Le bouton 'Edition &gt; Gestion des onglets' <img src="../resources/images/onglets.png" style="width: 229px;height: 54px;" /> de la fenêtre des formulaires personnalisés permet d'accéder à la fenêtre de gestion de ces derniers. </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/onglets2.png" style="width: 669px;height: 602px;border-left-style: solid;border-left-width: 1px;border-left-color: #000000;border-right-style: solid;border-right-width: 1px;border-right-color: #000000;border-top-style: solid;border-top-width: 1px;border-top-color: #000000;border-bottom-style: solid;border-bottom-width: 1px;border-bottom-color: #000000;" />
+        </p>
+        <p>&#160;</p>
+        <p class="Soustitre_figure" style="text-align: center;">Studio - Fenêtre de gestion des onglets d'un formulaire. </p>
+        <p class="Soustitre_figure" style="text-align: center;">&#160;</p>
+        <p>Après avoir édité et nommé un onglet <img src="../resources/images/onglet_edition.png" />, cocher les paramètres devant le composer. Le bouton 'Ajouter un onglet' en bas de la fenêtre permet la création d'un nouvel onglet. </p>
+        <p>Un aperçu des onglets nouvellement créés s'affiche dans la partie de droite de la fenêtre. </p>
+        <p>Cliquer sur Valider pour revenir au studio. </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" /> Les onglets ne sont pas apparents dans le studio mais uniquement dans la fenêtre de gestion de ces derniers. </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" />Un paramètre peut apparaître sur deux onglets différents. Lors de la demande d'un tel projet, l'édition d'un paramètre dans un onglet est automatiquement reportée dans le deuxième onglet. </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <h4 class="Titre4"><a name="6.1.5.2"></a><b>Paramètres publiés FME et contrôles<a name="kanchor28"></a> GTF&#160;</b>
+        </h4>
+        <p>Les  paramètres publiés de FME sont importés dans GTF et peuvent être modifiés dans le studio via des contrôles GTF. Un contrôle GTF est converti en paramètre publié FME lors du traitement du projet. </p>
+        <p>Certains contrôles GTF ne sont pas issus de paramètres publiés de FME et correspondent  à des composants de mise en page (interface) destinés à personnaliser l'interface du formulaire de demande de projet.</p>
+        <p>Il existe  20 types de contrôles GTF  paramétrables dans la fenêtre de Définition des Paramètres : </p>
+        <p>&#160;</p>
+        <blockquote>
+            <blockquote>
+                <blockquote>
+                    <p style="text-align: left;">&#160;</p>
+                    <table style="border-top-left-radius: 1px;border-top-right-radius: 1px;border-bottom-right-radius: 1px;border-bottom-left-radius: 1px;border-left-style: solid;border-left-width: 1px;border-right-style: solid;border-right-width: 1px;border-top-style: solid;border-top-width: 1px;border-bottom-style: solid;border-bottom-width: 1px;margin-left: 0;margin-right: auto;mc-hide-bottom-ruling: true;">
+                        <col style="width: 218px;" />
+                        <tbody>
+                            <tr>
+                                <td style="font-weight: bold;text-align: left;">Nom du contrôle GTF</td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.21" class="selected">Bouton radio</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.22" title="Contrôles de type carte" alt="Contrôles de type carte" class="selected">Carte Bing</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.22" class="selected">Carte OSM</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.22" class="selected">Carte vMap</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.25" class="selected">Champ caché</a><![CDATA[  ]]></td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.5_Param%C3%A8tre_publi%C3%A9_de_type_choix_de_couleur_" title="Contrôle GTF de type couleur" alt="Contrôle GTF de type couleur" class="selected">Couleur</a><![CDATA[  ]]></td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2." title="Contrôle GTF de type curseur" alt="Contrôle GTF de type curseur" class="selected">Curseur </a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.7" class="selected">Date et Heure</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.9_Param%C3%A8tre_publi%C3%A9_de_type_Flottant" class="selected">Décimal</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.8_Param%C3%A8tre_publi%C3%A9_de_type_Entier" class="selected">Entier</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.11" class="selected">Fichier local</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.2" class="selected">Interface - Ligne de séparation</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.23" class="selected">Label</a><![CDATA[  ]]></td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.23" class="selected">Label Titre</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.2.Param%C3%A8tre_publi%C3%A9_de_type_Choix_multiple" class="selected">Liste</a><![CDATA[  ]]></td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.1_Param%C3%A8tre_publi%C3%A9_de_type_Choix" class="selected">Liste déroulante</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.16" class="selected">Texte en édition 1 ligne</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.10_Param%C3%A8tre_publi%C3%A9_de_type_Mot_de_passe" class="selected">Texte en édition Mot de passe</a><![CDATA[  ]]></td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.18" class="selected">Texte en édition Multiligne</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td style="text-align: left;"><a href="#6.1.5.2.20" class="selected">Texte en édition URL</a>
+                                </td>
+                            </tr>
+                        </tbody>
+                    </table>
+                    <p style="text-align: left;">&#160;</p>
+                </blockquote>
+            </blockquote>
+        </blockquote>
+        <p style="font-style: italic;">
+            <img src="../resources/images/attention.png" /> Un nom de paramètre ne peut pas contenir d'espace. </p>
+        <p style="font-style: italic;">
+            <img src="../resources/images/attention.png" /> Les valeurs par défaut d'un paramètre publié FME&#160;sont importées dans GTF. </p>
+        <h4 class="h5"><a name="6.1.5.2.1_Paramètre_publié_de_type_Choix"></a>Paramètre publié de type Choix - Contrôle de type Liste déroulante</h4>
+        <p> Un paramètre publié FME de type Choix est importé dans un GTF en contrôle de type Liste déroulante. </p>
+        <p>La configuration de la liste se fait via le <a href="#6.1.5.3" class="selected">Gestionnaire de source de données. </a></p>
+        <p>L'auteur du projet nomme le paramètre et son libellé tel qu'il sera affiché dans le formulaire de demande et définit  le nombre de lignes.  Il indique si le paramètre est obligatoire en cochant ou pas la case Requis. </p>
+        <p>&#160;</p>
+        <p>Il est possible de faire de cette liste une <a href="#Liste_cascade" class="selected">liste en cascade</a>, en définissant la liste parent et les attributs sur lesquels doit reposer l'ascendance. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/choix.png" style="width: 267px;height: 144px;" /> <img src="../resources/images/fleche.png" /><img src="../resources/images/cld.png" style="width: 195px;height: 239px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Choix et Contrôle GTF de type Liste déroulante</p>
+        <p class="Soustitre_figure" style="text-align: center;">&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.2.Paramètre_publié_de_type_Choix_multiple"></a> Paramètre publié de type Choix multiple - Contrôle de type Liste</h4>
+        <p>Un paramètre publié FME de type Choix multiple est importé dans GTF en contrôle de type Liste. Le <a href="#6.1.5.3" class="selected">Gestionnaire de source de données</a> permet de configurer la liste importée. </p>
+        <p>L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande et définit la valeur par défaut. Il paramètre le nombre de lignes à afficher.  Il définit si le paramètre est obligatoire en cochant ou pas la case Requis. </p>
+        <blockquote>
+            <p style="text-align: center;">
+                <img src="../resources/images/choix_multi.png" style="width: 258px;height: 134px;" /> <img src="../resources/images/fleche.png" /> <img src="../resources/images/c_liste.png" style="width: 149px;height: 211px;" /></p>
+        </blockquote>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Choix multiple et contrôle GTF de Type Liste</p>
+        <p>&#160;</p>
+        <p>Il est possible de faire de cette liste une <a href="#6.1.5.4" class="selected">liste en cascade</a>, en définissant la liste parent et les attributs sur lesquels doit reposer l'ascendance. </p>
+        <h4 class="h5"><a name="6.1.5.2.3_Paramètre_publié_de_type_Choix_avec_alias"></a>Paramètre publié de type Choix avec alias - Contrôle de type Liste déroulante</h4>
+        <p>Un paramètre publié de type choix avec alias est importé dans GTF en contrôle de type Liste déroulante. </p>
+        <p>La configuration de la liste se fait dans le <a href="#6.1.5.3" class="selected"><p>Gestionnaire de source de données. </p></a></p>
+        <p>L'auteur du projet nomme le paramètre et son libellé tel qu'il  sera affiché dans le formulaire de demande et définit sa valeur par défaut. Il paramètre le nombre de lignes à afficher.  Il définit si le paramètre est obligatoire en cochant ou pas la case Requis. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/param_choix_alias.png" style="width: 298px;height: 162px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/liste_deroulante_alias.png" style="width: 180px;height: 243px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Choix avec alias et Contrôle GTF de type Liste déroulante. </p>
+        <p>&#160;</p>
+        <p>Il est possible de faire de cette liste une <a href="#6.1.5.4" class="selected">liste en cascade</a>, en définissant la liste parent et les attributs sur lesquels doit reposer l'ascendance. </p>
+        <h4 class="h5"><a name="6.1.5.2.4_Paramètre_publié_de_type_Choix_avec_Alias_Multiple"></a> Paramètre publié de type Choix avec Alias Multiple - Contrôle de type Liste</h4>
+        <p>Un paramètre pubié de type choix avec alias multiple est importé dans GTF en contrôle de type Liste. </p>
+        <p>La configuration de la liste se fait dans le <a href="#6.1.5.3" class="selected"><p>Gestionnaire de source de données. </p></a></p>
+        <p>L'auteur du projet nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande, définit le nombre de lignes à afficher.  Il définit si le paramètre est obligatoire en cochant ou pas la case Requis.  </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/parma_alias_multi.png" style="width: 306px;height: 169px;" /> <img src="../resources/images/fleche.png" /><img src="../resources/images/choixaliasmultpile.png" style="width: 184px;height: 278px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Choix avec alias multiple et contrôle GTF de type Liste</p>
+        <p>&#160;</p>
+        <p>Il est possible de faire de cette liste une <a href="#" class="selected">liste en cascade</a>, en définissant la liste parent et les attributs sur lesquels doit reposer l'ascendance. </p>
+        <h4 class="h5"><a name="6.1.5.2.5_Paramètre_publié_de_type_choix_de_couleur_"></a>Paramètre publié de type choix de couleur - Contrôle de type Couleur</h4>
+        <p>Un paramètre publié de tye Choix de la couleur est importé dans GTF en contrôle de type Couleur . L'auteur nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande, définit la couleur par défaut . Il peut choisir la largeur du contrôle et définir si ce paramètre est obligatoire ou pas. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/couleur_fond.png" style="width: 311px;height: 170px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c_couleur.png" style="width: 186px;height: 189px;" /></p>
+        <p class="Paragraphedeliste_9" style="text-align: center;">Paramètre publié de type Choix de la couleur et Contrôle GTF de type Couleur</p>
+        <h4 class="h5"><a name="6.1.5.2."></a> Paramètre publié de type Curseur - Contrôle de type Curseur </h4>
+        <p>Un paramètre publié de type curseur est importé sous la forme de contrôle de type Curseur.  L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande et  définit les valeurs minimales et maximales ainsi que la valeur par défaut du curseur. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/curseur.png" style="width: 299px;height: 161px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c_curseur.png" style="width: 198px;height: 193px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié et contrôle de type Curseur</p>
+        <h4 class="h5"><a name="6.1.5.2.7"></a> Paramètre publié de type Date/heure - Contrôle de type Date et Heure</h4>
+        <p>Un paramètre publié de type Date/Heure est importé dans GTF sous la forme de contrôle Date et Heure. </p>
+        <p>L'auteur nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande. Il peut définir la date et heure affichées par défaut.  Il définit si le paramètre est obligatoire en cochant ou pas la case Requis.  </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/p_date.png" style="width: 303px;height: 164px;" /> <img src="../resources/images/fleche.png" /> <img src="../resources/images/c_date.png" style="width: 209px;height: 214px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié et contrôle de type Date/heure </p>
+        <h4 class="h5"><a name="6.1.5.2.8_Paramètre_publié_de_type_Entier"></a>Paramètre publié de type Entier - Contrôle de type Entier </h4>
+        <p>Un paramètre publié de type Entier est importé dans GTF en contrôle de type Entier. L'auteur nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande et définit la valeur par défaut . Il peut définir si ce paramètre est obligatoire ou pas en cochant la case Requis. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_param_entier.png" style="width: 310px;height: 169px;" />&#160;<img src="../resources/images/fleche.png" /><img src="../resources/images/c_entier.png" style="width: 192px;height: 161px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié et contrôle de type Entier</p>
+        <h4 class="h5"><a name="6.1.5.2.9_Paramètre_publié_de_type_Flottant"></a> Paramètre publié de type Flottant - Contrôle de type Décimal</h4>
+        <p>Un paramètre publié de type Flottant est importé dans GTF en contrôle de type Décimal. L'auteur nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande et définit la valeur par défaut. Il peut définir si ce paramètre est obligatoire ou pas en cochant la case Requis. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/param_pub_flottant.png" style="width: 325px;height: 173px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c_float.png" style="width: 198px;height: 158px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Flottant et contrôle de type Décimal</p>
+        <h4 class="h5"><a name="6.1.5.2.10_Paramètre_publié_de_type_Mot_de_passe"></a>Paramètre publié de type Mot de passe - Contrôle de type Texte en édition mot de passe </h4>
+        <p>Un paramètre publié FME de type Mot de passe est importé dans GTF sous la forme de contrôle de type Texte en édition - mot de passe. </p>
+        <p> L'auteur nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande. </p>
+        <p>Il peut définir un motif sous la forme d'expression régulière, pour contrôler l'affichage du mot de passe et s'assurer que la valeur respecte bien un modèle. </p>
+        <p> Il peut définir si ce paramètre est obligatoire ou pas en cochant la case Requis, et choisit la largeur du contrôle. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/pwd.png" style="width: 322px;height: 177px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c-pwd.png" style="width: 211px;height: 215px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type mot de passe et Contrôle de type Texte en édition - mot de passe</p>
+        <h4 class="h5"><a name="6.1.5.2.11"></a>Paramètre publié de type Nom de fichier multiple - Contrôle de type Fichier Local</h4>
+        <p>Un paramètre publié FME de type Nom de fichier (Multiple) est importé dans GTF sous la forme de contrôle de type Fichier Local. </p>
+        <p>L'auteur du projet nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande, définit la largeur du contrôle et indique si le paramètre est obligatoire ou pas. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/param_p_fichiers_multi.png" style="width: 314px;height: 168px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c_fichier_sources.png" style="width: 189px;height: 359px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Nom de fichier Multiple et Contrôle de type Fichier local</p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="OptionsAvancées"></a>Options avancées</h4>
+        <p>Les options avancées permettent d'affiner l'affichage du formulaire lors du chargement de fichiers en faisant apparaître ou pas la prévisualisation des fichiers, ainsi que les boutons de chargement et de suppression des fichiers. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/fichier_local_otpions.png" style="width: 509px;height: 269px;" />
+        </p>
+        <p style="font-size: 8pt;font-style: italic;text-align: center;">Contrôle GTF de Type Fichiers Multiples. Options avancées. </p>
+        <h4 class="h5"><a name="6.1.5.2.12"></a>Paramètre publié de type Nom de fichier existant - Contrôle de type Fichier local</h4>
+        <p>Un paramètre publié FME de type Nom de fichier (Existant) est importé dans GTF sous la forme de contrôle de type Fichier Local. </p>
+        <p>L'auteur du projet nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande, définit la largeur du contrôle et indique si le paramètre est obligatoire ou pas. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/param_p_fichier_existant.png" style="width: 306px;height: 166px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c_fichier_local2.png" style="width: 171px;height: 295px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Nom de fichier existant et contrôle GTF de type Fichier Local</p>
+        <h4 class="h5"><a href="#OptionsAvanc%C3%A9es" class="selected">Options avancées</a>
+        </h4>
+        <p>Les options avancées permettent d'affiner l'affichage du formulaire lors du chargement de fichiers en faisant apparaître ou pas la prévisualisation des fichiers, ainsi que les boutons de chargement et de suppression des fichiers. </p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.13"></a>Paramètre de type Nom de fichier en sortie - Contrôle de type Fichier Local</h4>
+        <p>Le paramètre publié de type Fichier en sortie est importé sous la forme de contrôle de type Texte en édition - 1 ligne. L'auteur du projet nomme le paramètre et définit le libellé tel qu'il sera affiché dans le formulaire de demande. Il peut insérer une expression régulière dans le champ Motif pour assurer un contrôle de la valeur saisie. Il peut définir une valeur par défaut, la largeur du contrôle à afficher et indique si le paramètre est obligatoire ou pas.  </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_fichier_sortie.png" style="width: 317px;height: 171px;" /> <img src="../resources/images/fleche.png" /> <img src="../resources/images/c_fichier_sortie.png" style="width: 192px;height: 245px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Nom de fichier en sortie et contrôle GTF de type Texte en édition - 1 ligne</p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.14"></a>Paramètre publié de type Nom de système de coordonnées - Contrôle de type Liste déroulante</h4>
+        <p>Un paramètre publié de type Nom de Système de coordonnées est importé dans GTF sous la forme d'une Liste déroulante. Les valeurs de la liste sont automatiquement importées et visibles dans le gestionnaires de source de données. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/param_pub_sys_coord.png" style="width: 327px;height: 177px;" /> <img src="../resources/images/fleche.png" /><img src="../resources/images/c_syst_coord.png" style="width: 208px;height: 252px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Nom de système de coordonnées et Contrôle de type Liste déroulante. </p>
+        <p>&#160;</p>
+        <p>La configuration de la liste se fait via le <a href="#6.1.5.3" class="selected">Gestionnaire de source de données. </a></p>
+        <p>L'auteur du projet nomme le paramètre et le libellé qui sera affiché dans le formulaire de demande et définit  le nombre de lignes à afficher ainsi que la largeur du contrôle.  Il indique si le paramètre est obligatoire en cochant ou pas la case Requis. </p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.15"></a>Paramètre publié de type Répertoire existant - Contrôle de type Fichier local</h4>
+        <p>Un paramètre publié de type Répertoire existant est importé sous la forme d'un contrôle de type Fichier local. L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande, il définit la largeur du contrôle et indique si ce paramètre est obligatoire ou pas. </p>
+        <p>&#160;</p>
+        <p><a href="#OptionsAvanc%C3%A9es" class="selected">Les options avancées</a> permettent d'affiner les paramètres d'affichage lors du téléchargement du fichier. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_rep_existant.png" style="width: 316px;height: 174px;" /> <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c_rep_ex.png" style="width: 214px;height: 240px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Répertoire (Existant) et contrôle de type Fichier Local</p>
+        <h4 class="h5"><a name="6.1.5.2.16"></a> Paramètre publié de type Répertoire en sortie - Contrôle de type Texte en édition 1 ligne</h4>
+        <p>Un paramètre publié de type Répertoire en sortie est importé sous la forme d'un contrôle de type Texte en édition 1 ligne. L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande. Il peut définir la valeur par défaut du nom de répertoire à créer, et il peut saisir une expression régulière dans le champ Motif pour assurer un contrôle du nom créé. </p>
+        <p> Il peut définir la largeur du contrôle et indiquer si le paramètre est obligatoire en cochant ou pas la case Requis. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_repsortie.png" style="width: 316px;height: 174px;" />&#160;<img src="../resources/images/fleche.png" /><img src="../resources/images/c_txt_1l.png" style="width: 184px;height: 267px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Répertoire en sortie et contrôle de type Texte en édition- 1 ligne</p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.17"></a> Paramètre publié de type Texte -Contrôle de type Texte en édition 1 ligne</h4>
+        <p>Un paramètre publié de type Texte est importé sous la forme d'un contrôle de type Texte en édition- 1 ligne. L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande. Il peut définir la valeur par défaut à créer, et peut saisir une expression régulière dans le champ Motif pour assurer un contrôle de la valeur saisie. </p>
+        <p> Il peut définir la largeur du contrôle et indiquer si le paramètre est obligatoire en cochant ou pas la case Requis.  </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_p_txt.png" style="width: 315px;height: 172px;" /> <img src="../resources/images/fleche.png" /> <img src="../resources/images/c_txt_1l_2.png" style="width: 192px;height: 278px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type texte et contrôle GTF de type Texte en édition - 1 ligne</p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.18"></a> Paramètre publié de type Texte multiligne - Contrôle de type Texte en édition - Multiligne</h4>
+        <p style="text-align: justify;">Un paramètre publié de type Texte multiligne est importé sous la forme d'un contrôle de type Texte en édition-multiligne. L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande. Il peut définir la valeur par défaut  et la largeur du contrôle et indiquer si le paramètre est obligatoire en cochant ou pas la case Requis. </p>
+        <p style="text-align: center;">&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_multlignesss.png" style="width: 321px;height: 175px;" />
+            <img src="../resources/images/fleche.png" /> <img src="../resources/images/c_txt_multi.png" style="width: 186px;height: 277px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Texte multiligne  et contrôle de type Texte en édition - Multiligne</p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.19"></a> Paramètre publié de type Texte Multiligne ou Nombre- Contrôle de type Texte en édition - Multiligne</h4>
+        <p>Un paramètre publié de type Texte Multiligne ou Nombre est importé sous la forme d'un contrôle de type Texte en édition-Multiligne. L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande. Il peut définir la valeur par défaut  et la largeur du contrôle et indiquer si le paramètre est obligatoire en cochant ou pas la case Requis. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_txt_multi.png" style="width: 306px;height: 168px;" />
+            <img src="../resources/images/fleche.png" />&#160;<img src="../resources/images/c_txt_multi.png" style="width: 191px;height: 257px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type Texte multiligne ou Nombre et contrôle de type Texte en édition - Multiligne</p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.20"></a>Paramètre publié de type URL - Contrôle de type Texte en édition URL</h4>
+        <p>Un paramètre publié de type URL est importé sous la forme d'un contrôle de type Texte en édition-URL. L'auteur du projet nomme le paramètre et le libellé tel qu'il sera affiché dans le formulaire de demande. Il peut insérer un motif via une expression régulière pour assurer un contrôle sur la valeur saisie (type de protocole spécifique) , définir la valeur par défaut  et la largeur du contrôle et indiquer si le paramètre est obligatoire en cochant ou pas la case Requis</p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_url.png" style="width: 312px;height: 170px;" />&#160;<img src="../resources/images/fleche.png" /><img src="../resources/images/c_url.png" style="width: 207px;height: 236px;" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Paramètre publié de type URL et contrôle de type Texte en édition - URL</p>
+        <h4 class="h5"><a name="6.1.5.2.21"></a>Contrôle GTF de type Bouton radio- Contrôle de type Bouton&#160;Radio</h4>
+        <p>Un paramètre publié FME de type Choix est importé dans GTF en tant que contrôle de type Liste Déroulante, mais il est possible de modifier ce dernier en exploitant un contrôle de Type Bouton radio. </p>
+        <p>L'auteur du projet nomme le paramètre et son libellé tel qu'il sera affiché dans le formulaire de demande.</p>
+        <p> Il définit la valeur par défaut et détermine si les boutons radios seront désactivés ou pas. Il définit ensuite les options possibles en entrant le libellé du bouton et la valeur envoyée en base. </p>
+        <p>Le bouton <img src="../resources/images/b_radio_options.png" /> permet de rajouter des boutons au paramètre. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/b_radio.png" style="width: 203px;height: 351px;" /> <img src="../resources/images/fleche.png" /><img src="../resources/images/f_b_radio.png" /></p>
+        <p class="Soustitre_figure" style="text-align: center;">Contrôle de type Bouton Radio </p>
+        <p>&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.22"></a>Contrôles GTF de type Carte <a name="kanchor29"></a>OSM, carte <a name="kanchor30"></a>Bing et carte <a name="kanchor31"></a>vMap</h4>
+        <p>GTFpermet d'exploiter les services web OSM, Bing Maps ou Vitis vMap pour personnaliser un formulaire en exploitant leurs ressources cartographiques. </p>
+        <p>Par exemple, dans FME, on peut définir une géométrie dans un  champ de type texte  définie par une chaîne de caractère WKT.</p>
+        <p> Dans GTF, Il est plus simple de personnaliser le formulaire de saisie &#160;en exploitant une carte OSM comme support de saisie de la géométrie plutôt que de rentrer une chaîne WKT dans un contrôle de type Texte. </p>
+        <p>&#160;</p>
+        <p>L'auteur du projet qui insère un élément (ou qui modifie un paramètre existant) de type carte OSM, nomme le paramètre, et définit le libellé qui sera affiché dans le formulaire de demande. Il définit la hauteur et la largeur de la carte et indique si ce paramètre est obligatoire ou pas en cochant la case Requis. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/c_osm.png" style="width: 209px;height: 230px;" />
+        </p>
+        <p>&#160;</p>
+        <p>Il définit ensuite les <a name="options_spécifiques_aux_éléments_de_type_carte_:_"></a>options spécifiques aux éléments de type carte : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/carte_outils.png" />
+        </p>
+        <ul>
+            <li value="1">La projection de la carte : WGS84 ou Lambert 93.  En Lambert 93, l’étendue par défaut correspond à l'ensemble de la France métropolitaine.</li>
+            <li value="2">Méthode de centrage de la carte : l'auteur choisit si le centre de la carte est défini par un point défini via des coordonnées X/Y et une échelle d'affichage, ou si le centre de la carte est paramétrée par son étendue définie par les coordonnées X et Y Min et Max. </li>
+        </ul>
+        <p>&#160;</p>
+        <p>L'auteur choisit ensuite les éléments de dessin et de navigation qui seront affichés sur la carte du formulaire de demande :  </p>
+        <ul>
+            <li value="1">Position de la souris : affichage dynamique des coordonnées de la souris selon la projection définie. </li>
+            <li value="2">Boutons de zoom :  affichage des boutons de navigation classique zoom avant, zoom arrière et  retour à l'étendue par défaut. </li>
+            <li value="3">Echelle : affichage de l'échelle. </li>
+            <li value="4">Projection de la carte : affichage de la projection Lambert 93 ou WGS 84.</li>
+            <li value="5">Multiples géométries : possibilité ou pas de saisir des géométries de type différent (point, ligne et polygone).</li>
+            <li value="6">Plein écran : permet d'afficher la carte en mode plein écran. </li>
+            <li value="7">Suppression générale : Suppression de toutes les géométries saisies sur la carte. </li>
+            <li value="8">Edition : modification de la géométrie sélectionnée.</li>
+            <li value="9">Dessiner un point.</li>
+            <li value="10">Dessiner une ligne. </li>
+            <li value="11">Dessiner un polygone. </li>
+        </ul>
+        <p>&#160;</p>
+        <p>Le champ Valeur permet à l'auteur de définir une géométrie qui sera affichée par défaut dans le formulaire de demande. Cette géométrie est décrite via  une chaîne WKT. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/carte_valeur_par_dafaut.png" />
+        </p>
+        <p style="font-style: italic;text-align: center;font-size: 9pt;">Contrôle Carte OSM. Exemple de valeur par défaut </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/c_formulaire_carteosm.png" />
+        </p>
+        <p style="text-align: center;font-style: italic;font-size: 9pt;">Formulaire de demande d'un contrôle de type carte OSM- Géométrie saisie par défaut </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p style="color: #4f81bd;font-weight: bold;">Carte Bing</p>
+        <p>Tous les paramètres de personnalisation d'une carte Bing Maps sont identiques à ceux des cartes OSM. Il faut  fournir en plus, une clé d'accès pour pouvoir exploiter ce service web cartographique. </p>
+        <p>&#160;</p>
+        <p>Générer une clé Bing Maps sur le site <a href="https://www.bingmapsportal.com/" title="https://www.bingmapsportal.com/" alt="https://www.bingmapsportal.com/">https://www.bingmapsportal.com/</a></p>
+        <p>Une fois obtenue, entrer la clé dans le champs Clé et sélectionner la carte à afficher dans le formulaire de demande : </p>
+        <ul>
+            <li value="1">Aerial </li>
+            <li value="2">Aerial WithLabels</li>
+            <li value="3">Road</li>
+        </ul>
+        <p style="text-align: center;">
+            <img src="../resources/images/cartebing_valeur.png" />
+        </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/formulaire_carte_bing.png" />
+        </p>
+        <p style="font-style: italic;text-align: center;font-size: 9pt;">Formulaire de demande de traitement avec contrôle de type carte Bing. </p>
+        <p>&#160;</p>
+        <p><span style="color: #4f81bd; font-weight: bold;">Carte vMap </span>
+        </p>
+        <p>Pour pouvoir exploiter une carte vMap dans GTF, Il faut au préalable, dans vMap, exporter la définition de la carte . L'export d'une carte vMap génère un fichier <a name="kanchor32"></a>map.json que l'auteur du formulaire doit télécharger (champ Fichier local) pour pouvoir l'intégrer dans un formulaire. Il procède ensuite de la même façon qu'avec les autres ressources de type carte, en nommant le paramètre et son libellé, puis en paramétrant l'affichage des <a href="#options_sp%C3%A9cifiques_aux_%C3%A9l%C3%A9ments_de_type_carte_:_" class="selected">outils propres aux cartes</a>. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/c_vmap.png" style="width: 235px;height: 292px;" />
+        </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/c_vmap2.png" style="width: 527px;height: 415px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Formulaire de demande de traitement avec contrôle de type carte vMap. </p>
+        <h4 class="h5"><a name="6.1.5.2.2"></a>Contrôle GTF de type Interface - Ligne de séparation</h4>
+        <p>Un contrôle de type Interface-Ligne de séparation permet d'améliorer l'affichage d'un formulaire de demande d'un traitement en y insérant des lignes et accroître de la sorte son organisation et sa lisibilité. </p>
+        <p style="text-align: center;">&#160;</p>
+        <h4 class="h5"><a name="6.1.5.2.23"></a>Contrôles GTF de type Label</h4>
+        <p>Il existe 2 contrôles de type Label : </p>
+        <ul>
+            <li value="1">Label</li>
+        </ul>
+        <p>Un contrôle GTF de type Label permet d'insérer un champ et sa valeur dans un formulaire de demande de projet, sans qu'il puisse être modifié. L'auteur nomme le paramètre et son libellé tel qu'il sera affiché dans le formulaire. Il définit ensuite la valeur à afficher, ainsi que la largeur du contrôle. </p>
+        <ul>
+            <li value="1">Label- Style Titre </li>
+        </ul>
+        <p>Un contrôle Label Style Titre permet d'insérer un titre dans le formulaire de demande. L'auteur définit le nom du paramètre et son libellé, puis définit la classe html à associer au titre. </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p><a name="6.1.5.2.25_Contrôle_GTF_de_type_Champ_caché_"></a>
+        </p>
+        <h4 class="h5"><a name="6.1.5.2.25"></a>Contrôle GTF de type <a name="kanchor33"></a>Champ caché </h4>
+        <p>Un contrôle GTF de type Champ caché permet de masquer un paramètre publié. Le paramètre est exploité dans le traitement mais n'est pas apparent. </p>
+        <p>L'auteur nomme le paramètre et définit la valeur à exploiter. </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" />Un paramètre publié FME caché, c'est-à-dire que son nom est par préfixé par <a name="kanchor34"></a>H_, est directement importé dans GTF en contrôle de type Champ caché. </p>
+        <p>&#160;</p>
+        <blockquote>
+            <blockquote>
+                <p style="text-align: center;">
+                    <img src="../resources/images/f_champs_cach_.png" style="width: 262px;height: 139px;" />
+                    <img src="../resources/images/fleche.png" style="width: 26px;height: 16px;" />
+                    <img src="../resources/images/c_champs_cache.png" style="width: 159px;height: 123px;" />
+                </p>
+            </blockquote>
+        </blockquote>
+        <p class="Soustitre_figure" style="text-align: center;">Contrôle de type champ caché. </p>
+        <h4 class="Titre4"><a name="6.1.5.3"></a> <a name="kanchor35"></a>Gestionnaire de sources de données </h4>
+        <p>Le gestionnaire de sources de données permet la création, l’édition et la suppression des sources de données à associer aux contrôles GTF de type : </p>
+        <ul>
+            <li value="1">Liste</li>
+            <li value="2">Liste déroulante</li>
+        </ul>
+        <p>&#160;</p>
+        <p> Le Gestionnaire de sources de données permet d'exploiter des données : </p>
+        <ul>
+            <li value="1">Texte : valeurs saisies directement dans le gestionnaire ou importées depuis un paramètre FME de type Choix.</li>
+            <li value="2">Valeurs de table locale : valeurs issues d'une table de base de données installée sur le même serveur que GTF. </li>
+            <li value="3">Base de données externe : valeurs importées d'une table de base de données externe à GTF. </li>
+            <li value="4">Service web Vitis : permet d'exploiter un service web pour en récupérer les ressources. </li>
+        </ul>
+        <p>&#160;</p>
+        <p>Le gestionnaire de source de données est accessible en cliquant sur le bouton <img src="../resources/images/boutonsource_de_donn_ese.png" style="width: 126px;height: 26px;" /> en bas à droite de la fenêtre des paramètres publiés. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/gestionnare_source_donnees.png" style="width: 583px;height: 337px;border-left-style: solid;border-left-width: 1px;border-right-style: solid;border-right-width: 1px;border-top-style: solid;border-top-width: 1px;border-bottom-style: solid;border-bottom-width: 1px;" title="Gestionnaire de source de données. Source de données de type Texte." alt="Gestionnaire de source de données. Source de données de type Texte." />
+        </p>
+        <p style="font-style: italic;font-size: 8pt;text-align: center;">Fenêtre du Gestionnaire de source de données</p>
+        <p>&#160;</p>
+        <p>On peut ajouter, éditer ou supprimer une source de données. </p>
+        <p>Le bouton 'Ajouter' permet de créer une nouvelle source de données. </p>
+        <p>Le type de source détermine les paramètres de connexion devant être définis pour pouvoir importer les valeurs. </p>
+        <h4 class="h5"><b style="text-decoration: none; font-size: 10pt;"><a name="6.1.5.3.1"></a> Ajout de source de données de type texte </b>
+        </h4>
+        <p>Cette option permet de saisir directement des valeurs de type texte qui s'afficheront dans le formulaire sous forme de liste déroulante. </p>
+        <p>&#160;</p>
+        <h4 class="h5">Paramétrer la source de données </h4>
+        <p style="text-align: center;">
+            <img src="../resources/images/gsd_texte.png" style="width: 621px;height: 311px;" />
+        </p>
+        <p style="text-align: center;"><span class="sousTitre" style="font-size: 8pt;">Gestionnaire de source de données. Source de données de type Texte. </span>
+        </p>
+        <p>&#160;</p>
+        <p>Après avoir nommé la source de données, saisir les libellés et les clés (stockées en base) séparés par le caractère |. </p>
+        <p>Le bouton 'Aperçu', permet de visualiser la liste en cours de création. </p>
+        <p>Le bouton 'Valider' permet  de valider la création de la liste, de fermer la fenêtre en cours et de revenir à la liste des sources de données. </p>
+        <p>Cliquer à nouveau sur 'Valider' pour fermer le gestionnaire de source de données et revenir au studio. </p>
+        <h4 class="h5"><span class="Titre3Car_1">Lier la source de données au paramètre publié </span>
+        </h4>
+        <p>Pour associer la source de données créée à un paramètre de type liste , sélectionner le paramètre dans la fenêtre Paramètres publiés, puis l'éditer dans la fenêtre de Définition. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/arr.png" style="width: 181px;height: 141px;" />
+        </p>
+        <p style="text-align: center;"><i style="font-size: 8pt;">Sélection du paramètre publié dans le studio. </i>
+        </p>
+        <p>&#160;</p>
+        <p>Sélectionner ensuite la source de données nouvellement créée dans le champs Source de données : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/selection_source_donn_es.png" style="width: 221px;height: 319px;" />
+        </p>
+        <p style="text-align: center;"><span style="font-size: 8pt; font-style: italic;">Sélection de la source de données. </span>
+        </p>
+        <p>Cliquer ensuite sur le bouton 'Recharger les sources de données' <img src="../resources/images/bouton_recharger.png" style="width: 30px;height: 24px;" /> en haut à droite de la fenêtre de prévisualisation, pour pouvoir visualiser la liste. </p>
+        <p>&#160;</p>
+        <p>Vous pouvez paramétrer le nombre de lignes à afficher dans la liste, sa largeur et définir si ce paramètre est obligatoire ou pas, en cochant le paramètre 'Requis'. </p>
+        <h4 class="h5"><a name="6.1.5.3.2"></a>Ajout d'une source de données de type Valeurs d'une table locale </h4>
+        <p>Le Gestionnaire de source de données permet d'importer les valeurs d'une table de base de données installée sur le même serveur que GTF. </p>
+        <h4 class="h5">Paramétrer la source de données </h4>
+        <p style="text-align: center;">
+            <img src="../resources/images/gsd_tablelocale.png" style="width: 584px;height: 449px;" />
+        </p>
+        <p style="text-align: center;"><span style="font-size: 8pt; font-style: italic;">Gestionnaire de source de données. Source de données de type Valeurs de table locale. </span>
+        </p>
+        <p>&#160;</p>
+        <p>Saisir le nom à attribuer à la source de données à créer, puis la base de données (facultatif). Appuyer sur le bouton Schémas pour obtenir la liste des schémas de la base, puis sur le bouton Tables pour sélectionner celles contenant les valeurs à utiliser. Le bouton ' Test' permet de tester la connexion en affichant la table dans la fenêtre Aperçu. </p>
+        <p>&#160;</p>
+        <p>Il est possible de filtrer les données à importer via une clause de type Where, définie dans le champs 'Filtre'. Dans l'exemple ci-dessus, on peut choisir de n'afficher que les bâtiments d'une commune et saisir dans le champs filtre la clause : id_com='340003'. </p>
+        <p>&#160;</p>
+        <p>Le bouton 'Valider' permet de fermer la fenêtre en cours et de revenir à liste des sources de données. </p>
+        <p>Cliquer à nouveau sur Valider pour fermer le gestionnaire de source de données et revenir au studio. </p>
+        <h4 class="h5"><span class="Titre3Car_1">Lier la source de données au paramètre publié </span>
+        </h4>
+        <p>Pour lier cette liste à un paramètre publié, sélectionner le paramètre désiré dans la fenêtre des Paramètres publiés à droite de l'écran, pour pouvoir ensuite l'éditer dans la fenêtre de Définition : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/c_table_locale.png" style="width: 196px;height: 328px;" />
+        </p>
+        <p style="text-align: center;"><span style="font-size: 8pt; font-style: italic;">Sélection de la source de données. </span>
+        </p>
+        <p>&#160;</p>
+        <p>Nommer le paramètre, éditer son libellé puis sélectionner dans la liste déroulante la source de données nouvellement créée, dans l'exemple ci-dessus : 'liste_moteurs". </p>
+        <p>Définir ensuite la clé ainsi que le libellé qui sera affiché dans le formulaire :  pour cela cliquer sur le bouton <img src="../resources/images/bouton_recharger.png" /> pour  charger les valeurs et sélectionner celles à définir comme clé puis comme libellé : </p>
+        <p style="text-align: center;"> <img src="../resources/images/c_chargement_cle_libelle.png" /></p>
+        <p style="text-align: center;"><i style="font-size: 8pt;">Définition de l'attribut clé. </i>
+        </p>
+        <p>Dans la fenêtre de prévisualisation, cliquer ensuite sur le bouton 'Recharger les sources de données' <img src="../resources/images/bouton_recharger.png" />, pour pouvoir prévisualiser la liste, telle qu'elle s'affichera dans le formulaire de demande : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/formulaire_demande_liste.png" />
+        </p>
+        <p style="text-align: center;"><span style="font-size: 8pt; font-style: italic;">Prévisualisation du paramètre de type Liste. </span>
+        </p>
+        <p>&#160;</p>
+        <p>Vous pouvez paramétrer le nombre de lignes à afficher dans la liste, sa largeur et définir si ce paramètre est obligatoire ou pas, en cochant le paramètre 'Requis'. </p>
+        <p>&#160;</p>
+        <p style="text-align: left;">Vous pouvez faire de cette liste une <a href="#Liste_cascade" class="selected">liste en cascade</a> en cochant la case Cascade. </p>
+        <p style="text-align: center;">&#160;</p>
+        <p style="text-align: center;"> <img src="../resources/images/cascade.png" />. </p>
+        <h4 class="h5"><a name="Options_avancées_"></a>Options avancées = affiner l'affichage des listes </h4>
+        <p>Il est possible d'affiner l'affichage des éléments de la liste via des commandes de tri (order_by et sort_order) sur les attributs dont on spécifie les noms dans le champs Attributs. Ils doivent êtres séparés par le caractère |. Pour distinguer les valeurs identiques, on peut définir une clause distinct. </p>
+        <p>On peut également filtrer les valeurs à afficher via une clause Where dont on spécifie les arguments dans le champ ' <a name="kanchor36"></a>filter'.  Dans l'exemple ci-dessous, on choisit de n'afficher que le moteur n° 1 en insérant une clause Where sur l'attribut gtf_engine_id : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/c_options_avancees.png" style="width: 199px;height: 259px;" />
+        </p>
+        <h4 class="h5"><a name="6.1.5.3.3"></a>Ajout d'une source de données de type Base de données externe </h4>
+        <p>GTF permet d'importer des valeurs d'une table de base de données externe. </p>
+        <h4 class="h5">Paramétrer la source de données </h4>
+        <p style="text-align: center;">
+            <img src="../resources/images/gsd_externe.png" style="width: 619px;height: 503px;" />
+        </p>
+        <p style="text-align: center;"><![CDATA[  ]]><i style="font-size: 8pt;">Gestionnaire de source de données. Source de données de type Base de données externe. </i></p>
+        <p>&#160;</p>
+        <p>Après avoir saisi le nom de la nouvelle source de données, saisir les paramètres de connexion à la base de données (serveur, port, sgbd, login, mot de passe et tables). Le bouton <img src="../resources/images/bouton_tables.png" /> permet d'afficher la liste des tables de la base et de la sorte de s'assurer de la réussite de la connexion. </p>
+        <p>Il est également possible de filtrer les données à importer via une clause de type Where, saisie dans le champs Filtre.</p>
+        <p>Dans l'exemple ci-dessus, seuls les ESI en instruction et inscrits seront listés dans le formulaire. </p>
+        <p>&#160;</p>
+        <p>Le bouton 'Valider' permet de fermer la fenêtre en cours et revenir à liste des sources de données. </p>
+        <p>Cliquer, à nouveau, sur Valider pour fermer le gestionnaire de source de données et revenir au studio. </p>
+        <h4 class="h5">Lier la source de données au paramètre publié </h4>
+        <p>Pour lier cette liste à un paramètre publié, sélectionner le paramètre désiré dans la fenêtre des Paramètres publiés à droite de l'écran, pour pouvoir ensuite l'éditer dans la fenêtre de Définition : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/liste_esi.png" style="width: 203px;height: 273px;" />
+        </p>
+        <p>Nommer le paramètre, éditer son libellé puis sélectionner dans la liste déroulante la source de données nouvellement créée, dans l'exemple ci-dessus : 'esi'. </p>
+        <p>Définir ensuite la clé ainsi que le libellé  :  pour cela, cliquer sur le bouton <img src="../resources/images/bouton_recharger.png" /> pour  charger les valeurs et sélectionner celles à définir comme clé puis comme libellé : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/esi_cle.png" />
+        </p>
+        <p>&#160;</p>
+        <p>Cliquer ensuite sur le bouton 'Recharger les sources de données' <img src="../resources/images/bouton_recharger.png" style="width: 24px;height: 19px;" /> dans la fenêtre de prévisualisation, pour pouvoir prévisualiser la liste, telle qu'elle s'affichera dans le formulaire de demande : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/esi_previsualisation.png" />
+        </p>
+        <p>&#160;</p>
+        <p>Vous pouvez paramétrer le nombre de lignes à afficher dans la liste, sa largeur et définir si ce paramètre est obligatoire ou pas, en cochant le paramètre 'Requis'. </p>
+        <p>&#160;</p>
+        <p style="text-align: left;">Vous pouvez faire de cette liste une <a href="#Liste_cascade" class="selected">liste en cascade</a> en cochant la case Cascade. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/cascade.png" />. </p>
+        <h4 class="h5"><a href="#Options_avanc%C3%A9es_" class="selected">Options avancées </a>
+        </h4>
+        <h4 class="h5"><a name="6.1.5.3.4"></a> Ajout d'une source de données de type Service web </h4>
+        <p>Il est possible d'exploiter les ressources des services web Vitis et Gtf pour configurer les paramètres de type liste. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/gsd_services.png" style="width: 621px;height: 460px;" />
+        </p>
+        <p style="text-align: center;"><span style="font-size: 8pt; font-style: italic;">Gestionnaire de source de données. Source de données de type Service Web. </span>
+        </p>
+        <p>&#160;</p>
+        <p>Après avoir sélectionné le service à exploiter (Vitis ou Gtf), sélectionner la ressource dont vous voulez importer les données. </p>
+        <p>Dans l'exemple ci-dessus, on exploite la ressource Groups du service Vitis. Les groupes d'utilisateurs de Vitis seront importés dans le paramètre publié de type liste, en cours de création.</p>
+        <p>&#160;</p>
+        <p style="font-style: italic;">
+            <img src="../resources/images/attention.png" />L’accès aux services web diffère selon les privilèges liés à l’utilisateur. Il faut donc s'assurer que le compte connecté ait bien les droits requis pour accéder au service web de son choix. <a href="annexes.htm#13.2">Consulter la liste des droits par service</a>. </p>
+        <p style="font-style: italic;">&#160;</p>
+        <p>Le bouton 'Valider' permet de fermer la fenêtre en cours et revenir à liste des sources de données. </p>
+        <p>Cliquer à nouveau sur Valider pour fermer le gestionnaire de source de données et revenir au studio. </p>
+        <h4 class="h5">Lier la source de données au paramètre publié </h4>
+        <p>Pour lier cette liste à un paramètre publié, sélectionner le paramètre désiré dans la fenêtre des Paramètres publiés à droite de l'écran, pour pouvoir ensuite l'éditer dans la fenêtre de Définition : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/c_service_web.png" />
+        </p>
+        <p>&#160;</p>
+        <p>Nommer le paramètre, éditer son libellé puis sélectionner dans la liste déroulante la source de données nouvellement créée, dans l'exemple ci-dessus : 'groupes'. </p>
+        <p>Définir ensuite la clé ainsi que le libellé. Pour cela cliquer sur le bouton <img src="../resources/images/bouton_recharger.png" /> pour  charger les valeurs et sélectionner celles à définir comme clé puis comme libellé : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/sw_cle_libelle.png" />
+        </p>
+        <p>Cliquer ensuite sur le bouton 'Recharger les sources de données' <img src="../resources/images/bouton_recharger.png" /> dans la fenêtre de prévisualisation, pour pouvoir visualiser la liste, telle qu'elle s'affichera dans le formulaire de demande : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/sw_previsualisation.png" />
+        </p>
+        <p>&#160;</p>
+        <p>Vous pouvez paramétrer le nombre de lignes à afficher dans la liste, sa largeur et définir si ce paramètre est obligatoire ou pas, en cochant le paramètre 'Requis'. </p>
+        <p>&#160;</p>
+        <p>Vous pouvez faire de cette liste une <a href="#Liste_cascade" class="selected">liste en cascade</a> en cochant la case cascade. </p>
+        <h4 class="h5"><a href="#Options_avanc%C3%A9es_" class="selected">Options avancées</a> <![CDATA[ ]]></h4>
+        <h4 class="h5"><a name="Liste_cascade"></a><a name="6.1.5.4"></a> Créer des <a name="kanchor37"></a>listes en cascade </h4>
+        <p>On peut choisir d'afficher une liste dont le contenu varie en fonction des valeurs sélectionnées dans une autre  liste. L'option Cascade permet le paramétrage de telles listes en spécifiant le paramètre publié  parent et <a name="kanchor38"></a>l'attribut enfant sur lequel effectuer le filtre d'affichage.</p>
+        <p style="color: #000000;">&#160;</p>
+        <p style="color: #4f81bd;font-weight: bold;"><a name="kanchor39"></a>Attributs de filtrage et <a name="kanchor40"></a>Signe de comparaison </p>
+        <p style="color: #000000;font-weight: normal;">Après avoir défini quel est l'élément  parent, il faut définir le champ enfant sur lequel repose l'ascendance ainsi que le signe de comparaison sur lequel doit reposer la comparaison entre les champs liant la table parent à la table enfant. </p>
+        <p style="color: #000000;font-weight: normal;">Les signes de comparaison sont : </p>
+        <ul>
+            <li style="color: #000000;" value="1">= Egalité parfaite entre le champ parent et le champ enfant</li>
+            <li style="color: #000000;" value="2">&gt; Ne seront affichés dans la liste enfant que les enregistrements dont la valeur est supérieure à l'attribut de filtre parent. </li>
+            <li style="color: #000000;" value="3">&lt; Ne seront affichés dans la liste enfant que les enregistrements dont la valeur est inférieure à l'attribut de filtre parent. </li>
+        </ul>
+        <p>&#160;</p>
+        <p style="color: #4f81bd;font-weight: bold;"><a name="kanchor41"></a>Attendre le parent </p>
+        <p>Pour forcer l'affichage de la liste des éléments enfants uniquement lorsqu'un élément parent est sélectionné, il faut cocher la case 'Attendre le parent'. Ainsi, si aucun élément parent n'est sélectionné, aucun élément enfant n'apparaîtra dans la liste. </p>
+        <p>&#160;</p>
+        <p style="color: #4f81bd;font-weight: bold;">Exemple  </p>
+        <p>On veut faire apparaître les sections d'une commune sélectionnée préalablement. </p>
+        <p>Un premier paramètre nommé 'commune' est créé. Il exploite  les valeurs d'une table 'commune' d'une base de données. Un deuxième paramètre nommé 'section' est créé. Il exploite les valeurs d'une table 'section' de la même base. </p>
+        <p style="text-align: left;">Dans la fenêtre  de la définition du paramètre 'section', après avoir lié le paramètre à la source de données, sélectionner la boîte à cocher 'cascade' puis sélectionner le paramètre parent 'commune' : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/cascade.png" style="width: 183px;height: 326px;" />
+        </p>
+        <p>Seules les 2 sections de la commune sélectionnée d'Abeilhan apparaissent désormais dans la liste Section : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/cascade2.png" style="width: 486px;height: 113px;" />
+        </p>
+        <p>&#160;</p>
+        <h3 class="Titre3"><a name="6.1.6"><span class="span_1">  <![CDATA[ ]]></span>Appel externe</a><![CDATA[  ]]></h3>
+        <p>La section Appel externe permet l'intégration dans une page html d'un formulaire GTF. C'est un moyen de donner accès à un projet GTF depuis une quelconque page web, sans avoir GTF installé sur son poste. La section Appel Externe du mode Projet permet de définir la façon dont l'utilisateur final aura accès au formulaire GTF puis génère le code à intégrer directement dans la page html désirée.&#160; </p>
+        <p>&#160;</p>
+        <p>L'administrateur définit  le type d'accès souhaité au formulaire GTF :</p>
+        <ul>
+            <li value="1"> soit via un bouton intégré dans la page Internet,</li>
+            <li value="2"> soit via l'insertion telle quelle du formulaire GTF dans la page web. </li>
+        </ul>
+        <p>&#160;</p>
+        <p>Il associe ensuite un Titre au formulaire et dans le cas d'un bouton, il spécifie le texte associé au bouton d'accès du formulaire dans le champ 'Texte du bouton'. La hauteur et largeur du formulaire peuvent également être paramétrées. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/appel_externe.png" style="width: 618px;height: 454px;" />
+        </p>
+        <p style="text-align: center;"><span style="font-size: 8pt; font-style: italic;">Appel externe </span>
+        </p>
+        <p>&#160;</p>
+        <h4 class="Titre4"><a name="kanchor42"></a>Jetons de connexion </h4>
+        <p>Un jeton agit comme une clé permettant d'accéder à un formulaire GTF. Un jeton ne peut être donné qu'à un utilisateur authentifié. </p>
+        <p>L'administrateur a la possibilité d'associer à un traitement un jeton privé ou un jeton public permettant l'accès et l'utilisation du formulaire GTF : </p>
+        <ul class="ul_1">
+            <li class="Paragraphedeliste_1" value="1">Le jeton public est l'identifiant de connexion du compte PUBLIC défini au préalable par l'administrateur dans le mode <a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2">Configuration</a><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1"><span class="Lienhypertexte"></span></a></li>
+            <li class="Paragraphedeliste_4" value="2">Fournir un jeton privé est un moyen de donner accès à un compte de connexion à un traitement GTF particulier. Pour générer une clé privée, l'administrateur saisit le login et mot de passe de l'utilisateur pour lequel il souhaite générer un jeton privé puis définit une date de fin de validité de cette dernière. Après avoir cliqué sur le bouton 'Clé privée', la clé est retournée et intégrée dans le code à utiliser.&#160; </li>
+        </ul>
+        <p class="Paragraphedeliste_3">&#160;</p>
+        <p class="p_13">
+            <img src="../resources/images/jeton.png" style="width: 411px;height: 208px;" />
+        </p>
+        <p>&#160;</p>
+        <h4 class="Titre4"><span class="span_1"></span><a name="kanchor43"></a>Utilisation de CAPTCHA</h4>
+        <p>Il est possible d'intégrer un CAPTCHA au formulaire pour s'assurer que la demande de traitement est bien générée par un être humain et non par un ordinateur. </p>
+        <p>
+            <img src="../resources/images/attention.png" />L'insertion d'un Captcha, nécessite l'obtention d'une clé sur le service Web de Google à l'adresse <a href="https://www.google.com/recaptcha/admin"><span class="Lienhypertexte">https://www.google.com/recaptcha/admin</span></a>. Une fois la clé obtenue, l'administrateur saisit la clé fournie dans le champ Clé Recaptcha. </p>
+        <p>
+            <img src="../resources/images/attention.png" />La clé est directement intégrée dans le code généré par GTF. Le motif CAPTCHA est généré automatiquement à chaque demande de traitement. </p>
+        <h4 class="Titre4"><span class="span_1">6.1.6.3 </span>Insertion du code généré </h4>
+        <p>Le bouton 'Générer le code' retourne le code à copier dans la page Html permettant d'accéder au formulaire GTF. Le code contient le jeton de connexion défini au préalable (public ou privé), ainsi que le cas échéant la clé Captcha. </p>
+        <p>&#160;</p>
+        <p>Exemple de code: </p>
+        <p>
+            <img src="../resources/images/gtf_manuel_utilisateur/0300001b.png" style="height: 31px;width: 603px;" class="img_1" />
+        </p>
+        <p class="p_15">Jeton de connexion public / Clé Captcha</p>
+        <p>&#160;</p>
+        <p>Ce code est à insérer directement dans la page html à l'emplacement désiré.&#160; </p>
+        <p>&#160;</p>
+        <p>L'exemple ci-dessous illustre l'insertion d'une fenêtre de demande de création de gex (traitement administration 'admin_export')  dans un page html : </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/widget.png" style="width: 543px;height: 578px;" />
+        </p>
+        <p>&#160;</p>
+        <p class="p_8">&#160;</p>
+        <h3 class="Titre3"><a name="6.1.7"></a><a name="kanchor44"></a> Répertoire Projet</h3>
+        <p>La section Répertoire projet permet de visualiser le contenu du répertoire contenant le projet FME ainsi que les ressourceS associées à ce dernier. Ce répertoire contient les copies systématiques des projets FME (renommés en .bak) dont les visualiseurs ont été désactivés. </p>
+        <p>En cas de chargement de projets fmw de même nom, l'ancien projet est renommé en .bak. </p>
+        <p>Les ressources sont écrasées en cas de chargement de ressources de même nom. La date de dernière modification des fichiers est indiquée et permet de contrôler la bonne mise à jour des fichiers écrasés. </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/rep_projet.png" style="width: 624px;height: 467px;" />
+        </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" style="color: #3cb371;" /><span class="span_5" style="font-weight: normal; color: #000000;"><span style="color: #000000;">GTF  détecte les formats de types multifichiers (Shape File, EDIGEO…) contenus dans un fichier compressé ZIP que l’utilisateur uploade sur le serveur.&#160;Les fichiers sont automatiquement décompressés dans le répertoire projet. </span></span>
+        </p>
+        <p>&#160;</p>
+        <h3 class="Titre3"><a name="6.1.8"></a>Gestion des Transformers et formats personnalisés </h3>
+        <p>FME stocke les formats et Transformers personnalisés dans des répertoires propres à chaque utilisateur identifiés par la variable d'environnement %userprofile%.</p>
+        <ul>
+            <li value="1">Les Transformers personnalisés sont  stockés dans le répertoire %userprofile%\Mes documents\FME\Transformers.</li>
+            <li value="2"> Les formats personnalisés sont stockés dans le répertoire %userprofile%\Mes documents\FME\Formats</li>
+        </ul>
+        <p>&#160;</p>
+        <p>De la sorte, chaque utilisateur dispose de son propre environnement de travail. </p>
+        <p>&#160;</p>
+        <p>Dans GTF, un traitement FME est exécuté par le compte  qui exécute le service Pycron, en général 'système local'. Ce dernier ne dispose pas de répertoire utilisateur %userprofile% . FME ne peut donc pas localiser les fichiers des Transformers et des formats personnalisés. Le traitement ressortira en erreur. </p>
+        <p>&#160;</p>
+        <p>Pour pouvoir être exploités, les formats et Transformers personnalisés doivent donc être installés manuellement (copiés) sur le serveur GTF&#160;dans les répertoires suivants : </p>
+        <p>&#160;</p>
+        <ul>
+            <li value="1">Formats personnalisés ==&gt;&#160;$FME_HOME\datasources</li>
+            <li value="2">Transformers personnalisés ==&gt;&#160;$FME_HOME\transformers</li>
+        </ul>
+        <p>&#160;</p>
+        <h3 class="Titre3"><a name="6.1.9"></a>Gestion des connexions nommées </h3>
+        <p>Les connexions nommées stockent les informations de connexions aux bases de données et services web. De la même manière que les formats et Transformers personnalisés, les connexions nommées sont stockées dans des répertoires propres à chaque utilisateur.</p>
+        <p>Elles sont ainsi stockées dans un fichier crypté 'namedConnections.data' situé dans le répertoire %userprofile%\AppData\Roaming\Safe Software\FME\</p>
+        <p>&#160;</p>
+        <p>Ce fichier doit pouvoir être accessible par un utilisateur réel via FME Workbench pour créer et gérer les connexions, mais il doit également pouvoir être utilisé par le compte système local, compte qui, dans GTF, exécute le service Pycron pour lancer un traitement FME. </p>
+        <p>&#160;</p>
+        <p>Or, contrairement aux utilisateurs classiques, le compte système local ne dispose pas de répertoire personnel %userprofile%. Il ne peut donc pas exploiter les connexions nommées d'un projet FME publié sur un serveur GTF. </p>
+        <p>&#160;</p>
+        <p>Pour pouvoir exploiter les connexions nommées dans GTF, le fichier crypté des connexions nommées doit donc être localisé, puis une clé de registre doit ensuite être créée : elle indiquera l'emplacement du fichier crypté, de sorte à en assurer son utilisation  par tout compte ne disposant pas de répertoire personnel tel que le compte Système local. </p>
+        <ul>
+            <li value="1">Rendre publiques les connexions nommées désirées </li>
+            <li value="2">Exporter les connexions nommées désirées dans un répertoire spécifique </li>
+            <li value="3">Créer une clé de registre contenant le chemin du répertoire par défaut, stockant le fichier des connexions nommées</li>
+            <li value="4">Tester </li>
+        </ul>
+        <p>&#160;</p>
+        <h4 class="h5">Rendre publiques les connexions nommées </h4>
+        <p>Dans un premier temps, pour pouvoir être exploitables par d'autres utilisateurs, les connexions nommées doivent être rendues publiques. </p>
+        <p>Dans FME, dans le Menu Outils-&gt;Options FME-&gt;Connexions aux bases de données, sélectionner les connexions nommées que vous souhaitez exporter (et les attribuer ensuite à un compte système local) puis cocher la case Public. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/fme_connexionsnommees.png" style="width: 624px;height: 102px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Connexions nommées dans FME.</p>
+        <p>&#160;</p>
+        <p style="color: #556b2f;">
+            <img src="../resources/images/attention.png" /><span style="color: #000000;">La possibilité de rendre publique une connexion nommée a été implémentée dans la version FME&#160;2016. Or, FME exploite des connexions nommées créées dans d'anciennes versions. Dans ce cas, La colonne Public n'apparaît pas dans la fenêtre des connexions. Pour contourner ce problème et afficher la colonne Public, exporter les connexions nommées dans un nouvel emplacement, supprimer les connexions initiales, puis les réimporter (Cf procédure 6.1.9.2). </span>
+        </p>
+        <p style="color: #556b2f;">&#160;</p>
+        <h4 class="h5">Exporter des connexions nommées </h4>
+        <p>Sélectionner la lou les connexions nommées que vous souhaitez exporter puis dans le menu contextuel, choisir Exporter.</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/fme_connexionnommeeexport.png" style="width: 628px;height: 223px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Export des connexions nommées.</p>
+        <p>&#160;</p>
+        <p>Les connexions sélectionnées sont exportées dans un fichier xml : 'exportConnectionData_x.xml'. Choisir ensuite son emplacement. </p>
+        <p>&#160;</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/fme_connexionnommee_messageexport.png" />
+        </p>
+        <p>&#160;</p>
+        <p>Dans FME, il est alors possible de modifier l'emplacement du fichier des connexions nommées en indiquant le nouveau répertoire dans le menu Outils-&gt;Options FME-&gt;Chemins par défaut.</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/fme_connexion_nommeenouveaureprroiredesconnexionsnomees.png" style="width: 609px;height: 166px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Spécification du répertoire des connesions nommées. </p>
+        <p>&#160;</p>
+        <p>Vous pouvez, par exemple, supprimer les connexions nommées d'origine, puis importer celles que vous venez d'exporter et remplacer de la sorte les connexions initiales. </p>
+        <p>Retourner dans le menu Outils-&gt;Options FME-&gt;Connexions aux bases de données et sélectionner 'Importer' dans le menu contextuel dans la liste des connexions.</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/fme_cn_import.png" style="width: 618px;height: 213px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Import de connexions nommées</p>
+        <p>&#160;</p>
+        <p> Sélectionner les connexions que vous souhaitez importer : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/f_cn_import_nouvellesconnexions.png" style="width: 621px;height: 351px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Sélection des connexions nommées à importer</p>
+        <p>&#160;</p>
+        <p>Les connexions nommées précédemment exportées sont à nouveau importées. </p>
+        <p>&#160;</p>
+        <p>Dorénavant, 5 connexions nommées sont listées dans le menu Outils-&gt;Options FME-&gt;Connexions aux bases de données : </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/fme_cn_cn.png" style="width: 613px;height: 339px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Nouvelles connexions nommées</p>
+        <h4 class="h5"><a name="6.1.9.2"></a>Création des clés de registre</h4>
+        <p> Pour pouvoir attribuer au compte système local le répertoire par défaut des connexions nommées (nouvellement importées), un fichier de registre cn32.reg (ou cn64.reg selon les versions de FME) doit être créé et contenir  le chemin du répertoire stockant le fichier crypté des connexions. </p>
+        <p>&#160;</p>
+        <p>---------------------------------------------------------------------------------------------------------------------------------------</p>
+        <p style="font-size: 10pt;">Windows Registry Editor Version 5.00</p>
+        <p style="font-size: 10pt;">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Safe Software Inc.\Feature Manipulation Engine\Settings]</p>
+        <p style="font-size: 10pt;">"Named Connection Db Type"=dword:00000000</p>
+        <p style="font-size: 10pt;">"Named Connection Directory"="E:\\tmp\\connexion"</p>
+        <p>----------------------------------------------------------------------------------------------------------------------------------------</p>
+        <p class="Soustitre_figure" style="text-align: left;text-indent: 1in;">Clé de registre cn32.reg à créer. </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" style="font-style: italic;" /><i>Les caractères '\'doivent être doublés. </i>
+        </p>
+        <p>&#160;</p>
+        <h4 class="h5">Import de la clé de registre </h4>
+        <p>Importer la clé de registre via la commande <span style="font-size: 10pt;">regedit-&gt;import</span> ou par un double clic sur le fichier .reg.</p>
+        <p>&#160;</p>
+        <ul>
+            <li value="1">
+                <p>cn32.reg contient la clé de registre pour FME 32 bits</p>
+            </li>
+            <li value="2">
+                <p>cn64.reg contient la clé de registre pour FME 64 bits</p>
+            </li>
+        </ul>
+        <p>
+            <img src="../resources/images/attention.png" /> Il est possible d'importer les deux clés. </p>
+        <p style="text-align: center;">&#160;</p>
+        <h4 class="h5">Test</h4>
+        <p>Veremes met à disposition sur son <a href="http://download.veremes.net/">site de téléchargement</a> le projet ListSettings.fmw qui génère  un fichier texte (settings.txt) dans lequel sont listés les paramètres système FME du serveur tels que les builds , l'interpréteur Python utilisé.... </p>
+        <p>Pour vérifier l'emplacement du répertoire des connexions nommés, exécuter le projet ListeSettings.fmw et s'assurer que dans le fichier texte généré, le répertoire spécifié soit  bien rajouté et correct : </p>
+        <p>---------------------------------------------------------------------------------</p>
+        <p style="font-size: 10pt;">Settings:</p>
+        <p style="font-size: 10pt;">&#160;</p>
+        <p style="font-size: 10pt;">Python:</p>
+        <p style="font-size: 10pt;">Use Custom Python: false</p>
+        <p style="font-size: 10pt;">Named Connection Db Type: 0</p>
+        <p style="font-size: 10pt;">Named Connection Directory: E:\tmp\connexion</p>
+        <p style="font-size: 10pt;">Statistics:</p>
+        <p style="font-size: 10pt;">enabled: no</p>
+        <p>------------------------------------------------------------------------------------</p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <h4 class="h5">Publier une connexion nommée</h4>
+        <p>Un auteur de projet peut publier une connexion nommée. Avec GTF 2015 et 2016.0, pour publier une connexion nommée il est nécessaire de créer un paramètre publié de type TEXTE.</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/cn_texte.png" />
+        </p>
+        <p>Puis il faut associer ce paramètre publié au paramètre du Reader ou du Transformer concerné :</p>
+        <p style="text-align: center;">
+            <img src="../resources/images/cn_lie.png" style="width: 428px;height: 112px;" />
+        </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" />Avec GTF 2016.1, les paramètres publiés de type Connexion Nommée sont automatiquement reconnus et transformés en paramètre de type Texte. </p>
+        <h2 class="Titre2"><a name="6.2"></a>Gestion des catégories</h2>
+        <p>L’attribution de catégorie à un traitement permet à l’administrateur d’organiser par thématique les traitements disponibles.&#160; </p>
+        <p>L’onglet Catégorie du mode Publication permet d’accéder au formulaire de création de catégorie dans lequel l’administrateur nomme cette dernière et peut lui associer une description. </p>
+        <p>&#160;</p>
+        <h2 class="Titre2"><a name="6.3"><span class="span_1"></span>Gestion des dépôts (répertoire de surveillance)</a>  et des abonnements </h2>
+        <h3 class="Titre3"><a name="6.3.1"></a> Abonnement à un traitement </h3>
+        <p> Un abonnement permet à un utilisateur d'exécuter à fréquence régulière un projet. </p>
+        <p>&#160;</p>
+        <p>Un auteur  peut décider de rendre un traitement disponible pour abonnement ou pas. </p>
+        <p>Dans le menu Mon travail, onglet Abonnements, un utilisateur peut choisir de s'abonner à un projet, à la fréquence de son choix, et peut choisir d'être notifié par mail du bon déroulement ou pas du traitement. Il peut également saisir l'adresse mail à laquelle envoyer la copie du mail. </p>
+        <p>&#160;</p>
+        <h3 class="Titre3"><a name="6.3.2"></a>Surveillance des dépôts</h3>
+        <p>Un dépôt est un répertoire de surveillance. </p>
+        <p>Une surveillance correspond à un abonnement à un traitement en ajoutant un nouveau paramètre qu’est la disponibilité d’un fichier ou d’un répertoire dans un dépôt préalablement défini par l’administrateur.&#160;</p>
+        <p> Ainsi, si un projet est rendu disponible pour surveillance, alors ce dernier est automatiquement exécuté (selon la période d’abonnement définie) dès lors que GTF détecte la présence d’un fichier dans le dépôt. </p>
+        <p>&#160;</p>
+        <p>L’onglet Dépôt permet à l’administrateur de consulter la liste des dépôts, d’en créer et d’en supprimer.</p>
+        <p> Il crée des nouveaux dépôts en spécifiant le chemin du répertoire à surveiller <b>qu’il aura préalablement créé sur le serveur.&#160; </b></p>
+        <p>&#160;</p>
+        <p>La stratégie d’attribution de dépôt se fait à l’échelle du groupe d’utilisateurs. Un utilisateur en ayant-droit,&#160; peut alors associer à un traitement une surveillance dans un dépôt. GTF scrute la présence de fichiers dans le dépôt.&#160; Si un fichier est présent, alors le traitement est lancé en exploitant le fichier. </p>
+        <p>&#160;</p>
+        <p>Le bouton ‘Ajouter un dépôt’ permet d’accéder au formulaire de création de dépôt en spécifiant le chemin du répertoire à surveiller, un alias et les groupes y ayant accès. Il clique ensuite sur ‘Créer’ pour valider sa création et rendre le dépôt disponible pour les groupes en ayant droit. </p>
+        <p>&#160;</p>
+        <p class="p_1">
+            <img src="../resources/images/ajout_depot.png" style="width: 539px;height: 356px;" />
+        </p>
+        <p class="Soustitre_figure" style="text-align: center;">Formulaire de création de dépôt.</p>
+        <p>&#160;</p>
+        <p class="Paragraphedeliste_2">
+            <img src="../resources/images/attention.png" />GTF personnalise automatiquement le dépôt en fonction du compte utilisateur de connexion en suffixant le dépôt avec la variable $user. L’utilisateur final ne voit ainsi que son propre répertoire dans le dépôt.&#160;Au préalable, l’administrateur doit avoir créé dans chaque dépôt, un répertoire par utilisateur (des groupes ayant accès à chaque dépôt). Le nom du répertoire doit être parfaitement identique au compte de connexion qu’il s’agisse d’un utilisateur «&#160;PostgreSQL&#160;» ou importé d’Active Directory.</p>
+        <blockquote>
+            <p>&#160;</p>
+        </blockquote>
+        <h2 class="Titre2"><a name="6.4">Gestion des périodes</a><![CDATA[  ]]></h2>
+        <p>Un abonnement permet de s’inscrire à un traitement répété au cours du temps selon une fréquence choisie. </p>
+        <p>Dans l’onglet Périodes, l’administrateur peut accéder au formulaire de définition des périodes d’abonnement. Le bouton ‘Ajouter période’ permet à l’administrateur de définir une nouvelle période d’abonnement en lui affectant un libellé puis en y insérant le code correspondant. </p>
+        <p>&#160;</p>
+        <p>Il est ensuite possible de tester le bon déroulement de l’ajout de Période en cliquant sur le bouton ‘Test’. Le bouton ‘Créer’ finalise le processus de création d’une période. </p>
+        <p>&#160;</p>
+        <p>Pycron est le composant assurant l’exécution des tâches à heures fixes. L’instruction à saisir doit respecter la <a href="annexes.htm" name="kanchor48"><span class="Lienhypertexte">syntaxe de la fonction contrab</span></a>. Pour plus d’information sur le programme crontab et la syntaxe à respecter, consulter le site : http://fr.wikipedia.org/wiki/Crontab </p>
+        <p>&#160;</p>
+        <h2 class="Titre2"><a name="6.5"><span class="span_1"></span>Modèles d'E-mail</a>
+        </h2>
+        <p>L'onglet Modèles-email du mode Publication permet la création de modèles d'e- mail envoyé après exécution d'un traitement. Via cette onglet, l'administrateur (ou l'auteur) a la possibilité de personnaliser un e-mail, en définissant la ou les personnes destinataires, les circonstances d'envoi de ce dernier ainsi que son&#160;contenu. Il choisit ensuite pour chaque modèle, la définition à utiliser. </p>
+        <p>&#160;</p>
+        <p>Chaque traitement est associé à un modèle d'e-mail. </p>
+        <p>&#160;</p>
+        <p>L'onglet Informations générales permet de créer un nouveau modèle de mail, en le nommant et en définissant son contexte à GTF&#160;et de définir le type de définition de ce dernier : </p>
+        <h3 class="Titre3"><a name="6.5.1">Définition simple</a>
+        </h3>
+        <p> L'administrateur exploite les balises disponibles pour personnaliser le corps du mail. </p>
+        <table class="table_2" style="margin-left: 0;margin-right: auto;caption-side: top;">
+            <col style="width: 134pt;" />
+            <col style="width: 175pt;" />
+            <col style="width: 457px;" />
+            <tr style="height: 15pt;">
+                <td class="td_5">
+                    <p class="p_16">Nom de la balise </p>
+                </td>
+                <td class="td_6">
+                    <p class="p_16"> descriptif</p>
+                </td>
+                <td class="td_6">
+                    <p class="p_16">code correspondant </p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.order_id]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Identifiant de la demande de traitement </p>
+                </td>
+                <td class="td_8">
+                    <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.order_id']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['order_id'];</span>
+                    </p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.order_date]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Date et heure de la demande de traitement </p>
+                </td>
+                <td class="td_8">
+                    <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.order_date']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['order_date'];</span>
+                    </p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.execution_date]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Date et heure de fin de traitement</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.execution_date']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['order_execution_date'];</span>
+                    </p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.result_url]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Adresse de téléchargement du résultat du traitement</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.result_url']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['result_url'];</span>
+                    </p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.log_url]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Adresse du log du traitement </p>
+                </td>
+                <td class="td_8">
+                    <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.order_log']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields[log_url'];</span>
+                    </p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.length_sec]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Durée du traitement en secondes</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.length_sec']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields[length_sec'];</span>
+                    </p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7" style="font-size: 8pt;">[order.email_notifications]</td>
+                <td class="td_8" style="font-size: 8pt;">Adresse Email du destinataire en copie de mail </td>
+                <td class="td_8" style="font-size: 8pt;">$properties['user.email']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getUser()-&gt;aFields['email'];</td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[gtf_engine. Name]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Nom du moteur GTF</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$this-&gt;aObjects["oOrder"]-&gt;getGtfEngine()-&gt;aFields['name'];</p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[fme_engine.name]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Nom du moteur FME&#160; utilisé</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$this-&gt;aObjects["oOrder"]-&gt;getFmeEngine()-&gt;aFields['name'];</p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.user.name]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Nom du demandeur de traitement</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$properties['user.name']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getUser()-&gt;aFields['name'];</p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.user_email]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Adresse mail du demandeur de traitement </p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$properties['user.email']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getUser()-&gt;aFields['email'];</p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.user.login]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Compte de connexion du demandeur </p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$properties['user.login']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getUser()-&gt;aFields['login'];</p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.worksapce.category.name]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Catégorie du traitement </p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$properties['catgory.name']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getWorkspace()-&gt;getCategory()-&gt;aFields['email'];</p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[order.workspace.name]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Nom du traitement</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$properties['order.workspace.name']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getWorkspace()-&gt;aFields['name'];</p>
+                </td>
+            </tr>
+            <tr style="height: 15pt;">
+                <td class="td_7">
+                    <p class="p_16">[worksapce.fmw_file]</p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">Nom du projet FME </p>
+                </td>
+                <td class="td_8">
+                    <p class="p_16">$properties['order.workspace.fmw_file']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getWorkspace()-&gt;aFields['fmw_file'];</p>
+                </td>
+            </tr>
+        </table>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" /><i>La balise [order.email_notifications] doit être insérée dans les champs CC et CCi de sorte à ce qu'une notification de traitement soit envoyée aux adresses mail définies dans le formulaire de demande de traitement dans le champ 'Envoyer une copie de l'e-mail à' : </i>
+        </p>
+        <p style="text-align: center;">
+            <img src="../resources/images/destnatairecc.png" />
+        </p>
+        <p>&#160;</p>
+        <p>
+            <img src="../resources/images/attention.png" /><i>Lorsque plusieurs destinataires doivent être en copie du mail de notification, séparer les adresses mail par un retour charriot. </i>
+        </p>
+        <p>&#160;</p>
+        <h3 class="Titre3"><a name="6.5.2"><span class="span_1"></span>Définition avancée</a>
+        </h3>
+        <p>L'administrateur saisit directement le code du mail. Il peut, pour cela, utiliser le code généré via l'édition simple en cliquant sur le bouton Générer le code à partir de l'édition simple. </p>
+        <p>&#160;</p>
+        <p>&#160;</p>
+        <script type="text/javascript" src="../SkinSupport/MadCapBodyEnd.js">
+        </script>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm
new file mode 100755
index 0000000000000000000000000000000000000000..59dd9d490168e18845338d15de071c7890c05029
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm
@@ -0,0 +1,745 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title> Exemples de publication de traitements</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="#" class="selected">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="7"><span class="span_1"> </span>Exemples de publication de traitements</a>
+                            </h1>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.1"><span class="span_1"></span>Traitement  de conversion d'un fichier statique sur le serveur</a>
+                            </h2>
+                            <p>&#160;</p>
+                            <div class="MCDropDown MCDropDown_Open dropDown"><span class="MCDropDownHead dropDownHead"><a href="javascript:void(0);" class="MCDropDownHotSpot dropDownHotspot MCDropDownHotSpot_"><img class="MCDropDown_Image_Icon" src="../../Skins/Default/Stylesheets/Images/transparent.gif" height="11" width="16" alt="Closed" data-mc-alt2="Open" /><span class="span_8">Objectif&#160;</span></a></span>
+                                <div class="MCDropDownBody dropDownBody">
+                                    <p>Création d’un traitement simple de conversion d’un fichier Shape, disponible sur le serveur, en fichier MapInfo, avec publication du répertoire destination à créer. </p>
+                                    <p>&#160;</p>
+                                    <p>Le fichier source est statique (toujours le même) et il se trouve à un emplacement quelconque du serveur. L'emplacement du jeu de données sur le serveur est défini dans le paramètre source dans FME  et ce paramètre est dépublié.</p>
+                                </div>
+                            </div>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.1.1"><span class="span_1"> <![CDATA[ ]]></span>Création du projet FME</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Lancer FME Workbench</li>
+                                <li class="Paragraphedeliste_1" value="2">Cliquer sur Fichier &gt; Nouveau&gt; Générer un projet</li>
+                                <li class="Paragraphedeliste_1" value="3">Indiquer le fichier Shape en source et le format Mapinfo en sortie. Cocher Schéma statique puis cliquer sur OK. </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300001f.png" style="height: 275px;width: 317px;" class="img_1">
+                                </img>
+                            </p>
+                            <p style="text-align: center;">Après validation, un projet simple de conversion d’un fichier Shape vers un fichier MapInfo est généré.</p>
+                            <p style="text-align: center;">&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000020.png" style="height: 149px;width: 386px;" class="img_1" />
+                            </p>
+                            <p>Par défaut, deux paramètres sont publiés : ‘sourceDataset_SHAPE’ et ‘DestDataSet_MAPINFO’. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000021.png" style="height: 65px;width: 314px;" class="img_1">
+                                </img>
+                            </p>
+                            <p>&#160;</p>
+                            <p><span class="span_5">Chaque paramètre publié d’un projet FME génère une entrée dans le formulaire GTF.</span> Dans cet exemple, le formulaire GTF permet de modifier le répertoire source et le répertoire destination. Or nous souhaitons que GTF ignore la publication des données sources, empêchant les utilisateurs finaux&#160; de sélectionner et modifier les fichiers sources. </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Supprimer la publication du paramètre [SourceDataset_SHAPE] pour forcer les utilisateurs à utiliser le fichier Shape mis à disposition sur le serveur.</li>
+                                <li class="Paragraphedeliste_1" value="2">Editer si désiré, le paramètre publié DestDaraset_MAPINFO</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p style="text-align: center;"> <img src="../resources/images/demo1-fme_edition_param_publi_.png" style="width: 324px;height: 177px;" /></p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Enregistrer le projet, par exemple sous le nom 'extraction_departements.fmw'.</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Avant de publier ce projet dans GTF, il convient de le tester localement. Lancer le traitement depuis FME Workbench, vérifier le bon déroulement du traitement et s’assurer que&#160; le résultat soit correctement généré. </p>
+                            <h3 class="Titre3"><a name="7.1.2"><span class="span_1"></span>Publication du traitement dans GTF</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement, par exemple, ‘Conversion_dept_shp2mapinfo’.Cliquer sur <span class="span_5">Parcourir </span>et charger le projet FME.   Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. Sélectionner le mot clé associé au moteur GTF désiré. Cliquer sur «&#160;Créer&#160;». </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo1_ajout_projet.png" style="width: 616px;height: 394px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que le paramètre publié source du projet FME n’est pas publié  et que&#160; seul le paramètre «Nom&#160;du dossier Destination MapInfo&#160;» est publié. La valeur par défaut configurée dans FME a  été importée. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo1-previsualisation.png" style="width: 619px;height: 209px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.1.3"><span class="span_1"> <![CDATA[ ]]></span>Exécution du traitement</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction Départements». </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo1-demande_projet.png" style="width: 541px;height: 324px;" />
+                            </p>
+                            <p class="p_5">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Cliquer sur ‘Demander’. La demande de traitement est créée et celle-ci est en attente de traitement.</li>
+                            </ul>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Une fois traité, le voyant passe au vert. Le résultat est téléchargeable. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo1_resultat.png" style="width: 624px;height: 105px;" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_5">Le fichier ZIP généré contient un répertoire «Mon&#160;résultat» contenant les fichiers MapInfo générés par le traitement.</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.2"><span class="span_1"> <![CDATA[ ]]></span>Ajout de Paramètres publiés supplémentaires</a> <![CDATA[ ]]></h2>
+                            <p>&#160;</p>
+                            <div class="MCDropDown MCDropDown_Open dropDown"><span class="MCDropDownHead dropDownHead"><a href="javascript:void(0);" class="MCDropDownHotSpot dropDownHotspot MCDropDownHotSpot_"><img class="MCDropDown_Image_Icon" src="../../Skins/Default/Stylesheets/Images/transparent.gif" height="11" width="16" alt="Closed" data-mc-alt2="Open" /><span class="span_8">Objectif&#160;</span></a></span>
+                                <div class="MCDropDownBody dropDownBody">
+                                    <p>Compléter le projet <a href="#7.1" class="selected">exemple n°1</a>. Publication d’un paramètre publié supplémentaire pour spécifier une emprise d’extraction de données. </p>
+                                </div>
+                            </div>
+                            <h3 class="Titre3"><a name="7.2.1"><span class="span_1"> </span>Création du projet FME</a>
+                            </h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Ouvrir le précédent projet ‘extraction-departements.fmw’ dans FME Workbench. Dans le Navigateur, publier les 4 paramètres&#160;: X minimum, Y minimum, X maximum et Y maximum des données sources. Entrer les valeurs par défaut correspondant à l’emprise de l’ensemble des données, par exemple&#160;: X minimum = 50000&#160;; X maximum = 1&#160;200&#160;000&#160;; Y minimum = 1&#160;700&#160;000&#160;; et Y maximum = 2&#160;700&#160;000.</li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo4_fme_params_publies.png" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Enregistrer le projet <span class="span_5">extraction_depts_emprise.fmw</span></li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.2.2"><span class="span_1"> </span>Publication du traitement dans GTF</a>
+                            </h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple, ‘extraction depts emprise’. Aucune ressource complémentaire ne doit être chargée puisque la donnée source est intégrée dans le projet FME. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement ni pour une surveillance. Sélectionner le mot clé associé au moteur GTF désiré. Cliquer sur «&#160;Créer&#160;». Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                            </ul>
+                            <p class="Paragraphedeliste" style="text-align: center;">
+                                <img src="../resources/images/gtf_publication_projet.png" style="width: 570px;height: 340px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 4 paramètres de l’emprise apparaissent dans le formulaire avec les valeurs par défaut définies dans le projet FME. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo4_formulaire_par_defaut.png" style="width: 585px;height: 293px;" />
+                            </p>
+                            <h3 class="Titre3"><a name="7.2.3"><span class="span_1"> </span>Exécution du traitement</a>
+                            </h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction Département emprise».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer comme valeurs d’emprise X min = 500 000, Y min = 2&#160; 000 000, X max = 1&#160;000 000 et Y max = 2&#160;500 000, et ‘Mon_résultat_emprise’ comme nom de répertoire destination. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo4_gtf_ajout_demande.png" style="width: 529px;height: 350px;" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Cliquer sur ‘Créer la Demande’.</li>
+                                <li class="Paragraphedeliste_1" value="2">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />Remarquer que le nom ZIP correspond à l’identifiant de la demande de traitement&#160;: par exemple 19.zip pour la demande n°19. Ce numéro est unique car issu d’une séquence PostgreSQL. </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Ouvrir le fichier MapInfo généré dans FME Data Inspector et constater que les données ont été extraites selon l’emprise spécifiée. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo4_fme_result.png" style="width: 503px;height: 470px;" />
+                            </p>
+                            <h2 class="Titre2">&#160;</h2>
+                            <h2 class="Titre2"><a name="7.3"><span class="span_1"> </span>Conversion de fichiers sources statiques chargés sur le serveur lors du chargement du projet FME</a>
+                            </h2>
+                            <p>&#160;</p>
+                            <div class="MCDropDown MCDropDown_Open dropDown"><span class="MCDropDownHead dropDownHead"><a href="javascript:void(0);" class="MCDropDownHotSpot dropDownHotspot MCDropDownHotSpot_"><img class="MCDropDown_Image_Icon" src="../../Skins/Default/Stylesheets/Images/transparent.gif" height="11" width="16" alt="Closed" data-mc-alt2="Open" /><span class="span_8">Objectif </span></a></span>
+                                <div class="MCDropDownBody dropDownBody">
+                                    <p>Le fichier source est statique et il est chargé sur le serveur par GTF comme ressource du projet FME. Les utilisateurs finaux n’uploadent pas de fichiers sources, ils se trouvent sur le serveur au même endroit que le projet FME. </p>
+                                    <p>&#160;</p>
+                                    <p>Il s'agit ainsi de reconstituer la même arborescence que celle du poste de développement.</p>
+                                </div>
+                            </div>
+                            <h3 class="Titre3"><a name="7.3.1"><span class="span_1"> </span>Création du projet FME</a>
+                            </h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Créer un nouveau projet FME pour convertir un fichier Shape vers un fichier MIF/MID.</li>
+                            </ul>
+                            <p style="text-align: center;"> <img src="../resources/images/demo2_fme.png" style="width: 399px;height: 347px;" /></p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li class="Paragraphedeliste_1" value="1">Deux paramètres doivent être publiés&#160;: la source et la destination. La source pointe vers un fichier Shape en local. Pour que GTF puisse accéder à ce fichier, il faut uploader le fichier shape et ses dépendances sur le serveur GTF. Ces données seront stockées dans le même répertoire que le projet FME lors de la création du traitement dans GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Modifier le chemin de la source comme tel&#160;:</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p style="text-align: center;"> <img src="../resources/images/demo2_donn_e_source__.png" /></p>
+                            <p class="p_12">
+                                <img src="../resources/images/attention.png" /><span class="span_5"><a name="kanchor50"></a>$(FME_MF_DIR_UNIX) </span>est une variable FME qui indique l’emplacement d’un projet FMW. Le fichier source (dpt2.shp et fichiers dépendants) est uploadé à cet emplacement. Il sera directement utilisable dans GTF (sans avoir à l’uploader à chaque demande de traitement). </p>
+                            <p class="p_12">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Les données sources étant fixes, il convient de dépublier ce paramètre,&#160;en cliquant sur Supprimer le lien du paramètre publié. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo2-fme-supprssion_lien.png" style="width: 423px;height: 117px;" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Enregistrer le projet.</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"> <a name="7.3.2"></a><span class="span_1"> </span>Publication du traitement dans GTF  </h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple ‘Conversion_dept_shp2mif’.Charger le projet FME. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement ni pour une surveillance. Sélectionner le mot clé associé au moteur GTF désiré puis dans la section Droits associer un groupe au projet. </li>
+                                <li class="Paragraphedeliste_1" style="text-align: left;" value="3">Pour uploader le fichier Shape et ses dépendances, compresser les fichiers dans un fichier ZIP. Dans le champ  ‘<span class="span_5">Ressources complémentaires</span>’ cliquer sur Parcourir et chercher le fichier ZIP précédemment créé. Cliquer sur «&#160;Créer&#160;».</li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo2-gtf-ajout_projet.png" style="width: 528px;height: 319px;" /> </p>
+                            <p>&#160;</p>
+                            <p style="text-indent: 1in;text-align: left;"><span class="span_5">Ces ressources complémentaires sont décompressées dans le répertoire contenant le projet .fmw.</span> L'arborescence du poste de développement est ainsi reconstituée sur le serveur.</p>
+                            <p style="text-indent: 1in;text-align: left;"> La section Répertoire Projet permet de visualiser l'intégralité du répertoire projet du serveur :</p>
+                            <p style="text-indent: 1in;text-align: center;">
+                                <img src="../resources/images/demo2_r_pertoire_projet.png" style="width: 458px;height: 335px;" />
+                            </p>
+                            <p style="text-indent: 1in;">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que seul le fichier destination est paramétrable. Le fichier des départements dpts.shp est automatiquement associé au projet. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo2_gtf_formulaire.png" style="width: 626px;height: 203px;" />
+                            </p>
+                            <h3 class="Titre3"><a name="7.3.3"></a><span class="span_1"> </span>Exécution du traitement  </h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter une demande’, et choisir le traitement préalablement publié «&#160;conversion_dept_shp2mif».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer le nom répertoire à créer en destination. Cliquer sur Créer la demande.</li>
+                                <li class="Paragraphedeliste_1" value="3">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>
+                                <img src="../resources/images/attention.png" />Remarquer que le nom ZIP correspond à l’identifiant de la demande de traitement&#160;: par exemple 19.zip pour la demande n°19. Ce numéro est unique car issu d’une séquence PostgreSQL. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.4"><span class="span_1"> <![CDATA[ ]]></span>Traitement de conversion avec sortie générique</a><![CDATA[  ]]></h2>
+                            <p>&#160;</p>
+                            <div class="MCDropDown MCDropDown_Open dropDown"><span class="MCDropDownHead dropDownHead"><a href="javascript:void(0);" class="MCDropDownHotSpot dropDownHotspot MCDropDownHotSpot_"><img class="MCDropDown_Image_Icon" src="../../Skins/Default/Stylesheets/Images/transparent.gif" height="11" width="16" alt="Closed" data-mc-alt2="Open" /><span class="span_8">Objectif&#160;</span></a></span>
+                                <div class="MCDropDownBody dropDownBody">
+                                    <p>Publication d'un traitement de conversion d'un fichier dont le format destination est générique. L’utilisateur final choisit le format destination. Le fichier source au format shape est statique. </p>
+                                </div>
+                            </div>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.4.1"><span class="span_1"> </span>Création du projet FME</a>
+                            </h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Ouvrir le traitement créé dans l'exercice n°2 'extraction_depts_emprise.fmw' dans FME Workbench. Supprimer le jeu de données destination MapInfo et ajouter un nouveau jeu de données au format ‘Generic’. Indiquer une destination temporaire. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo4_fme_ajout_generic.png" style="width: 381px;height: 214px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Cliquer sur le bouton <b>Paramètres</b> et choisir le format de sortie MapInfo&#160;: </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/demo4_fme_param_generic.png" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li class="Paragraphedeliste_4" value="1">Dupliquer le type d’entités source, par un clic droit en choisissant l’option "Dupliquer" </li>
+                                <li class="Paragraphedeliste_4" value="2">Publier le paramètre «&#160;Système de coordonnées&#160;» du jeu de données Generic. </li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003b.png" style="height: 129px;width: 314px;" class="img_1">
+                                </img>
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Le format Generic permet de spécifier le format de destination via un paramètre. Le paramètre «&#160;GENERIC_OUT_FORMAT_GENERIC&#160;» est publié par défaut. GTF ne supporte pas ce paramètre car tous les formats supportés par FME devraient être listés. </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans un premier temps, il faut donc dépublier ce paramètre par un clic droit &gt; Supprimer. </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003c.png" style="height: 181px;width: 299px;" class="img_1">
+                                </img>
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Il faut ensuite créer sa propre liste de formats dans un nouveau paramètre publié&#160;: ajouter un nouveau paramètre publié que vous nommerez 'FORMAT' de type 'choix' et saisir les formats destination désirés.</li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003d.png" style="height: 170px;width: 298px;" class="img_1">
+                                </img>
+                            </p>
+                            <p>
+                                <img src="../resources/images/attention.png" /> Le nom des formats doit correspondre aux noms courts tels qu’ils sont listés dans la galerie des formats de FME Workbench (Outils&gt; Consulter la galerie des formats). Il est également possible de choisir un type "Choix avec alias" pour afficher un texte plus explicite dans la liste.</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Associer ensuite le paramètre ‘FORMAT’ au jeu de données générique.&#160;Faire un clic droit sur le paramètre ‘Format en sortie’ et choisir ‘Lier au paramètre publié‘. </li>
+                            </ul>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/demo4_fme_param_lien_param_format.png" style="width: 356px;height: 301px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Enregistrer le projet, par exemple «&#160;shape2generic.fmw&#160;»</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.4.2"><span class="span_1"></span>Publication du traitement dans GTF</a>
+                            </h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple ‘Extraction départements avec choix de l’emprise et du format destination’. Aucune ressource complémentaire ne doit être chargée puisque la donnée source est intégrée dans le projet FME. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. Sélectionner le mot clé associé au moteur GTF désiré. Cliquer sur «&#160;Créer&#160;». Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo4bis_gtf_ajout_projet.png" style="width: 619px;height: 367px;" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que&#160; le paramètre Format destination est bien associé au projet. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/demo4_gtf_formaulire_depaut.png" style="width: 625px;height: 316px;" />
+                            </p>
+                            <h3 class="Titre3"><a name="7.4.3"><span class="span_1"> </span>Exécution du traitement</a>
+                            </h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le mode ‘Mon travail’, cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction départements avec choix de l’emprise et du format destination».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer le fichier ZIP source et le répertoire destination. Cliquer sur Créer la demande.</li>
+                                <li class="Paragraphedeliste_1" value="3">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />Remarquer que le nom ZIP correspond à l’identifiant de la demande de traitement&#160;: par exemple 19.zip pour la demande n°19. Ce numéro est unique car issu d’une séquence PostgreSQL. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.5"><span class="span_1"> </span>Personnalisation de formulaire : exploitation du contrôle de type Carte OSM. </a>
+                            </h2>
+                            <p>&#160;</p>
+                            <div class="MCDropDown MCDropDown_Open dropDown"><span class="MCDropDownHead dropDownHead"><a href="javascript:void(0);" class="MCDropDownHotSpot dropDownHotspot MCDropDownHotSpot_"><img class="MCDropDown_Image_Icon" src="../../Skins/Default/Stylesheets/Images/transparent.gif" height="11" width="16" alt="Closed" data-mc-alt2="Open" /><span class="span_8">Objectif</span></a></span>
+                                <div class="MCDropDownBody dropDownBody">
+                                    <p>Extraction de types d’entités à partir d’une zone d’emprise saisie graphiquement sur une carte OSM par l’utilisateur final. Modification du formulaire directement dans GTF.</p>
+                                </div>
+                            </div>
+                            <h3 class="Titre3"><a name="7.5.1"><span class="span_1"> </span>Création du projet FME</a>
+                            </h3>
+                            <p>Créer un nouveau projet FME pour extraire un fichier GeoFla au format Esri Shape avec un paramètre qui permet de choisir une zone d’extraction sous la forme d’un polygone décrit par une chaîne WKT.</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003e.png" style="height: 294px;width: 602px;" class="img_1">
+                                </img>
+                            </p>
+                            <p>Dans FME, 3 paramètres sont publiés&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Zone d’extraction WKT&#160;: chaîne de caractères WKT pour définir la zone d’extraction. (Paramètre publié de type Texte)</li>
+                                <li class="Paragraphedeliste_1" value="2">Couches à extraire&#160;: choix du type d’entités à extraire (COMMUNES, CANTONS, DEPARTEMENTS…). (Paramètre publié de type Choix)</li>
+                                <li class="Paragraphedeliste_1" value="3">Nom du Répertoire Destination&#160;à créer. (Paramètre publié de type Répertoire en sortie)</li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003f.png" style="height: 151px;width: 313px;" class="img_1">
+                                </img>
+                            </p>
+                            <h3 class="Titre3"><a name="7.5.2"><span class="span_1"> </span>Publication du traitement dans GTF</a>
+                            </h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple ‘Extraction GeoFla’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. </li>
+                                <li class="Paragraphedeliste_1" value="3">Pour uploader les fichiers GeoFla au format Shape, compresser les fichiers dans un fichier ZIP. Dans le champ ‘Ressources complémentaires’ cliquer sur Parcourir et chercher le fichier ZIP précédemment créé. Cliquer sur «&#160;Créer&#160;». Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/ajout_projet.png" style="width: 583px;height: 353px;" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 3 paramètres sont bien affichés. </li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/formulaire_par_defaut.png" style="width: 365px;height: 189px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.5.3">Personnalisation du formulaire</a>
+                            </h3>
+                            <p>La saisie de la zone d’extraction sous la forme d’une chaîne de caractères  WKT n’est pas simple. Une alternative serait de proposer à l’utilisateur final la possibilité de saisir manuellement la zone d’extraction de son choix en dessinant ses contours directement sur une carte. <span style="color: #000000;">GTF permet l'exploitation de contrôles de type carte : </span></p>
+                            <ul>
+                                <li class="Paragraphedeliste_1" value="1">Carte OSM </li>
+                                <li class="Paragraphedeliste_1" value="2">Carte Bing</li>
+                                <li class="Paragraphedeliste_1" value="3">Carte Veremap</li>
+                            </ul>
+                            <p>Dans notre exemple, nous proposons d'exploiter la carte OSM qui ne nécessite pas de clé. </p>
+                            <p>Il est donc nécessaire de personnaliser le formulaire en cliquant sur le bouton <img src="../resources/images/bouton_perso.png" /> dans la fenêtre Formulaire. </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la fenêtre Paramètres publiés, sélectionner ensuite le paramètre 'wktPolygon' de type Texte que vous souhaitez convertir en contrôle de type Carte OSM. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans la fenêtre Définition, sélectionner dans la liste, le contrôle de type 'Carte OSM'.</li>
+                            </ul>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/personnalisation_formulaire.png" style="width: 627px;height: 316px;" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"> Ajuster les paramètres d'affichage de la carte en définissant un libellé, par exemple "Dessiner la zone d'extraction", la largeur/hauteur de la carte, son échelle et projection, les coordonnées de son centre, ainsi que les outils qui seront affichés dans le formulaire de demande. </li>
+                            </ul>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Cliquer ensuite sur le bouton 'Sauvegarder le formulaire personnalisé' <img src="../resources/images/bouton_sauvegarde.png" style="width: 20px;height: 18px;" /> puis sur le bouton de publication de ce dernier <img src="../resources/images/bouton_puiblication.png" style="width: 19px;height: 19px;" />. </li>
+                                <li class="Paragraphedeliste_1" value="2">S'assurer que le formulaire a bien été mis à jour et que le paramètre  ‘Zone d’extraction WKT’ a été remplacé par un paramètre permettant la saisie du périmètre d’extraction directement sur une carte OSM. </li>
+                            </ul>
+                            <h3 class="Titre3"><a name="7.5.4">Exécution du traitement</a>
+                            </h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction GeoFla ».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer les couches à extraire, le&#160; répertoire destination et saisir directement sur la carte la zone d’extraction. Cliquer ensuite sur Créer la demande.</li>
+                                <li class="Paragraphedeliste_1" value="3">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/ajout_demande.png" style="width: 621px;height: 337px;" />
+                            </p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/8_supervision.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/8_supervision.htm
new file mode 100755
index 0000000000000000000000000000000000000000..73c3602e188184dcc55fd97358ad9b9cd1e093b3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/8_supervision.htm
@@ -0,0 +1,405 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>Supervision</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="#" class="selected">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="8"><span class="span_1"></span>Supervision</a>
+                            </h1>
+                            <p>On entend par 'supervision' le suivi des demandes de traitements, des abonnements et des surveillances de tous les utilisateurs GTF. A tout moment, l’administrateur doit pouvoir consulter la liste des demandes de projets émises par tous les utilisateurs, en supprimer certaines, identifier les erreurs et obtenir une vision synthétique de l’utilisation de l’application. </p>
+                            <p>Il dispose pour cela du mode ‘Supervision’ dans lequel est listé l’ensemble des traitements demandés, des abonnements et des surveillances. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="8.1"><span class="span_1"> </span>Supervision des Demandes</a>
+                            </h2>
+                            <p>&#160;</p>
+                            <p>L’onglet ‘Demandes’ offre à l’administrateur une vision de l’état du serveur. Il a une connaissance fine de l’ensemble des traitements demandés par utilisateur, des dates de demandes, des priorités ainsi que le numéro de moteur ayant traité chaque projet. Il peut télécharger les résultats des traitements, consulter les paramètres des traitements et consulter les logs FME associés. Le champ&#160;'Supprimé' lui permet d’être informé de la suppression d'une demande par un utilisateur et le champ ‘Etat’ permet, via un code couleur, d’identifier si une demande est en attente, en erreur, traitée, non traitable, en cours de traitement ou non autorisée. </p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/mode_supervision.png" style="width: 622px;height: 180px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>L’administrateur dispose de différents boutons d’administration&#160;: le bouton ‘Réinitialiser’ &#160;lui permet de relancer un  (ou des) traitement(s) sélectionné(s).</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"> <a name="8.1.1"></a>Suppression des <a name="kanchor53"></a>demandes </h3>
+                            <p>L'administrateur est responsable de la suppression définitive des demandes une fois que ces dernières ont été supprimées par les utilisateurs. Il existe ainsi deux niveaux de suppression&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">La suppression utilisateurs </li>
+                                <li class="Paragraphedeliste_1" value="2">La suppression définitive par l'administrateur</li>
+                            </ul>
+                            <p>Le bouton <a name="kanchor54"></a>‘Purger les demandes’ permet à l'administrateur de procéder à la suppression définitive d'une demande de traitement préalablement supprimée par un utilisateur.  </p>
+                            <p>&#160;</p>
+                            <p>Le bouton ’Supprimer les demandes’ permet de supprimer les demandes des traitements sélectionnés. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"> <a name="8.1.2"></a>Modification des moteurs</h3>
+                            <p>  <![CDATA[ ]]></p>
+                            <p>L'administrateur peut choisir de modifier le moteur d’exécution d’un (ou des) traitement(s) préalablement sélectionné(s) en cliquant sur le bouton ’Modifier le moteur’.&#160; En cas d'échec de traitement, modifier le moteur est une bonne méthode pour identifier l'origine du problème et comprendre si la configuration des versions de moteurs FME en est à l'origine. </p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/modif_moteur.png" style="width: 486px;height: 151px;" />
+                            </p>
+                            <h2 class="Titre2"><a name="8.2"><span class="span_1"> </span>Supervision des abonnements</a>
+                            </h2>
+                            <p>L’onglet Abonnement permet à l’administrateur de consulter la liste des abonnements aux projets FME et d’identifier ceux étant actifs et inactifs. Il peut choisir de supprimer définitivement un abonnement en cliquant sur «&#160;Supprimer les abonnements&#160;». </p>
+                            <h2 class="Titre2"><a name="8.3"><span class="span_1"> <![CDATA[ ]]></span>Supervision des surveillances</a> <![CDATA[ ]]></h2>
+                            <p>De la même façon, l’onglet Surveillance permet à l’administrateur de consulter la liste des demandes de surveillance créées par les utilisateurs. </p>
+                            <p>Il peut choisir de supprimer définitivement une surveillance&#160;: après avoir sélectionné le ou les abonnements à supprimer, il clique sur le bouton «&#160;Supprimer les abonnements&#160;».</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2" style="color: #4f81bd;"><a name="8.4"></a> Gestion des messages </h2>
+                            <p>Le projet GTFMessageSender, disponible sur notre site de téléchargement  <a href="http://download.veremes.com"><span class="Lienhypertexte">http://download.veremes.com</span></a> (répertoire gtf/gex) permet à un traitement FME d'envoyer un message à GTF, et de déclencher des actions via l'application <a href="http://www.veremes.com/produits/wab">Workflow Application Builder for FME</a>. </p>
+                            <p>&#160;</p>
+                            <p>Les messages sont destinés à être exploités par WAB mais ils sont consultables dans le mode Supervision de GTF.</p>
+                            <p>&#160;</p>
+                            <p style="color: #4f81bd;font-weight: bold;">Exemple </p>
+                            <p>GTFMessageSender peut être utilisé pour envoyer des messages suite à un contrôle des géométries d'un fichier source.  En fin de traitement, un message est envoyé à GTF. </p>
+                            <p>Deux types de messages peuvent être envoyés selon la présence ou non d'erreur dans le fichier source. Deux classes peuvent être créées : '  traitement ok' et 'traitement Ko' qui enclenchent chacune des traitements spécifiques dans WAB . Dans GTF, l'administrateur pourrait ainsi consulter la liste des messages envoyés par GTFMessageSender, leur classe et corps, leur date de création et l'expéditeur. </p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/annexes.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/annexes.htm
new file mode 100755
index 0000000000000000000000000000000000000000..fb929eda89b3cc2569297edaddea6ad7049aae82
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/annexes.htm
@@ -0,0 +1,735 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>  Annexes  </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body style="text-align: center;">
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="#" class="selected">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="13"><span class="span_1"> <![CDATA[ ]]></span>Annexes</a><![CDATA[  ]]></h1>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="13.1"><span class="span_1">  <![CDATA[ ]]></span>Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                            </h2>
+                            <p>Le code à saisir doit respecter la syntaxe : <span class="span_5">mm hh jj MMM JJJ tâche </span></p>
+                            <p>Où </p>
+                            <p><span class="span_5">mm </span>représente les minutes (de 0 à 59) </p>
+                            <p><span class="span_5">hh </span>représente l’heure (de 0 à 23) </p>
+                            <p><span class="span_5">jj </span>représente le numéro du jour du mois (de 1 à 31) </p>
+                            <p><span class="span_5">MMM </span>représente l’abréviation du nom du mois (jan, feb,…) ou le numéro du mois (de 1 à 12) </p>
+                            <p><span class="span_5">JJJ </span>représente l’abréviation du nom du jour ou bien le numéro du jour dans la semaine (0 = dimanche, 6 = samedi) </p>
+                            <p>&#160;</p>
+                            <p>*Signifie à chaque unité (0,1,2,3,4…) </p>
+                            <p>5,8 signifie les unités 5 et 8 </p>
+                            <p>2-5 signifie les unités de 2 à 5 </p>
+                            <p>*/3 signifie toutes les 3 unités (0,3,6,9…) </p>
+                            <p>&#160;</p>
+                            <p class="p_28">Exemples de syntaxe : </p>
+                            <p>Tous les jours à 12 h : <span class="span_5">0 12 *** </span></p>
+                            <p>Tous les lundis à 22h15 : <span class="span_5">15 22 * *1 </span></p>
+                            <p>Toutes les heures passées de 15 min : <span class="span_5">15 * * * * </span></p>
+                            <p>Tous les premiers du mois à 4h42 : <span class="span_5">42 4 1 * * </span></p>
+                            <p>Du 2 au 5 de chaque mois à 10h12 <span class="span_5">: 12 10 2-5 **</span></p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="13.2"></a> Services web et privilèges</h2>
+                            <p>&#160;</p>
+                            <p>L'accès à un service web dépend du profil du compte connecté. Ainsi par exemple, un utilisateur ayant pour privilège gtf_user, ne peut pas accéder à la ressource 'Workspaces' qui retourne la liste des projets puisqu'un privilège gtf_author est requis. </p>
+                            <p>Le tableau ci-dessous présente les privilèges requis pour pouvoir accéder aux différents services de l'API : </p>
+                            <p>&#160;</p>
+                            <table style="border-top-left-radius: 1px;border-top-right-radius: 1px;border-bottom-right-radius: 1px;border-bottom-left-radius: 1px;border-left-style: solid;border-left-width: 1px;border-right-style: solid;border-right-width: 1px;border-top-style: solid;border-top-width: 1px;border-bottom-style: solid;border-bottom-width: 1px;margin-left: 0;margin-right: auto;mc-hide-bottom-ruling: true;">
+                                <col />
+                                <col style="width: 141px;" />
+                                <col />
+                                <tbody>
+                                    <tr>
+                                        <td style="font-weight: bold;">service</td>
+                                        <td style="font-weight: bold;">Ressource</td>
+                                        <td style="font-weight: bold;">Privileges requis</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Categories</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>EmailContexts</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>EmailOptions</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>EmailTemplates</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>FMEEngines</td>
+                                        <td>gtf_admin</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>GtfEngines</td>
+                                        <td>gtf_admin</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>GTFGroups</td>
+                                        <td>vitis_admin</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Inboxes</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>License</td>
+                                        <td>gtf_admin</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>MessageClasses</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>MessageClassTypes</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Messages</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Orders</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>OrderStatutes</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Periods</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Priorities</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Servers</td>
+                                        <td>gtf_admin</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Statistics</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Subscriptions</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>SupervisionStatues</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Surveys</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>SurveyType</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Tags</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>UserOrders</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>UserSubscriptions</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>UserSurveys</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Versions</td>
+                                        <td>gtf_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>gtf</td>
+                                        <td>Workspaces</td>
+                                        <td>gtf_author</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Domains</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>GenericQuerys</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Groups</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Logs</td>
+                                        <td>vitis_admn</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Modes</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Phpinfo</td>
+                                        <td>vitis_admin</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Privileges</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Properties</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Ressources</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Tabs</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Users</td>
+                                        <td>vitis_admin</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>Versions</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>VitisSections</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                    <tr>
+                                        <td>vitis</td>
+                                        <td>WebServices</td>
+                                        <td>vitis_user</td>
+                                    </tr>
+                                </tbody>
+                            </table>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="13.3"></a>Liste des contrôles GTF </h2>
+                            <p> </p>
+                            <table style="border-top-left-radius: 1px;border-top-right-radius: 1px;border-bottom-right-radius: 1px;border-bottom-left-radius: 1px;border-left-style: solid;border-left-width: 1px;border-right-style: solid;border-right-width: 1px;border-top-style: solid;border-top-width: 1px;border-bottom-style: solid;border-bottom-width: 1px;margin-left: 0;margin-right: auto;mc-hide-bottom-ruling: true;">
+                                <col style="width: 218px;" />
+                                <tbody>
+                                    <tr>
+                                        <td style="font-weight: bold;text-align: left;">Nom du contrôle GTF</td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.21">Bouton radio</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.22" title="Contrôles de type carte" alt="Contrôles de type carte">Carte Bing</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.22">Carte OSM</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.22">Carte vMap</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.25">Champ caché</a><![CDATA[  ]]></td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.5_Param%C3%A8tre_publi%C3%A9_de_type_choix_de_couleur_" title="Contrôle GTF de type couleur" alt="Contrôle GTF de type couleur">Couleur</a><![CDATA[  ]]></td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2." title="Contrôle GTF de type curseur" alt="Contrôle GTF de type curseur">Curseur </a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.7">Date et Heure</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.9_Param%C3%A8tre_publi%C3%A9_de_type_Flottant">Décimal</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.8_Param%C3%A8tre_publi%C3%A9_de_type_Entier">Entier</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.11">Fichier local</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.2">Interface - Ligne de séparation</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.23">Label</a><![CDATA[  ]]></td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.23">Label Titre</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.2.Param%C3%A8tre_publi%C3%A9_de_type_Choix_multiple">Liste</a><![CDATA[  ]]></td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.1_Param%C3%A8tre_publi%C3%A9_de_type_Choix">Liste déroulante</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.16">Texte en édition 1 ligne</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.10_Param%C3%A8tre_publi%C3%A9_de_type_Mot_de_passe">Texte en édition Mot de passe</a><![CDATA[  ]]></td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.18">Texte en édition Multiligne</a>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td style="text-align: left;"><a href="6_publication_de_traitements.htm#6.1.5.2.20">Texte en édition URL</a>
+                                        </td>
+                                    </tr>
+                                </tbody>
+                            </table>
+                            <h2 class="Titre2"><a name="13.4"></a> Projets FME intégrés </h2>
+                            <p>3 projets FME sont intégrés initialement à GTF : </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="13.4.1"></a> Projet Admin-Export </h3>
+                            <p>Le projet Admin export permet d'exporter des projets FME au format d'échange de gtf : <a name="kanchor64"></a>.gex. </p>
+                            <p>On peut exporter 1 à n projets FME. </p>
+                            <h3 class="Titre3"><a name="13.4.2"></a> Projet Admin Import</h3>
+                            <p>Le projet Admin-Import permet l'import dans GTF de traitements FME contenus dans un répertoire gex.</p>
+                            <p> Un projet FME dans GTF est identifié de façon unique par une <a href="6_publication_de_traitements.htm#_cl%C3%A9_unique">clé</a>. Le projet d'import permet, en cas d'import de projet dont la clé est existante en base de données, de choisir que faite de ce dernier : </p>
+                            <ul>
+                                <li value="1">Remplacer le projet existant : le projet est mis à jour et son nom, sa clé et son identifiant sont conservés.</li>
+                                <li value="2">Ne pas importer le projet </li>
+                                <li value="3">Importer le projet avec une nouvelle clé et un nouveau nom. On ajoute de la sorte un nouveau projet en base.</li>
+                            </ul>
+                            <p>Un rapport d'import est généré au format html.&#160;Il indique le nom et la clé du projet importé et le statut de l'import, c'est à dire  "Mis à jour dans GTF", "Non mis à jour dans GTF" ou "inséré dans GTF".</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" /> L'import de projets au format gex, issus d'une version antérieure à GTF 2016 ne permet pas la création des formulaires au format json. Directement après avoir importé des projets via Admin-Import, lancer le traitement <a href="6_publication_de_traitements.htm">Vérification des formulaires</a> pour permettre la génération des formulaires au format json. </p>
+                            <p><a name="13.4.3_Projet_Vérification_des_formulaires"></a>
+                            </p>
+                            <h3 class="Titre3"><a name="13.4.3"></a> Projet Vérification des formulaires</h3>
+                            <p>Ce traitement permet la vérification et/ou la génération des formulaires des traitements.</p>
+                            <p> Les formulaires des traitements importés depuis une version antérieure à GTF 2016 ne sont pas directement créés au format json. Ce traitement permet de définir les conditions de génération des formulaires par défaut et des formulaires publiés. </p>
+                            <p>&#160;</p>
+                            <p>Tous les traitements sont parcourus. </p>
+                            <p>&#160;</p>
+                            <p>2 options sont possibles : </p>
+                            <ul>
+                                <li value="1">Ne pas forcer la régénération des formulaires par défaut pour tous les traitements : Ne sont traités que les traitements ne disposant pas de formulaire publié de type subform.json. Leurs formulaires sont donc invalides <img src="../resources/images/formilaire_invalide.png" style="width: 58px;height: 43px;" /> . </li>
+                            </ul>
+                            <p> si le type de formulaire publié indiqué en base est de type 'par défaut', alors les 3 formulaires sont générés.</p>
+                            <p> Sinon, si le formulaire source indiqué en base est de type 'personnalisé', alors un rapport indique que le traitement est invalide et que l'auteur doit créer lui même le formulaire. </p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1">Forcer la régénération des formulaires par défaut pour tous les traitements. Un formulaire par défaut est regénéré pour <b>tous</b> les traitements. Les formulaires par défaut sont publiés <b>Si</b> le formulaire en base de données est de type Défaut. Sinon les formulaires publiés personnalisés sont conservés. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>En savoir plus sur les <a href="6_publication_de_traitements.htm#6.1.5.1">formulaires dans GTF</a>. </p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/api_formulaire.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/api_formulaire.htm
new file mode 100755
index 0000000000000000000000000000000000000000..f0422614d294fd000f5de633f0ec95d62e63793a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/api_formulaire.htm
@@ -0,0 +1,829 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>API_formulaire</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1>API_formulaire</h1>
+                            <h2 class="Titre2"><a name="14.1"><span class="span_1">14.1 </span>Personnalisation des formulaires : API Formulaires</a>
+                            </h2>
+                            <h3 class="Titre3"><a name="14.1.1"><span class="span_1">14.1.1 </span>Structure du code des formulaires</a>
+                            </h3>
+                            <p>Le code est écrit en langage php, et contient les balises d’ouverture et fermeture &lt;&#160;?php et&#160;?&gt; en début et fin de fichier. </p>
+                            <p>La ligne <span class="span_5">require_once("vmlib/VirtualFormV2.class.inc");</span><span class="span_5"></span> permet d’importer le fichier contenant la classe pour générer le formulaire.</p>
+                            <p>Ensuite la classe subform est déclarée. Cette classe doit toujours porter le même nom afin d’être utilisée par GTF. Cette classe hérite de la classe <span class="span_5">VirtualForm</span><span class="span_5"></span>afin de faire appel à ces fonctions.</p>
+                            <p>Elle contient la fonction getHtmlForm qui permet de générer le formulaire. Elle nécessite deux paramètres, un tableau avec les valeurs permettant de remplir le formulaire et un objet de la classe BD permettant de faire une connexion à la base.</p>
+                            <p class="p_21">&#160;</p>
+                            <p>La fonction getHtmlForm permet de générer le formulaire.</p>
+                            <p>Cette fonction récupère tout d’abord les valeurs envoyées au formulaire. Ensuite elle définit les valeurs par défaut des champs. Pour finir elle crée le formulaire. Pour créer le formulaire, elle l’initialise, puis définit chaque champ et enfin ferme le formulaire.</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="14.1.2"><span class="span_1">14.1.2 </span>Fonctions disponibles</a> <![CDATA[ ]]></h3>
+                            <p>La classe HtmlForm permet de créer des formulaires html à partir de fonctions, détaillées ci-dessous&#160;: </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de bouton&#160;:</span> buttonField</li>
+                            </ul>
+                            <p>Champ permettant d'ajouter un bouton. </p>
+                            <p class="extraitcode">$oForm-&gt;buttonField ("Rechercher","btn_search","parent.searchTable('".$this-&gt;sTable."')");</p>
+                            <p class="p_22">buttonField (libellé, identifiant du lien, javascript sur l'évènement onclick)</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004b.png" style="height: 23px;width: 81px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de champs caché</span>&#160;: hiddenField</li>
+                            </ul>
+                            <p>Champ permettant d'intégrer une valeur dans le formulaire sans l'afficher à l'utilisateur.</p>
+                            <p class="extraitcode">$oForm-&gt; hiddenField ("ID", "object_id", $aValues['object_id']);</p>
+                            <p class="p_22">hiddenField (nom du champ, valeur du champ)</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_4">Ajout de champ Texte</span><span class="span_2">&#160;: textField</span>
+                                </li>
+                            </ul>
+                            <p>Champ permettant la saisie d'un texte court (une ligne).</p>
+                            <p class="extraitcode">$oForm-&gt; textField ("Type", "type", $aValues['type'],30); </p>
+                            <p class="p_22">textField (libellé, nom du champ, valeur du champ, taille)</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004c.png" style="height: 26px;width: 308px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de champ texte cascade</span>&#160;: cascadeTextField</li>
+                            </ul>
+                            <p>Le champ cascadeTextField est un champ texte classique qui permet de mettre à jour un deuxième champ par rapport à la valeur saisie par l'utilisateur. <br /></p>
+                            <p>Dans l’exemple, ci-dessous,  le champ texte permet de modifier la valeur d’un champ caché (hiddenField). <br />1 - Créer dans le formulaire (classe PHP) un champ caché et un champ texte.<br />Exemple : </p>
+                            <p class="extraitcode">$oForm-&gt;hiddenField ("name",$aValues['name']);</p>
+                            <p class="extraitcode">$oForm-&gt;textField ("Name","name_cascade",$aValues['name'],50);</p>
+                            <p>&#160;</p>
+                            <p class="p_5">2 - Transformer le premier champ texte en champ texte cascade. Pour cela vous devez ajouter un paramètre en plus :<br /><span class="span_5">cascadeTextField (libellé, identifiant, valeur, taille, code JavaScript);</span><br />Le code JavaScript est exécuté à chaque changement de valeur par un utilisateur.<br />Dans notre exemple ce code JavaScript doit remplir le champ caché. </p>
+                            <p>Exemple&#160;: </p>
+                            <p class="extraitcode">Document.getElementByld(‘name’.value = document.getElementByld(‘name_cascade’).value&#160;; </p>
+                            <p> Ce qui donne&#160;: </p>
+                            <p class="extraitcode">$oForm-&gt;cascadeTextField(«&#160;Name&#160;»,&#160;»name_cascade&#160;»,$aValues[‘name’],50, «&#160;document.getElementById(‘name’).value=document.getElementId(‘name_cascade’).value&#160;»)&#160;; </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de champ numérique</span>&#160;: numberFiled</li>
+                            </ul>
+                            <p>Champs permettant la saisie d’une valeur numérique</p>
+                            <p class="extraitcode">$oForm-&gt; numberField ("Size", "size", 169,30);</p>
+                            <p class="Paragraphedeliste_9">numberField (libellé, nom du champ, valeur du champ, taille)</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004d.png" style="height: 28px;width: 70px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de champ </span><span class="span_5">entier</span>&#160;: integerField</li>
+                            </ul>
+                            <p>Champs permettant la saisie d’une valeur numérique</p>
+                            <p class="extraitcode">$oForm-&gt; integerField ("Size", "size", 169,30);</p>
+                            <p class="Paragraphedeliste"><span class="span_11">integerField </span><span class="span_11">(libellé, nom du champ, valeur du champ, taille)</span>
+                            </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004d.png" style="height: 28px;width: 70px;" class="img_1" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout d’un champ de type liste&#160;:</span> listField</li>
+                            </ul>
+                            <p>Champ permettant la saisie d’une valeur numérique. </p>
+                            <p class="extraitcode">$oForm-&gt; listField ("Type","type",$aValues['type'],1,$aType);</p>
+                            <p><span class="span_11">listField (libellé, nom du champ, valeur du champ, taille, tableau de valeurs)</span><span class="span_12"><br /></span>
+                            </p>
+                            <p>Afin de valoriser le tableau de valeurs pour la lpiste, il faut utiliser la fonction «&#160;Array&#160;»&#160;: </p>
+                            <p class="extraitcode">$aType=Array("chemin"=&gt;"Chemin", "route"=&gt;"Route", "rue"=&gt;"Rue");</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004e.png" style="height: 27px;width: 108px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout d’un champ d’affichage de valeur&#160;:</span> labelField</li>
+                            </ul>
+                            <p>Champ permettant d’afficher une valeur. </p>
+                            <p class="extraitcode">$oForm-&gt; labelField ("ID", "object_id", $aValues['object_id']);</p>
+                            <p class="Paragraphedeliste_9">labelField (libellé du champ, nom du champ, valeur du champ)</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004f.png" style="height: 33px;width: 83px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout d’un </span><span class="span_5">bouton radio</span><span class="span_5">:</span> radioField</li>
+                            </ul>
+                            <p>Champ permettant la saisie d'une réponse par oui ou non (correspond généralement à un champ de type booléen).</p>
+                            <p class="extraitcode">$oForm-&gt; radioField ("Circulation","circulation",$aValues['circulation'],$this-&gt;aListBool, true);</p>
+                            <p class="p_22">radioField (libellé, nom du champ, valeur, étiquettes (oui/non), valeur par défaut)</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000050.png" style="height: 46px;width: 158px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de plusieurs lignes de texte</span>&#160;: areaField</li>
+                            </ul>
+                            <p>Champ permettant la saisie de plusieurs lignes de texte.</p>
+                            <p class="extraitcode">$oForm-&gt; areaField ("Description","description",$aValues['description'],10,100);</p>
+                            <p class="p_22">areaField (libellé, nom du champ, valeur du champ, hauteur, largueur)</p>
+                            <p class="p_23">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000051.png" style="height: 125px;width: 518px;" class="img_1" />
+                            </p>
+                            <p class="p_5">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1"><span class="span_5">Ajout d’une liste à plusieurs choix possibles&#160;:</span> doubleListField</li>
+                            </ul>
+                            <p>Le doubleListField permet à l'utilisateur de choisir plusieurs valeurs dans une liste. <br />Le doubleListField doit être accompagné d'un hiddenField qui va déclencher l'insertion des données dans la seconde table : </p>
+                            <p class="extraitcode">$oForm-&gt;hiddenField ("EXTERNAL_COMMUNE","insert2|pdesi|commune_esi|id_esi|id_com|".$sIdCommune); </p>
+                            <p class="p_22">hiddenField ("EXTERNAL_XXXXXX", "insert2|nom du schéma|nom de la premiere table d'insertion|nom de l'identifiant la table d'insertion|listes des identifiants de la table d'insertion séparés par une @")</p>
+                            <p>&#160;</p>
+                            <p class="extraitcode">$oForm-&gt; doubleListField ("Liste des communes","commune", "commune2", "",10, Array($aCommunes, $aCommuneEsi), "", 200,"document.getElementById('commune')", "document.getElementById('commune2')","document.getElementById('EXTERNAL_COMMUNE')","''");</p>
+                            <p class="p_24">doubleListField (Libellé,nom de la premiere liste, nom de la deuxième liste, "",hauteur des listes, Array(Tableau PHP des valeurs de la première liste, Tableau PHP des valeurs de la deuxième liste), "", largeur des listes,"document.getElementById('nom de la premiere liste')", "document.getElementById('nom de la deuxième liste')","document.getElementById('EXTERNAL_XXXXXXX')","''")</p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000052.png" style="height: 132px;width: 497px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de bouton submit</span>&#160;: submitField</li>
+                            </ul>
+                            <p>Permet d'ajouter un bouton submit. </p>
+                            <p class="extraitcode">$oForm-&gt; submitField ("Créer","submit ");</p>
+                            <p class="Paragraphedeliste_10">submitField (libellé, identifiant du lien)</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000053.png" style="height: 21px;width: 46px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout d’un champ liste en cascade&#160;:</span> cascadeListField</li>
+                            </ul>
+                            <p>Le champ cascadeListField est un champ liste classique qui permet de mettre à jour un deuxième champ par rapport à la valeur saisie par l'utilisateur. <br />Dans cet exemple le champ liste permet de modifier la valeur d’un champ caché (hiddenField). <br />1 - Créer dans le formulaire (classe PHP) un champ caché et un champ liste.<br />Exemple : </p>
+                            <p class="extraitcode">$oForm<span class="span_13">-&gt;</span>hiddenField (<span class="span_13">"</span><span class="span_14">type",$aValues[type]</span>);</p>
+                            <p class="extraitcode">$aType=Array("chemin"=&gt;"Chemin", "route"=&gt;"Route", "rue"=&gt;"Rue");</p>
+                            <p class="extraitcode">$oForm<span class="span_13">-&gt;</span>listField (<span class="span_13">"</span><span class="span_14">Type","type_cascade",$aValues[type],1, $aType</span>);</p>
+                            <p>2 - Transformer le premier champ liste en champ liste cascade. Pour cela vous devez ajouter un paramètre en plus :<br /><span class="span_5">cascadeListField (libellé, identifiant, valeur, taille, tableau de valeurs, code JavaScript);</span><br />Le code JavaScript est exécuté à chaque changement de valeur par un utilisateur.<br />Dans notre exemple ce code JavaScript doit remplir le champ caché. </p>
+                            <p>Exemple :</p>
+                            <p class="extraitcode">document.getElementById(‘name’).value= document.getElementById(‘name_cascade’).value&#160;;</p>
+                            <p>&#160;</p>
+                            <p>Ce qui donne&#160;: </p>
+                            <p class="extraitcode">$oForm-&gt; cascadeListField ("Type","type_cascade",$aValues[type],50,"document.getElementById(‘type).value = document.getElementById(‘type_cascade’).value")&#160;;</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Chargement de fichiers&#160; : </span>uploadField</li>
+                            </ul>
+                            <p>Dans votre formulaire, ajouter un hiddenField et un uploadField permettant d'uploader des fichiers sur le serveur.</p>
+                            <p class="extraitcode">$oForm-&gt;champCache("EXTERNAL_UPLOAD","upload|document|sPathFile|arrete|upload_dir");<br />$oForm-&gt;champUpload ("Arrêté", "arrete", 50, $aValues['arrete'], "", "sPathFile");</p>
+                            <p class="p_9"><span class="span_11">hiddenField (nom du champ (EXTERNAL_UPLOADXXXX), "upload|document, zip ou image (restreint le type d'image)|identifiant du champ|nom de la table|nom de la properties")</span><span class="span_12"><br /></span><span class="span_11">uploadField (libellé, nom du champ, taille du champ, valeur par défaut, javascript sur l'évènement "onchange", identifiant du champ)</span>
+                            </p>
+                            <p class="p_25">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000054.png" style="height: 41px;width: 233px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Saisie d’une date à partir d’un calendrier&#160;: </span>CalendarField</li>
+                            </ul>
+                            <p class="p_12">Champ permettant de sélectionner une date à partir d'un calendrier.</p>
+                            <p class="extraitcode">$oForm-&gt; calendarField ("Date&#160; de renouv.(JJ/MM/AAAA)","date_renouv",$aValues['date_renouv'], 50);</p>
+                            <p class="Paragraphedeliste"><span class="span_11">champCalendrier(libellé, nom du champ, valeur,</span><span class="span_12"> "value", taille);</span>
+                            </p>
+                            <p>&#160;</p>
+                            <p>Un quatrième paramètre peut être ajouté, il s'agit du format de la date.</p>
+                            <p class="p_25">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000055.png" style="height: 159px;width: 253px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Fonction permettant de retourner le formulaire</span>&#160;: subFormEnd</li>
+                            </ul>
+                            <p>Cette fonction permet de retourner le formulaire et doit être saisie à chaque fin de formulaire. </p>
+                            <p class="extraitcode">$oForm-&gt; subFormEnd ();</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Fonction Ajout d’un mot de passe</span>&#160;: PasswordField</li>
+                            </ul>
+                            <p>Champ permettant la saisie d'un mot de passe.</p>
+                            <p class="extraitcode">$oForm-&gt; PasswordField ("Mot de passe", "password", $aValues['password'],30);</p>
+                            <p class="Paragraphedeliste_9">PasswordField (libellé, nom du champ, valeur du champ, taille)</p>
+                            <p>&#160;</p>
+                            <p class="p_25">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000056.png" style="height: 26px;width: 297px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Fonction Ajout d’un composant cartographique</span><span class="span_5">&#160;</span>: OpenLayers2Field</li>
+                            </ul>
+                            <p>Champ permettant d’afficher une carte Openlayers et de définir un périmètre d’extraction.</p>
+                            <p>Les&#160; géo services sont disponibles librement mais certains obligent  l'obtention d'une clé pour pouvoir exploiter leurs services d'affichage de cartes. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <table class="table_3">
+                                <col style="width: 51pt;" />
+                                <col style="width: 70pt;" />
+                                <col style="width: 70pt;" />
+                                <col style="width: 267pt;" />
+                                <tr style="height: 11pt;">
+                                    <td class="td_9">
+                                        <p class="p_26">API</p>
+                                    </td>
+                                    <td class="td_10">
+                                        <p class="p_26">Carte</p>
+                                    </td>
+                                    <td class="td_10">
+                                        <p class="p_26">Clé</p>
+                                    </td>
+                                    <td class="td_10">
+                                        <p class="p_26">documentation</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 11pt;">
+                                    <td class="td_11">
+                                        <p class="p_27">IGN</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">WTS</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">nécessaire</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">http://api.ign.fr/tutoriel</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 11pt;">
+                                    <td class="td_11">
+                                        <p class="p_27">OSM</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">OSM</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">Pas nécessaire</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">http://wiki.openstreetmap.org/wiki/Main_Page</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 11pt;">
+                                    <td class="td_11">
+                                        <p class="p_27">Google</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p><span class="span_15">Google Map</span><span class="span_15">s</span>
+                                        </p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">Pas nécessaire</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p>&#160;</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 11pt;">
+                                    <td class="td_11">
+                                        <p class="p_27">Microsoft</p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p><span class="span_15">Bing</span><span class="span_15"> Maps</span>
+                                        </p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">Nécessaire </p>
+                                    </td>
+                                    <td class="td_12">
+                                        <p class="p_27">http://www.microsoft.com/maps/create-a-bing-maps-key.aspx</p>
+                                    </td>
+                                </tr>
+                            </table>
+                            <p> &#160;</p>
+                            <p class="extraitcode">&#160;</p>
+                            <p class="extraitcode">$oForm-&gt; Openlayers2Field($sTitle, $sName, $iWidth, $iHeight, $sProjection, $aLayers, $aExtent, $aTools, $aFeature);</p>
+                            <p class="Paragraphedeliste_9">OpenlayersField (libellé, nom du champ, largeur de la carte, hauteur de la carte, type de projection cartographique, tableau de paramètres des couches, tableau de paramètres de centrage, tableau de paramètres d’outils, tableau d’insertion de géométries).</p>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p>Avec : </p>
+                            <p class="extraitcode">$sTitle = "Zone d'extraction personnalisée : "; </p>
+                            <p class="extraitcode">$sName = &lt;"wktPolygon"&gt;</p>
+                            <p class="extraitcode">$iWidth = 600;</p>
+                            <p class="extraitcode">$iHeight = 400;</p>
+                            <p class="extraitcode">$sProjection = "EPSG:4326";</p>
+                            <p class="Paragraphedeliste"><span class="span_12">$</span><span class="span_16">sTitle</span><span class="span_12"> : libellé.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_12">$</span><span class="span_16">sName</span><span class="span_12"> : nom du champ à remplir =</span><span class="span_12"> nom du paramètre publié d</span><span class="span_12">ans</span><span class="span_12"> FME</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_12">$</span><span class="span_16">iWidth</span><span class="span_12"> : largeur de la carte.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_12">$</span><span class="span_16">iHeight</span><span class="span_12"> : hauteur de la carte.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_12">$</span><span class="span_16">sProjection</span><span class="span_12"> : type de projection voulue (si l’api le supporte), ce champ est rempli automatiquement si il est </span><span class="span_12">vide ( $sProjection=&#160;</span><span class="span_12">""</span><span class="span_12">)</span><span class="span_12">.</span><span class="span_12">Le code EPSG 4326</span><span class="span_12"> est le code du&#160; système de coordonnées </span><span class="span_12">WGS84</span><span class="span_12"> utilisé par Google M</span><span class="span_12">a</span><span class="span_12">ps. Le code EPSG 3857 équivalent au code 900913 utilisé par OpensStreetMap </span><span class="span_12"> correspond à la projection sphéirque Mercator.</span>
+                            </p>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="extraitcode">$aLayers = array (</p>
+                            <p class="extraitcode">"api"=&gt; "wms",</p>
+                            <p class="extraitcode">"layers"=&gt;"",</p>
+                            <p class="extraitcode">"bing-key"=&gt;"",</p>
+                            <p class="extraitcode">"google-key"=&gt;"",</p>
+                            <p class="extraitcode">"WmsName"=&gt;"OpenLayers WMS",</p>
+                            <p class="extraitcode">"WmsService"=&gt;" http://www.geosignal.org/cgi-bin/wmsmap?",</p>
+                            <p class="extraitcode">"WmsLayers"=&gt;"Departements,RASTER1000K,RASTER500K,RASTER250K,RASTER100K,RASTER50K,RASTER25K,RASTER5K",</p>
+                            <p class="extraitcode">"IgnWmtsName"=&gt;"Cartes IGN",</p>
+                            <p class="extraitcode">"IgnWmtsService"=&gt;"http://gpp3-wxs.ign.fr/0hpyzqnax0fjrsej4ss266c7/wmts", </p>
+                            <p class="extraitcode">"IgnWmtsLayers"=&gt;"ORTHOIMAGERY.ORTHOPHOTOS, GEOGRAPHICALGRIDSYSTEMS.CASSINI"</p>
+                            <p class="extraitcode">);</p>
+                            <p class="Paragraphedeliste"><span class="span_17">api</span><span class="span_11"> : source de la carte (google, bing, wms, osm ou&#160; ign-wmts)</span><span class="span_11">, il est possible d’ajouter plusieurs api à la fois en les séparant par une virgule (exemple&#160;: "api"=&gt;"google, bing, osm</span><span class="span_11"> " </span><span class="span_11">). Attention avec les&#160; projections utilisées en cas de multiple api</span><span class="span_11">.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">layers</span><span class="span_11">&#160;: couches à intégrer pour google osm et bing (Google Physical: gphy, Google Streets: gmap, Google Hybrid: ghyb, Google Satellite: gsat, Bing Road: broad, Bing Hybrid: bhyb, Bing Aerial: baer</span><span class="span_11">)&#160;; il est possible d’ajouter plusieurs cartes à la fois en les séparant par une virgule (exemple&#160;: </span><span class="span_11">"layers"=&gt;"gphy, gmap, ghyb, gsat</span><span class="span_11">" </span><span class="span_11">)</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">bing-key</span><span class="span_11"> : clé d’utilisation bing (n’est utile que lorsqu’on utilise l’api bing).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">google-key</span><span class="span_11">&#160;: clé d’utilisation google (n’est utile que lorsqu’on utilise l’api google).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">WmsName</span><span class="span_11">&#160;: nom que l’utilisateur donne à la </span><span class="span_11">carte wms</span><span class="span_11"> (n’est utile que lorsqu’on utilise l’api wms).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">WmsService</span><span class="span_11">&#160;: Flux WMS (n’est utile que lorsqu’on utilise l’api wms).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">WmsLayers</span><span class="span_11">&#160;: liste des couches (n’est utile que lorsqu’on utilise l’api wms).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">IgnWmtsName</span><span class="span_11">&#160;: nom que l’utilisateur donne à la </span><span class="span_11">carte</span><span class="span_11"> (n’est utile que lorsqu’on utilise l’api ign-wmts).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">IgnWmtsService</span><span class="span_11"> : Flux WMTS d’ign (n’est utile que lorsqu’on utilise l’api ign-wmts).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">IgnWmtsLayers</span><span class="span_11">&#160;: liste des couches ign (n’est utile que lorsqu’on utilise l’api ign-wmts).</span>
+                            </p>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="extraitcode">$aExtent = array (</p>
+                            <p class="extraitcode">"lon"=&gt;3,</p>
+                            <p class="extraitcode">"lat"=&gt;43,</p>
+                            <p class="extraitcode">"zoom"=&gt;8,</p>
+                            <p class="extraitcode">"xminMaxExtent"=&gt;50,</p>
+                            <p class="extraitcode">"yminMaxExtent"=&gt;0,</p>
+                            <p class="extraitcode">"xmaxMaxExtent"=&gt;50,</p>
+                            <p class="extraitcode">"ymaxMaxExtent"=&gt;0</p>
+                            <p class="extraitcode">);</p>
+                            <p class="Paragraphedeliste"><span class="span_17">lon</span><span class="span_11">&#160;: </span><span class="span_11">longitude de centrage</span><span class="span_11">.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">lat</span><span class="span_11">&#160;: latitude de centrage.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">zoom</span><span class="span_11">&#160;: zoom de centrage (de 0 à 15 selon les cartes).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">xminMaxExtent, yminMaxExtent, xmaxMaxExtent, ymaxMaxExtent</span><span class="span_17">&#160;</span><span class="span_11"></span><span class="span_11">: c</span><span class="span_11">es valeurs</span><span class="span_11"></span><span class="span_11">doivent ê</span><span class="span_11">tre renseignées </span><span class="span_11">pour définir le niveau de zoom maximale de la carte.</span>
+                            </p>
+                            <p>&#160;</p>
+                            <p class="p_24">Peut aussi être écrit sous la forme</p>
+                            <p class="extraitcode_1">$aExtent = array (</p>
+                            <p class="extraitcode_1">"xmin"=&gt;3,</p>
+                            <p class="extraitcode_1">"xmax"=&gt;43,</p>
+                            <p class="extraitcode_1">"ymin"=&gt;28,</p>
+                            <p class="extraitcode_1">"ymax"=&gt;57,</p>
+                            <p class="extraitcode_1">"xminMaxExtent"=&gt;50,</p>
+                            <p class="extraitcode_1">"yminMaxExtent"=&gt;0,</p>
+                            <p class="extraitcode_1">"xmaxMaxExtent"=&gt;50,</p>
+                            <p class="extraitcode_1">"ymaxMaxExtent"=&gt;0</p>
+                            <p class="extraitcode_1">&#160;</p>
+                            <p class="extraitcode_1">);</p>
+                            <p>&#160;</p>
+                            <p class="p_9">&#160;</p>
+                            <p class="p_22"> &#160;</p>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="extraitcode">$aTools = array ( </p>
+                            <p class="extraitcode">"mc",</p>
+                            <p class="extraitcode">"ls", </p>
+                            <p class="extraitcode">"pt", </p>
+                            <p class="extraitcode">"ov",</p>
+                            <p class="extraitcode">"sb",</p>
+                            <p class="extraitcode">"sc",</p>
+                            <p class="extraitcode">"point", </p>
+                            <p class="extraitcode">"line",</p>
+                            <p class="extraitcode">"poly",</p>
+                            <p class="extraitcode">"multi",</p>
+                            <p class="extraitcode">"modify" ,</p>
+                            <p class="extraitcode">"del",</p>
+                            <p class="extraitcode">"delall"</p>
+                            <p class="extraitcode">);</p>
+                            <p class="Paragraphedeliste"><span class="span_11">$</span><span class="span_17">aTools</span><span class="span_11">&#160;: tableau d’outils&#160;: pour ne pas afficher certains outils, il suffit de ne pas les ajouter au tableau.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">mc</span><span class="span_11">&#160;: (Mouse Coordonates), affiche les coordonnées en bas à droite de l’écran</span><span class="span_11">.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">ls</span><span class="span_11">&#160;: (Layer Switcher), outil pour changer de couche à tout moment</span><span class="span_11">.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">pt</span><span class="span_11">&#160;: (Projection type), affiche le système de projection utilisé en bas de l’écran</span><span class="span_11">.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">ov</span><span class="span_11">&#160;: (Over view), outil </span><span class="span_11">pour</span><span class="span_11"> afficher la fenêtre d’aperçu</span><span class="span_11">.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">sb</span><span class="span_11"> : (Scale bar), affiche </span><span class="span_11">l’outil de zoom à gauche de l’écran.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">sc</span><span class="span_11">&#160;: (Scale), </span><span class="span_11">affiche </span><span class="span_11">l’échelle en bas à gauche de la carte.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">point</span><span class="span_11">&#160;: permet de dessiner des points.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">line</span><span class="span_11">&#160;: permet de dessiner des lignes.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">poly</span><span class="span_11">&#160;: permet de dessiner des polygones.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">multi</span><span class="span_11">&#160;: permet de dessiner plusieurs géométries.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">modify</span><span class="span_11">&#160;: outil permettant de modifier certaines géométries.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">del</span><span class="span_11">&#160;: outil permettant de supprimer certaines géométries.</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">delall</span><span class="span_11">&#160;: outil permettant de supprimer toutes les géométries.</span>
+                            </p>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="extraitcode">$aFeature = array(</p>
+                            <p class="extraitcode">"type"=&gt;"WKT", </p>
+                            <p class="extraitcode">"content"=&gt;'GEOMETRYCOLLECTION(POLYGON((0.7031250000002 42.813720703125,3.1420898437502 42.462158203125,3.2080078125002 41.912841796875,0.5493164062502 40.5615234375,0.1757812500002 40.78125,0.7031250000002 42.813720703125)))'</p>
+                            <p class="extraitcode">);</p>
+                            <p class="Paragraphedeliste"><span class="span_11">$</span><span class="span_17">aFeature</span><span class="span_11">&#160;: </span><span class="span_11">tableau d’insertion de géométries</span><span class="span_11">, pour ne pas charger de géométries, laisser le tableau vide (attention de ne pas mélanger les systèmes de projection).</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">type</span><span class="span_11">&#160;: «&#160;WKT&#160;» ou «&#160;JSON&#160;».</span>
+                            </p>
+                            <p class="Paragraphedeliste"><span class="span_17">content</span><span class="span_11">&#160;: contenu à charger.</span>
+                            </p>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p>&#160;</p>
+                            <p class="p_25">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000057.png" style="height: 298px;width: 433px;" class="img_1" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de palette graphique</span>&#160;: graphicsPaletteField</li>
+                            </ul>
+                            <p>Champ permettant de créer une palette graphique pour sélectionner une couleur.</p>
+                            <p class="extraitcode">$oForm-&gt; graphicsPaletteField ("Couleur", "couleur", $aValues['password']);</p>
+                            <p class="Paragraphedeliste_9">graphicsPaletteField (libellé, nom du champ, valeur du champ)</p>
+                            <p>&#160;</p>
+                            <p class="p_25">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000058.png" style="height: 163px;width: 280px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de curseur&#160;:</span> SliderField</li>
+                            </ul>
+                            <p>Champ permettant de créer un slider pour sélectionner une valeur.</p>
+                            <p class="extraitcode">$oForm-&gt; SliderField ("Zoom", "zoom", $aValues['password'],30, 0, 100); </p>
+                            <p class="Paragraphedeliste_9">SliderField (libellé, nom du champ, valeur du champ, taille, valeur min, valeur max)</p>
+                            <p class="p_13">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000059.png" style="height: 42px;width: 194px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de code html&#160;:</span> FormContent</li>
+                            </ul>
+                            <p>Permet de rajouter du code html dans le formulaire sous forme de texte.</p>
+                            <p class="extraitcode">$oForm-&gt;formContent.= "&lt;div id='content'&gt;Titre&lt;/div&gt;";</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1"><span class="span_5">Ajout de sélecteur de fichiers </span>: treeviewField</li>
+                            </ul>
+                            <p>Champ permettant de créer une arborescence de fichiers et dossiers.</p>
+                            <p class="extraitcode">$oForm-&gt; SliderField ("Sélection de fichiers", "fileSelector", ‘C:/projets/gtf_files’,600, 300); </p>
+                            <p class="p_22">SliderField (libellé, nom du champ, Chemin racine, largeur, hauteur)</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300005a.png" style="height: 305px;width: 222px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm
new file mode 100755
index 0000000000000000000000000000000000000000..0c6ad8bb1c42ff9bd315b2efabb2db767928adaa
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm
@@ -0,0 +1,386 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>1 Bienvenue dans GTF&#160;</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo selected" href="#" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="1"><span class="span_1">1 </span>Bienvenue dans GTF</a>&#160;</h1>
+                            <p>&#160;</p>
+                            <p>GTF (Gestionnaire de Tâches pour FME) est une application 100% web qui permet de publier sur Internet des traitements conçus avec FME et de les mettre à disposition d’un grand nombre d’utilisateurs. C’est un outil de partage, de planification et de supervision de traitements FME. </p>
+                            <p>&#160;</p>
+                            <p>GTF offre des fonctions d’administration pour la création et la gestion des utilisateurs et l’attribution des droits sur les traitements.</p>
+                            <p>&#160;</p>
+                            <p>GTF est particulièrement bien adapté pour répondre à des besoins de&#160;: </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1"> conversion de fichiers</li>
+                                <li class="li_1" value="2">extraction de données</li>
+                                <li class="li_1" value="3">contrôle qualité</li>
+                                <li class="li_1" value="4">génération de rapports</li>
+                                <li class="li_1" value="5">gestion d'alertes</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p class="p_5">GTF se compose d’une application cliente et d’une API REST qui permet d'exploiter GTF sous forme de service web.</p>
+                            <p class="p_5">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">GTF Client  permet à l’administrateur de publier des traitements préalablement conçus avec FME Workbench. Par cette interface, l’administrateur gère les utilisateurs en leur attribuant des droits sur les traitements publiés, et peut également&#160; s'appuyer sur un annuaire MS-Active Directory pour assurer l'authentification et la gestion des droits. Il dispose par ailleurs de fonctions de supervision et de consultation de statistiques.  Les utilisateurs soumettent des demandes de traitements, chargent leurs propres données et téléchargent les résultats. Les traitements sont exécutés en mode asynchrone, ce qui permet aux utilisateurs de continuer à travailler sans attendre la fin du traitement. Un e-mail avertit l'utilisateur de la disponibilité du résultat. GTF Client permet également&#160; de s’abonner à un traitement à la fréquence souhaitée pour automatiser la production d'un traitement.</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">L'API REST de GTF permet à n'importe quelle application de faire appel aux services de GTF de manière transparente pour les utilisateurs. C'est la solution idéale pour les développeurs souhaitant offrir leur propre interface graphique.</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gestionnaire_de_t_ches_pour.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gestionnaire_de_t_ches_pour.htm
new file mode 100755
index 0000000000000000000000000000000000000000..b12cf9565d9cd143f08bb294b6af630e7b5824af
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gestionnaire_de_t_ches_pour.htm
@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="" data-mc-source-document="E:\svn\produit\gtf\doc\gtf_manuel_utilisateur .docx">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>Gestionnaire de Tâches pour FME</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_2" style="color: #00008b;">Gestionnaire de Tâches pour FME</p>
+                            <p class="p_2" style="color: #00008b;">2016.1</p>
+                            <p class="p_2" style="color: #00008b;">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf.png" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_3" style="color: #00008b;">Manuel Utilisateur</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p class="p_4" />
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gtf_guide_installation.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gtf_guide_installation.htm
new file mode 100755
index 0000000000000000000000000000000000000000..58af3fabeb3089468048e6f6a53e6cb8a7be4e67
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gtf_guide_installation.htm
@@ -0,0 +1,400 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="" data-mc-condition-tag-expression="include[Default.PrintOnly] " data-mc-source-document="E:\svn\produit\gtf\doc\gtf_manuel_utilisateur .docx">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>Gestionnaire de Tâches pour FME</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_2" style="color: #00008b;">Gestionnaire de Tâches pour FME</p>
+                            <p class="p_2" style="color: #00008b;">2016.1</p>
+                            <p class="p_2" style="color: #00008b;">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf.png" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_3" style="color: #00008b;">Guide d'installation</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gtf_manuel_utilisateur_.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gtf_manuel_utilisateur_.htm
new file mode 100755
index 0000000000000000000000000000000000000000..a7b968430f93e5a8a86987dac20d712858f5fa1d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/gtf_manuel_utilisateur_.htm
@@ -0,0 +1,1805 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>gtf_manuel_utilisateur </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <p class="p_4">&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h1 class="Titre1"><a name="1"><span class="span_1">1 </span>Bienvenue dans GTF</a>
+                            </h1>
+                            <p>&#160;</p>
+                            <p>GTF (Gestionnaire de Tâches pour FME) est une application 100% web qui permet de publier sur internet des traitements conçus avec FME et de les mettre à disposition d’un grand nombre d’utilisateurs. C’est un outil de partage, de planification et de supervision de traitements FME. </p>
+                            <p>&#160;</p>
+                            <p>GTF offre des fonctions d’administration pour la création et la gestion des utilisateurs et l’attribution des droits sur les traitements.</p>
+                            <p>&#160;</p>
+                            <p>GTF est particulièrement bien adapté pour répondre à des besoins de&#160;: </p>
+                            <p>conversion de fichiers</p>
+                            <ul class="ul_1">
+                                <li class="li_1" value="1">extraction de données</li>
+                                <li class="li_1" value="2">contrôle qualité </li>
+                                <li class="li_1" value="3">génération de rapport </li>
+                                <li class="li_1" value="4">gestion d’alertes</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p class="p_5">GTF se compose d’une application cliente, d’une API REST qui permet d'exploiter GTF sous forme de service web et d'une API Formulaire :</p>
+                            <p class="p_5">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">GTF Client  permet à l’administrateur de publier des traitements préalablement conçus avec FME Workbench. Par cette interface, l’administrateur gère les utilisateurs en leur attribuant des droits sur les traitements publiés, et peut également&#160; s'appuyer sur un annuaire MS-Active Directory pour assurer l'authentification et la gestion des droits. Il dispose par ailleurs de fonctions de supervision et de consultation de statistiques.  Les utilisateurs soumettent des demandes de traitements, chargent leurs propres données et téléchargent les résultats. Les traitements sont exécutés en mode asynchrone ce qui permet aux utilisateurs de continuer à travailler sans attendre la fin du traitement. Un e-mail avertit l'utilisateur de la disponibilité du résultat. GTF Client permet également&#160; de s’abonner à un traitement à la fréquence souhaitée pour automatiser la production d'un traitement.</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">L'API REST de GTF permet à n'importe quelle application de faire appel aux services de GTF de manière transparente pour les utilisateurs. C'est la solution idéale pour les développeurs souhaitant offrir leur propre interface graphique.</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="li_2" value="1">L'API Formulaire permet de mettre en forme le formulaire de saisie des paramètres en intégrant des composants (cartes open layer, arborescences de fichiers…)</li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="p_5">&#160;</p>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <h1 class="Titre1"><a name="2"><span class="span_1">2 </span>Les composants logiciels de GTF</a>
+                            </h1>
+                            <p class="p_5">&#160;</p>
+                            <p>L'architecture de GTF est constituée de plusieurs composants logiciels.</p>
+                            <p>&#160;</p>
+                            <table align="center" class="table_1">
+                                <col style="width: 105pt;" />
+                                <col style="width: 349pt;" />
+                                <tr style="height: 23pt;">
+                                    <td class="td_1">
+                                        <p class="p_6">Composants</p>
+                                    </td>
+                                    <td class="td_2">
+                                        <p class="p_6">Description</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">GTF client</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Applications Web&#160; permettant aux utilisateurs l’accès aux services GTF </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">Apache HTTPD</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Logiciel serveur HTTP.</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">PHP</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Langage de programmation</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">PostgreSQL </p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Système de gestion de base de données relationnelle utilisé pour le stockage des informations : demandes de traitements, traitements publiés, droits des utilisateurs... </p>
+                                        <p class="p_5">&#160;</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">PYCRON </p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Service Windows assurant l'exécution de tâches planifiées.</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">GTF Engine</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">GTF Engine désigne le moteur de GTF, la partie logicielle capable d’exécuter les traitements FME. GTF exploite au minimum un moteur GTF. Les moteurs supplémentaires permettent de répartir la charge sur plusieurs process ou machines. L'ajout de moteurs supplémentaires et soumis à l'acquisition des licences correspondantes.</p>
+                                        <p class="p_5">&#160;</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 23pt;">
+                                    <td class="td_3">
+                                        <p class="p_5">FME</p>
+                                    </td>
+                                    <td class="td_4">
+                                        <p class="p_5">Logiciel FME Professional Edition ou supérieure en licence fixe ou flottante. FME ne fait pas partie du logiciel GTF, mais il est indispensable à son fonctionnement. </p>
+                                    </td>
+                                </tr>
+                            </table>
+                            <p class="p_7"> &#160;</p>
+                            <p class="p_8">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000002.png" style="height: 377px;width: 534px;" class="img_1" />
+                            </p>
+                            <p class="p_5">&#160;</p>
+                            <h1 class="Titre1"><a name="3"><span class="span_1">3 </span>Installation de GTF</a>
+                            </h1>
+                            <p class="p_5">&#160;</p>
+                            <p>Pour installer GTF, il faut télécharger l'installeur sur le site <a href="http://download.veremes.com/">http://download.veremes.com</a>, dans le répertoire gtf. Les codes d'accès (login et password) sont fournis par e-mail à la suite d'une commande ou demande d'évaluation. Ces informations peuvent être renvoyées sur simple demande à codes@veremes.com.</p>
+                            <p>&#160;</p>
+                            <p>L'installeur existe sous deux formes, pour machine 32 et 64 bits.</p>
+                            <p>Le logiciel Apache httpd est installé avec GTF. Si Apache est déjà présent sur le serveur il est nécessaire d'utiliser un port différent : 81, 82... Pycron est installé automatiquement avec GTF. </p>
+                            <p>Le logiciel SGBD Postgresql peut ne pas être installé avec GTF. Dans ce cas, il est nécessaire d'exploiter une instance existante sur le même serveur ou sur une autre machine. La procédure d'installation automatique doit alors être complétée par une procédure manuelle qui est détaillée dans le rapport d'installation.</p>
+                            <p>&#160;</p>
+                            <p>Un rapport est généré automatiquement à la fin de l'installation. Il fournit des informations importantes sur la configuration de GTF et sur des éventuelles actions nécessaires pour finaliser l'installation.</p>
+                            <p>&#160;</p>
+                            <p>En cas de difficultés contactez support@veremes.com</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h1 class="Titre1"><a name="4"><span class="span_1">4 </span>Initialisation de GTF</a>
+                            </h1>
+                            <p>&#160;</p>
+                            <p>Après exécution de l’installeur, l’administrateur doit procéder à l’initialisation de l’application, c’est à dire à l’installation des moteurs FME et GTF en charge de l’exécution des traitements. </p>
+                            <p>Il se connecte à GTF dans le menu Démarrer&gt; Programmes &gt; GTF Client en utilisant&#160; les paramètres de connexion du compte administrateur définis lors de l’installation de l’application.&#160; </p>
+                            <p>&#160;</p>
+                            <p>Pour commencer, l’administrateur valide les paramètres relatifs au serveur dans le Mode Moteur &gt; Onglet Serveur. Il s’assure que le serveur localhost (serveur installé par défaut par l’installeur) soit bien déclaré et que les répertoires Pycron et gtf.engines sont bien associés au serveur.</p>
+                            <p>&#160;</p>
+                            <p>Pour initialiser l’application, l’administrateur doit ensuite&#160; procéder aux deux étapes&#160;suivantes&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Déclaration du(es) moteur(s) FME</li>
+                                <li class="Paragraphedeliste_1" value="2">Déclaration du(es) moteur(s) GTF </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="4.1"><span class="span_1">4.1 </span>Ajout de moteur(s) FME</a> <![CDATA[ ]]></h2>
+                            <p>Un moteur FME est l’instance de FME en charge de l’exécution des projets. GTF permet d’exploiter différents moteurs hétérogènes. On peut ainsi exploiter un moteur FME 2012 en 32 bits et une instance de FME 2013 en 64 bits. </p>
+                            <p>&#160;</p>
+                            <p>La première étape consiste à déclarer un moteur FME exploitable par GTF. Dans le mode Moteurs &gt; Onglet Moteur FME, l’administrateur nomme le moteur, indique le chemin du moteur fme.exe et lui associe le serveur désiré. Notez que la valeur du serveur ‘localhost’ est proposée par défaut dans la liste déroulante. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000004.png" style="height: 318px;width: 376px;" class="img_1" />
+                            </p>
+                            <p class="Paragraphedeliste_2">
+                                <img src="../resources/images/attention.png" />Il est fortement conseillé de nommer le moteur FME en indiquant le numéro de version, le Service Pack, le numéro de build et le nombre de bits. Par exemple : «&#160;FME 2013 SP2 b13499 32b&#160;».</p>
+                            <p>&#160;</p>
+                            <p>L’administrateur clique ensuite sur ‘Créer’. Un bouton ‘Test’ permet de vérifier le bon déroulement de la déclaration du moteur FME. Notez que le nom exact de FME apparaît : il est alors possible de renommer le moteur en respectant la syntaxe retournée par le test.</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="4.2"><span class="span_1">4.2 </span>Ajout de moteur(s) GTF</a>
+                            </h2>
+                            <p>On entend par Moteur GTF la capacité d’exploiter un moteur FME dans GTF. La création d’un Moteur GTF permet d’associer à un serveur un moteur et de définir une période de déclenchement de l’activité spécifique. Un moteur GTF est associé à un seul moteur FME mais plusieurs moteurs GTF peuvent exploiter le même moteur FME.</p>
+                            <p>L’ajout de moteurs GTF supplémentaires permet à l’administrateur d’appliquer une stratégie de traitement de projets en spécialisant par exemple certains moteurs et en permettant la parallélisation des traitements. </p>
+                            <p>&#160;</p>
+                            <p>Dans le mode Moteurs &gt; Onglet Moteur GTF, le bouton «&#160;Ajouter moteur GTF&#160;» ouvre le formulaire de création&#160; de moteur GTF.</p>
+                            <p>L’administrateur attribue un nom au moteur GTF et définit la période d’activité en minutes de ce dernier (période de déclenchement du moteur). Il peut choisir de rendre inactif ce moteur, puis choisit le serveur et le moteur FME à associer.&#160;Il associe ensuite un ou plusieurs mots clés au moteur. </p>
+                            <blockquote>
+                                <p style="font-style: italic;">
+                                    <img src="../resources/images/attention.png" />Associer un ou plusieurs mots clés à un moteur permet à l'administrateur de mettre en place une stratégie de distribution des traitements sur plusieurs moteurs GTF : quand un utilisateur crée une demande de traitement, un moteur spécifique est spécifiquement attributé. Chaque moteur GTF est associé à un ou plusieurs mots clés. Associer un ou plusieurs mots clés à un moteur GTF permet à l’administrateur de mettre en place une stratégie de spécialisation des moteurs. Chaque projet FME&#160;est ensuite associé à un mot clé. L'affiliation d'un projet à un moteur GTF se fait ainsi à partir de mots clés.</p>
+                                <p style="font-style: italic;">L'administrateur peut choisir des mots clés existants et déjà affiliés à d'autres moteurs dans la partie de gauche 'Mots clés disponibles', ou saisir directement le nom d'un nouveau mot clé dans le bloc de droite 'Mot clé lié au moteur'. </p>
+                            </blockquote>
+                            <p style="font-style: italic;">&#160;</p>
+                            <p class="Paragraphedeliste_2">
+                                <img src="../resources/images/attention.png" />Il est recommandé de nommer le moteur GTF selon cette règle : ID (auto)_ FME Version Service Pack. Par exemple : «&#160; #3 FME 2013 SP 3&#160;».</p>
+                            <p class="p_1">
+                                <img src="../resources/images/moteurgtf.png" style="width: 432px;height: 363px;">
+                                </img>
+                            </p>
+                            <p>&#160;</p>
+                            <p>Il clique ensuite sur le bouton ’Créer’pour finaliser la création du moteur GTF.</p>
+                            <h2 class="Titre2"><a name="4.3"><span class="span_1">4.3 </span>Activation du fichier de licence</a> <![CDATA[ ]]></h2>
+                            <p>Dans le mode Configuration, la section Licence permet de demander un fichier de licence nécessaire pour activer les licences permanentes. </p>
+                            <p>Le bouton «&#160;Demande de fichier de licence&#160;» permet d’envoyer par mail une demande de génération de fichier de licence. Indiquer le numéro de licence fourni dans l’accusé de réception de votre commande, ainsi que l’adresse mail à laquelle le fichier doit être envoyé. </p>
+                            <p>Une fois obtenu,&#160; indiquer l’emplacement du fichier de licence délivré par Veremes puis cliquer sur «&#160;Activer&#160;». </p>
+                            <h2 class="Titre2"><a name="4.4"><span class="span_1">4.4 </span>Test&#160;: Import de nouveaux traitements</a> <![CDATA[ ]]></h2>
+                            <h3 class="Titre3"><a name="4.4.1"><span class="span_1">4.4.1 </span>Import des traitements exemples</a> <![CDATA[ ]]></h3>
+                            <p>A ce stade, pour s’assurer du bon fonctionnement de GTF, il est recommandé de procéder à l’import de nouveaux traitements. Pour cela, Veremes met à disposition sur son site de téléchargement des projets exemples au format .gex.</p>
+                            <p>Le projet 'Admin_Import' (associé au groupe Administration et installé automatiquement lors de l’installation de GTF) permet l’import de nouveaux traitements stockés dans un fichier .gex. Télécharger le fichier «exemples.gex»&#160; sur notre site de téléchargement. <a href="http://download.veremes.com"><span class="Lienhypertexte">http://download.veremes.com</span></a> (répertoire gtf/gex)</p>
+                            <p>&#160;</p>
+                            <p>Se connecter à GTF (compte administrateur) puis ajouter une demande.</p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000006.png" style="width: 381px;height: 358px;" class="img_1" />
+                            </p>
+                            <p>Choisir le traitement "Admin-Import" puis dans « Fichier d'export GTF à importer (.gex) : », cliquer sur «&#160;Parcourir&#160;» et sélectionner le fichier exemples.gex préalablement téléchargé.</p>
+                            <p>&#160;</p>
+                            <p><i></i>
+                                <img src="../resources/images/attention.png" />Le paramètre "Mettre à jour les projets ayant le même ID Global" indique à GTF si il  doit charger ou pas les projets déjà existants dans la base GTF  et identifiés de façon unique&#160; par l'attribut ID Global. (Cet attribut est généré automatiquement et est associé de façon unique  à chaque projet).  Si ce paramètre vaut Non et que le fichier .gex contient un projet FME avec ID Global déjà existant dans GTF, alors le fichier n'est pas chargé. </p>
+                            <p>Inversément, Si ce paramètre vaut Oui, alors les projets dont le nom existe déjà dans la base de données GTF seront écrasés. Un rapport final permet de distinguer les projets chargés de ceux non chargés<i>. </i></p>
+                            <p>&#160;</p>
+                            <p>Cliquer&#160; sur « Créer la demande ». La demande est prise en compte et se retrouve dans la file d'attente du moteur GTF.&#160;</p>
+                            <p>S’assurer que la Demande ait bien été traitée en consultant le mode Supervision, puis retourner dans le mode Publication pour consulter la liste des traitements nouvellement importés. </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000007.png" style="height: 144px;width: 550px;" class="img_1" />
+                            </p>
+                            <p class="p_9">2 nouveaux traitements sont désormais disponibles dans GTF.</p>
+                            <p class="p_9">&#160;</p>
+                            <p class="Paragraphedeliste_3">&#160;</p>
+                            <h3 class="Titre3"><a name="_Import_des_traitements"></a><a name="4.4.2"><span class="span_1">4.4.2 </span>Import des traitements d’administration</a> <![CDATA[ ]]></h3>
+                            <p>Les projets 'Nettoyage des fichiers temporaires' et 'Sauvegarde GTF' sont disponibles sur notre site de téléchargement, via le projet admin.gex.&#160;Ils permettent&#160;les fonctions d’administration suivantes&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">le nettoyage des fichiers temporaires stockés dans les répertoires temporaires de GTF et FME.</li>
+                                <li class="Paragraphedeliste_1" value="2">la sauvegarde de la configuration de l'environnement GTF, c'est-à-dire de la base PostgreSQL, des demandes de traitements et leurs résultats, de leurs résultats et du fichier pycron. </li>
+                            </ul>
+                            <p class="Paragraphedeliste_1">&#160;</p>
+                            <p>Pour importer ces deux fichiers, procédez de la même manière que précédemment en téléchargeant sur le site <a href="http://download.veremes.com"><span class="Lienhypertexte">http://download.veremes.com</span></a> (répertoire gtf/gex) le fichier admin.gex. </p>
+                            <p>Se connecter ensuite à GTF et faire une demande du Traitement Admin-Import. Choisir le fichier admin.gex précédemment téléchargé. </p>
+                            <p>Assurez-vous que dans le mode Publication,&#160; les deux nouveaux traitements aient bien été importés&#160;: </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000009.png" style="width: 623px;height: 86px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>La procédure de sauvegarde et restauration de l'application est expliquée dans le chapitre 11.3 <a href="#_Sauvegarde_et_restauration" class="selected"><span class="Lienhypertexte">Sauvegarde et restauration de l’application</span></a>.</p>
+                            <h1 class="Titre1"><a name="5"><span class="span_1">5 </span>Gestion des utilisateurs</a> <![CDATA[ ]]></h1>
+                            <p>&#160;</p>
+                            <p>Un utilisateur GTF est un compte connu par l’application GTF qui peut se connecter à GTF et utiliser ses services.&#160; </p>
+                            <p>Deux profils d’utilisateurs GTF sont à distinguer : </p>
+                            <p class="Style1_1">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">«&#160;Utilisateurs PostgreSQL&#160;»&#160;: utilisateurs authentifiés par la base de données interne à GTF&#160;: PostgreSQL, créés directement dans GTF&#160; </li>
+                                <li class="Paragraphedeliste_1" value="2">«&#160;Utilisateur Active Directory (AD)&#160;»&#160;: utilisateurs d’un domaine et authentifiés par un annuaire Active Directory, importés dans GTF</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>La procédure de création des utilisateurs GTF diffère selon le profil&#160;: </p>
+                            <h2 class="Titre2"><a name="5.1"><span class="span_1">5.1 </span>Création d’utilisateurs et des groupes PostgreSQL</a>
+                            </h2>
+                            <p>Le mode ‘Utilisateurs &gt; Onglet Utilisateurs’ liste l’ensemble des utilisateurs. Il permet l’ajout de nouveaux utilisateurs, leur édition et suppression. Après avoir cliqué sur ‘Ajouter utilisateur’, le formulaire suivant s’affiche :</p>
+                            <p style="text-align: center;">&#160;&#160;<img src="../resources/images/gtf_creation_utilisateur.png" alt="Ajout utilisateur" style="width: 448px;height: 493px;" /></p>
+                            <p>Attribuer un compte de connexion, un nom, un e-mail, un organisme et un service à l’utilisateur en cours de création, lui associer son ou ses groupes d’appartenance et définir la ou les adresses IP à partir desquelles il pourra se connecter à l’application. Valider la création du compte en cliquant sur ‘Créer’. Saisir ensuite le mot de passe propre à l’utilisateur. En cliquant sur ‘Mettre à jour’ le processus de création d’un utilisateur est terminé. </p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_5">
+                                <img src="../resources/images/attention.png" /><a name="Droits_administrateur"></a>Pour avoir des droits d'administration et accéder aux modes spécifiques (utilisateurs, moteurs, publication, supervision, statistiques, ...) , des privilèges gtf_admin doivent être attribués à l'utilisateur. </p>
+                            <p class="Style1">&#160;</p>
+                            <h3 class="Titre3"><a name="5.1.1"><span class="span_1">5.1.1 </span>Création de groupes d’utilisateurs PostgreSQL</a>
+                            </h3>
+                            <p>Chaque utilisateur doit être associé à un ou plusieurs groupes. Chaque groupe correspond à un profil d'utilisateurs ayant accès à des traitements qui leurs sont spécifiquement dédiés. Chaque groupe doit comporter au moins un traitement.</p>
+                            <p>&#160;</p>
+                            <p>Le mode ‘Utilisateurs &gt; Onglet Groupes’ liste les groupes d’utilisateurs. Il permet d’en ajouter ou d’en supprimer et de leur associer un ou plusieurs traitements, un ou plusieurs utilisateurs ainsi que un ou plusieurs Dépôts (Répertoires de surveillance). </p>
+                            <p>Après avoir cliqué sur “Ajouter groupe”, le formulaire suivant s’affiche : </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300000c.png" style="height: 437px;width: 435px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>Attribuer un nom au nouveau groupe et lui associer un ou plusieurs traitements, utilisateurs et/ou dépôts. Cliquer ensuite sur « Créer ». Le nom du groupe nouvellement créé apparaît désormais dans la liste des groupes.</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="5.2"><span class="span_1">5.2 </span>Utilisateurs et groupes d’un annuaire Active Directory</a>
+                            </h2>
+                            <p>Il est possible de gérer plusieurs domaines et d’exploiter des groupes de sécurité définis directement dans un annuaire Active Directory. </p>
+                            <p>&#160;</p>
+                            <p>L’administrateur a la possibilité d’importer des utilisateurs et des groupes depuis Active Directory. Cette méthode permet d’hériter des droits issus de la gestion centralisée AD des utilisateurs au sein d’un organisme. </p>
+                            <p>&#160;</p>
+                            <p>L’administrateur crée dans GTF, le nouveau domaine, puis importe les utilisateurs et les groupes. L’attribution des groupes ainsi que les mots de passe des utilisateurs ne pourront pas être changés.</p>
+                            <h3 class="Titre3"><a name="5.2.1"><span class="span_1">5.2.1 </span>Ajout de domaines Active Directory</a>
+                            </h3>
+                            <p>Le mode ‘Utilisateurs &gt; Onglet Domaines’ liste les domaines Active Directory. Il permet de créer, modifier et supprimer des domaines. Le bouton ‘Ajouter Domaine’ affiche le formulaire suivant : </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300000d.png" style="height: 416px;width: 403px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>L’administrateur saisit les informations suivantes&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Nom de domaine&#160;: le nom de domaine utilisé pour la connexion. Par exemple,&#160; ‘siege.entreprise.com’</li>
+                                <li class="Paragraphedeliste_1" value="2">IP ou nom de serveur&#160;: adresse IP ou nom du serveur assurant le rôle de serveur Active Directory</li>
+                                <li class="Paragraphedeliste_1" value="3">Dn de base de recherche (utilisateur)&#160;: point d’entrée pour la recherche des utilisateurs. </li>
+                                <li class="Paragraphedeliste_1" value="4">Dn de base de recherche (groupe)&#160;: point d’entrée pour la recherche des groupes</li>
+                                <li class="Paragraphedeliste_1" value="5">Filtre (utilisateur)&#160;: permet de définir des filtres pour la recherche des utilisateurs</li>
+                                <li class="Paragraphedeliste_1" value="6">Filtre (groupe)&#160;: permet de définir des filtres pour la recherche des groupes</li>
+                                <li class="Paragraphedeliste_1" value="7">Vérifier les droits lors du lancement du robot : permet au robot de vérifier si un utilisateur du domaine possède toujours les droits lors de l’exécution du traitement. Pour cela le robot a besoin de connaitre le login et le mot de passe d’un utilisateur du domaine.</li>
+                                <li class="Paragraphedeliste_1" value="8">Login : login d’un utilisateur du domaine.</li>
+                                <li class="Paragraphedeliste_1" value="9">Mot de passe : mot de passe de l’utilisateur du domaine.</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Le login et le mot de passe saisis ici permettent de vérifier les droits de l’utilisateur Active Directory lors de l’exécution du robot. </p>
+                            <p>&#160;</p>
+                            <p>En cliquant sur «&#160;Créer&#160;» la procédure de création de domaine Active Directory dans GTF est finalisée. </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_3"><span class="span_2"><img src="../resources/images/attention.png" />L’administrateur doit </span><span class="span_2">ensuite</span><span class="span_2">&#160; modifier manuellement le fichier de configuration de la base de données PostgreSQL pour autoriser la connexion des utilisateurs du domaine. Dans le répertoire d’installation de PostgreSQL,&#160; modifier à l’aide d’un éditeur de texte le fichier pg_hba.conf situé dans le dossier data</span><span class="span_2"></span><span class="span_2">: </span>
+                            </p>
+                            <p class="Paragraphedeliste_1">&#160;</p>
+                            <p class="p_10">Avant modification vous devriez avoir la configuration suivante&#160;:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"># IPv6 local connections:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="Paragraphedeliste"><span class="span_2">Vous</span> devez rajouter les deux lignes suivantes&#160;:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_nomdomaine&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160; ldap ldapserver=nomduserveur ldapprefix=""</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_nomdomaine&#160; ::1/128&#160;&#160;&#160;&#160;&#160; ldap ldapserver=nomduserveur ldapprefix=""</p>
+                            <p class="extraitcode_1">&#160;</p>
+                            <p class="Paragraphedeliste_2">Pour obtenir la configuration suivante&#160;:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"><span class="span_2">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_</span><span class="span_3">nomdomaine</span><span class="span_2">&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160; ldap ldapserver=</span><span class="span_3">nomduserveur</span><span class="span_2"> ldapprefix=""</span>
+                            </p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"># IPv6 local connections:</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; u_scheduler&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; trust</p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +superusers&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p class="extraitcode_1"><span class="span_2">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +gtf_</span><span class="span_3">nomdomaine</span><span class="span_2">&#160; </span><span class="span_2">::1/128</span><span class="span_2">&#160;&#160;&#160;&#160;&#160; ldap ldapserver=</span><span class="span_3">nomduserveur</span><span class="span_2"> ldapprefix=""</span>
+                            </p>
+                            <p class="extraitcode_1">host&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ::1/128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; md5</p>
+                            <p><span class="span_4">Attention&#160;!&#160; </span><span class="span_4">L’ordre des lignes doit </span><span class="span_4">impérativement </span><span class="span_4">être respecté. </span>
+                            </p>
+                            <h3 class="Titre3"><a name="5.2.2"><span class="span_1">5.2.2 </span>Import d’utilisateurs d’Active Directory</a>
+                            </h3>
+                            <p>Le bouton «&#160;Importer de l’AD&#160;» permet d’importer des utilisateurs à partir d’un serveur Active Directory.</p>
+                            <p>Une interface de connexion apparaît à l’écran. L’administrateur saisit son login et mot de passe Active Directory  afin de se connecter au domaine précédemment créé. </p>
+                            <p>&#160;</p>
+                            <p>Une fois la connexion effectuée, l’administrateur GTF peut soit naviguer dans l’arborescence de l’annuaire du domaine, soit effectuer une recherche à partir de critères.</p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300000e.png" style="height: 71px;width: 160px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p><span class="span_5">Navigation d</span><span class="span_5">ans l’arbre </span>
+                            </p>
+                            <p>Si l’option Navigation dans l’arbre est sélectionnée, l’arborescence du serveur Active Directory s’affiche dans la partie gauche de l’écran. Lorsque l’administrateur sélectionne un nœud, la liste des utilisateurs apparaît dans la partie droite de l’écran.</p>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300000f.png" style="height: 186px;width: 662px;" class="img_1" />
+                            </p>
+                            <p>Il suffit ensuite de sélectionner les utilisateurs désirés puis de cliquer sur le bouton «&#160;Importer&#160;». Le processus d’import est terminé. </p>
+                            <p>Pour se connecter, les utilisateurs devront utiliser un login de type <span class="span_5">login@nomdomaine</span></p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p class="p_11">Recherche d’utilisateur AD </p>
+                            <p>La recherche d’utilisateurs peut se faire selon 3 critères&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Le compte utilisateur</li>
+                                <li class="Paragraphedeliste_1" value="2">Le ou les groupes AD</li>
+                                <li class="Paragraphedeliste_1" value="3">Le service</li>
+                            </ul>
+                            <p class="p_12" style="text-align: left;">Une fois l’utilisateur désiré trouvé, il suffit de le cocher puis de cliquer sur le bouton Importer. </p>
+                            <p>&#160;</p>
+                            <p>L’interface de connexion d’un utilisateur importé de la sorte, comporte désormais un champ Domaine, permettant la sélection du domaine AD d’appartenance. L’utilisateur s’authentifie  avec son&#160; login et mot de passe de l’annuaire AD.</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000010.png" style="height: 201px;width: 412px;" class="img_1" />
+                            </p>
+                            <h3 class="Titre3"><a name="5.2.3"><span class="span_1">5.2.3 </span>Import de groupes Active Directory</a> <![CDATA[ ]]></h3>
+                            <p>Le bouton «&#160;Importer de l’AD&#160;» permet d’importer des groupes à partir d’un serveur Active Directory.</p>
+                            <p>L’association des utilisateurs et des groupes Active Directory s’effectue directement dans l’Active Directory. L’application récupère les groupes d’un utilisateur Active Directory au moment de la connexion.</p>
+                            <p>&#160;</p>
+                            <p>Une interface de connexion apparaît à l’écran. Saisir le login et mot de passe afin de se connecter au domaine. </p>
+                            <p>Une fois la connexion effectuée, l’administrateur GTF peut soit naviguer dans l’arborescence de l’annuaire du domaine, soit effectuer une recherche à partir&#160; du nom du groupe. </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300000e.png" style="height: 71px;width: 160px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p class="p_11">Navigation dans l’arbre</p>
+                            <p> Lorsque l’administrateur sélectionne un nœud, la liste des groupes apparaît dans la partie droite de l’écran.</p>
+                            <p>Il suffit alors de sélectionner  le ou les groupes désirés puis de cliquer sur le bouton «&#160;Importer&#160;». Les groupes sont importés. Le groupe nouvellement créé apparait dans la liste des groupes. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000011.png" style="height: 188px;width: 425px;" class="img_1" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <p>&#160;</p>
+                            <p class="p_11">Recherche de groupe AD</p>
+                            <p>La recherche d’un groupe AD peut se faire à partir du nom de groupe recherché. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="5.2.4"><span class="span_1">5.2.4 </span>Gestion mixte des utilisateurs de domaines</a> <![CDATA[ ]]></h3>
+                            <p>GTF permet d’attribuer aux utilisateurs d’un domaine Active Directory, un groupe local défini dans la base interne PostgreSQL. De la sorte, un administrateur GTF ne disposant pas de droits d’administration d’un annuaire Active Directory, peut tout de même créer ses propres groupes d’utilisateurs de GTF issus d’un annuaire. </p>
+                            <p>&#160;</p>
+                            <p>La sous section «&#160;Sécurité&#160;» du mode Configuration permet d’activer la gestion mixte des utilisateurs en autorisant des utilisateurs du domaine à appartenir à des groupes locaux. </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000012.png" style="height: 128px;width: 455px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <h1 class="Titre1"><a name="6"><span class="span_1">6 </span>Publication de traitements</a>
+                            </h1>
+                            <p>&#160;</p>
+                            <p>Un utilisateur avec des droits d'adminstration peut publier un traitement. Après avoir généré un projet dans FME, il crée un traitement dans GTF puis l'associe au projet.</p>
+                            <p>Le mode Publication, uniquement accessible par un utilisateur ayant des droits d'administration, comporte l’ensemble des formulaires permettant la création et le paramétrage des traitements GTF. </p>
+                            <h2 class="Titre2"><a name="6.1"><span class="span_1">6.1 </span>Ajout de projet FME.</a> <![CDATA[ ]]></h2>
+                            <p>Il existe deux façons dans GTF de créer des Projets FME : l'ajout de projet  et l'Import de projets. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="6.1.1"><span class="span_1">6.1.1 </span>Ajout de projet FME</a>&#160;  </h3>
+                            <p>Le bouton ‘Ajouter Projet FME’ de l’onglet Projets FME permet d’accéder au formulaire de création de projet. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/ajout_projet_general.png" style="width: 589px;height: 399px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>La première étape consiste à Attribuer un nom au traitement. </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />Règles de nommage des projets :</p>
+                            <p>GTF permet d'exploiter les métadonnées du projet FME source. L'administrateur&#160; peut choisir de ne pas attribuer de Nom au traitement et récupérer le nom déterminé dans les métadonnées (Propriétés) du projet.fmw. </p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/metadonnees_fme.png" style="width: 550px;height: 392px;" />
+                            </p>
+                            <p style="text-align: center;"><i>Metadonnées du script 'extract_dept.fmw'.</i>
+                            </p>
+                            <p>&#160;</p>
+                            <p>Plusieurs options sont possibles : </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">L'administrateur nomme le projet directement dans GTF et écrase le nom du projet FME s'il est existant. Dans l'exemple ci-dessu, le projet sera nommé 'Extraction_departements'</li>
+                                <li class="Paragraphedeliste_1" value="2">L'administrateur choisit d'utiliser le nom du projet FME, défini dans ses propriétés, et laisse donc dans GTF le champ 'Nom du traitement' vide. Le nom du projet FME est alors utilisé. Dans l'exemple ci dessous, le nom Extraction_departement sera attribué. </li>
+                                <li class="Paragraphedeliste_1" value="3">Si l'administrateur ne saisit pas de nom de projet dans GTF et si aucun nom n'est attribué dans le projet FME, alors le nom de fichier du script FME est utilisé avec son extension .fmw. Dans l'exemple ci-dessus, le nom du projet sera 'extract_dept.fmw'</li>
+                                <li class="Paragraphedeliste_1" value="4">Il est impossible de créer un projet avec un nom déjà existant. GTF retourne dans ce cas une erreur. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>L’administrateur choisit ensuite la disponibilité du traitement sur abonnement et pour <a href="#6.3" title="Dépôt. Répertoire de surveillance." alt="Dépôt. Répertoire de surveillance." class="selected">Surveillance</a> <span class="span_6"></span>puis le relie à un projet FME dans lequel il aura pris soin de publier certains paramètres comme par exemple le répertoire destination. Le paramètre “Ressources complémentaires” permet d’associer les ressources nécessaires pour l'exécution du projet FME.</p>
+                            <p>Il est également possible de verrouiller un projet pour en empêcher sa suppression. </p>
+                            <p>Le <a href="#6.5" class="selected">modèle d'email</a> à associer au traitement est défini ensuite. </p>
+                            <p> Le bouton ‘Créer’ permet ensuite de finaliser la première étape du processus de création de traitement en générant le formulaire correspondant. </p>
+                            <p>&#160;</p>
+                            <p>La création d'un projet génère ensuite un attribut 'ID Global' qui correspond à un identifiant unique universel du projet. Il s'agit d'une clé unique qui permet par exemple en cas de réinstallation de GTF, d'assurer l'unicité et le référencement du projet. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="6.1.2"><span class="span_1">6.1.2 </span>Import de projets FME</a> <![CDATA[ ]]></h3>
+                            <p>GTF offre des fonctionnalités de catalogage et de gestion du patrimoine de projets FME disponibles dans un organisme. A cette fin et pour faciliter la création de plusieurs projets en même temps,&#160;  la fonction d'import a été créée permettant  le chargement dans GTF  de plusieurs projets FME en une seule fois. </p>
+                            <p>Après avoir cliqué sur le bouton 'Import' en bas à droite de la fenêtre, l'administrateur clique sur le bouton Parcourir, et sélectionne les projets FME qu'il souhaite intégrer à GTF. Il clique ensuite sur le bouton 'Charger'. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000014.png" style="height: 387px;width: 564px;" class="img_1" />
+                            </p>
+                            <p>Une fois chargés, les projets FME apparaissent dans la liste des projets FME du mode Publication. L'administrateur est ensuite en charge de nommer ou renommer les fichiers, de gérer leur métadonnées et de leur associer les groupes et droits&#160; désirés. </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_3">
+                                <img src="../resources/images/attention.png" />Tous les visualiseurs contenus dans un projet FME sont désactivés lors du processus d'import ou d'ajout&#160; de projets dans GTF. </p>
+                            <h3 class="Titre3"><a name="6.1.3"><span class="span_1">6.1.3 </span>Attribution de droits au traitement</a> <![CDATA[ ]]></h3>
+                            <p>Pour pouvoir être exploité, un traitement doit être associé à un groupe. Dans la section ‘Droits’, l’administrateur associe un groupe au projet nouvellement créé en faisant glisser le groupe choisi dans la partie de Groupes associés au traitement. Il clique ensuite sur le bouton « Mettre à jour ».</p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000015.png" style="height: 237px;width: 580px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="6.1.4"><span class="span_1">6.1.4 </span>Gestion des métadonnées</a> <![CDATA[ ]]></h3>
+                            <p> GTF permet la gestion des métadonnées d'un projet et l'exploitation des métadonnées issues des projets FME. </p>
+                            <p>Les métadonnées d'un projet FME, définies dans les Propriétés du projet FME&#160; via le Navigateur, sont  chargées dans GTF. Les sections Description, Conditions d'utilisation, utilisation, Pré requis et Historique sont directement issues du projet FME. </p>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000016.png" style="width: 623px;height: 303px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>La section Métadonnées du mode Publication permet à l'administrateur, de modifier ces dernières et de les réécrire dans le projet FME. </p>
+                            <ul>
+                                <li value="1">Le bouton 'Mettre à jour' permet d'enregistrer les modifications des métadonnées dans GTF. </li>
+                                <li value="2">Le bouton 'Relire le projet' permet de recharger le projet FME et ses métadonnées. </li>
+                                <li value="3">Le bouton 'Ecrire le projet' permet de modifier les métadonnées du projet FME source. </li>
+                            </ul>
+                            <h3 class="Titre3"><a name="6.1.5"><span class="span_1">6.1.5 </span>Gestion et personnalisation des formulaires</a>
+                            </h3>
+                            <p>La section Formulaire du mode Publication permet de gérer l’affichage du formulaire de demande de traitement tel qu'il sera affiché lors d’une demande émise par&#160; un utilisateur. </p>
+                            <p>Le formulaire par défaut comporte les paramètres publiés du projet FME. Après visualisation, l’administrateur peut choisir de conserver en l’état ce formulaire ou de le personnaliser. </p>
+                            <p>&#160;</p>
+                            <p>Chaque projet FME chargé dans GTF est stocké dans le répertoire \workspace du répertoire d'installation de GTF. Le&#160; sous répertoire workspace\fme stocke le projet .fmw et le répertoire workspace\form stocke les fichiers de gestion et de personnalisation des formulaires du traitement. </p>
+                            <p>Une fois un projet créé, GTF créé 3 fichiers identiques : </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">DsubForm.class.inc : formulaire par défaut du traitement</li>
+                                <li class="Paragraphedeliste_1" value="2">SubForm.class.inc : formulaire publié par GTF</li>
+                                <li class="Paragraphedeliste_1" value="3">WsubForm.class.inc : formulaire destiné à être personnalisé</li>
+                            </ul>
+                            <p>Lors de la publication d'un formulaire personnalisé, le fichier WsubForm est modifié puis écrase le fichier SubForm. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Plusieurs actions sont disponibles&#160;: </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000017.png" style="width: 307px;height: 161px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Pré visualiser le formulaire publié&#160;: affiche le formulaire publié dans la zone de visualisation. </li>
+                                <li class="Paragraphedeliste_1" value="2">Pré visualiser le formulaire par défaut&#160;: affiche le formulaire par défaut dans la zone de visualisation. Ce formulaire contient les paramètres tels qui ont été définis lors de la création du projet dans FME</li>
+                                <li class="Paragraphedeliste_1" value="3">Pré visualiser le formulaire personnalisé&#160;: affiche le formulaire précédemment personnalisé par l’administrateur dans la zone de visualisation </li>
+                                <li class="Paragraphedeliste_1" value="4">Visualiser le code du formulaire publié&#160;: affiche le code du formulaire publié contenu dans le fichier SubForm.class.inc&#160; généré automatiquement par GTF</li>
+                                <li class="Paragraphedeliste_1" value="5">Visualiser le code du formulaire par défaut : afficheen lecture seule le contenu dufichier DsubForm.class.inc </li>
+                                <li class="Paragraphedeliste_1" value="6">Editer le formulaire personnalisé : permet la personnalisation du formulaire en éditant le contenu du fichier WsubForm.class.inc destiné à la modification des paramètres directement dans GTF</li>
+                                <li class="Paragraphedeliste_1" value="7">Régénérer le formulaire par défaut&#160;: force la création du fichier DsubForm.class.inc, fichier du formulaire par défaut. Le formulaire publié reste inchangé. </li>
+                                <li class="Paragraphedeliste_1" value="8">Supprimer le formulaire personnalisé : supprime le fichier&#160; WsubForm.class.inc.</li>
+                                <li class="Paragraphedeliste_1" value="9">Publier le formulaire par défaut : permet la publication du formulaire tel qu'il a été conçu dans le projet FME.</li>
+                                <li class="Paragraphedeliste_1" value="10">Publier le formulaire personnalisé : duplique le fichier WSubForm.class.inc sous le nom SubForm.class.inc</li>
+                                <li class="Paragraphedeliste_1" value="11">Réinitialiser le formulaire personnalisé : duplique le fichier DsubForm.class.inc sous le nom WsubForm.class.inc et affiche le formulaire personnalisé.</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Si l'administrateur choisit d'éditer un formulaire pour le personnaliser, il dispose de plusieurs exemples, dont il peut copier le code, le personnaliser et l'insérer directement dans son propre formulaire. Le bouton Exemples, accessible après avoir "Editer le formulaire personnalisé" donne accès au code de différents composants exemples (cartographiques, calendrier, champ nombre…) dont le code peut être directement  inséré dans la section "Form attributes" du formulaire.</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000018.png" style="height: 430px;width: 603px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>L'insertion de certains composants cartographiques tels que les cartes WMTS de Géoportail de l'IGN&#160;nécessite l'obtention de clé auprès des organismes fournisseurs de ces services. </p>
+                            <p>&#160;</p>
+                            <p>Le code et l’ensemble des opérations de l'API  formulaire sont décrits dans la section API formulaire du menu Aide. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="6.1.6"><span class="span_1">6.1.6 </span>Appel externe</a> <![CDATA[ ]]></h3>
+                            <p>La section Appel externe permet l'intégration dans une page html d'un formulaire GTF. C'est un moyen de donner accès à un projet GTF depuis une quelconque page web, sans avoir GTF installé sur son poste. La section Appel Externe du mode Projet permet de définir la façon dont l'utilisateur final aura accès au formulaire GTF puis génère le code à intégrer directement dans la page html désirée.&#160; </p>
+                            <p>&#160;</p>
+                            <p>L'administrateur définit  le type d'accès souhaité au formulaire GTF : soit via un bouton intégré dans la page internet, soit via l'insertion telle quelle du formulaire GTF dans la page web. </p>
+                            <p>Il associe ensuite un Titre au formulaire et dans le cas d'un bouton, il spécifie le texte associé au bouton d'accès du formulaire dans le champ 'Texte du bouton'. La hauteur et largeur du formulaire peuvent également être paramétrées. </p>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000019.png" style="height: 470px;width: 602px;" class="img_1" />
+                            </p>
+                            <h4 class="Titre4"><span class="span_1">6.1.6.1 </span>Jetons de connexion </h4>
+                            <p>Un jeton agit comme une clé permettant d'accéder à un formulaire GTF. Un jeton ne peut être donné qu'à un utilisateur authentifié. </p>
+                            <p>L'administrateur a la possibilité d'associer à un traitement un jeton privé ou un jeton public permettant l'accès et l'utilisation du formulaire GTF : </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Le jeton public est l'identifiant de connexion du compte PUBLIC défini au préalable par l'administrateur dans le mode <a href="#compte_public" class="selected"><span class="Lienhypertexte"></span><span class="Lienhypertexte">Co</span><span class="Lienhypertexte">nfiguration</span></a>. </li>
+                                <li class="Paragraphedeliste_4" value="2">Fournir un jeton privé est un moyen de donner accès à un compte de connexion à un traitement GTF particulier. Pour générer une clé privée, l'administrateur saisit le login et mot de passe de l'utilisateur pour lequel il souhaite générer un jeton privé puis définit une date de fin de validité de cette dernière. Après avoir cliqué sur le bouton 'Clé privée', la clé est retournée et intégrée dans le code à utiliser.&#160; </li>
+                            </ul>
+                            <p class="Paragraphedeliste_3">&#160;</p>
+                            <p class="p_13">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300001a.png" style="height: 159px;width: 296px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h4 class="Titre4"><span class="span_1">6.1.6.2 </span>Utilisation de CAPTCHA</h4>
+                            <p>Il est possible d'intégrer un CAPTCHA au formulaire pour s'assurer que la demande de traitement est bien générée par un être humain et non par un ordinateur. </p>
+                            <p>
+                                <img src="../resources/images/attention.png" />L'insertion d'un Captcha, nécessite l'obtention d'une clé sur le service Web de Google à l'adresse <a href="https://www.google.com/recaptcha/admin"><span class="Lienhypertexte">https://www.google.com/recaptcha/admin</span></a>. Une fois la clé obtenue, l'administrateur saisit la clé fournie dans le champ Clé recaptcha. </p>
+                            <p>
+                                <img src="../resources/images/attention.png" />La clé est directement intégrée dans le code généré par GTF. Le motif CAPTCHA est généré automatiquement à chaque demande de traitement. </p>
+                            <h4 class="Titre4"><span class="span_1">6.1.6.3 </span>Insertion du code généré </h4>
+                            <p>Le bouton 'Générer le code' retourne le code à copier dans la page Html permettant d'accéder au formulaire GTF. Le code contient le jeton de connexion défini au préalable (public ou privé), ainsi que le cas échéant la clé captcha. </p>
+                            <p>&#160;</p>
+                            <p>Exemple de code: </p>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300001b.png" style="height: 31px;width: 603px;" class="img_1" />
+                            </p>
+                            <p class="p_15">Jeton de connexion public / Clé Captcha</p>
+                            <p>&#160;</p>
+                            <p>Ce code est à insérer directement dans la page html à l'emplacement désiré.&#160; </p>
+                            <p>&#160;</p>
+                            <p>L'exemple ci-dessous illustre l'insertion d'un bouton d'accès à un formulaire GTF de conversion de fichiers sur la page d'accueil du site internet de Veremes : </p>
+                            <p style="text-align: center;">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300001c.png" style="width: 605px;height: 486px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p class="p_8">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300001d.png" style="width: 285px;height: 167px;" class="img_1" />
+                            </p>
+                            <h3 class="Titre3"><a name="6.1.7"></a>6.1.7 Répertoire Projet</h3>
+                            <p>&#160;</p>
+                            <p>La section Répertoire projet permet de visualiser le contenu du répertoire contenant le projet FME ainsi que les ressource associées à ce dernier. Ce répertoire contient les copies systématiques des projets fme (renommés en .bak) dont les visualiseurs ont été désactivés. </p>
+                            <p>
+                                <img src="../resources/images/repertoire_projet.png" style="width: 493px;height: 609px;" />
+                            </p>
+                            <p>Il est possible de charger un nouveau projet FME et de nouvelles ressources via les boutons Parcourir.</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="6.2"></a>6.2 Gestion des catégories</h2>
+                            <p>L’attribution de catégorie à un traitement permet à l’administrateur d’organiser par thématique les traitements disponibles.&#160; </p>
+                            <p>L’onglet Catégorie du mode Publication permet d’accéder au formulaire de création de catégorie dans lequel l’administrateur nomme cette dernière et peut lui associer une description. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="6.3"><span class="span_1">6.3 </span>Gestion des dépôts (répertoire de surveillance)</a> <![CDATA[ ]]></h2>
+                            <p>Un dépôt est un répertoire de surveillance. Une surveillance correspond à un abonnement à un traitement en ajoutant un nouveau paramètre qu’est la disponibilité d’un fichier ou d’un répertoire dans un dépôt préalablement défini par l’administrateur.&#160; Ainsi, si un projet est rendu disponible pour surveillance, alors ce dernier est automatiquement exécuté (selon la période d’abonnement définie) dès lors que GTF détecte la présence d’un fichier dans le dépôt. </p>
+                            <p>&#160;</p>
+                            <p>L’onglet Dépôt permet à l’administrateur de consulter la liste des dépôts, d’en créer et d’en supprimer. Il crée des nouveaux dépôts en spécifiant le chemin du répertoire à surveiller qu’il aura préalablement créé sur le serveur.&#160; </p>
+                            <p>&#160;</p>
+                            <p>La stratégie d’attribution de dépôt se fait à l’échelle du groupe d’utilisateurs. Un utilisateur en ayant droit,&#160; peut alors associer à un traitement une surveillance dans un dépôt. GTF scrute la présence de fichier dans le dépôt.&#160; Si un fichier est présent alors le traitement est lancé en exploitant le fichier. </p>
+                            <p>&#160;</p>
+                            <p>Le bouton ‘Ajouter un dépôt’ permet d’accéder au formulaire de création de dépôt en spécifiant le chemin du répertoire à surveiller, un alias et les groupes y ayant accès. Il clique ensuite sur ‘Créer’ pour valider sa création et rendre le dépôt disponible pour les groupes en ayant droit. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300001e.png" style="height: 293px;width: 523px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_2">
+                                <img src="../resources/images/attention.png" />GTF personnalise automatiquement le dépôt en fonction du compte utilisateur de connexion en suffixant le dépôt avec la variable $user. L’utilisateur final ne voit ainsi que son propre répertoire dans le dépôt.&#160;Au préalable, l’administrateur doit avoir créé dans chaque dépôt, un répertoire par utilisateur (des groupes ayant accès à chaque dépôt). Le nom du répertoire doit être parfaitement identique au compte de connexion qu’il s’agisse d’un utilisateur «&#160;PostgreSQL&#160;» ou importé d’Active Directory.</p>
+                            <blockquote>
+                                <p>&#160;</p>
+                            </blockquote>
+                            <h2 class="Titre2"><span class="span_1">6.4 </span> <a name="6.4">Gestion des périodes</a> <![CDATA[ ]]></h2>
+                            <p>Un abonnement permet de s’inscrire à un traitement répété au cours du temps selon une fréquence choisie. </p>
+                            <p>Dans l’onglet Périodes, l’administrateur peut accéder au formulaire de définition des périodes d’abonnement. Le bouton ‘Ajouter période’ permet à l’administrateur de définir une nouvelle période d’abonnement en lui affectant un libellé puis en y insérant le code correspondant. </p>
+                            <p>&#160;</p>
+                            <p>Il est ensuite possible de tester le bon déroulement de l’ajout de Période en cliquant sur le bouton ‘Test’. Le bouton ‘Créer’ finalise le processus de création d’une période. </p>
+                            <p>&#160;</p>
+                            <p>Pycron est le composant assurant l’exécution des tâches à heures fixes. L’instruction à saisir doit respecter la <a href="#14.2_Syntaxe_Pycron" class="selected"><span class="Lienhypertexte">syntaxe de la fonction contrab</span></a>. Pour plus d’information sur le programme crontab et la syntaxe à respecter consulter le site : http://fr.wikipedia.org/wiki/Crontab </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="6.5"><span class="span_1">6.5 </span>Modèles d'E-mail</a>
+                            </h2>
+                            <p>L'onglet Modèles-email permet la création de modèle de mail envoyé après exécution d'un traitement. Via cette onglet, l'administrateur a la possibilité de personnaliser un email, en définissant la ou les personnes destinataires, les circonstances d'envoie de ce dernier ainsi que son&#160;contenu. Chaque traitement est associé à un modèle d'Email. </p>
+                            <p>&#160;</p>
+                            <p>L'onglet général permet de créer un nouveau modèle de mail, en le nommant et en définissant son contexte et de définir le type de définition de ce dernier : </p>
+                            <h3 class="Titre3"><a name="6.5.1"><span class="span_1">6.5.1 </span>Définition simple</a>
+                            </h3>
+                            <p> L'administrateur exploite les balises disponibles pour personnaliser le mail. </p>
+                            <table class="table_2" style="margin-left: 0;margin-right: auto;caption-side: top;">
+                                <col style="width: 83pt;" />
+                                <col style="width: 106pt;" />
+                                <col style="width: 457px;" />
+                                <tr style="height: 15pt;">
+                                    <td class="td_5">
+                                        <p class="p_16">Nom de la balise </p>
+                                    </td>
+                                    <td class="td_6">
+                                        <p class="p_16"> descriptif</p>
+                                    </td>
+                                    <td class="td_6">
+                                        <p class="p_16">code correspondant </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[order.id_order]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Identifiant de la demande de traitement </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.order_id']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['order_id'];</span>
+                                        </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[order.order_date]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Date et heure de la demande de traitement </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.order_date']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['order_date'];</span>
+                                        </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[order.execution_date]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Date et heure de fin de traitement</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.execution_date']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['order_execution_date'];</span>
+                                        </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[order.result_url]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Adresse de téléchargement du résultat du traitement</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.result_url']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields['result_url'];</span>
+                                        </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[order.log_url]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Adresse du log du traitement </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.order_log']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields[log_url'];</span>
+                                        </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[order.length_sec]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Durée du traitement en secondes</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_5"><span class="span_7"></span><span class="span_7">$properties['order.length_sec']['value'] = $this-&gt;aObjects["oOrder"]-&gt;aFields[length_sec'];</span>
+                                        </p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[order.process_date]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Date de fin du traitement </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$this-&gt;aObjects["oOrder"]-&gt;aFields['execution_date'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[gtf_engine. Name]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Nom du moteur GTF</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$this-&gt;aObjects["oOrder"]-&gt;getGtfEngine()-&gt;aFields['name'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[fme_engine.name]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Nom du moteur FME&#160; utilisé</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$this-&gt;aObjects["oOrder"]-&gt;getFmeEngine()-&gt;aFields['name'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[user.name]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Nom du demandeur de traitement</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$properties['user.name']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getUser()-&gt;aFields['name'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[user.user_email]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Adresse mail du demandeur de traitement </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$properties['user.email']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getUser()-&gt;aFields['email'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[user.login]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Compte de connexion du demandeur </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$properties['user.login']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getUser()-&gt;aFields['login'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[category.name]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Catégorie du traitement </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$properties['catgory.name']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getWorkspace()-&gt;getCategory()-&gt;aFields['email'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[workspace.name]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Nom du traitement</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$properties['order.workspace.name']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getWorkspace()-&gt;aFields['name'];</p>
+                                    </td>
+                                </tr>
+                                <tr style="height: 15pt;">
+                                    <td class="td_7">
+                                        <p class="p_16">[worksapce.fmw_file]</p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">Nom du projet FME </p>
+                                    </td>
+                                    <td class="td_8">
+                                        <p class="p_16">$properties['order.workspace.fmw_file']['value'] = $this-&gt;aObjects["oOrder"]-&gt;getWorkspace()-&gt;aFields['fmw_file'];</p>
+                                    </td>
+                                </tr>
+                            </table>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="6.5.2"><span class="span_1">6.5.2 </span>Définition avancée</a>
+                            </h3>
+                            <p>L'administrateur saisit directement le code du mail. Il peut pour cela, utiliser le code généré via l'édition simple en cliquant sur le bouton Générer le code à partir de l'édition simple. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h1 class="Titre1"><a name="7"><span class="span_1">7 </span>Exemples de publication de traitements</a> <![CDATA[ ]]></h1>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.1"><span class="span_1">7.1 </span>Traitement simple de conversion d'un fichier statique sur le serveur</a>
+                            </h2>
+                            <p>&#160;</p>
+                            <p><span class="span_8">Objectif&#160;</span><span class="span_9">: </span>Création d’un traitement simple de conversion d’un fichier Shape disponible sur le serveur en fichier MapInfo avec publication du répertoire destination. </p>
+                            <p>&#160;</p>
+                            <p>Le fichier source est statique (toujours le même) et il se trouve à un emplacement quelconque du serveur. L'emplacement du jeu de données sur le serveur est défini dans le paramètre source dans FME  et ce paramètre doit être dépublié.</p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.1.1"><span class="span_1">7.1.1 </span>Création du projet FME</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Lancer FME Workbench</li>
+                                <li class="Paragraphedeliste_1" value="2">Cliquer sur Fichier &gt; Nouveau&gt; Générer un projet</li>
+                                <li class="Paragraphedeliste_1" value="3">Indiquer le fichier Shape en source et le format Mapinfo en sortie. Cocher Schéma statique puis cliquer sur OK. </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300001f.png" style="height: 275px;width: 317px;" class="img_1" />
+                            </p>
+                            <p>Après validation, un projet simple de conversion d’un fichier Shape vers un fichier MapInfo est généré.</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000020.png" style="height: 149px;width: 386px;" class="img_1" />
+                            </p>
+                            <p>Par défaut, deux paramètres sont publiés ‘sourceDataset_SHAPE’ et ‘DestDataSet_MAPINFO’. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000021.png" style="height: 65px;width: 314px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p><span class="span_5">Chaque paramètre publié d’un projet FME génère une entrée dans le formulaire GTF</span>. Dans cet exemple le formulaire GTF permet de modifier le répertoire source et le répertoire destination. Or nous souhaitons que GTF ignore la publication des données sources, empêchant aux utilisateurs finaux&#160; de sélectionner et modifier les fichiers sources. </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Supprimer la publication du paramètre [SourceDataset_SHAPE] pour forcer les utilisateurs à utiliser le fichier Shape mis à disposition sur le serveur.</li>
+                                <li class="Paragraphedeliste_1" value="2">Enregistrer le projet</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Avant de publier ce projet dans GTF, il convient de le tester localement. Lancer le traitement depuis FME Workbench, vérifier le bon déroulement du traitement et s’assurer que&#160; le résultat soit correctement généré. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.1.2"><span class="span_1">7.1.2 </span>Publication du traitement dans GTF</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement, par exemple, ‘Extraction Départements’. Entrer ensuite une description, et attribuer une catégorie. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur <span class="span_5">Parcourir </span>et charger le projet FME. Cliquer sur «&#160;Créer&#160;». </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000022.png" style="height: 475px;width: 571px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que le paramètre publié source du projet FME n’est pas publié, et que&#160; seul le paramètre «&#160;Répertoire Destination MapInfo&#160;» est publié. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.1.3"><span class="span_1">7.1.3 </span>Exécution du traitement</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction Départements». </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000023.png" style="height: 349px;width: 434px;" class="img_1" />
+                            </p>
+                            <p class="p_5">Le formulaire associé au traitement s’affiche.&#160; L’utilisateur peut alors modifier le paramètre publié&#160;: entrer la valeur ‘Destination’ comme nom du&#160; ‘répertoire destination Mapinfo’. </p>
+                            <p class="p_5">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Cliquer sur ‘Créer Demande’. La demande de traitement est créée et celle-ci est en attente de traitement. Un voyant rose indique que le traitement est en cours.&#160; </li>
+                            </ul>
+                            <p class="p_5">&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000024.png" style="height: 152px;width: 566px;" class="img_1" />
+                            </p>
+                            <p class="p_5">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Une fois traité, le voyant passe au vert. Le résultat est téléchargeable. </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000025.png" style="height: 151px;width: 566px;" class="img_1" />
+                            </p>
+                            <p class="p_5">Le fichier ZIP généré contient un répertoire «&#160;Destination&#160;» contenant le fichier MapInfo.</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.2"><span class="span_1">7.2 </span>Conversion de fichiers sources statiques chargés sur le serveur avec le projet FME.</a>
+                            </h2>
+                            <p>&#160;</p>
+                            <p><span class="span_8">Objectif </span><span class="Titre3Car_1">: </span>Le fichier source est statique et il est chargé sur le serveur par GTF comme ressource du projet FME. Les utilisateurs n’uploadent pas de fichiers sources, ils se trouvent sur le serveur au même endroit que le projet FME. </p>
+                            <p>&#160;</p>
+                            <p>Il s'agit ainsi de reconstituer la même arborescence que celle du poste de développement.</p>
+                            <h3 class="Titre3"><a name="7.2.1"><span class="span_1">7.2.1 </span>Création du projet FME</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Créer un nouveau projet FME pour convertir un fichier Shape vers un fichier MIF/MID. </li>
+                            </ul>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000026.png" style="height: 295px;width: 339px;" class="img_1" />
+                            </p>
+                            <p class="Paragraphedeliste_3">Deux paramètres doivent être publiés&#160;: la source et la destination. La source pointe vers un fichier Shape en local. Pour que GTF puisse accéder à ce fichier, il faut uploder le fichier shape et ses dépendances sur le serveur GTF. Ces données sont stockées dans le même répertoire que le projet FME lors de la création du traitement dans GTF. </p>
+                            <p class="Paragraphedeliste_3">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Modifier le chemin de la source comme tel&#160;:&#160; </li>
+                            </ul>
+                            <p class="p_13">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000027.png" style="height: 88px;width: 352px;" class="img_1" />
+                            </p>
+                            <p class="p_12"><span class="span_5">$(FME_MF_DIR_UNIX)/DPT.SHP </span>est une variable FME qui indique l’emplacement d’un projet FMW. Le fichier source (DPT.shp) est uploadé à cet emplacement. Il sera directement utilisable dans GTF (sans avoir à l’uploader à chaque demande de traitement). </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Les données sources étant fixes, il convient de dépublier ce paramètre.&#160; </li>
+                            </ul>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000028.png" style="height: 103px;width: 346px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Enregistrer le projet, par exemple extraction-departements-source-fixe.fmw</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.2.2"><span class="span_1">7.2.2 </span>Publication du traitement dans GTF</a> <![CDATA[ ]]></h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple ‘Extraction départements depuis le serveur’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. </li>
+                                <li class="Paragraphedeliste_1" value="3">Pour uploader le fichier Shape et ses dépendances, compresser les fichiers dans un fichier ZIP. Dans le champ  ‘<span class="span_5">Ressources complémentaires</span>’ cliquer sur Parcourir et chercher le fichier ZIP précédemment créé. Cliquer sur «&#160;Créer&#160;». <span class="span_5">Ces ressources complémentaires sont décompressées dans le répertoire contenant le projet .fmw.</span> L'arborescence du poste de développement est ainsi reconstituée sur le serveur. </li>
+                                <li class="Paragraphedeliste_1" value="4">Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="5">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que seul le fichier destination est paramétrable. Le fichier des départements est automatiquement associé au projet. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.2.3"><span class="span_1">7.2.3 </span>Exécution du traitement</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction départements depuis le serveur».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer le répertoire destination. Cliquer sur Créer la demande.</li>
+                                <li class="Paragraphedeliste_1" value="3">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.3"><span class="span_1">7.3 </span>Conversion de fichiers avec sélection des fichiers sources dans une arborescence de fichiers  situés sur le serveur</a>
+                            </h2>
+                            <p><span class="span_8">Objectif&#160;:</span> publication d’un traitement avec sélection du fichier source EDIGEO dans une arborescence de fichiers située sur le serveur et conversion au format MapInfo. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.3.1"><span class="span_1">7.3.1 </span>Création du projet FME</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Lancer FME Workbench</li>
+                                <li class="Paragraphedeliste_1" value="2">Cliquer sur Fichier &gt; Nouveau&gt; Générer un projet</li>
+                                <li class="Paragraphedeliste_1" value="3">Indiquer le format Edigéo en source et le format MapInfo en sortie. Cocher Schéma statique puis cliquer sur OK. </li>
+                            </ul>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000029.png" style="height: 272px;width: 313px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Cocher tous les types d’entités</li>
+                            </ul>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300002a.png" style="height: 230px;width: 277px;" class="img_1" />
+                            </p>
+                            <p><span class="span_5">GTF peut détecter les formats de types multifichiers (S</span><span class="span_5">h</span><span class="span_5">ape File, EDIGEO…) contenus dans un fichier compressé ZIP que l’utilisateur uploadera sur le serveur.&#160; </span>
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Dépublier le paramètre publié du jeu de données source,   car sinon GTF considèrant que le fichier source se trouve sur le poste utilisateur ne permettra pas la sélection du fichier situé sur le serveur</li>
+                                <li class="Paragraphedeliste_4" value="2">Créer un nouveau paramètre publié de type Texte et le lier au jeu de données source. </li>
+                            </ul>
+                            <p class="p_13">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300002b.png" style="height: 161px;width: 296px;" class="img_1" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Enregistrer le projet, par exemple Edigeo2mapinfo_upload.fmw</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.3.2"><span class="span_1">7.3.2 </span>Publication du traitement dans GTF</a> <![CDATA[ ]]></h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple, ‘conversion Edigeo vers MapInfo avec Upload’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur <span class="span_5">Parcourir </span>et charger le projet FME. Cliquer sur «&#160;Créer&#160;». </li>
+                            </ul>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300002c.png" style="height: 371px;width: 503px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 2 paramètres publiés apparaissent dans le formulaire. </li>
+                            </ul>
+                            <p class="p_13">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300002d.png" style="height: 145px;width: 372px;" class="img_1" />
+                            </p>
+                            <p>A ce stade, l'utilisateur doit saisir le chemin complet du fichier source à traiter.&#160; Pour des raisons de sécurité et de convivialité, il est conseillé de personnaliser ce formulaire en exploitant le composant <span class="span_5">TreeViewField</span> permettant de créer une arborescence de fichiers forçant l'utilisateur à sélectionner la source et non plus à indiquer un chemin complet. Cliquer sur le bouton Exemples, puis sélectionner le composant "Champ Arborescence" : </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300002e.png" style="height: 157px;width: 347px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Copier le code fourni et le coller dans votre formulaire dans la section //Form Attributes qui déclare les paramètres publiés du projet. Supprimer le champ textField et le remplacer par le champ&#160; treeviewField que vous aurez personnalisé en indiquant l'arborescence désirée. </li>
+                            </ul>
+                            <p class="p_17">&#160;</p>
+                            <p class="p_17">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300002f.png" style="height: 213px;width: 602px;" class="img_1" />
+                            </p>
+                            <p>Enregistrer votre formulaire personnalisé puis le prévisualiser.  Publier le formulaire personnalisé.&#160; </p>
+                            <h3 class="Titre3"><a name="7.3.3"><span class="span_1">7.3.3 </span>Exécution du traitement</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié.</li>
+                                <li class="Paragraphedeliste_1" value="2">Sélectionner le fichier source dans l'arborescence de fichiers  et le répertoire destination. Cliquer sur Créer la demande.</li>
+                            </ul>
+                            <p class="p_13">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000030.png" style="height: 296px;width: 559px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <h2 class="Titre2"><a name="7.4"><span class="span_1">7.4 </span>Paramètre publié supplémentaire</a> <![CDATA[ ]]></h2>
+                            <p><span class="span_8">Objectif&#160;:</span> publication d’un paramètre publié supplémentaire pour spécifier une emprise d’extraction de données. </p>
+                            <h3 class="Titre3"><a name="7.4.1"><span class="span_1">7.4.1 </span>Création du projet FME</a> <![CDATA[ ]]></h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Ouvrir le précédent projet ‘extraction-departements.fmw’ dans FME Workbench. Dans le Navigateur, publier les 4 paramètres&#160;: X minimum, Y minimum, X maximum et Y maximum des données sources. Entrer les valeurs par défaut correspondant à l’emprise de l’ensemble des données, par exemple&#160;: X minimum = 50000&#160;; X maximum = 1&#160;200&#160;000&#160;; Y minimum = 1&#160;700&#160;000&#160;; et Y maximum = 2&#160;700&#160;000.</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000031.png" style="height: 129px;width: 286px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Enregistrer le projet <span class="span_5">extraction_departements_emprise.fmw</span></li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.4.2"><span class="span_1">7.4.2 </span>Publication du traitement dans GTF</a> <![CDATA[ ]]></h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple, ‘Extraction Départements emprise’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur <span class="span_5">Parcourir </span>et charger le projet FME. Cliquer sur «&#160;Créer&#160;». </li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000032.png" style="height: 390px;width: 430px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 4 paramètres de l’emprise apparaissent dans le formulaire avec les valeurs par défaut définies dans le projet FME. </li>
+                            </ul>
+                            <p class="Paragraphedeliste_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000033.png" style="height: 299px;width: 565px;" class="img_1" />
+                            </p>
+                            <h3 class="Titre3"><a name="7.4.3"><span class="span_1">7.4.3 </span>Exécution du traitement</a> <![CDATA[ ]]></h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction Département emprise».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer comme valeurs d’emprise X min = 500 000, Y min = 2&#160; 000 000, X max = 1&#160;000 000 et Y max = 2&#160;500 000, et ‘emprise’ comme répertoire destination. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000034.png" style="height: 393px;width: 571px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Cliquer sur ‘Créer la Demande’.</li>
+                                <li class="Paragraphedeliste_1" value="2">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000035.png" style="height: 49px;width: 680px;" class="img_1" /> Remarquer que le nom ZIP correspond à l’identifiant de la demande de traitement&#160;: par exemple 19.zip pour la demande n°19. Ce numéro est unique car issu d’une séquence PostgreSQL. </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Ouvrir le fichier MapInfo généré dans FME Data Inspector et constater que les données ont été extraites selon l’emprise spécifiée. </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000036.png" style="height: 389px;width: 565px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1" />
+                            </ul>
+                            <h2 class="Titre2"><a name="7.5"><span class="span_1">7.5 </span>Traitement avec sortie générique</a> <![CDATA[ ]]></h2>
+                            <p>&#160;</p>
+                            <p><span class="span_8">Objectif&#160;:</span><span class="Titre3Car_1"></span> publication de format destination générique. L’utilisateur final choisit le format destination d’un projet de conversion de données. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.5.1"><span class="span_1">7.5.1 </span>Création du projet FME</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Ouvrir le traitement créé précédemment<span class="span_5">extraction_departements_emprise.fmw </span>dans FME Workbench<span class="span_5">. </span>Supprimer le jeu de données destination MapInfo et ajouter un nouveau jeu de données au format ‘Generic’. Indiquer une destination temporaire. </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000037.png" style="height: 194px;width: 325px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Cliquer sur le bouton Paramètres et choisir le format de sortie MapInfo&#160;: </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000038.png" style="height: 96px;width: 281px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Indiquer ‘Non’ à la question suivante, pour ne pas ajouter de type d’entité destination au projet&#160;: </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000039.png" style="height: 102px;width: 280px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dupliquer le type d’entités source, par un clic droit en choisissant l’option «&#160;Dupliquer comme Destination&#160;»<img src="../resources/images/gtf_manuel_utilisateur/0300003a.png" style="height: 334px;width: 296px;" class="img_1" /></li>
+                            </ul>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Publier le paramètre «&#160;Système de coordonnées&#160;» du jeu de données Generic. </li>
+                            </ul>
+                            <p class="Paragraphedeliste">&#160;</p>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003b.png" style="height: 129px;width: 314px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Le format Generic permet de spécifier le format de destination via un paramètre. Le paramètre «&#160;GENERIC_OUT_FORMAT_GENERIC&#160;» est publié par défaut. GTF ne supporte pas ce paramètre car tous les formats supportés par FME devraient être listés. </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans un premier temps, il faut donc dépublier ce paramètre par un clic droit &gt; Supprimer. </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003c.png" style="height: 181px;width: 299px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Il faut ensuite créer sa propre liste de formats dans un nouveau paramètre publié&#160;: ajouter un nouveau paramètre publié de type <span class="span_5">choix et saisir les formats destination désirés.</span> Le nom des formats doit correspondre aux noms courts tels qu’ils sont listés dans la galerie des formats de FME Workbench (Outils&gt; Consulter la galerie des formats). </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003d.png" style="height: 170px;width: 298px;" class="img_1" />
+                            </p>
+                            <p>Il est également possible de choisir un type «&#160;Choix avec alias pour afficher un texte plus explicite dans la liste.</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Associer ensuite le paramètre ‘FORMAT’ au jeu de données générique.&#160;Faire un clic droit sur le paramètre ‘Format en sortie’ et choisir ‘Lier au paramètre publié&#160;‘. </li>
+                            </ul>
+                            <p class="Paragraphedeliste_5">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003d.png" style="height: 164px;width: 290px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_4" value="1">Enregistrer le projet, par exemple «&#160;shape2generic.fmw&#160;»</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.5.2"><span class="span_1">7.5.2 </span>Publication du traitement dans GTF</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple ‘Extraction départements avec choix de l’emprise et du format destination’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas rendre ce traitementdisponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur <span class="span_5">Parcourir </span>et charger le projet FME. Cliquer sur «&#160;Créer&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="3">Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="4">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que&#160; le paramètre Format destination est bien associé au projet. </li>
+                            </ul>
+                            <h3 class="Titre3"><a name="7.5"><span class="span_1">7.5.3 </span>Exécution du traitement</a> <![CDATA[ ]]></h3>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction départements avec choix de l’emprise et du format destination».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer le fichier ZIP source et le répertoire destination. Cliquer sur Créer la demande.</li>
+                                <li class="Paragraphedeliste_1" value="3">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="7.6"><span class="span_1">7.6 </span>Personnalisation de formulaire : exploitation du composant OpenLayers2</a>
+                            </h2>
+                            <p>&#160;</p>
+                            <p><span class="span_8">Objectif </span><span class="Titre3Car_1">:</span> extraction de types d’entités à partir d’une zone d’emprise saisie graphiquement par l’utilisateur final. Modification du formulaire directement dans GTF.</p>
+                            <h3 class="Titre3"><a name="7.6.1"><span class="span_1">7.6.1 </span>Création du projet FME</a> <![CDATA[ ]]></h3>
+                            <p>Créer un nouveau projet FME pour extraire un fichier Geofla au format Esri Shape avec un paramètre qui permet de choisir une zone d’extraction sous la forme d’un polygone décrit par une chaîne WKT.</p>
+                            <p>
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003e.png" style="height: 294px;width: 602px;" class="img_1" />
+                            </p>
+                            <p>Dans FME, 3 paramètres sont publiés&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Zone d’extraction WKT&#160;: chaîne de caractères WKT pour définir la zone d’extraction</li>
+                                <li class="Paragraphedeliste_1" value="2">Couches à extraire&#160;: choix du type d’entités à extraire (COMMUNES, CANTONS, DEPARTEMENTS…)</li>
+                                <li class="Paragraphedeliste_1" value="3">Répertoire Destination&#160;</li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300003f.png" style="height: 151px;width: 313px;" class="img_1" />
+                            </p>
+                            <h3 class="Titre3"><a name="_Toc405456978"><span class="span_1">7.6.2 </span>Publication du traitement dans GTF</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Se connecter à GTF. </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans le menu Publication, cliquer sur «&#160;Ajouter Projet FME&#160;». Donner un nom au traitement GTF, par exemple ‘Extraction GeoFla WKT’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas&#160; rendre ce traitement disponible sur abonnement et ni pour une surveillance. </li>
+                                <li class="Paragraphedeliste_1" value="3">Pour uploader le fichier GeoFla au format Shape, compresser les fichiers dans un fichier ZIP. Dans le champ ‘Ressources complémentaires’ cliquer sur Parcourir et chercher le fichier ZIP précédemment créé. Cliquer sur «&#160;Créer&#160;». </li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000040.png" style="height: 482px;width: 541px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans la section&#160; ‘Droits’, associer un groupe au traitement et cliquer sur «&#160;Mettre à jour&#160;». </li>
+                                <li class="Paragraphedeliste_1" value="2">Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 3 paramètres sont bien affichés. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.6.3"><span class="span_1">7.6.3 </span>Personnalisation du formulaire</a>
+                            </h3>
+                            <p>La saisie de la zone d’extraction sous la forme d’une chaîne de caractères  WKT n’est pas simple. Une alternative serait de proposer à l’utilisateur final la possibilité de saisir manuellement la zone d’extraction de son choix. </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Cliquer sur ‘Editer le formulaire personnalisé’ pour pouvoir consulter et modifier le formulaire. Cliquer sur le bouton 'Exemples', puis sélectionner le composant 'Champs OpenLayers2 : service WMS '.</li>
+                            </ul>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000041.png" style="height: 426px;width: 546px;" class="img_1" />
+                            </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Copier le code fourni et le coller dans votre formulaire dans la section //Form Attributes qui déclare les paramètres publiés du projet. Supprimer la fonction textField et la remplacer par la fonction OpenlayersField suivante qui appelle le service wms de Geosignal&#160;, en définissant la largeur et la hauteur de la carte, les références du service cartographique et la description des couches : </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p class="extraitcode">$oForm-&gt;OpenlayersField ("Zone d'extraction personnalisée ", "polygone", 3.0,43.65,8,600,400, "geosignalWMS","http://www.geosignal.org/cgibin/wmsmap?","Departements,RASTER1000K,RASTER500K,RASTER250K,RASTER100K,RASTER50K,RASTER25K,RASTER5K");</p>
+                            <p>&#160;</p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Enregistrer puis publier le formulaire personnalisé. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Assurez-vous que le formulaire ait bien été mis à jour et que le paramètre  ‘Zone d’extraction WKT’ ait été remplacé par un paramètre permettant la saisir du périmètre d’extraction directement sur une carte. </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="7.6.4"><span class="span_1">7.6.4 </span>Exécution du traitement</a> <![CDATA[ ]]></h3>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Dans le Mode ‘Mon travail’&#160; cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié «&#160;Extraction GeoFla WKT».</li>
+                                <li class="Paragraphedeliste_1" value="2">Indiquer les couches à extraire, le&#160; répertoire destination et saisir directement sur la carte la zone d’extraction. Cliquer ensuite sur Créer la demande.</li>
+                                <li class="Paragraphedeliste_1" value="3">Une fois la demande traitée (voyant vert), télécharger le ZIP généré. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000042.png" style="height: 488px;width: 462px;" class="img_1" />
+                            </p>
+                            <h1 class="Titre1"><a name="8"><span class="span_1">8 </span>Supervision</a>
+                            </h1>
+                            <p>&#160;</p>
+                            <p>On entend par supervision, le suivi des demandes de traitements, des abonnements et des surveillances de tous les utilisateurs GTF. A tout moment, l’administrateur doit pouvoir consulter la liste des demandes de projets émises par tous les utilisateurs, en supprimer certaines, identifier les erreurs et obtenir une vision synthétique de l’utilisation de l’application. </p>
+                            <p>Il dispose pour cela du mode ‘Supervision’ dans lequel est listé l’ensemble des traitements demandés, des abonnements et des surveillances. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="8.1"><span class="span_1">8.1 </span>Supervision des Demandes</a>
+                            </h2>
+                            <p>&#160;</p>
+                            <p>L’onglet ‘Demandes’ offre à l’administrateur une vision de l’état du serveur. Il a une connaissance fine de l’ensemble des traitements demandés par utilisateur, des dates de demandes, des priorités ainsi que le numéro de moteur ayant traité chaque projet. Il peut télécharger les résultats des traitements, consulter les paramètres des traitements et consulter les logs FME associés. Le champ «&#160;Supprimé&#160;» lui permet d’être informé de la suppression d'une demande par un utilisateur et le champ ‘Etat’ permet via un code couleur, d’identifier si une demande est en attente, en erreur, traitée, non traitable, en cours de traitement ou non autorisée. </p>
+                            <p>&#160;</p>
+                            <img src="../resources/images/gtf_manuel_utilisateur/03000043.png" style="height: 230px;width: 606px;" class="img_1" />
+                            <p>L’administrateur dispose de différents boutons d’administration&#160;: le bouton ‘Réinitialiser’ &#160;lui permet de relancer un traitement sélectionné. Il peut choisir de modifier le moteur d’exécution d’un traitement en cliquant sur le bouton ’Modifier le moteur’.&#160; </p>
+                            <p>&#160;</p>
+                            <p class="Style1_2">Suppression des demandes </p>
+                            <p>L'administrateur est responsable de la suppression définitive des demandes une fois que ces dernières aient été supprimées par les utilisateurs. Il existe ainsi deux niveaux de suppression&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">La suppression utilisateurs </li>
+                                <li class="Paragraphedeliste_1" value="2">La suppression définitive par l'administrateur. </li>
+                            </ul>
+                            <p>Le bouton ‘Purger les demandes’ permet à l'administrateur de procéder à la suppression définitive d'une demande de traitement préalablement supprimée par un utilisateur.  </p>
+                            <p>&#160;</p>
+                            <p>Le bouton ’Supprimer les demandes’ permet de supprimer les demandes des traitements sélectionnés. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="8.2"><span class="span_1">8.2 </span>Supervision des abonnements</a> <![CDATA[ ]]></h2>
+                            <p>L’onglet Abonnement permet à l’administrateur de consulter la liste des abonnements aux projets FME et d’identifier ceux étant actifs et inactifs. Il peut choisir de supprimer définitivement un abonnement en cliquant sur «&#160;Supprimer les abonnements&#160;». </p>
+                            <h2 class="Titre2"><a name="8.3"><span class="span_1">8.3 </span>Supervision des surveillances</a> <![CDATA[ ]]></h2>
+                            <p>De la même façon, l’onglet Surveillance permet à l’administrateur de consulter la liste des demandes de surveillance créées par les utilisateurs. </p>
+                            <p>Il peut choisir de supprimer définitivement une surveillance&#160;: après avoir sélectionné le ou les abonnements à supprimer, il clique sur le bouton «&#160;Supprimer les abonnements&#160;».</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h1 class="Titre1"><a name="9"><span class="span_1">9 </span>Statistiques</a> <![CDATA[ ]]></h1>
+                            <p>Le mode Statistiques permet aux administrateurs d’avoir une vision graphique et synthétique de l’utilisation des ressources de GTF, moteur, traitement, temps machine, par date et/ou utilisateur à travers des graphiques et des tableaux de synthèse. </p>
+                            <p>L’affichage des statistiques peut être graphique ou tabulaire (export dans Excel) et il est possible d’obtenir une représentation journalière, hebdomadaire, mensuelle et annuelle de l’activité sur le serveur à partir d’une date spécifiée en paramètre.&#160;&#160; </p>
+                            <p>&#160;</p>
+                            <p>La liste déroulante Variable permet de choisir la variable devant être représentée dans les tableaux ou graphiques&#160;: </p>
+                            <ul class="ul_3">
+                                <li class="Paragraphedeliste_1" value="1">Nombre de traitements exécutés </li>
+                                <li class="Paragraphedeliste_1" value="2">Temps total des traitements </li>
+                                <li class="Paragraphedeliste_1" value="3">Durée des traitements par projet FME</li>
+                            </ul>
+                            <p class="Paragraphedeliste_6">&#160;</p>
+                            <p>Pour les deux dernières variables, le temps total des traitements et le temps par projet peuvent être représentés par&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Seconde</li>
+                                <li class="Paragraphedeliste_1" value="2">Minute</li>
+                                <li class="Paragraphedeliste_1" value="3">Heure</li>
+                                <li class="Paragraphedeliste_1" value="4">Pourcentage&#160; du temps total d’utilisation</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>L’administrateur choisit ensuite de regrouper ces variables par&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Utilisateur</li>
+                                <li class="Paragraphedeliste_1" value="2">Projet FME</li>
+                                <li class="Paragraphedeliste_1" value="3">Etat du traitement (traitement en erreur ou traité)</li>
+                                <li class="Paragraphedeliste_1" value="4">Moteur utilisé</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Puis il&#160; choisit la période d’analyse et la date à partir de laquelle produire les statistiques&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Jour </li>
+                                <li class="Paragraphedeliste_1" value="2">Semaine</li>
+                                <li class="Paragraphedeliste_1" value="3">Mois </li>
+                                <li class="Paragraphedeliste_1" value="4">Année</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Le’ Nombre d’éléments max’ permet de n’afficher que les éléments les plus importants en terme de durée ou de nombre, les autres étant regroupés dans&#160; la classe Autres. Dans l’exemple ci-dessous, il a été choisi de n’afficher que 2 éléments maximum&#160;: les traitements ‘Conversion de fichier’ et ‘extraction ZI’ sont les deux traitements les plus longs, ils sont donc affichés et détaillées&#160;; tous les autres traitements sont regroupés dans la classe ‘autres’.</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000044.png" style="height: 271px;width: 507px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>Il est possible de tronquer les libellés pour réduire la taille de la légende et des info-bulles. </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_3">
+                                <img src="../resources/images/attention.png" />Il est possible d’augmenter le niveau de détail&#160; directement dans le graphique, en cliquant sur une barre d’histogramme. Le niveau d’analyse s’affine passant selon les cas, de l’année au mois, à la semaine, au jour et aux heures. Inversement, un clic droit&gt; zoom out,&#160; sur une barre d’histogramme permet de passer à une analyse statistique plus large passant selon les cas des heures, au jour, au mois et à l’année.</p>
+                            <p class="p_12">&#160;</p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000045.png" style="height: 228px;width: 603px;" class="img_1" />
+                            </p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000046.png" style="height: 214px;width: 602px;" class="img_1" />
+                            </p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000047.png" style="height: 213px;width: 602px;" class="img_1" />
+                            </p>
+                            <p class="p_12">&#160;</p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000048.png" style="height: 222px;width: 602px;" class="img_1" />
+                            </p>
+                            <h1 class="Titre1"><a name="10"><span class="span_1">10 </span>Journaux (logs)</a>
+                            </h1>
+                            <h2 class="Titre2"><a name="10.1"><span class="span_1">10.1 </span>Consultation des fichiers de logs de l’application</a> <![CDATA[ ]]></h2>
+                            <p>&#160;</p>
+                            <p>Le mode Logs permet d’accéder à l’ensemble des fichiers de logs Apache, Pycron, Php, GTF et web.</p>
+                            <p>L’administrateur a la possibilité de supprimer les fichiers en fonction de leur ancienneté.&#160; </p>
+                            <p>&#160;</p>
+                            <h1 class="Titre1"><a name="11"><span class="span_1">11 </span>Configuration et procédures d'exploitation</a> <![CDATA[ ]]></h1>
+                            <h2 class="Titre2"><a name="11.1"><span class="span_1">11.1 </span>Configuration de l’application</a> <![CDATA[ ]]></h2>
+                            <p>Le mode Configuration permet de modifier les paramètres de configuration stockés dans des fichiers de type "properties" et de consulter l'état de l'application.</p>
+                            <h3 class="Titre3">11.1.1 <a name="11.1.1"></a>Paramètres généraux de configuration </h3>
+                            <p>La section Configuration permet de consulter et modifier les paramètres généraux de l’application. Organisée en rubriques, cette section permet la modification des paramètres généraux de GTF, des serveurs HTTP, SMTP et Proxy, des moteurs et des logs. Via cette section, l'administrateur personnalise l'application et améliore ses performances en déterminant les délais d'expiration de l'interface graphique, les taillles maximales des fichiers uploadés sur le serveur, les formats de dates... Il définit également l'emplacement du répertoire temporaire exploité par GTF, ainsi que les fichiers à ne pas compresser. Il peut de la sorte, choisir d'exclure des formats de la compression en définissant les extensions de fichiers non compressibles. Les formats de fichiers uniques tels que .xls, .html, .htm sont par défaut non compressibles. </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="../resources/images/attention.png" />La taille maximale de fichier uploadé est définie par défaut à 100 Mo. Pour augmenter cette valeur, il est nécessaire de modifier  les 2 properties 'upload_max_filesize' et 'post_max_size' du fichier de configuration php.ini avant de configurer cette valeur directement dans le mode configuration de GTF.</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>La section Version permet de consulter le numéro de version de GTF et le build installé, de vérifier le numéro de version PHP et l’installation des extensions indispensables et optionnelles ainsi que la version PostgreSQL et de son extension Postgis. </p>
+                            <p>La section PHP permet de consulter les paramètres de la version PHP installée.</p>
+                            <p>La section Mises à jour permet de consulter et télécharger la dernière mise à jour de GTF.</p>
+                            <p>La section licence permet de faire une demande de fichier de licence , de l'installer puis de l'activer.</p>
+                            <p>&#160;</p>
+                            <p>La section sécurité permet la configuration de la <a href="#5.2.4" class="selected">gestion mixte des utilisateurs</a> ainsi que les gestion du <a href="#compte_public" class="selected">compte public</a> . </p>
+                            <p class="Paragraphedeliste_1">&#160;</p>
+                            <h3 class="Titre3"><a name="11.1.2"></a><a name="compte_public"><span class="span_1">11.1.2</span> Configuration du compte public et Jeton public</a>
+                            </h3>
+                            <p>La partie Sécurité de la section Configuration permet de définir quel compte de connexion correspond au compte Public pour lequel un jeton de connexion doit être associé. Le jeton de connexion est l'identifiant de connexion appelant un service GTF, intégré directement dans une page internet. Créer un compte public avec son jeton de connexion est un moyen simple pour un administrateur de donner accès à un formulaire GTF&#160; à un utilisateur avec un minimum de droits.</p>
+                            <p>&#160;</p>
+                            <p>Le bouton 'Autoriser les connexions avec le compte PUBLIC' permet d'activer/désactiver l'accès aux services GTF du compte PUBLIC. </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_3">
+                                <img src="../resources/images/attention.png" />Le jeton de connexion public doit être une chaîne de caractères non vide et sans espace. </p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000049.png" style="height: 169px;width: 503px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <h3 class="Titre3">11.1.3 <a name="11.1.3"></a>Configuration des répertoires Public et Upload</h3>
+                            <p>Les répertoires Upload et Public, installés dans le répertoire d'installation de GTF, stockent repsectivement les ressources chargées avec un projet et les résultats d'un traitement. Il est possible de déplacer ces deux répertoires sur un autre disque et d'assurer de la sorte une répartition des données pour faciliter les processus de sauvegarde. </p>
+                            <p>&#160;</p>
+                            <p>Pour cela, l'administrateur doit opérer en deux étapes : </p>
+                            <ul>
+                                <li value="1">Dans le fichier de configuration properties_post.inc du réperoire .\gtf.client, modifier les deux properties : </li>
+                            </ul>
+                            <p class="extraitcode_1">$properties['upload_dir'] = $properties['gtf_home'] . '/upload';</p>
+                            <p class="extraitcode_1">$properties['dir_export'] = $properties['gtf_home'] . '/public';</p>
+                            <p>en indiquant le chemin complet des répertoires upload et public. </p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1">Dans le fichier de configuration httpd.conf du répertoire .\server\Apache2\conf du réperotire d'installation de GTF , modifier la configuration : </li>
+                            </ul>
+                            <p class="extraitcode_1">Alias /public "C:/serveur/gtf_2015-01.00.b12674_betax64/public"en indiquant le chemin complet </p>
+                            <p class="extraitcode_1">&lt;Directory "C:/serveur/gtf_2015-01.00.b12674_betax64/public"&gt;</p>
+                            <p>en indiquant le chemion complet du réperoitre public. </p>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="11.2"><span class="span_1">11.2 </span>Nettoyage et suppression des fichiers temporaires</a> <![CDATA[ ]]></h2>
+                            <p>L’administrateur doit veiller à supprimer régulièrement les fichiers temporaires générés par l’application.</p>
+                            <p>&#160;</p>
+                            <p>Il dispose pour cela du projet FME <span class="span_10"></span>‘nettoyage_des_fichiers_temporaires.fmw’ contenu dans le fichier <span class="span_5">admin.gex</span>, disponible sur <a href="http://download.veremes.com/"><span class="Lienhypertexte">notre site de téléchargement.</span></a> Après avoir <a href="#_Import_des_traitements" class="selected"><span class="Lienhypertexte">importé et publié ce projet dans GTF</span></a>, l’administrateur peut s’abonner au traitement et assurer de la sorte une suppression régulière des fichiers temporaires. </p>
+                            <p>&#160;</p>
+                            <p>3 types de fichiers peuvent être supprimés : </p>
+                            <ul class="ul_4">
+                                <li class="Paragraphedeliste_1" value="1">Les fichiers temporaires produits par GTF</li>
+                                <li class="Paragraphedeliste_1" value="2">Les fichiers temporaires produits par FME </li>
+                                <li class="Paragraphedeliste_1" value="3">Les jeux de données sources chargés sur le serveur par les utilisateurs finaux contenus dans le répertoire &lt;gtf&gt;\upload</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Le paramètre ‘Age minimum des fichiers à supprimer’&#160; permet de définir l’ancienneté minimale (en jours) des fichiers à supprimer évitant ainsi la suppression de fichiers déposés sur le serveur sans avoir été traités ou en cours d’exécution. </p>
+                            <p>Un rapport de nettoyage dont le nom est défini par l'utilisateur est généré au format.txt. </p>
+                            <h2 class="Titre2"><a name="_Sauvegarde_et_restauration"></a><a name="_Toc405456992"><span class="span_1">11.3 </span>Sauvegarde et restauration de l’application</a> <![CDATA[ ]]></h2>
+                            <h3 class="Titre3"><a name="11.3.1"><span class="span_1">11.3.1 </span>Sauvegarde de l'application</a> <![CDATA[ ]]></h3>
+                            <p>Le projet Sauvegarde GTF  , disponible sur <a href="http://download.veremes.com/"><span class="Lienhypertexte">notre site de téléchargement</span></a>  dans le projet admin.gex permet la sauvegarde de la base de données, des traitements publiés et de leurs résultats, du fichier pycron ainsi que l'ensemble des paramètres de configuration de GTF.&#160; Après avoir <a href="#_Import_des_traitements" class="selected"><span class="Lienhypertexte">importé et publié ce projet dans GTF</span></a>, l’administrateur peut s’abonner au traitement et assurer une sauvegarde régulière de l’application. </p>
+                            <p>&#160;</p>
+                            <p>Le paramètre Nombre de fichiers de sauvegarde à conserver indique le nombre maximum de fichiers conservés dans le répertoire backup. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Le traitement opère de la manière suivante : </p>
+                            <ul>
+                                <li value="1">Sauvegarde  dans le répertoire gtf/backup des deux fichiers properties_domain.inc et properties_post_engine.inc</li>
+                                <li value="2">Sauvegarde des exports sql de la base de données </li>
+                                <li value="3">Sauvegarde des projets FME, des ressources complémentaires et des formulaires. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_5" style="text-align: left;">
+                                <img src="../resources/images/attention.png" /><b>Pré requis à l’exécution de la sauvegarde de GTF : </b>
+                            </p>
+                            <p class="p_18">Dans le cas d’une installation personnalisée de GTF, sans installation de la base PostgreSQL, l’administrateur doit impérativement copier dans &lt;gtf&gt;/util/postgres les fichiers postgres suivants (répertoire racine de postgreSQL) : </p>
+                            <p class="Paragraphedeliste_7"><span class="span_2">libeay32.dll</span><span class="span_2"><br />libiconv-2.dll</span><span class="span_2"><br />libintl-8.dll</span><span class="span_2"> ou libintl.dll</span><span class="span_2"><br />libpq.dll</span><span class="span_2"><br />pg_dump.exe</span><span class="span_2"><br />pg_dumpall.exe</span><span class="span_2"><br />pg_restore.exe</span><span class="span_2"><br />psql.exe</span><span class="span_2"><br />ssleay32.dll</span><span class="span_2"><br />zlib1.dll</span>
+                            </p>
+                            <p class="p_5"><span class="span_2">(</span><span class="span_2">Si postgres est installé avec l'</span><span class="span_2">installeur</span><span class="span_2">, ces fichiers sont automatiquement copiés.</span><span class="span_2">)</span>
+                            </p>
+                            <p class="p_5"><span class="span_2"></span>
+                            </p>
+                            <blockquote>
+                                <blockquote>
+                                    <blockquote>
+                                        <blockquote>
+                                            <p class="p_4" style="font-weight: bold;">
+                                                <img src="../resources/images/attention.png" class="img_1" /><b></b>Pré requis à l’exécution de la sauvegarde de <b>GTF</b> : </p>
+                                        </blockquote>
+                                    </blockquote>
+                                </blockquote>
+                            </blockquote>
+                            <p class="p_5"><span class="span_2">SI postgre n'a pas été installé par le set up, alors les lignes suivantes doivent être rajoutées </span><span class="span_2">immédiatement après "# IPv4 local connections:" </span>
+                            </p>
+                            <p class="p_19">host&#160;&#160;&#160; postgres&#160;&#160;&#160; u_scheduler&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160; trust</p>
+                            <p class="p_18">Immédiatement après "# IPv6 local connections:" </p>
+                            <p class="p_19">host&#160;&#160;&#160; postgres&#160;&#160;&#160; u_scheduler&#160;&#160;&#160; ::1/128&#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; trust</p>
+                            <p class="p_5">&#160;</p>
+                            <p class="p_5">&#160;</p>
+                            <h3 class="Titre3"><a name="11.3.2"><span class="span_1">11.3.2</span> Restauration de l'application</a> <![CDATA[ ]]></h3>
+                            <p>Le script 'restore.bat' fourni avec GTF permet la restauration de l'application GTF à partir d'un fichier compressé obtenu après exécution du traitement sauvegarde (dans admin.gex disponible à l'adresse <a href="http://download.veremes.com/"><span class="Lienhypertexte">http://download.veremes.com/</span></a>, répertoire gtf/gex)</p>
+                            <p class="Paragraphedeliste_8">Ce script peut être exécuté à partir de n'importe quel répertoire mais&#160; le  chemin PHP et celui du fichier compressé .zip de sauvegarde doivent être indiqués au lancement. </p>
+                            <p class="Paragraphedeliste_8">Par exemple:</p>
+                            <p class="extraitcode"> &#160;</p>
+                            <p class="extraitcode">restore.bat "C:\serveurs\p.exe" "C:\serveurs\gtf\gtf_v2\public\2014040210410540232\1533.zip"</p>
+                            <p class="Paragraphedeliste_3">&#160;</p>
+                            <p class="Paragraphedeliste_3">
+                                <img src="../resources/images/attention.png" />Le fichier psql.exe doit être présent dans le répertoire util\postgres du répertoire d'installation de GTF.</p>
+                            <p class="Paragraphedeliste_4">&#160;</p>
+                            <p class="Paragraphedeliste_4">
+                                <img src="../resources/images/attention.png" />Effet de bord de la restauration : une fois les données restaurées, un traitement de sauvegarde se lance immédiatement (c'est le traitement de sauvegarde qui s'est sauvegardé lui-même et qui est donc relancé).</p>
+                            <p class="p_5">&#160;</p>
+                            <h1 class="Titre1"><a name="12"><span class="span_1">12 </span>Utilisation des services WEB de GTF</a> <![CDATA[ ]]></h1>
+                            <p>Il est possible de manipuler GTF sans passer par l’interface gtf.client mais à l'aide d'une simple URL. C'est l'aspect "web service" de GTF. Ce service permet d’utiliser plusieurs fonctionnalités de l’application via des URL (adresses web). </p>
+                            <p>&#160;</p>
+                            <p>Il existe actuellement plusieurs versions de l’API dans l’application. La version applicable est la version 4. La version 3 de l’API est dépréciée, mais reste  toujours exploitable. La documentation associée à la version 3  est disponible sur notre site de téléchargement à l'adresse <a href="http://download.veremes.com/"><span class="Lienhypertexte">http://download.veremes.com/</span></a>&#160; dans le répertoire gtf/archive.  </p>
+                            <p>&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/0300004a.png" style="width: 330px;height: 273px;" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Comme l’indique le diagramme de séquence ci-dessus, l’appel d’une opération se fait en 2 temps : </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Votre application doit dans un premier temps générer le token (jeton de connexion)</li>
+                                <li class="Paragraphedeliste_1" value="2">Appel à l’api rest avec le token précédemment créé. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Toute la documentation relative aux services WEB de GTF et à l'API REST est disponible edans le menu AIide &gt; Service Web.</p>
+                            <h1 class="Titre1"><a name="13"><span class="span_1">13 </span>Support technique</a> <![CDATA[ ]]></h1>
+                            <p>&#160;</p>
+                            <p>&#160;Pour toute information complémentaire, vous pouvez contacter l’équipe de Veremes : </p>
+                            <p>&#160;</p>
+                            <p class="p_1"><a href="mailto:support@veremes.com" class="Lienhypertexte">support@veremes.com</a>
+                            </p>
+                            <p class="p_1">+33 0-4 68 38 65 27</p>
+                            <p class="p_1">+33 0-9 70 44 02 02</p>
+                            <p class="p_20">&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h1 class="Titre1"><a name="14"><span class="span_1">14 </span>Annexes</a> <![CDATA[ ]]></h1>
+                            <p>&#160;</p>
+                            <h2 class="Titre2"><a name="14.2_Syntaxe_Pycron"></a><a name="_Toc405457001"><span class="span_1">14.1 </span>Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                            </h2>
+                            <p> Le code à saisir doit respecter la syntaxe : <span class="span_5">mm hh jj MMM JJJ tâche </span></p>
+                            <p>Où </p>
+                            <p><span class="span_5">mm </span>représente les minutes (de 0 à 59) </p>
+                            <p><span class="span_5">hh </span>représente l’heure (de 0 à 23) </p>
+                            <p><span class="span_5">jj </span>représente le numéro du jour du mois (de 1 à 31) </p>
+                            <p><span class="span_5">MMM </span>représentent l’abréviation du nom du mois (jan, feb,…) ou le numéro du mois (de 1 à 12) </p>
+                            <p><span class="span_5">JJJ </span>représente l’abréviation du nom du jour ou bien le numéro du jour dans la semaine (0 = dimanche, 6 = samedi) </p>
+                            <p>&#160;</p>
+                            <p>*Signifie à chaque unité (0,1,2,3,4…) </p>
+                            <p>5,8 signifie les unités 5 et 8 </p>
+                            <p>2-5 signifie les unités de 2 à 5 </p>
+                            <p>*/3 signifie toutes les 3 unités (0,3,6,9…) </p>
+                            <p>&#160;</p>
+                            <p class="p_28">Exemples de syntaxe : </p>
+                            <p>Tous les jours à 12 h : <span class="span_5">0 12 *** </span></p>
+                            <p>Tous les lundis à 22h15 : <span class="span_5">15 22 * *1 </span></p>
+                            <p>Toutes les heures passées de 15 min : <span class="span_5">15 * * * * </span></p>
+                            <p>Tous les premiers du mois à 4h42 : <span class="span_5">42 4 1 * * </span></p>
+                            <p>Du 2 au 5 de chaque mois à 10h12 <span class="span_5">: 12 10 2-5 **</span></p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/page_de_garde_gtf_2017.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/page_de_garde_gtf_2017.htm
new file mode 100755
index 0000000000000000000000000000000000000000..739cadfea1fdcceb99f243096bf1cac081cb31d9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/page_de_garde_gtf_2017.htm
@@ -0,0 +1,400 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="" data-mc-condition-tag-expression="include[Default.PrintOnly] " data-mc-source-document="E:\svn\produit\gtf\doc\gtf_manuel_utilisateur .docx">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>Gestionnaire de Tâches pour FME</title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_2" style="color: #00008b;">Gestionnaire de Tâches pour FME</p>
+                            <p class="p_2" style="color: #00008b;">2017</p>
+                            <p class="p_2" style="color: #00008b;">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf.png" />
+                            </p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_1">&#160;</p>
+                            <p class="p_3" style="color: #00008b;">Guide d'installation</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/statistiques.htm b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/statistiques.htm
new file mode 100755
index 0000000000000000000000000000000000000000..11daf045ef8959b9c4113a802e22b05cd494e2a6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/gtf_manuel_utilisateur/statistiques.htm
@@ -0,0 +1,416 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>  Statistiques  </title>
+        <link href="../resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="#" class="selected">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1 class="Titre1"><a name="9"><span class="span_1"> </span>Statistiques</a> <![CDATA[ ]]></h1>
+                            <p>Le mode Statistiques permet aux administrateurs d’avoir une vision graphique et synthétique de l’utilisation des ressources de GTF, moteur, traitement, temps machine, par date et/ou utilisateur à travers des graphiques et des tableaux de synthèse. </p>
+                            <p>L’affichage des statistiques peut être graphique ou tabulaire (export dans Excel) et il est possible d’obtenir une représentation journalière, hebdomadaire, mensuelle et annuelle de l’activité sur le serveur à partir d’une date spécifiée en paramètre.&#160;&#160; </p>
+                            <p>&#160;</p>
+                            <p>La liste déroulante Variable permet de choisir la variable devant être représentée dans les tableaux ou graphiques&#160;: </p>
+                            <ul class="ul_3">
+                                <li class="Paragraphedeliste_1" value="1">Nombre de traitements exécutés </li>
+                                <li class="Paragraphedeliste_1" value="2">Temps total des traitements </li>
+                                <li class="Paragraphedeliste_1" value="3">Durée des traitements par projet FME</li>
+                            </ul>
+                            <p class="Paragraphedeliste_6">&#160;</p>
+                            <p>Pour les deux dernières variables, le temps total des traitements et le temps par projet peuvent être représentés par&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Seconde</li>
+                                <li class="Paragraphedeliste_1" value="2">Minute</li>
+                                <li class="Paragraphedeliste_1" value="3">Heure</li>
+                                <li class="Paragraphedeliste_1" value="4">Pourcentage&#160; du temps total d’utilisation</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>L’administrateur choisit ensuite de regrouper ces variables par&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Utilisateur</li>
+                                <li class="Paragraphedeliste_1" value="2">Projet FME</li>
+                                <li class="Paragraphedeliste_1" value="3">Etat du traitement (traitement en erreur ou traité)</li>
+                                <li class="Paragraphedeliste_1" value="4">Moteur utilisé</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Puis il&#160; choisit la période d’analyse et la date à partir de laquelle produire les statistiques&#160;: </p>
+                            <ul class="ul_1">
+                                <li class="Paragraphedeliste_1" value="1">Jour </li>
+                                <li class="Paragraphedeliste_1" value="2">Semaine</li>
+                                <li class="Paragraphedeliste_1" value="3">Mois </li>
+                                <li class="Paragraphedeliste_1" value="4">Année</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>Le’ Nombre d’éléments max’ permet de n’afficher que les éléments les plus importants en termes de durée ou de nombre, les autres étant regroupés dans&#160; la classe Autres. Dans l’exemple ci-dessous, il a été choisi de n’afficher que 2 éléments maximum&#160;: les traitements ‘Conversion de fichier’ et ‘extraction ZI’ sont les deux traitements les plus longs, ils sont donc affichés et détaillés&#160;; tous les autres traitements sont regroupés dans la classe ‘autres’.</p>
+                            <p class="p_1">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000044.png" style="height: 271px;width: 507px;" class="img_1" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>Il est possible de tronquer les libellés pour réduire la taille de la légende et des info-bulles. </p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_3">
+                                <img src="../resources/images/attention.png" />Il est possible d’augmenter le niveau de détail&#160; directement dans le graphique, en cliquant sur une barre d’histogramme. Le niveau d’analyse s’affine, passant, selon les cas, de l’année au mois, à la semaine, au jour et aux heures. Inversement, un clic droit&gt; zoom out,&#160; sur une barre d’histogramme permet de passer à une analyse statistique plus large passant, selon les cas, des heures, au jour, au mois et à l’année.</p>
+                            <p class="p_12">&#160;</p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000045.png" style="height: 228px;width: 603px;" class="img_1" />
+                            </p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000046.png" style="height: 214px;width: 602px;" class="img_1" />
+                            </p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000047.png" style="height: 213px;width: 602px;" class="img_1" />
+                            </p>
+                            <p class="p_12">&#160;</p>
+                            <p class="p_12">
+                                <img src="../resources/images/gtf_manuel_utilisateur/03000048.png" style="height: 222px;width: 602px;" class="img_1" />
+                            </p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/param_re_personnels.htm b/src/module_gtf/module/gtf.doc/admin/Content/param_re_personnels.htm
new file mode 100755
index 0000000000000000000000000000000000000000..d7fc7fa5837fefda8f17027a567475a241826dd6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/param_re_personnels.htm
@@ -0,0 +1,501 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>6.1.8 Gestion des Transformers et formats personnalisés </title>
+        <link href="resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h3 class="Titre3">6.1.8 <a name="kanchor65"></a>Gestion des Transformers et formats personnalisés </h3>
+                            <p>FME stocke les formats et Transformers personnalisés dans des répertoires propres à chaque utilisateur identifiés par la variable d'environnement %userprofile%.</p>
+                            <ul>
+                                <li value="1">Les Transformers personnalisés sont  stockés dans le répertoire %userprofile%\Mes documents\FME\Transformers.</li>
+                                <li value="2"> Les formats personnalisés sont stockés dans le répertoire %userprofile%\Mes documents\FME\Formats</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>De la sorte, chaque utilisateur dispose de son propre environnement de travail. </p>
+                            <p>&#160;</p>
+                            <p>Dans GTF, un traitement FME est exécuté par le compte  qui exécute le service Pycron, en général système local. Ce dernier ne dispose pas de répertoire utilisateur %userprofile% . FME ne peut donc pas localiser les fichiers des Transformers et des formats personnalisés. Le traitement ressortira en erreur. </p>
+                            <p>&#160;</p>
+                            <p>Pour pouvoir être exploités, les formats et Transformers personnalisés doivent donc être installés manuellement (copiés) sur le serveur GTF&#160;dans les répertoires suivants : </p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1">Formats personnalisés ==&gt;&#160;$FME_HOME\datasources</li>
+                                <li value="2">Transformers personnalisés ==&gt;&#160;$FME_HOME\transformers</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h3 class="Titre3"><a name="6.1.9"></a>6.1.9 Gestion des <a name="kanchor66"></a>connexions nommées </h3>
+                            <p>Les connexions nommées stockent les informations de connexions aux bases de données et services web. De la même manière que les formats et Transformers personnalisés, les connexions nommées sont stockées dans des répertoires propres à chaque utilisateur.</p>
+                            <p>Elles sont ainsi stockées dans un fichier crypté 'namedConnections.data' situé dans le répertoire %userprofile%\AppData\Roaming\Safe Software\FME\</p>
+                            <p>&#160;</p>
+                            <p>Ce fichier doit pouvoir être accessible par un utilisateur réel via FME Workbench pour créer et gérer les connexions, mais il doit également pouvoir être utilisé par le compte système local, compte qui, dans GTF, exécute le service pycron pour lancer un traitment FME. </p>
+                            <p>&#160;</p>
+                            <p>Or, contraiement aux utilisateurs classiques, le compte système local ne dispose pas de répertoire personnel %userprofile%. Il ne peut donc pas exploiter les connexions nommées d'un projet FME publié sur un serveur GTF. </p>
+                            <p>&#160;</p>
+                            <p>Pour pouvoir exploiter les connexions nommées dans GTF, le fichier crypté des connexions nommées doit donc être localisé, puis une clé de registre doit ensuite être créée : elle indiquera l'emplacement du fichier crypté, de sorte à en assurer son utilisation  par tout compte ne disposant pas de répertoire personnel tel que le compte Système local. </p>
+                            <ul>
+                                <li value="1">Rendre publiques les connexions nommées désirées </li>
+                                <li value="2">Exporter les connexions nommés désirées dans un répertoire spécifique </li>
+                                <li value="3">Créer une clé de registre contenant le chemin du répertoire stockant les connexions nommées</li>
+                            </ul>
+                            <p>&#160;</p>
+                            <h4 class="h5">6.1.9.1. Rendre publique les connexions nommées </h4>
+                            <p>Dans un premier temps, pour pouvoir être exploitables par d'autres utilisateurs, les connexions nommées doivent être rendues publiques. </p>
+                            <p>Dans FME, dans le Menu Outils-&gt;Options FME-&gt;Connexions aux bases de données, sélectionnez les connexions nommées que vous souhaitez exporter (et les attribuer ensuite à un compte système local) puis cochez la case Public. </p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="resources/images/fme_connexionsnommees.png" style="width: 624px;height: 102px;" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Connexions nommées dans FME.</p>
+                            <p>&#160;</p>
+                            <p style="color: #556b2f;">
+                                <img src="resources/images/attention.png" /><span style="color: #000000;">La possibilité de rendre publique un connexion nommée a été implémenté dans la version 2016. Or, FME exploite des connexions nommées créées dans ses anciennes versions. Dans ce cas, La colonne public n'apparaît pas dans la fenêtre des connexions. Pour contourner ce problème et afficher la colonne Public, exportez les connexions nommées dans un nouvel emplacement, supprimez les connexions initiales, puis réimportez-les. </span>
+                            </p>
+                            <p style="color: #556b2f;">&#160;</p>
+                            <h4 class="h5">6.1.9.2 Exporter des connexions nommées </h4>
+                            <p>Sélectionnez la lou les connexions nommées que vous souhaitez exporter puis dans le menu contextuel, choisir Exporter.</p>
+                            <p style="text-align: center;">
+                                <img src="resources/images/fme_connexionnommeeexport.png" style="width: 628px;height: 223px;" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Export des connexions nommées.</p>
+                            <p>&#160;</p>
+                            <p>Les connexions sélectionnées sont exportées dans un fichier xml : 'exportConnectionData_x.xml'. Choisir ensuite son emplacement. </p>
+                            <p>&#160;</p>
+                            <p style="text-align: center;">
+                                <img src="resources/images/fme_connexionnommee_messageexport.png" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>Dans FME, il est alors possible de modifier l'emplacement du fichier des connexions nommées en indiquant le nouveau répertoire dans le menu Outils-&gt;Options FME-&gt;Chemins par défaut.</p>
+                            <p style="text-align: center;">
+                                <img src="resources/images/fme_connexion_nommeenouveaureprroiredesconnexionsnomees.png" style="width: 609px;height: 166px;" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Spécification du répertoire des connesions nommées. </p>
+                            <p>&#160;</p>
+                            <p>Vous pouvez par exemple, supprimer les connexions nommées d'origine, puis importer celles que vous venez d'exporter et remplacer de la sorte les connexions initiales. </p>
+                            <p>Retournez dans le menu Outils-&gt;Options FME-&gt;Connexions aux bases de données et sélectionnez 'Importer' dans le menu contextuel dans la liste des connexions.</p>
+                            <p>
+                                <img src="resources/images/fme_cn_import.png" style="width: 618px;height: 213px;" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Import de connexions nommées</p>
+                            <p>&#160;</p>
+                            <p> Sélectionnez les connexions que vous souhaitez importer : </p>
+                            <p>
+                                <img src="resources/images/f_cn_import_nouvellesconnexions.png" style="width: 632px;height: 358px;" />
+                            </p>
+                            <p class="Soustitre_figure" style="text-align: center;">Sélection des connexions nommées à importer</p>
+                            <p>&#160;</p>
+                            <p>Les connexions nommées précédemment exportées, sont à nouveau importées. </p>
+                            <p>&#160;</p>
+                            <p>Dorénavant, 5 connexions nommées sont listées dans le menu Outils-&gt;Options FME-&gt;Connexions aux bases de données : </p>
+                            <p>
+                                <img src="resources/images/fme_cn_cn.png" style="width: 624px;height: 346px;" />
+                            </p>
+                            <h4 class="h5">&#160;</h4>
+                            <p class="Soustitre_figure" style="text-align: center;">Nouvelles connexions nommées</p>
+                            <h4 class="h5">6.1.9.2 Création des clés de registre</h4>
+                            <p> Pour pouvoir attribuer au compte système local, le répertoire par défaut des connexions nommées (nouvellement importées), un fichier de registre cn32.reg (ou cn64.reg selon les versions de FME) doit être créé et contenir  l'emplacement du répertoire stockant le fichier crypté des connexions. </p>
+                            <p>&#160;</p>
+                            <p>----------------------------------------------------------------------------------------------------------------------------------------------------------</p>
+                            <p style="font-size: 10pt;">Windows Registry Editor Version 5.00</p>
+                            <p style="font-size: 10pt;">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Safe Software Inc.\Feature Manipulation Engine\Settings]</p>
+                            <p style="font-size: 10pt;">"Named Connection Db Type"=dword:00000000</p>
+                            <p style="font-size: 10pt;">"Named Connection Directory"="E:\\tmp\\connexion"</p>
+                            <p>------------------------------------------------------------------------------------------------------------------------------------------------------------</p>
+                            <p class="Soustitre_figure" style="text-align: center;">Clé de registre cn32.reg à créer. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="resources/images/attention.png" style="font-style: italic;" /><i>Les caractères '\'doivent être doublés. </i>
+                            </p>
+                            <p>&#160;</p>
+                            <h4 class="h5">6.1.9.3 Import de la clé de registre </h4>
+                            <p>Importer la clé de registre via la commande <span style="font-size: 10pt;">regedit-&gt;import</span> ou par un double clic sur le fichier .reg.</p>
+                            <p>&#160;</p>
+                            <ul>
+                                <li value="1">
+                                    <p>cn32.reg contient la clef de registre pour FME 32 bits</p>
+                                </li>
+                                <li value="2">
+                                    <p>cn64.reg contient la clef de registre pour FME 64 bits</p>
+                                </li>
+                            </ul>
+                            <p>
+                                <img src="resources/images/attention.png" /> Il est possible d'importer les deux clés. </p>
+                            <p style="text-align: center;">&#160;</p>
+                            <h4 class="h5">6.1.9.3 Test</h4>
+                            <p>Veremes met à disposition sur son <a href="#http://download.veremes.net/" class="selected">site de téléchargement</a> le projet ListSettings.fmw qui génère  un fichier texte (settings.txt) dans lequel sont listés les paramètres système FME du serveur tels que les builds , l'interpréteur Python utilisé.... </p>
+                            <p>Pour vérifier l'emplacement du répertoire des connexions nommés, exécutez le projet ListeSettings.fmw et assurez vous que le répertoire spécifié dans la clé de registre soit  bien rajouté et correct : </p>
+                            <p>-------------------------------------------------------------------------------------------------------------------------</p>
+                            <p style="font-size: 10pt;">Settings:</p>
+                            <p style="font-size: 10pt;">&#160;</p>
+                            <p style="font-size: 10pt;">Python:</p>
+                            <p style="font-size: 10pt;">Use Custom Python: false</p>
+                            <p style="font-size: 10pt;">Named Connection Db Type: 0</p>
+                            <p style="font-size: 10pt;">Named Connection Directory: E:\tmp\connexion</p>
+                            <p style="font-size: 10pt;">Statistics:</p>
+                            <p style="font-size: 10pt;">enabled: no</p>
+                            <p>--------------------------------------------------------------------------------------------------------------------------</p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <h4 class="h5">6.1.9.4 Publier une connexion nommée</h4>
+                            <p>Un auteur de projet peut publier une connexion nommée. Avec GTF 2015 et 2016.0, pour publier une connexion nommée il est nécessaire de créer un paramètre publié de type TEXTE.</p>
+                            <p style="text-align: center;">
+                                <img src="resources/images/cn_texte.png" />
+                            </p>
+                            <p>Puis il faut associer ce paramètre publié au paramètre du reader ou du transformer concerné :</p>
+                            <p style="text-align: center;">
+                                <img src="resources/images/cn_lie.png" />
+                            </p>
+                            <p>&#160;</p>
+                            <p>
+                                <img src="resources/images/attention.png" />Avec GTF 2016.1, les paramètres publiés de type Connexion Nommée sont automatquement reconnus et transformés en paramètre de type Texte. </p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/Stylesheets/gtf_manuel_utilisateur_.css b/src/module_gtf/module/gtf.doc/admin/Content/resources/Stylesheets/gtf_manuel_utilisateur_.css
new file mode 100755
index 0000000000000000000000000000000000000000..3f38f7f19db8a4144cd398b182f08cc1dc906c27
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/resources/Stylesheets/gtf_manuel_utilisateur_.css
@@ -0,0 +1,892 @@
+/*<meta sourceDocument="E:\svn\produit\gtf\doc\gtf_manuel_utilisateur .docx" />*/
+
+p
+{
+	text-align: justify;
+	font-family: Calibri;
+	font-size: 11pt;
+	margin-top: 0pt;
+	margin-bottom: 0pt;
+}
+
+ol
+{
+	text-align: justify;
+	font-family: Calibri;
+	font-size: 11pt;
+	margin-top: 0pt;
+	margin-bottom: 0pt;
+}
+
+ul
+{
+	text-align: justify;
+	font-family: Calibri;
+	font-size: 11pt;
+	margin-top: 0pt;
+	margin-bottom: 0pt;
+}
+
+li
+{
+	text-align: justify;
+	font-family: Calibri;
+	font-size: 11pt;
+	margin-top: 0pt;
+	margin-bottom: 0pt;
+}
+
+td
+{
+	text-align: justify;
+	font-family: Calibri;
+	font-size: 11pt;
+	vertical-align: top;
+}
+
+p.Pieddepage
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+}
+
+p.p_1
+{
+	text-align: center;
+}
+
+p.p_2
+{
+	text-align: center;
+	font-weight: bold;
+	color: #6D1A67;
+	font-size: 14pt;
+}
+
+img.img_1
+{
+	visibility: visible;
+	mso-wrap-style: square;
+}
+
+p.p_3
+{
+	text-align: center;
+	font-weight: bold;
+	font-style: italic;
+	color: #6D1A67;
+	font-size: 20pt;
+}
+
+p.p_4
+{
+	margin-bottom: 10pt;
+	text-align: left;
+}
+
+h1.Titre1
+{
+	text-align: justify;
+	page-break-after: avoid;
+	page-break-inside: avoid;
+	page-break-before: always;
+	margin-top: 24pt;
+	mc-heading-level: 1;
+	font-family: Cambria;
+	font-weight: bold;
+	color: #365F91;
+	font-size: 14pt;
+}
+
+li.Paragraphedeliste
+{
+	text-align: justify;
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+}
+
+p.Paragraphedeliste
+{
+	text-align: justify;
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+}
+
+h2.Titre2
+{
+	text-align: justify;
+	page-break-after: avoid;
+	page-break-inside: avoid;
+	margin-top: 10pt;
+	mc-heading-level: 2;
+	font-family: Cambria;
+	font-weight: bold;
+	color: #4F81BD;
+	font-size: 13pt;
+}
+
+h3.Titre3
+{
+	text-align: justify;
+	font-size: 11pt;
+	page-break-after: avoid;
+	page-break-inside: avoid;
+	margin-top: 10pt;
+	margin-left: 64pt;
+	mc-heading-level: 3;
+	font-family: Cambria;
+	font-weight: bold;
+	color: #4F81BD;
+}
+
+span.Lienhypertexte
+{
+	color: #0000FF;
+	text-decoration: underline;
+}
+
+p.Style1
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+	font-weight: bold;
+	font-style: italic;
+	color: #943A99;
+}
+
+p.extraitcode
+{
+	background-color: #E5E5E5;
+	text-align: left;
+	font-family: Calibri;
+	font-weight: bold;
+	font-size: 8pt;
+}
+
+h4.Titre4
+{
+	text-align: justify;
+	font-size: 11pt;
+	page-break-after: avoid;
+	page-break-inside: avoid;
+	margin-top: 10pt;
+	mc-heading-level: 4;
+	font-family: Cambria;
+	font-weight: bold;
+	font-style: italic;
+	color: #4F81BD;
+}
+
+span.Titre3Car
+{
+	font-weight: bold;
+	color: #4F81BD;
+}
+
+a.Lienhypertexte
+{
+	color: #0000FF;
+	text-decoration: underline;
+}
+
+p.p
+{
+	font-family: Calibri;
+	font-size: 12pt;
+}
+
+span.span_1
+{
+	margin-right: 0pt;
+}
+
+li.li_1
+{
+	list-style-type: disc;
+}
+
+li.Paragraphedeliste_1
+{
+	text-align: justify;
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+	list-style-type: disc;
+}
+
+ul.ul_1
+{
+	list-style-type: disc;
+	margin-left: 36pt;
+}
+
+p.p_5
+{
+	text-align: left;
+}
+
+li.li_2
+{
+	text-align: left;
+}
+
+p.p_6
+{
+	text-align: left;
+	font-weight: bold;
+}
+
+td.td_1
+{
+	vertical-align: middle;
+	border-top-style: solid;
+	border-top-width: 1pt;
+	border-top-color: black;
+	border-left-style: solid;
+	border-left-width: 1pt;
+	border-left-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+}
+
+td.td_2
+{
+	vertical-align: middle;
+	border-top-style: solid;
+	border-top-width: 1pt;
+	border-top-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+}
+
+td.td_3
+{
+	vertical-align: middle;
+	border-left-style: solid;
+	border-left-width: 1pt;
+	border-left-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+}
+
+td.td_4
+{
+	vertical-align: middle;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+}
+
+table.table_1
+{
+	margin-left: auto;
+	margin-right: auto;
+	border-collapse: collapse;
+}
+
+p.p_7
+{
+	color: #FF0000;
+}
+
+p.p_8
+{
+	text-align: center;
+	color: #FF0000;
+}
+
+li.Paragraphedeliste_2
+{
+	text-align: justify;
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+	list-style-type: square;
+	font-style: italic;
+}
+
+ul.ul_2
+{
+	list-style-type: square;
+	margin-left: 36pt;
+}
+
+p.p_9
+{
+	margin-left: 35pt;
+}
+
+li.Paragraphedeliste_3
+{
+	text-align: justify;
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+	list-style-type: square;
+}
+
+p.Paragraphedeliste_1
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 36pt;
+}
+
+p.Style1_1
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+	font-weight: bold;
+	font-style: italic;
+	color: #943A99;
+	margin-left: 36pt;
+}
+
+span.span_2
+{
+	font-style: italic;
+}
+
+p.p_10
+{
+	margin-left: 18pt;
+	font-style: italic;
+}
+
+p.extraitcode_1
+{
+	background-color: #E5E5E5;
+	text-align: left;
+	font-family: Calibri;
+	font-weight: bold;
+	font-size: 8pt;
+	margin-left: 35pt;
+}
+
+p.Paragraphedeliste_2
+{
+	text-align: justify;
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+	font-style: italic;
+}
+
+span.span_3
+{
+	font-style: italic;
+	color: #FF0000;
+}
+
+span.span_4
+{
+	font-weight: bold;
+	font-style: italic;
+}
+
+span.span_5
+{
+	font-weight: bold;
+}
+
+p.p_11
+{
+	font-weight: bold;
+}
+
+p.p_12
+{
+	margin-left: 18pt;
+}
+
+span.span_6
+{
+	color: #00B050;
+}
+
+li.Paragraphedeliste_4
+{
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+	text-align: left;
+}
+
+p.Paragraphedeliste_3
+{
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 36pt;
+	text-align: left;
+}
+
+p.p_13
+{
+	margin-left: 18pt;
+	text-align: center;
+}
+
+p.p_14
+{
+	margin-left: 212pt;
+}
+
+p.p_15
+{
+	margin-left: 212pt;
+	font-size: 9pt;
+}
+
+p.Paragraphedeliste_4
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 39pt;
+	font-style: italic;
+}
+
+p.p_16
+{
+	text-align: left;
+	color: #000000;
+	font-size: 8pt;
+}
+
+td.td_5
+{
+	background-color: #auto;
+	vertical-align: bottom;
+	border-top-style: solid;
+	border-top-width: 1pt;
+	border-top-color: black;
+	border-left-style: solid;
+	border-left-width: 1pt;
+	border-left-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+td.td_6
+{
+	background-color: #auto;
+	vertical-align: bottom;
+	border-top-style: solid;
+	border-top-width: 1pt;
+	border-top-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+td.td_7
+{
+	background-color: #auto;
+	vertical-align: bottom;
+	border-left-style: solid;
+	border-left-width: 1pt;
+	border-left-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+td.td_8
+{
+	background-color: #auto;
+	vertical-align: bottom;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+span.span_7
+{
+	color: #000000;
+	font-size: 8pt;
+}
+
+table.table_2
+{
+	margin-left: 0pt;
+	border-collapse: collapse;
+}
+
+span.span_8
+{
+	font-weight: bold;
+	color: #943A99;
+}
+
+span.span_9
+{
+	font-weight: bold;
+	color: #7030A0;
+}
+
+span.Titre3Car_1
+{
+	font-weight: bold;
+	color: #4F81BD;
+	font-family: Cambria;
+}
+
+p.Paragraphedeliste_5
+{
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 36pt;
+	text-align: center;
+}
+
+p.p_17
+{
+	margin-left: 18pt;
+	text-align: left;
+}
+
+p.Style1_2
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+	font-weight: bold;
+	font-style: italic;
+	color: #auto;
+}
+
+ul.ul_3
+{
+	list-style-type: disc;
+	margin-left: 38pt;
+}
+
+p.Paragraphedeliste_6
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 38pt;
+}
+
+span.span_10
+{
+	color: #FF0000;
+}
+
+ul.ul_4
+{
+	list-style-type: disc;
+	margin-left: 39pt;
+}
+
+li.Paragraphedeliste_5
+{
+	text-align: justify;
+	font-size: 11pt;
+	margin-left: 35pt;
+	font-family: Calibri;
+	list-style-type: square;
+	font-weight: bold;
+	font-style: italic;
+	color: #943A99;
+}
+
+p.p_18
+{
+	text-align: left;
+	font-style: italic;
+}
+
+p.Paragraphedeliste_7
+{
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 107pt;
+	text-align: left;
+}
+
+p.p_19
+{
+	text-align: left;
+	font-weight: bold;
+	font-style: italic;
+}
+
+p.Paragraphedeliste_8
+{
+	text-align: justify;
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 0pt;
+}
+
+p.p_20
+{
+	font-family: Calibri;
+	font-size: 12pt;
+	color: #000000;
+}
+
+p.p_21
+{
+	margin-bottom: 8pt;
+	text-align: left;
+}
+
+p.p_22
+{
+	font-style: italic;
+	font-size: 8pt;
+}
+
+p.Paragraphedeliste_9
+{
+	text-align: justify;
+	margin-left: 35pt;
+	font-family: Calibri;
+	font-style: italic;
+	font-size: 8pt;
+}
+
+span.span_11
+{
+	font-style: italic;
+	font-size: 8pt;
+}
+
+span.span_12
+{
+	font-size: 8pt;
+}
+
+p.p_23
+{
+	text-align: center;
+	font-style: italic;
+	font-size: 12pt;
+}
+
+p.p_24
+{
+	margin-left: 35pt;
+	font-style: italic;
+	font-size: 8pt;
+}
+
+p.Paragraphedeliste_10
+{
+	margin-left: 35pt;
+	font-family: Calibri;
+	text-align: left;
+	font-style: italic;
+	font-size: 8pt;
+}
+
+span.span_13
+{
+	color: #7030A0;
+}
+
+span.span_14
+{
+	color: #C00000;
+}
+
+p.p_25
+{
+	text-align: center;
+	color: #7030A0;
+}
+
+p.p_26
+{
+	font-weight: bold;
+	font-size: 9pt;
+}
+
+td.td_9
+{
+	border-top-style: solid;
+	border-top-width: 1pt;
+	border-top-color: black;
+	border-left-style: solid;
+	border-left-width: 1pt;
+	border-left-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+td.td_10
+{
+	border-top-style: solid;
+	border-top-width: 1pt;
+	border-top-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+p.p_27
+{
+	font-size: 9pt;
+}
+
+td.td_11
+{
+	border-left-style: solid;
+	border-left-width: 1pt;
+	border-left-color: black;
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+td.td_12
+{
+	border-right-style: solid;
+	border-right-width: 1pt;
+	border-right-color: black;
+	border-bottom-style: solid;
+	border-bottom-width: 1pt;
+	border-bottom-color: black;
+	padding-left: 4pt;
+	padding-right: 4pt;
+}
+
+span.span_15
+{
+	font-size: 9pt;
+}
+
+table.table_3
+{
+	border-collapse: collapse;
+}
+
+span.span_16
+{
+	font-weight: bold;
+	font-size: 8pt;
+}
+
+span.span_17
+{
+	font-weight: bold;
+	font-style: italic;
+	font-size: 8pt;
+}
+
+p.p_28
+{
+	font-weight: bold;
+	font-style: italic;
+	color: #943A99;
+}
+
+span.span_18
+{
+	font-style: italic;
+	color: #7030A0;
+	font-size: 8pt;
+}
+
+p.Pieddepage_1
+{
+	font-size: 11pt;
+	font-family: Calibri;
+	margin-left: 5pt;
+	margin-right: 5pt;
+	text-align: left;
+}
+
+h4.h5
+{
+	text-align: justify;
+	page-break-after: avoid;
+	page-break-inside: avoid;
+	margin-top: 10pt;
+	mc-heading-level: 4;
+	font-family: Cambria;
+	font-weight: bold;
+	font-style: italic;
+	color: #4F81BD;
+	font-size: 10pt;
+}
+
+span.Soustitre_figure
+{
+	font-size: 9pt;
+	font-style: italic;
+}
+
+p.Soustitre_figure
+{
+	font-size: 8pt;
+	font-style: italic;
+}
+
+span.sousTitre
+{
+	font-size: 9pt;
+	font-style: italic;
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/10modes.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/10modes.png
new file mode 100755
index 0000000000000000000000000000000000000000..6595a167b9e74a1979c6cbd587fa10f8b7ff6675
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/10modes.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/Capture.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/Capture.png
new file mode 100755
index 0000000000000000000000000000000000000000..9b8db9cf242259e70e45405148a97786976ece8c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/Capture.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/FLECHE.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/FLECHE.png
new file mode 100755
index 0000000000000000000000000000000000000000..e31406e7c4834bf75d219fb4eeb69ff908549ace
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/FLECHE.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/add_droits_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/add_droits_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..deaa9bdc0e6721c801ad2ef4e95fc642e1269c4a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/add_droits_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/add_user_groupe.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/add_user_groupe.png
new file mode 100755
index 0000000000000000000000000000000000000000..6ebf0b7c82b6d3a912ed0def8834a766ddf1fb30
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/add_user_groupe.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/admin.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/admin.png
new file mode 100755
index 0000000000000000000000000000000000000000..8fef7cb3b13c81b37238b434604c29770e1bdbc9
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/admin.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/admin_import.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/admin_import.png
new file mode 100755
index 0000000000000000000000000000000000000000..e4b57a2fe10393a3ad3045593c58cbc0e351ec3e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/admin_import.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajou_domaine.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajou_domaine.png
new file mode 100755
index 0000000000000000000000000000000000000000..0b3a9125a00f90769c527c9f12afc03be2f399fc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajou_domaine.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_demande.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_demande.png
new file mode 100755
index 0000000000000000000000000000000000000000..1bf60e1adb0957a52e9cb3d8244594ab6a89ec30
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_demande.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_depot.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_depot.png
new file mode 100755
index 0000000000000000000000000000000000000000..42bacc5bcb12304f0adb4e02a7346c035d74f6a2
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_depot.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_parametre.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_parametre.png
new file mode 100755
index 0000000000000000000000000000000000000000..f4cc91f40036f60ccf443b9536e2f49cecaedb83
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_parametre.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..379d8357047570021fa7a08c1d51667194843f76
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet1.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet1.png
new file mode 100755
index 0000000000000000000000000000000000000000..49630de52cdb4919449260c133cc88f6336215fa
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet1.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet_general.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet_general.png
new file mode 100755
index 0000000000000000000000000000000000000000..0295ff4b74fc8031e12340e2d6cacf47ff306255
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_projet_general.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_serveur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_serveur.png
new file mode 100755
index 0000000000000000000000000000000000000000..3687bb9f5fc864f51f6389eb47ffc91e3881d411
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_serveur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_source_de_donn_es.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_source_de_donn_es.png
new file mode 100755
index 0000000000000000000000000000000000000000..e950f769a74dfed63e146a695634c67762822528
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_source_de_donn_es.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_source_donn_es_texte.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_source_donn_es_texte.png
new file mode 100755
index 0000000000000000000000000000000000000000..be164dd8b9ea4e490d86f567fb83c286115d429d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ajout_source_donn_es_texte.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/appel_externe.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/appel_externe.png
new file mode 100755
index 0000000000000000000000000000000000000000..4f60eb8d7f124984e021d953380830acd5b13484
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/appel_externe.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/arr.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/arr.png
new file mode 100755
index 0000000000000000000000000000000000000000..9dbc13bae33d0672d0b06050ee69cb811003a400
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/arr.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/attention.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/attention.png
new file mode 100755
index 0000000000000000000000000000000000000000..2f384c218cb1dcd53e7728f198b421017b6c285e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/attention.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/b_radio.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/b_radio.png
new file mode 100755
index 0000000000000000000000000000000000000000..b2050c691907c06f8f5c6f9f4aa70ea3da89536b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/b_radio.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/b_radio_options.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/b_radio_options.png
new file mode 100755
index 0000000000000000000000000000000000000000..b9e358001bf29d45596c0dd20b1f6b0886ad02e7
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/b_radio_options.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_defaut.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_defaut.png
new file mode 100755
index 0000000000000000000000000000000000000000..99d2d2b4766c130bcab722e68cd5555ee74c295c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_defaut.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_perso.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_perso.png
new file mode 100755
index 0000000000000000000000000000000000000000..38d6121a8ea0f40296c4ecee36a125d6bf4c9670
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_perso.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_publie.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_publie.png
new file mode 100755
index 0000000000000000000000000000000000000000..af9f49c79238270449c700a8f0ce6d7181d3553b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_publie.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_puiblication.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_puiblication.png
new file mode 100755
index 0000000000000000000000000000000000000000..b1489a1b7b72762455e92fdef9baa00f9cd4e62c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_puiblication.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_radio.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_radio.png
new file mode 100755
index 0000000000000000000000000000000000000000..f294550cc2883c77af96d0c67ba7ca567af82f03
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_radio.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_recharger.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_recharger.png
new file mode 100755
index 0000000000000000000000000000000000000000..6509b043e0291a9e016331ff507d2a3ba287501f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_recharger.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_sauvegarde.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_sauvegarde.png
new file mode 100755
index 0000000000000000000000000000000000000000..8a13f0596d690a37712532db896571531522559f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_sauvegarde.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_tables.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_tables.png
new file mode 100755
index 0000000000000000000000000000000000000000..64d67584cddf175b57ba9deb709d23e4559aa2e8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_tables.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_test.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_test.png
new file mode 100755
index 0000000000000000000000000000000000000000..66097d4a48319278ed2a7eac6380fdd66c88d793
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_test.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_valider.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_valider.png
new file mode 100755
index 0000000000000000000000000000000000000000..71f6fa68ab6c286c6a028ec00ce2d18052b2e72a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/bouton_valider.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/boutonsource_de_donn_ese.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/boutonsource_de_donn_ese.png
new file mode 100755
index 0000000000000000000000000000000000000000..d775168dda2653102f78defc8b7169b7195e477f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/boutonsource_de_donn_ese.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c-pwd.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c-pwd.png
new file mode 100755
index 0000000000000000000000000000000000000000..140fc43a4e5aa9ecf0ed02569d190f1748a548ca
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c-pwd.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_champs_cache.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_champs_cache.png
new file mode 100755
index 0000000000000000000000000000000000000000..79a866a6d941a90825b598b200ed98dc688ab531
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_champs_cache.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_chargement_cle_libelle.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_chargement_cle_libelle.png
new file mode 100755
index 0000000000000000000000000000000000000000..4e63bc40c6f2a947a485cbddb4d7702aa89b7604
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_chargement_cle_libelle.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_choix.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_choix.png
new file mode 100755
index 0000000000000000000000000000000000000000..75683faac6d90611faa088ed43ac574a1fc8f641
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_choix.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_couleur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_couleur.png
new file mode 100755
index 0000000000000000000000000000000000000000..4ae570f6707153b6c2ffb486166bf4ec83232091
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_couleur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_curseur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_curseur.png
new file mode 100755
index 0000000000000000000000000000000000000000..eaa3bb4a89645057ca2356b0054669294684f8fb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_curseur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_date.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_date.png
new file mode 100755
index 0000000000000000000000000000000000000000..6923372e4fc191c52762ac5477261896db24c1a6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_date.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_entier.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_entier.png
new file mode 100755
index 0000000000000000000000000000000000000000..9238279c955ec5ec45317fe13df67f5352a3e61d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_entier.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_local2.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_local2.png
new file mode 100755
index 0000000000000000000000000000000000000000..9c62afafc83810ee1fdfcb3cb1c8ec8bf0a28c37
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_local2.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_sortie.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_sortie.png
new file mode 100755
index 0000000000000000000000000000000000000000..d850b5ea36d310d4dc367586aba2e1967afe93a1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_sortie.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_sources.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_sources.png
new file mode 100755
index 0000000000000000000000000000000000000000..357dcd80e61a6bbab6f03f065add3def94f5dfc7
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_fichier_sources.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_float.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_float.png
new file mode 100755
index 0000000000000000000000000000000000000000..c1a77f95ac5252fc06c7a5774f6caf252780de0b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_float.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_formulaire_carteosm.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_formulaire_carteosm.png
new file mode 100755
index 0000000000000000000000000000000000000000..0a665e65c577ae59bb02a781e9e8b469764d2e8d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_formulaire_carteosm.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_label.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_label.png
new file mode 100755
index 0000000000000000000000000000000000000000..82efc3331769fe96a6fe163269a674f6fc95bcb8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_label.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_liste.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_liste.png
new file mode 100755
index 0000000000000000000000000000000000000000..b569b5755388f807c2e6b555dcb109ed8300ad5d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_liste.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_options_avancees.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_options_avancees.png
new file mode 100755
index 0000000000000000000000000000000000000000..19543dc94f17a368bd92ff727be7bc8dd344c6c3
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_options_avancees.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_osm.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_osm.png
new file mode 100755
index 0000000000000000000000000000000000000000..cb757deab171a90fa017dde18a24d017454cf6d1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_osm.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_rep_ex.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_rep_ex.png
new file mode 100755
index 0000000000000000000000000000000000000000..0bb443d4a75d8509949e4b945096a483f1b88356
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_rep_ex.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_service_web.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_service_web.png
new file mode 100755
index 0000000000000000000000000000000000000000..b538116d3fedf99c613c6f5fd7cd2923b3fa2bfa
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_service_web.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_syst_coord.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_syst_coord.png
new file mode 100755
index 0000000000000000000000000000000000000000..427360dd0380201eb4f62cb244e8503916c0b11a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_syst_coord.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_table_locale.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_table_locale.png
new file mode 100755
index 0000000000000000000000000000000000000000..c4397a5c68378979995a8349b5a221bd06580e3f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_table_locale.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_texte_1l.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_texte_1l.png
new file mode 100755
index 0000000000000000000000000000000000000000..207f944c494c626126e45116a789e7958bf3a7ff
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_texte_1l.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_1l.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_1l.png
new file mode 100755
index 0000000000000000000000000000000000000000..3c3c68bad190c0d2cde87c1679644eb8b30a592c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_1l.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_1l_2.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_1l_2.png
new file mode 100755
index 0000000000000000000000000000000000000000..4c48bc0c984171a6965ade56bfc36822f7834b35
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_1l_2.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_multi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_multi.png
new file mode 100755
index 0000000000000000000000000000000000000000..a49f1816c7ad952293dcb4952531cc41d0c6d38e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_txt_multi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_url.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_url.png
new file mode 100755
index 0000000000000000000000000000000000000000..fd3e1f3504fe111acf895dce5228d26d2f6ccbab
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_url.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_vmap.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_vmap.png
new file mode 100755
index 0000000000000000000000000000000000000000..35284fd99c38fb9bd372b21cbb110be763a2c562
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_vmap.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_vmap2.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_vmap2.png
new file mode 100755
index 0000000000000000000000000000000000000000..f34ac319b3376569ab004764f86a08d7f7592416
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/c_vmap2.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/carte_outils.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/carte_outils.png
new file mode 100755
index 0000000000000000000000000000000000000000..f82f823ac9890e6f3eed4b9063b113533dd85d54
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/carte_outils.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/carte_valeur_par_dafaut.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/carte_valeur_par_dafaut.png
new file mode 100755
index 0000000000000000000000000000000000000000..21c2e204ac694350900a9044877f06abff068501
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/carte_valeur_par_dafaut.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cartebing_valeur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cartebing_valeur.png
new file mode 100755
index 0000000000000000000000000000000000000000..66fc23c050670e860b964a8523faf7dd4e69d3aa
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cartebing_valeur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cascade.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cascade.png
new file mode 100755
index 0000000000000000000000000000000000000000..10d6b0858367f240af046edddcb7151e9e30c03b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cascade.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cascade2.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cascade2.png
new file mode 100755
index 0000000000000000000000000000000000000000..e55dfe31e29f78b95b149da8775d2ba0aadc7de1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cascade2.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix.png
new file mode 100755
index 0000000000000000000000000000000000000000..64d195f03ca83ffe10fd62f5b3c04f9efb094e89
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_alias.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_alias.png
new file mode 100755
index 0000000000000000000000000000000000000000..7d460a99954bdb6d5a8d516d63f5e63181703399
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_alias.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_alias_multi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_alias_multi.png
new file mode 100755
index 0000000000000000000000000000000000000000..d25f27befc7734ed2dbf1021937c0de5dbb39e5d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_alias_multi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_multi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_multi.png
new file mode 100755
index 0000000000000000000000000000000000000000..031679795b1a82d2048c831c33969c77ace6761d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_multi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_texte.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_texte.png
new file mode 100755
index 0000000000000000000000000000000000000000..ec658a114368f97717d015504d9b545a30145f29
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choix_texte.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choixaliasmultpile.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choixaliasmultpile.png
new file mode 100755
index 0000000000000000000000000000000000000000..d9d2e75f1ffb6a4b95f39ff825481c07508d417d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/choixaliasmultpile.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cld.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cld.png
new file mode 100755
index 0000000000000000000000000000000000000000..04edad74f6aca9dc709469075f6fbc9faf65d0b8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cld.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cn_lie.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cn_lie.png
new file mode 100755
index 0000000000000000000000000000000000000000..767f6aa6f62961253146582f788fdd28a9c86923
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cn_lie.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cn_texte.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cn_texte.png
new file mode 100755
index 0000000000000000000000000000000000000000..0379687948c10d5378b7f491f4316c19c5df5787
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/cn_texte.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/confiig_admin.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/confiig_admin.png
new file mode 100755
index 0000000000000000000000000000000000000000..b684c0dbcf437b70a996d0c77ffbafff2bfb3a21
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/confiig_admin.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/connexion.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/connexion.png
new file mode 100755
index 0000000000000000000000000000000000000000..4f4b53852389169d156baa3e0fec2e796d283374
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/connexion.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/couleur_fond.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/couleur_fond.png
new file mode 100755
index 0000000000000000000000000000000000000000..b273340ee9c3e2fcce6ecc52323e110af27a2d12
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/couleur_fond.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/creation_utilisateur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/creation_utilisateur.png
new file mode 100755
index 0000000000000000000000000000000000000000..2d8e3fb36e66d25565d288310e2494be87d41755
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/creation_utilisateur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/curseur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/curseur.png
new file mode 100755
index 0000000000000000000000000000000000000000..cd017dc541248fbbd6ff2510f197044d37b7d801
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/curseur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-demande_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-demande_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..3491cc56d5a9f300e7a890da55dfd454f0b5d040
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-demande_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-fme_edition_param_publi_.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-fme_edition_param_publi_.png
new file mode 100755
index 0000000000000000000000000000000000000000..909b0634cd4ea1582fee4654f56e2e4eb9de0239
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-fme_edition_param_publi_.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-previsualisation.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-previsualisation.png
new file mode 100755
index 0000000000000000000000000000000000000000..6c175533c63d000bed558f304b25f7c2d9243efc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1-previsualisation.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1_ajout_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1_ajout_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..a0f7473fc13ea2b04ca5113c846800f0b1b84474
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1_ajout_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1_resultat.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1_resultat.png
new file mode 100755
index 0000000000000000000000000000000000000000..6b668e531e75c23441690043f0ce8af9ad25b291
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo1_resultat.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2-fme-supprssion_lien.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2-fme-supprssion_lien.png
new file mode 100755
index 0000000000000000000000000000000000000000..9190548086f8990d62319a315ba52297f4faa211
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2-fme-supprssion_lien.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2-gtf-ajout_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2-gtf-ajout_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..90a22cbdd13e14b710ed2b5ec4ce28473e003f12
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2-gtf-ajout_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_donn_e_source__.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_donn_e_source__.png
new file mode 100755
index 0000000000000000000000000000000000000000..0d48359e098626a25bc7bf9b8a83c508bed3ee5c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_donn_e_source__.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_fme.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_fme.png
new file mode 100755
index 0000000000000000000000000000000000000000..f10e09732ee38ee1f2ed48060d941098126984d4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_fme.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_gtf_formulaire.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_gtf_formulaire.png
new file mode 100755
index 0000000000000000000000000000000000000000..f01dc6c4ce95882221e4bb8b447cb2e3d4569e98
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_gtf_formulaire.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_r_pertoire_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_r_pertoire_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..00c883247275791576a46384d1f038eb89ae49c4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo2_r_pertoire_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_ajout_generic.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_ajout_generic.png
new file mode 100755
index 0000000000000000000000000000000000000000..4525fcb6f90a8540c0eb82ffe1451fc4952c5489
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_ajout_generic.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_param_generic.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_param_generic.png
new file mode 100755
index 0000000000000000000000000000000000000000..b9182394eff97176e05c64e9fd655c756bd6ed8a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_param_generic.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_param_lien_param_format.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_param_lien_param_format.png
new file mode 100755
index 0000000000000000000000000000000000000000..b03ad3ed679741b11347342969f9b2ec0b94ba80
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_param_lien_param_format.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_params_publies.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_params_publies.png
new file mode 100755
index 0000000000000000000000000000000000000000..8af7b09723123b2fa73cb7e02fca749dc254e87f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_params_publies.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_result.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_result.png
new file mode 100755
index 0000000000000000000000000000000000000000..9a0279ae9e6fdcc3686833cf71902dfc47d2afe3
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_fme_result.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_formulaire_par_defaut.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_formulaire_par_defaut.png
new file mode 100755
index 0000000000000000000000000000000000000000..7e681816d98fb752f2acd50dc239bb5aea0b3e76
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_formulaire_par_defaut.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_gtf_ajout_demande.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_gtf_ajout_demande.png
new file mode 100755
index 0000000000000000000000000000000000000000..ee350d1b101b2185053581273f23fa361fa5a9f3
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_gtf_ajout_demande.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_gtf_formaulire_depaut.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_gtf_formaulire_depaut.png
new file mode 100755
index 0000000000000000000000000000000000000000..d6c677089238efa292be59ee1f49fffd4b59f7e2
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4_gtf_formaulire_depaut.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4bis_gtf_ajout_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4bis_gtf_ajout_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..9119723e547b5dcf8a31d10861e6bcc6760cd5c1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/demo4bis_gtf_ajout_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/depalcment_param_tre.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/depalcment_param_tre.png
new file mode 100755
index 0000000000000000000000000000000000000000..7551658f13a9ae449b4c331afe66d3fa3271a40e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/depalcment_param_tre.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/destnatairecc.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/destnatairecc.png
new file mode 100755
index 0000000000000000000000000000000000000000..571d1792db6eb85656b16b8f61f47409663c0454
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/destnatairecc.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/esi_cle.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/esi_cle.png
new file mode 100755
index 0000000000000000000000000000000000000000..a28314e2fb6e9ecc77deb6e21698605ad38619e9
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/esi_cle.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/esi_previsualisation.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/esi_previsualisation.png
new file mode 100755
index 0000000000000000000000000000000000000000..30d0fa55e5166f5b7cea9d651927dd1326b36f33
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/esi_previsualisation.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_b_radio.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_b_radio.png
new file mode 100755
index 0000000000000000000000000000000000000000..67eed7c3318943f71e480d1f8d5bcc9d1ed25d46
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_b_radio.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_champs_cach_.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_champs_cach_.png
new file mode 100755
index 0000000000000000000000000000000000000000..76e83e2f0a0194da13ff31bd968e78e4e92fa3f3
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_champs_cach_.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_cn_import_nouvellesconnexions.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_cn_import_nouvellesconnexions.png
new file mode 100755
index 0000000000000000000000000000000000000000..6ab4edbbd3a4bed865671c5028fb3280be62211b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_cn_import_nouvellesconnexions.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_fichier_sortie.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_fichier_sortie.png
new file mode 100755
index 0000000000000000000000000000000000000000..7533b3e9cf5b28c1bf67ff4629ec51c274d798e1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_fichier_sortie.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_multlignesss.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_multlignesss.png
new file mode 100755
index 0000000000000000000000000000000000000000..3f120a48a453403d0effcd0672c87e323a0e36f8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_multlignesss.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_p_txt.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_p_txt.png
new file mode 100755
index 0000000000000000000000000000000000000000..0c58542820f887511d989ca2dbd73ae9e30aa948
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_p_txt.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_param_entier.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_param_entier.png
new file mode 100755
index 0000000000000000000000000000000000000000..17e79568fe38e23dadd91ddac16c8dedfa1b16f6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_param_entier.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_rep_existant.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_rep_existant.png
new file mode 100755
index 0000000000000000000000000000000000000000..5dad57b21008272df4d33098277cb62196ab83ab
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_rep_existant.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_repsortie.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_repsortie.png
new file mode 100755
index 0000000000000000000000000000000000000000..23830a04f633825a375768318c50adf5168d1726
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_repsortie.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_txt_multi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_txt_multi.png
new file mode 100755
index 0000000000000000000000000000000000000000..acd49ef2aa77fe8f259e5cd88ee2f524fe6f12b7
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_txt_multi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_url.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_url.png
new file mode 100755
index 0000000000000000000000000000000000000000..90305a4d1b11d43ac05fc90a08ba565a8f1da40a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/f_url.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fichier_local_otpions.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fichier_local_otpions.png
new file mode 100755
index 0000000000000000000000000000000000000000..6e3fea85079aa7be5b8d324522832690f449aed1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fichier_local_otpions.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_cn_cn.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_cn_cn.png
new file mode 100755
index 0000000000000000000000000000000000000000..dac7951d8d068f31c1750dbfc2575a3991e17637
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_cn_cn.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_cn_import.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_cn_import.png
new file mode 100755
index 0000000000000000000000000000000000000000..d721d5bf376fe43f8dcfdf0f0e14cf0fcd86c394
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_cn_import.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexion_nommeenouveaureprroiredesconnexionsnomees.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexion_nommeenouveaureprroiredesconnexionsnomees.png
new file mode 100755
index 0000000000000000000000000000000000000000..6ac3a33bd9ccbb90f673582f2633a00cf035cd59
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexion_nommeenouveaureprroiredesconnexionsnomees.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommee_messageexport.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommee_messageexport.png
new file mode 100755
index 0000000000000000000000000000000000000000..fbd2d1e5280f78983c23bee41d216f9cb1e278f1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommee_messageexport.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommee_nvlemplacement.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommee_nvlemplacement.png
new file mode 100755
index 0000000000000000000000000000000000000000..b5b021d4509205edc7992948d1c872ebd61952da
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommee_nvlemplacement.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommeeexport.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommeeexport.png
new file mode 100755
index 0000000000000000000000000000000000000000..add58db823e3dc559b3fc34be788bdff713b7cb0
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommeeexport.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommeesucces.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommeesucces.png
new file mode 100755
index 0000000000000000000000000000000000000000..8cf8209851139afec7d345cabcb1990a23311213
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionnommeesucces.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionsnommees.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionsnommees.png
new file mode 100755
index 0000000000000000000000000000000000000000..4a24fc6f6b7e0feb36a5107ef679a4984ca62764
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fme_connexionsnommees.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fmeconnexionnommeeimpoort.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fmeconnexionnommeeimpoort.png
new file mode 100755
index 0000000000000000000000000000000000000000..bcb0262a069ecb4138dd3b8763c0a4483a0297fd
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/fmeconnexionnommeeimpoort.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formilaire_invalide.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formilaire_invalide.png
new file mode 100755
index 0000000000000000000000000000000000000000..a5da10b4458a608414281995e6b5552e1f4de680
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formilaire_invalide.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_carte_bing.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_carte_bing.png
new file mode 100755
index 0000000000000000000000000000000000000000..d40762998a9645c99ff22d7531a89837e489b348
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_carte_bing.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_demande_liste.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_demande_liste.png
new file mode 100755
index 0000000000000000000000000000000000000000..bb4ff9c5214e3fd412770a0b70e09c6ed622152e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_demande_liste.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_import.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_import.png
new file mode 100755
index 0000000000000000000000000000000000000000..5e1ed29c4c428038aed2be43b1df89cabe42d4b5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_import.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_par_defaut.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_par_defaut.png
new file mode 100755
index 0000000000000000000000000000000000000000..074235f376a53a2993d464f4880d5174b1099feb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/formulaire_par_defaut.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gestion_mixte.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gestion_mixte.png
new file mode 100755
index 0000000000000000000000000000000000000000..143c336906e35f27a04df1312ae5e10499cd8ca2
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gestion_mixte.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gestionnare_source_donnees.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gestionnare_source_donnees.png
new file mode 100755
index 0000000000000000000000000000000000000000..858df72f249ac0aa2017fc3c76f3eebb372895f9
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gestionnare_source_donnees.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/groupe_postgresql.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/groupe_postgresql.png
new file mode 100755
index 0000000000000000000000000000000000000000..2dbd94a17cc85ab35f9d3f662c6cd659857820e1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/groupe_postgresql.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_externe.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_externe.png
new file mode 100755
index 0000000000000000000000000000000000000000..321992250bab7eaae757b0abcc60057d254c805c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_externe.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_services.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_services.png
new file mode 100755
index 0000000000000000000000000000000000000000..6a2bbc99ccb5b736bcb5729c7bc7951b1a795daf
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_services.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_tablelocale.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_tablelocale.png
new file mode 100755
index 0000000000000000000000000000000000000000..de145b88e3434b52642ec4046ba1438b66d5c6bc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_tablelocale.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_texte.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_texte.png
new file mode 100755
index 0000000000000000000000000000000000000000..26cf0cba8024e46db7cfb68a968b625299a494ae
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gsd_texte.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf.png
new file mode 100755
index 0000000000000000000000000000000000000000..5cc11b11ddbc0968837da32059b28d156b30ba2f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_creation_utilisateur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_creation_utilisateur.png
new file mode 100755
index 0000000000000000000000000000000000000000..455fe7e3962398b0fea73780d9adbd3acba43f11
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_creation_utilisateur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000001.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000001.png
new file mode 100755
index 0000000000000000000000000000000000000000..4f37cd5ad28f50eac28b04a124618006e82c2f0c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000001.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000002.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000002.png
new file mode 100755
index 0000000000000000000000000000000000000000..7f649f39840cb072cc6da79ac261ba6554dd1fbc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000002.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000003.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000003.png
new file mode 100755
index 0000000000000000000000000000000000000000..626371efdd17274e18f99cd6dec4dc8f32b5db48
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000003.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000004.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000004.png
new file mode 100755
index 0000000000000000000000000000000000000000..7de68851e73ca42151fb9fcb0176766bbe3a3909
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000004.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000005.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000005.png
new file mode 100755
index 0000000000000000000000000000000000000000..39bab097a0237af6c1b970630a6991486ca9be0f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000005.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000006.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000006.png
new file mode 100755
index 0000000000000000000000000000000000000000..fb35b677eccd5d6f7ab39bd0ff5e8ac785d2c9e5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000006.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000007.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000007.png
new file mode 100755
index 0000000000000000000000000000000000000000..505a6d30bcdf7195c168289b916fcb510435ed66
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000007.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000009.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000009.png
new file mode 100755
index 0000000000000000000000000000000000000000..192240edf70d022eda6ed768846249e56e5a293b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000009.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000A.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000A.png
new file mode 100755
index 0000000000000000000000000000000000000000..73ad5f39abc1838f748c585410b29b8c977d8785
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000A.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000B.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000B.png
new file mode 100755
index 0000000000000000000000000000000000000000..4b268b3dbb962cc9ad6f723c3076cd1085406d50
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000B.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000C.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000C.png
new file mode 100755
index 0000000000000000000000000000000000000000..c3cdfbf6e6110f4c7fa915150e5c8db80f123b27
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000C.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000D.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000D.png
new file mode 100755
index 0000000000000000000000000000000000000000..daaa0dd39a89504bf5004bf3ede05183bcbcc6a5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000D.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000E.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000E.png
new file mode 100755
index 0000000000000000000000000000000000000000..380acc50b775fcf2c6bf780d57fd307c494346c8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000E.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000F.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000F.png
new file mode 100755
index 0000000000000000000000000000000000000000..a95e5326e7db4666d02422428f360ccbfd275605
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300000F.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000010.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000010.png
new file mode 100755
index 0000000000000000000000000000000000000000..15192ef4a027354b9ced8668286803c19247f290
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000010.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000011.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000011.png
new file mode 100755
index 0000000000000000000000000000000000000000..6e2dbc6a0720f06909aa6078b97cbad88c737d28
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000011.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000012.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000012.png
new file mode 100755
index 0000000000000000000000000000000000000000..220657b9fdf733dab46adac4be5ae79e00cc4ed4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000012.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000013.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000013.png
new file mode 100755
index 0000000000000000000000000000000000000000..6d030781ff5a35f6c0db938af641a7c6e22761cd
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000013.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000014.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000014.png
new file mode 100755
index 0000000000000000000000000000000000000000..d4b472f2f535a76bf53356e3941179727a7d8c6c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000014.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000015.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000015.png
new file mode 100755
index 0000000000000000000000000000000000000000..18c0906165af8467534c4abf656a72e4d6be3af8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000015.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000016.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000016.png
new file mode 100755
index 0000000000000000000000000000000000000000..50ed4d84e205a458f25e6f36e1c95f9a47fc48b2
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000016.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000017.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000017.png
new file mode 100755
index 0000000000000000000000000000000000000000..96298a3ccf4a83ff3e6233e19b2cc21e61363970
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000017.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000018.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000018.png
new file mode 100755
index 0000000000000000000000000000000000000000..bcb0a85d3c1576edbea5584d8b18646ec740d504
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000018.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000019.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000019.png
new file mode 100755
index 0000000000000000000000000000000000000000..c948da97f5c6d4dcd4077b4ccf567895278ec808
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000019.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001A.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001A.png
new file mode 100755
index 0000000000000000000000000000000000000000..c128bf5064a0e7e675a227ab48332f7521551ffb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001A.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001B.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001B.png
new file mode 100755
index 0000000000000000000000000000000000000000..6bf998b32fb1b7012b6b75dd4cdd143ce612c30c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001B.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001C.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001C.png
new file mode 100755
index 0000000000000000000000000000000000000000..ad446ac58a2a04142f18dc9187b7b200095b0225
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001C.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001D.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001D.png
new file mode 100755
index 0000000000000000000000000000000000000000..2220ff4c58d1c28b89ecf80169ef6acee498ac1a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001D.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001E.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001E.png
new file mode 100755
index 0000000000000000000000000000000000000000..3fa5cd6451a65d7e40b47465c36df8493d4ba352
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001E.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001F.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001F.png
new file mode 100755
index 0000000000000000000000000000000000000000..e329d1641ee466390b71288ae0217a7527addb0f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300001F.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000020.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000020.png
new file mode 100755
index 0000000000000000000000000000000000000000..03ab4906a68a8835f479538f3e3dfef20afd0617
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000020.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000021.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000021.png
new file mode 100755
index 0000000000000000000000000000000000000000..b755f3369f25b8df2be80e2418ffebd8b38a5755
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000021.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000022.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000022.png
new file mode 100755
index 0000000000000000000000000000000000000000..245b08bcf86f195415adbde4dfd2610f934e1a54
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000022.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000023.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000023.png
new file mode 100755
index 0000000000000000000000000000000000000000..555c4f5cdb7dfe9d7c4218a3dbc8e88cf1255c45
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000023.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000024.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000024.png
new file mode 100755
index 0000000000000000000000000000000000000000..1f90d115d6eb7eef1c7f30aa6056ed340893eb42
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000024.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000025.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000025.png
new file mode 100755
index 0000000000000000000000000000000000000000..ed8e06696fb0cba30b5acd485f9bba9a61ddff93
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000025.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000026.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000026.png
new file mode 100755
index 0000000000000000000000000000000000000000..5357100f19617e66c01a9cf8f011fa502ba07aaa
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000026.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000027.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000027.png
new file mode 100755
index 0000000000000000000000000000000000000000..c4ec4624ab5d7b9d47a052e945d1fead4bc2111a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000027.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000028.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000028.png
new file mode 100755
index 0000000000000000000000000000000000000000..5e27470e48dd51b35b18887ac762b1daf96fd9d8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000028.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000029.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000029.png
new file mode 100755
index 0000000000000000000000000000000000000000..edee11937ee3bbf2327822c2095dccdca5fa25fb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000029.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002A.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002A.png
new file mode 100755
index 0000000000000000000000000000000000000000..96db03ede3d80153df8b7ed6509e352d15ea5d7f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002A.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002B.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002B.png
new file mode 100755
index 0000000000000000000000000000000000000000..eea7f9fa6d5a921cc7888a55fb55e338f65a8fba
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002B.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002C.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002C.png
new file mode 100755
index 0000000000000000000000000000000000000000..d256e476e2fdeb540712fd854c67feb0e6412646
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002C.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002D.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002D.png
new file mode 100755
index 0000000000000000000000000000000000000000..dfc6baf18ea8aa8634a0fd63b7db809128a67e27
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002D.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002E.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002E.png
new file mode 100755
index 0000000000000000000000000000000000000000..ff2a8b5025712b5dadee15c6f8e99d54bd21cf08
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002E.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002F.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002F.png
new file mode 100755
index 0000000000000000000000000000000000000000..7e691becf4bec769afbc5299d39a523d779db46b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300002F.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000030.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000030.png
new file mode 100755
index 0000000000000000000000000000000000000000..1eff8fb3722fedde006bfdc9fec1179a59868d51
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000030.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000031.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000031.png
new file mode 100755
index 0000000000000000000000000000000000000000..1ef1af82042c80c987a394e42fc29dca63f45475
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000031.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000032.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000032.png
new file mode 100755
index 0000000000000000000000000000000000000000..cb5c4b989e75457ce35597da62f763b98a2963c6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000032.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000033.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000033.png
new file mode 100755
index 0000000000000000000000000000000000000000..aa1d92aab9588c7ac2fa3a8726bbd6f78d37cd2e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000033.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000034.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000034.png
new file mode 100755
index 0000000000000000000000000000000000000000..c4bbaa4ab2a29ce0d6c1288de46b3c8ebe2dcc0c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000034.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000035.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000035.png
new file mode 100755
index 0000000000000000000000000000000000000000..9e5e12a9c7d962732b00aae8bc714e5168712dcc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000035.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000036.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000036.png
new file mode 100755
index 0000000000000000000000000000000000000000..f4ea5173377faf784768dd02735d8e28aadbb627
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000036.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000037.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000037.png
new file mode 100755
index 0000000000000000000000000000000000000000..5a4f88df06c7724b1c6d064ffb1ae3e74672fa1e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000037.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000038.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000038.png
new file mode 100755
index 0000000000000000000000000000000000000000..37c3e530ac78aef88d0b43b2a0e9bbcc5ef3a417
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000038.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000039.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000039.png
new file mode 100755
index 0000000000000000000000000000000000000000..5ffd372155ce05d94f1c9ba10777f891de8e5bd5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000039.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003A.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003A.png
new file mode 100755
index 0000000000000000000000000000000000000000..0f069555a1774eab6b73bfec5c0146ab986e7d79
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003A.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003B.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003B.png
new file mode 100755
index 0000000000000000000000000000000000000000..8af7182cd43886c4a8696edfde676665c5a96962
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003B.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003C.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003C.png
new file mode 100755
index 0000000000000000000000000000000000000000..e9cc12dcba9bc223f7b6822feadee213434cde55
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003C.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003D.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003D.png
new file mode 100755
index 0000000000000000000000000000000000000000..df7ed59b58085117b03250acf6e242627e1dd6f5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003D.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003E.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003E.png
new file mode 100755
index 0000000000000000000000000000000000000000..04ecc66b27ffafd26f04df3e388040fc41888738
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003E.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003F.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003F.png
new file mode 100755
index 0000000000000000000000000000000000000000..f43cb0b6f6ec86f361928b19dda550b5139a14cc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300003F.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000040.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000040.png
new file mode 100755
index 0000000000000000000000000000000000000000..2f81e1b6ede3d56495ec409e49c171d24131c393
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000040.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000041.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000041.png
new file mode 100755
index 0000000000000000000000000000000000000000..f21d2fb4874633c6e10099f709d9b461327bf02a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000041.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000042.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000042.png
new file mode 100755
index 0000000000000000000000000000000000000000..fb2f086b9bfc485545260427aa3fb155d419aab8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000042.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000043.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000043.png
new file mode 100755
index 0000000000000000000000000000000000000000..b637b83b6f510713cbaa9a979ace6d19dda250db
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000043.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000044.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000044.png
new file mode 100755
index 0000000000000000000000000000000000000000..6a0b553d463f75d06d6e2fba2b8f4ac19c1b54c8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000044.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000045.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000045.png
new file mode 100755
index 0000000000000000000000000000000000000000..3e06d89314c9197c7c871b3a29c707e66f32a851
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000045.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000046.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000046.png
new file mode 100755
index 0000000000000000000000000000000000000000..17875e55c9c23a8840e02dbba09acebf2e6ff02f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000046.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000047.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000047.png
new file mode 100755
index 0000000000000000000000000000000000000000..43a58f5fd1fdbbd270cce40445a2efd9b2127859
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000047.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000048.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000048.png
new file mode 100755
index 0000000000000000000000000000000000000000..258272a6801bdf5790ed81cd62acdde20a9bd8f0
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000048.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000049.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000049.png
new file mode 100755
index 0000000000000000000000000000000000000000..a05d68a6c6cb96b795acb13cb71a232982a32cb9
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000049.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004A.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004A.png
new file mode 100755
index 0000000000000000000000000000000000000000..4b4b3d08209c9efceccccd85e869997befb42cb4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004A.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004B.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004B.png
new file mode 100755
index 0000000000000000000000000000000000000000..d95e2ff4553f9dc031040f1a10ae49aa303506cb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004B.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004C.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004C.png
new file mode 100755
index 0000000000000000000000000000000000000000..4a7ecf05fff81a721b09ee5fb8ce5d0460587fe1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004C.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004D.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004D.png
new file mode 100755
index 0000000000000000000000000000000000000000..48fb55c860b026279e5e6aa3ad20608702ad5697
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004D.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004E.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004E.png
new file mode 100755
index 0000000000000000000000000000000000000000..127d1341aeda835b79283ad9435f76c88d98318a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004E.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004F.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004F.png
new file mode 100755
index 0000000000000000000000000000000000000000..fabeea41ec0e0d6d041eba66e4ac93680de06cc1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300004F.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000050.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000050.png
new file mode 100755
index 0000000000000000000000000000000000000000..3891b751d89d0821a461b6260c0eb9ef7d863a01
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000050.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000051.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000051.png
new file mode 100755
index 0000000000000000000000000000000000000000..37f5180f279733e6e39de093cdd380e11e3debfa
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000051.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000052.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000052.png
new file mode 100755
index 0000000000000000000000000000000000000000..c13a5f3e9b1f3b9cc3bf08a9c2499baf82a8286f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000052.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000053.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000053.png
new file mode 100755
index 0000000000000000000000000000000000000000..e094e6983fe6bf289b6972e7639f4334dc6fa841
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000053.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000054.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000054.png
new file mode 100755
index 0000000000000000000000000000000000000000..71d5c641e77e1bcfa121bd3fb51a0b29241cdbf4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000054.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000055.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000055.png
new file mode 100755
index 0000000000000000000000000000000000000000..d7f23adeea4eef953d0d88ec94b8d26665275f6c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000055.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000056.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000056.png
new file mode 100755
index 0000000000000000000000000000000000000000..2219426eb02ce1eb2bf299579b0685b8e13b4196
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000056.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000057.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000057.png
new file mode 100755
index 0000000000000000000000000000000000000000..35746c7f578405467b3372bcb09a51d3468f7706
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000057.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000058.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000058.png
new file mode 100755
index 0000000000000000000000000000000000000000..9b29de1783fdf72b0e3bbbb8c608b2e4ad968f3a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000058.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000059.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000059.png
new file mode 100755
index 0000000000000000000000000000000000000000..5f6bc3fc0d60c86b89d9ed10b8ba12985309e633
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/03000059.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300005A.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300005A.png
new file mode 100755
index 0000000000000000000000000000000000000000..68540b2a148f56a942f0fd660088fea94396bc56
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_manuel_utilisateur/0300005A.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_publication_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_publication_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..b70f3187a28e605134768c8d0fac65f6806fb6e3
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/gtf_publication_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_ad.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_ad.png
new file mode 100755
index 0000000000000000000000000000000000000000..49f359e0a2d73f7961f182296113d82d8a14072e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_ad.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_gex.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_gex.png
new file mode 100755
index 0000000000000000000000000000000000000000..20193220a23a21ef1e7943468a526cbd75fc5ecb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_gex.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_projets.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_projets.png
new file mode 100755
index 0000000000000000000000000000000000000000..bdcefc0d67e1d1092f02d153d665cead9a8a2261
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/import_projets.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/jeton.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/jeton.png
new file mode 100755
index 0000000000000000000000000000000000000000..956f30fb175d3ca2840e23e671552c4526357496
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/jeton.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label.png
new file mode 100755
index 0000000000000000000000000000000000000000..fe1c5e93c87b597c4d132e417026ee4fa8c55af4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label2.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label2.png
new file mode 100755
index 0000000000000000000000000000000000000000..f1a98724fcfa67babd2576e4da948d44f4e84ce6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label2.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label_sous_titre.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label_sous_titre.png
new file mode 100755
index 0000000000000000000000000000000000000000..af086eda053177554446e3bba73bf2134eb70116
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label_sous_titre.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label_titre.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label_titre.png
new file mode 100755
index 0000000000000000000000000000000000000000..347c6bad0cd929b3c8e20763c19ce83b90a47203
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/label_titre.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ligne_separation.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ligne_separation.png
new file mode 100755
index 0000000000000000000000000000000000000000..40d4789787af821d679695a5f40558336b0e756d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/ligne_separation.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/lise_deroulante.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/lise_deroulante.png
new file mode 100755
index 0000000000000000000000000000000000000000..07a9e89817804dd870496b603b26466e9c4c6bf0
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/lise_deroulante.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste.png
new file mode 100755
index 0000000000000000000000000000000000000000..c5cd65d44a69d15548f64b4cd96f7a97227b2e09
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste_deroulante_alias.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste_deroulante_alias.png
new file mode 100755
index 0000000000000000000000000000000000000000..6a975c25d61c1af49ba75369869482a276a6fe8e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste_deroulante_alias.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste_esi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste_esi.png
new file mode 100755
index 0000000000000000000000000000000000000000..85cd676c1322d7976a68c98aca4b33326a67017f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/liste_esi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/logo_veremes2014_small.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/logo_veremes2014_small.png
new file mode 100755
index 0000000000000000000000000000000000000000..4eac5b52fdef30f7e6a02ca8b3a51d492b5ce574
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/logo_veremes2014_small.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/logo_veremes_pour_fond_blanc2016.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/logo_veremes_pour_fond_blanc2016.png
new file mode 100755
index 0000000000000000000000000000000000000000..2da77c54ad3a5144acac928b6a410769d2daced9
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/logo_veremes_pour_fond_blanc2016.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/metadata.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/metadata.png
new file mode 100755
index 0000000000000000000000000000000000000000..ed037e6e9c5df61e2ff86ef5c52df1f8a8353666
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/metadata.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/metadonnees_fme.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/metadonnees_fme.png
new file mode 100755
index 0000000000000000000000000000000000000000..2b14100912f436657b0bb12c4d94fa288577642e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/metadonnees_fme.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/mode_supervision.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/mode_supervision.png
new file mode 100755
index 0000000000000000000000000000000000000000..d2a6faae338d663f9c1f3e7998caf8cc5b026d07
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/mode_supervision.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/modif_moteur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/modif_moteur.png
new file mode 100755
index 0000000000000000000000000000000000000000..e560c3b690be40298a9259468d464a6306275a0f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/modif_moteur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteur.png
new file mode 100755
index 0000000000000000000000000000000000000000..609e3dce63035a031bbf25d270ccecca12a43f7f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteur_gtf.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteur_gtf.png
new file mode 100755
index 0000000000000000000000000000000000000000..e0234ca525c7501d880da67b492854ab93078d97
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteur_gtf.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteurgtf.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteurgtf.png
new file mode 100755
index 0000000000000000000000000000000000000000..91e81226dab82ecae171774f6cd21ce50dae58a9
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/moteurgtf.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglet_edition.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglet_edition.png
new file mode 100755
index 0000000000000000000000000000000000000000..8d673ddeac7886edfc4a45a84d6df440f4ccc516
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglet_edition.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglets.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglets.png
new file mode 100755
index 0000000000000000000000000000000000000000..20aec3875516f14cafa8eb1ba4dcd2fcf717c2f7
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglets.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglets2.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglets2.png
new file mode 100755
index 0000000000000000000000000000000000000000..686aefdcc552b160ffc5c965c4e716f218a2a05a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/onglets2.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/p_date.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/p_date.png
new file mode 100755
index 0000000000000000000000000000000000000000..b918a437cfb5ec6ae5de4d2c63b93e4144e207c1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/p_date.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choice.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choice.png
new file mode 100755
index 0000000000000000000000000000000000000000..10a6b9b0a61d6764c9bed05fb83c347e44388f2a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choice.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choice_multi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choice_multi.png
new file mode 100755
index 0000000000000000000000000000000000000000..c0bd7f62e0f6f6abb9fab6c09883e393e6604f63
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choice_multi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choix_alias.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choix_alias.png
new file mode 100755
index 0000000000000000000000000000000000000000..a32b70e57542f385074f819ec435058bc9f4adc4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choix_alias.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choixtexte.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choixtexte.png
new file mode 100755
index 0000000000000000000000000000000000000000..75c1597073c0714bff0ab1b975b1f47a3da19f95
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_choixtexte.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_couleur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_couleur.png
new file mode 100755
index 0000000000000000000000000000000000000000..99d9a2a60e43644fb81387beeff9d78eaf3e9c75
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_couleur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_p_fichier_existant.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_p_fichier_existant.png
new file mode 100755
index 0000000000000000000000000000000000000000..c01bcda0cf06d9c6e9e999115b3f598a05e626a5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_p_fichier_existant.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_p_fichiers_multi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_p_fichiers_multi.png
new file mode 100755
index 0000000000000000000000000000000000000000..2fc2abc6cbeaba394fc4083539e35f5238054eb0
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_p_fichiers_multi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_pub_flottant.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_pub_flottant.png
new file mode 100755
index 0000000000000000000000000000000000000000..5a53e427bbb0adad4142a639f1b984695678b8c3
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_pub_flottant.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_pub_sys_coord.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_pub_sys_coord.png
new file mode 100755
index 0000000000000000000000000000000000000000..5702846098fe89c18002abf259fbd217447be94b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_pub_sys_coord.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_slider.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_slider.png
new file mode 100755
index 0000000000000000000000000000000000000000..f02e50f088e060ad36d6ed993f9f0fac6485e4e2
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_slider.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_text.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_text.png
new file mode 100755
index 0000000000000000000000000000000000000000..3fc9e5e777a338f2470c731a60d47424f55b46ad
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_text.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_text_multilignes.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_text_multilignes.png
new file mode 100755
index 0000000000000000000000000000000000000000..5dd5e226a3138825aad9556967f86f12bef1a79e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_text_multilignes.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_textornumber.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_textornumber.png
new file mode 100755
index 0000000000000000000000000000000000000000..ca42e08dd10f1dc84a1ae9482eafd508ed9e1038
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/param_textornumber.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/paramdate.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/paramdate.png
new file mode 100755
index 0000000000000000000000000000000000000000..6ebbe196683a2b1562aacc61dea718ff32013cdc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/paramdate.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/paramentier.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/paramentier.png
new file mode 100755
index 0000000000000000000000000000000000000000..3a325bbda7ec73b14d60817cdc93de6758969472
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/paramentier.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/parent.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/parent.png
new file mode 100755
index 0000000000000000000000000000000000000000..62001588e7ada62c15d9e457b5fc8ec4c34e9122
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/parent.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/parma_alias_multi.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/parma_alias_multi.png
new file mode 100755
index 0000000000000000000000000000000000000000..a3503919ba9e280e3d86fb1c49128311c9a77932
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/parma_alias_multi.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/personnalisation_formulaire.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/personnalisation_formulaire.png
new file mode 100755
index 0000000000000000000000000000000000000000..23f4c5598060ef6d46fbabf4e0b3737e9089a750
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/personnalisation_formulaire.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/pg_conf.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/pg_conf.png
new file mode 100755
index 0000000000000000000000000000000000000000..2ec0c8a936e8bd8f7af793c6e94fa757df66cad6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/pg_conf.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/picto_firmulaire.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/picto_firmulaire.png
new file mode 100755
index 0000000000000000000000000000000000000000..1d3d633797f6b22371e83b52f0cc5998786db5ae
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/picto_firmulaire.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/previsualisation.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/previsualisation.png
new file mode 100755
index 0000000000000000000000000000000000000000..836eafd1789f1a7764d7b1eeddd7128c212a662d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/previsualisation.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/privileges.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/privileges.png
new file mode 100755
index 0000000000000000000000000000000000000000..fd2726819de73201024b8c9d746057bfb4588855
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/privileges.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/pwd.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/pwd.png
new file mode 100755
index 0000000000000000000000000000000000000000..d0d7fec6ac8409ba3cec5bedd687b76f00585869
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/pwd.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/recerche_ad.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/recerche_ad.png
new file mode 100755
index 0000000000000000000000000000000000000000..36a272620906d9f1f1d8aaecb07f132c6b9a2fbb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/recerche_ad.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/rep_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/rep_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..8c84f1f044f3ce9151bfdba1740335e78dcb2354
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/rep_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/reperotire_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/reperotire_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..5b8078251df52e390db728819966b611bd70c102
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/reperotire_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/repertoire_projet.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/repertoire_projet.png
new file mode 100755
index 0000000000000000000000000000000000000000..0c1b55b908531e5748a2a47f7874924d1efd0dfb
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/repertoire_projet.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/selection_param_publuie.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/selection_param_publuie.png
new file mode 100755
index 0000000000000000000000000000000000000000..e53bd5008be94be62bfe5c3489949761080d19be
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/selection_param_publuie.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/selection_source_donn_es.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/selection_source_donn_es.png
new file mode 100755
index 0000000000000000000000000000000000000000..6ba15ca8a7b2bd77bd3e9c38983f49546b431809
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/selection_source_donn_es.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/serveur.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/serveur.png
new file mode 100755
index 0000000000000000000000000000000000000000..e1fee3656734d0561fe703574d4c677c5bbfe117
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/serveur.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donn_es_table_locale.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donn_es_table_locale.png
new file mode 100755
index 0000000000000000000000000000000000000000..49b9049843f61b2d07040ec97dad4f6911f916d6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donn_es_table_locale.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donnees_bd_externe.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donnees_bd_externe.png
new file mode 100755
index 0000000000000000000000000000000000000000..f71ba7e1010e2a9ac727724cef7e5702429548ea
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donnees_bd_externe.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donnes_ws.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donnes_ws.png
new file mode 100755
index 0000000000000000000000000000000000000000..1b834eba9f3cfd25858e77e6182cc3f343efafe6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/source_donnes_ws.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/studio.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/studio.png
new file mode 100755
index 0000000000000000000000000000000000000000..a36232a0bb8c5c62d2db3ca6f059fb1dba6dea34
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/studio.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/suppression_parametre.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/suppression_parametre.png
new file mode 100755
index 0000000000000000000000000000000000000000..a6ffe94bf63ab841a865f82f64f27e2f016e5982
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/suppression_parametre.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/sw_cle_libelle.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/sw_cle_libelle.png
new file mode 100755
index 0000000000000000000000000000000000000000..b9f3c083ca0404077e7dc7f0377278d96b0e0771
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/sw_cle_libelle.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/sw_previsualisation.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/sw_previsualisation.png
new file mode 100755
index 0000000000000000000000000000000000000000..712803df3bbbfadb75ee70450c9350ebbca7806a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/sw_previsualisation.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/texte.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/texte.png
new file mode 100755
index 0000000000000000000000000000000000000000..48fa80d3c5c7ec42f319f316292023409ec910e3
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/texte.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/user_ad.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/user_ad.png
new file mode 100755
index 0000000000000000000000000000000000000000..dc0cd667a80b628fb0486bdeb89f2b3bbea1f44e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/user_ad.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/resources/images/widget.png b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/widget.png
new file mode 100755
index 0000000000000000000000000000000000000000..e3a0ad9db764ef187a8932d36ec7911266840adc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Content/resources/images/widget.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/sauvegarde_restauration.htm b/src/module_gtf/module/gtf.doc/admin/Content/sauvegarde_restauration.htm
new file mode 100755
index 0000000000000000000000000000000000000000..f9d7d444d62ddeb4b38349c7fc0ed56c65b88666
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/sauvegarde_restauration.htm
@@ -0,0 +1,423 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../" data-mc-has-content-body="True" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>&#160;</title>
+        <link href="resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <h1>&#160;</h1>
+                            <h1>&#160;</h1>
+                            <h1>&#160;</h1>
+                            <h1>&#160;</h1>
+                            <h1>sauvegarde_restauration</h1>
+                            <p>La procédure de sauvegarde et restauration de l'application est expliquée dans le chapitre  <a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.3.1"><span class="Lienhypertexte">Sauvegarde et restauration de l’application</span></a><span style="background-color: #7cfc00;">.==&gt;&#160;phrase à insérer en fin de 4.5.2 , une fois le projet de resauration corrigé. </span></p>
+                            <h3 class="Titre3"><a name="11.3.1"><span class="span_1">11.3.1 </span>Sauvegarde de l'application</a><a name="kanchor67"></a>
+                            </h3>
+                            <p>Le projet Sauvegarde GTF  , disponible sur <a href="http://download.veremes.com/"><span class="Lienhypertexte">notre site de téléchargement</span></a>  dans le projet admin.gex permet la sauvegarde de la base de données, des traitements publiés et de leurs résultats, du fichier pycron ainsi que l'ensemble des paramètres de configuration de GTF.&#160; Après avoir importé et publié ce projet dans GTF, l’administrateur peut s’abonner au traitement et assurer une sauvegarde régulière de l’application. </p>
+                            <p>&#160;</p>
+                            <p>Le paramètre Nombre de fichiers de sauvegarde à conserver indique le nombre maximum de fichiers conservés dans le répertoire backup. </p>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p>Le traitement opère de la manière suivante : </p>
+                            <ul>
+                                <li value="1">Sauvegarde  dans le répertoire gtf/backup des deux fichiers properties_domain.inc et properties_post_engine.inc</li>
+                                <li value="2">Sauvegarde des exports sql de la base de données </li>
+                                <li value="3">Sauvegarde des projets FME, des ressources complémentaires et des formulaires. </li>
+                            </ul>
+                            <p>&#160;</p>
+                            <p>&#160;</p>
+                            <p class="Paragraphedeliste_5" style="text-align: left;">
+                                <img src="resources/images/attention.png">
+                                </img><b>Pré requis à l’exécution de la sauvegarde de GTF : </b>
+                            </p>
+                            <p class="p_18">Dans le cas d’une installation personnalisée de GTF, sans installation de la base PostgreSQL, l’administrateur doit impérativement copier dans &lt;gtf&gt;/util/postgres les fichiers postgres suivants (répertoire racine de postgreSQL) : </p>
+                            <p class="Paragraphedeliste_7"><span class="span_2">libeay32.dll</span><span class="span_2"><br></br>libiconv-2.dll</span><span class="span_2"><br></br>libintl-8.dll</span><span class="span_2"> ou libintl.dll</span><span class="span_2"><br></br>libpq.dll</span><span class="span_2"><br></br>pg_dump.exe</span><span class="span_2"><br></br>pg_dumpall.exe</span><span class="span_2"><br></br>pg_restore.exe</span><span class="span_2"><br></br>psql.exe</span><span class="span_2"><br></br>ssleay32.dll</span><span class="span_2"><br></br>zlib1.dll</span>
+                            </p>
+                            <p class="p_5"><span class="span_2">(</span><span class="span_2">Si postgres est installé avec l'</span><span class="span_2">installeur</span><span class="span_2">, ces fichiers sont automatiquement copiés.</span><span class="span_2">)</span>
+                            </p>
+                            <p class="p_5"><span class="span_2"></span>
+                            </p>
+                            <blockquote>
+                                <blockquote>
+                                    <blockquote>
+                                        <blockquote>
+                                            <p class="p_4" style="font-weight: bold;">
+                                                <img src="resources/images/attention.png" class="img_1">
+                                                </img><b></b>Pré requis à l’exécution de la sauvegarde de <b>GTF</b> : </p>
+                                        </blockquote>
+                                    </blockquote>
+                                </blockquote>
+                            </blockquote>
+                            <p class="p_5"><span class="span_2">SI postgre n'a pas été installé par le set up, alors les lignes suivantes doivent être rajoutées </span><span class="span_2">immédiatement après "# IPv4 local connections:" </span>
+                            </p>
+                            <p class="p_19">host&#160;&#160;&#160; postgres&#160;&#160;&#160; u_scheduler&#160;&#160;&#160; 127.0.0.1/32&#160;&#160;&#160; trust</p>
+                            <p class="p_18">Immédiatement après "# IPv6 local connections:" </p>
+                            <p class="p_19">host&#160;&#160;&#160; postgres&#160;&#160;&#160; u_scheduler&#160;&#160;&#160; ::1/128&#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; trust</p>
+                            <p class="p_5">&#160;</p>
+                            <p class="p_5">&#160;</p>
+                            <h3 class="Titre3"><a name="11.3.2"><span class="span_1">11.3.2</span> Restauration de l'application</a> <![CDATA[ ]]></h3>
+                            <p>Le script 'restore.bat' fourni avec GTF permet la restauration de l'application GTF à partir d'un fichier compressé obtenu après exécution du traitement sauvegarde (dans admin.gex disponible à l'adresse <a href="http://download.veremes.com/"><span class="Lienhypertexte">http://download.veremes.com/</span></a>, répertoire gtf/gex)</p>
+                            <p class="Paragraphedeliste_8">Ce script peut être exécuté à partir de n'importe quel répertoire mais&#160; le  chemin PHP et celui du fichier compressé .zip de sauvegarde doivent être indiqués au lancement. </p>
+                            <p class="Paragraphedeliste_8">Par exemple:</p>
+                            <p class="extraitcode"> &#160;</p>
+                            <p class="extraitcode">restore.bat "C:\serveurs\p.exe" "C:\serveurs\gtf\gtf_v2\public\2014040210410540232\1533.zip"</p>
+                            <p class="Paragraphedeliste_3">&#160;</p>
+                            <p class="Paragraphedeliste_3">
+                                <img src="resources/images/attention.png">
+                                </img>Le fichier psql.exe doit être présent dans le répertoire util\postgres du répertoire d'installation de GTF.</p>
+                            <p class="Paragraphedeliste_4">&#160;</p>
+                            <p class="Paragraphedeliste_4">
+                                <img src="resources/images/attention.png">
+                                </img>Effet de bord de la restauration : une fois les données restaurées, un traitement de sauvegarde se lance immédiatement (c'est le traitement de sauvegarde qui s'est sauvegardé lui-même et qui est donc relancé).</p>
+                            <p class="p_5">&#160;</p>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Content/search.htm b/src/module_gtf/module/gtf.doc/admin/Content/search.htm
new file mode 100755
index 0000000000000000000000000000000000000000..57a1683f73b77807a32228f0f0a5dadba65df9fc
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Content/search.htm
@@ -0,0 +1,361 @@
+<!DOCTYPE html>
+<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" class="templateTopic" lang="fr" xml:lang="fr" data-mc-search-type="Stem" data-mc-help-system-file-name="gtf_manuel_utilisateur.xml" data-mc-path-to-help-system="../" data-mc-has-content-body="True" data-mc-ignore="True" data-mc-searchable="False" data-mc-target-type="WebHelp2" data-mc-runtime-file-type="Topic;Search;Default" data-mc-preload-images="false" data-mc-in-preview-mode="false" data-mc-toc-path="">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <link href="../Skins/Default/Stylesheets/Slideshow.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/TextEffects.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Topic.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Default/Stylesheets/Components/Mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/foundation.5.5.0.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/styles.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/tablet.css" rel="stylesheet" type="text/css" data-mc-generated="True" />
+        <link href="../Skins/Fluid/stylesheets/mobile.css" rel="stylesheet" type="text/css" data-mc-generated="True" /><title>Search</title>
+        <link href="resources/stylesheets/gtf_manuel_utilisateur_.css" rel="stylesheet" type="text/css" />
+        <script src="../Resources/Scripts/custom.modernizr.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/jquery.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/require.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/require.config.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/foundation.5.5.0_custom.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/foundation.offcanvas.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/plugins.min.js" type="text/javascript">
+        </script>
+        <script src="../Resources/Scripts/MadCapAll.js" type="text/javascript">
+        </script>
+    </head>
+    <body>
+        <div class="foundation-wrap">
+            <div class="off-canvas-wrap" data-offcanvas="">
+                <section class="inner-wrap">
+                    <nav class="tab-bar" data-mc-ignore="true">
+                        <section class="middle tab-bar-section row outer-row clearfix">
+                            <div class="relative clearfix"><a class="logo" href="gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm" alt="Logo"></a>
+                                <div class="navigation-wrapper">
+                                    <ul class="navigation clearfix">
+                                        <li><a href="gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm">Bienvenue dans GTF</a>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm">Les composants logiciels de GTF</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3">Installation de GTF</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1InstalaltionPrerequis_GTF">Installation des composants pré requis et de GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1Prerequis">Installation des composants pré requis</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.1">Installation de FME</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.2">Installation de Apache</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.1.3">Installation de PostgreSQL</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.2_Installation_de_GTF_">Installation de GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3_installation_de_gtf.htm#3.1.3">Test de l'installation de GTF</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm">Initialisation du compte administrateur </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm#3.2.1_Configuration_du_compte_administrateur">Configuration du compte Administrateur</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm#test_connexion_admin">Test de Connexion du compte administrateur </a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm">Installation du moteur GTF</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#install_pycr">Installation de Pycron</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#installmoteurGTF">Installation du Moteur GTF </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#configmoteurGTF">Configuration du moteur GTF</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#declarationServeur">Déclaration du serveur</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#declarationMoteurFME">Déclaration d'un moteur FME</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#DeclarationMoteurGTF">Déclaration de moteur GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#ConfigSMTP">Configuration du serveur SMTP</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#Activation_fichierLicence">Activation du fichier de licence GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#3.3.6">Tests&#160;: Import de nouveaux traitements</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm">Gestion des utilisateurs</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1">Création d’utilisateurs et des groupes PostgreSQL</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1.1">Création de groupes d’utilisateurs PostgreSQL</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2">Utilisateurs et groupes d’un annuaire Active Directory</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.1">Ajout de domaines Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.2">Import d’utilisateurs d’Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.3">Import de groupes Active Directory</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.4">Gestion mixte des utilisateurs de domaines</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.3">Privilèges des utilisateurs</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm">Publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1">Ajout de projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.1">Ajout de projet FME</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.1.1">Règle de nommage de projets FME&#160;</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.2">Ajout de projets par lot</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.3">Attribution de droits au traitement</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.4">Gestion des métadonnées</a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5">Gestion et personnalisation des formulaires : Travailler dans le studio</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.1">Formulaire par défaut, formulaire personnalisé et formulaire publié</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#Onglets">Création d'onglets dans un formulaire</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.2">Paramètres publiés FME et contrôles GTF</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5.3">Gestionnaire de données sources</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#Liste_cascade">Créer des listes en cascade</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.6">Appel externe</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.7">Répertoire projet</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.8">Gestion des Transformers et formats personnalisés</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.9">Gestion des connexions nommées</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.2">Gestion des catégories</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.3">Gestion des dépôts (répertoire de surveillance)</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.4">Gestion des périodes</a>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5">Modèles d'E-mail</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5.1">Définition simple</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5.2">Définition avancée</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm">Exemples de publication de traitements</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1">Traitement de conversion d'un fichier statique sur le serveur</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.1.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2">Paramètres publiés supplémentaires</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.2.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3">Conversion de fichiers chargés avec le projet FME</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.3.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4">Traitement de conversion avec sortie générique </a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.4.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5">Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.1">Création du projet FME</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.2">Publication du traitement dans GTF</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5.3">Exécution du traitement</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/8_supervision.htm">Supervision</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1">Supervision des Demandes</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1.1">Suppression des demandes</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.1.2">Modification de moteurs</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.2">Supervision des abonnements</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.3">Supervision des surveillances</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/8_supervision.htm#8.4">Gestion des messages</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/statistiques.htm">Statistiques</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm">Journaux (logs)</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm#10.1">Consultation des fichiers de logs de l’application</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm">Configuration et procédures d'exploitation</a>
+                                            <ul class="sub-menu">
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1">Configuration de l’application</a>
+                                                    <ul class="sub-menu">
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1">Paramètres généraux de configuration</a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public">Stratégie de sécurité</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1.2_Gestion_des_journaux_">Gestion des journaux </a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.2_versions">Version des composants</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.3_PHP">Informations PHP</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.4">Demande et activation de fichier de licence FME </a>
+                                                        </li>
+                                                        <li class="has-children"><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5_config_gtf">Configuration de GTF </a>
+                                                            <ul class="sub-menu">
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.1_Configuration_du_serveur_SMTP">Configuration du serveur SMTP</a>
+                                                                </li>
+                                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.5.2_Configuration_des_moteurs_GTF">Moteurs GTF</a>
+                                                                </li>
+                                                            </ul>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.22">Configuration des répertoires Public et Upload</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.2">Nettoyage et suppression des fichiers temporaires</a>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                        <li><a href="gtf_manuel_utilisateur/13_support_technique.htm">Support technique</a>
+                                        </li>
+                                        <li class="has-children"><a href="gtf_manuel_utilisateur/annexes.htm">Annexes</a>
+                                            <ul class="sub-menu">
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.1">Syntaxe  des expressions CRON pour la définition des périodes d'abonnement</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.2">Services web et Privilèges</a>
+                                                </li>
+                                                <li><a href="gtf_manuel_utilisateur/annexes.htm#13.3">Liste des contrôles GTF</a>
+                                                </li>
+                                                <li class="has-children"><a href="gtf_manuel_utilisateur/annexes.htm#13.4">Projets intégrés</a>
+                                                    <ul class="sub-menu">
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.1">Admin-Export</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.2">Admin-import</a>
+                                                        </li>
+                                                        <li><a href="gtf_manuel_utilisateur/annexes.htm#13.4.3">Vérification des formulaires</a>
+                                                        </li>
+                                                    </ul>
+                                                </li>
+                                            </ul>
+                                        </li>
+                                    </ul>
+                                </div><a class="menu-icon left-off-canvas-toggle" href="#"><span></span></a>
+                            </div>
+                        </section>
+                        <div class="nav-search row outer-row">
+                            <form class="search" action="#">
+                                <div class="search-bar search-bar-container needs-pie">
+                                    <input class="search-field needs-pie" type="search" placeholder="Champ d'entrée recherche" />
+                                    <div class="search-filter-wrapper">
+                                        <div class="search-filter">
+                                            <div class="search-filter-content">
+                                                <ul>
+                                                    <li>Filtre</li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="search-submit-wrapper" dir="ltr">
+                                        <div class="search-submit" title="Rechercher">
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </nav>
+                    <aside class="left-off-canvas-menu" data-mc-ignore="true">
+                        <ul class="off-canvas-list" data-mc-back-link="Retour" data-mc-css-tree-node-expanded="has-submenu" data-mc-css-tree-node-collapsed="has-submenu" data-mc-css-sub-menu="left-submenu" data-mc-include-indicator="False" data-mc-include-icon="False" data-mc-include-parent-link="True" data-mc-include-back="True" data-mc-defer-expand-event="True" data-mc-expand-event="click.fndtn.offcanvas" data-mc-toc="True">
+                        </ul>
+                    </aside>
+                    <section class="main-section">
+                        <div class="row outer-row" data-mc-content-body="True">
+                            <div id="searchPane">
+                                <h1 id="results-heading">Votre recherche pour <span class="query"></span> a donné <span class="total-results"></span> résultat(s).</h1>
+                            </div>
+                        </div>
+                    </section><a class="exit-off-canvas"></a>
+                </section>
+            </div>
+            <script>/* <![CDATA[ */$(document).foundation();/* ]]> */</script>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Alias.js b/src/module_gtf/module/gtf.doc/admin/Data/Alias.js
new file mode 100755
index 0000000000000000000000000000000000000000..124517c037f99d88a60c0b8a734bbefddb7886de
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Alias.js
@@ -0,0 +1,6 @@
+var xmlAliasData = "";
+xmlAliasData += '<?xml version=\"1.0\" encoding=\"utf-8\"?>';
+xmlAliasData += '<CatapultAliasFile>';
+xmlAliasData += '    <!-- saved from url=(0016)http://localhost -->';
+xmlAliasData += '</CatapultAliasFile>';
+MadCap.Utilities.Xhr._FilePathToXmlStringMap.Add('Alias', xmlAliasData);
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Alias.xml b/src/module_gtf/module/gtf.doc/admin/Data/Alias.xml
new file mode 100755
index 0000000000000000000000000000000000000000..fb8dcb20a1eba1329c660e5adfc7fd145555cdd2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Alias.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CatapultAliasFile>
+    <!-- saved from url=(0016)http://localhost -->
+</CatapultAliasFile>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Breakpoints.js b/src/module_gtf/module/gtf.doc/admin/Data/Breakpoints.js
new file mode 100755
index 0000000000000000000000000000000000000000..f70545d8edef81839dce7c9d249ea797cfc537ab
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Breakpoints.js
@@ -0,0 +1 @@
+define({prop:'max-width',mediums:{'Tablet':1279}});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Concepts.js b/src/module_gtf/module/gtf.doc/admin/Data/Concepts.js
new file mode 100755
index 0000000000000000000000000000000000000000..54df66a06258ce7d15bb1d27527f63ab9283cf47
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Concepts.js
@@ -0,0 +1 @@
+define({});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Filters.js b/src/module_gtf/module/gtf.doc/admin/Data/Filters.js
new file mode 100755
index 0000000000000000000000000000000000000000..8dd55a519cee5b0a846421f37ffb29c0e00e384c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Filters.js
@@ -0,0 +1 @@
+define({'Mon Sous-Ensemble':{c:'', cm:'', o:-1},})
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Glossary.js b/src/module_gtf/module/gtf.doc/admin/Data/Glossary.js
new file mode 100755
index 0000000000000000000000000000000000000000..7d19d92d3ab215337742ed6bab2ef97104f3b44d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Glossary.js
@@ -0,0 +1 @@
+define({numchunks:1,prefix:'Glossary_Chunk',terms:[{t:'My Term',c:0}]});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Glossary_Chunk0.js b/src/module_gtf/module/gtf.doc/admin/Data/Glossary_Chunk0.js
new file mode 100755
index 0000000000000000000000000000000000000000..81106166579fa5bf6995a5cc4523cd7cc1a763bd
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Glossary_Chunk0.js
@@ -0,0 +1 @@
+define({'My Term':{d:'My definition',l:''}});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/HelpSystem.js b/src/module_gtf/module/gtf.doc/admin/Data/HelpSystem.js
new file mode 100755
index 0000000000000000000000000000000000000000..4c3f11265d32e73889cab71f4dcf303103eefb6f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/HelpSystem.js
@@ -0,0 +1,9 @@
+var xmlHelpSystemData = "";
+xmlHelpSystemData += '<?xml version=\"1.0\" encoding=\"utf-8\"?>';
+xmlHelpSystemData += '<WebHelpSystem DefaultUrl=\"content/gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm\" Toc=\"Data/Toc.js\" Index=\"Data/Index.js\" Concepts=\"Data/Concepts.js\" BrowseSequence=\"Data/BrowseSequence.js\" Glossary=\"Data/Glossary.js\" SearchDatabase=\"Data/Search.js\" Alias=\"Data/Alias.xml\" Synonyms=\"Data/Synonyms.xml\" SearchFilterSet=\"Data/Filters.js\" SearchUrl=\"content/search.htm\" SkinName=\"HTML5 - Top Navigation\" Skins=\"HTML5 - Top Navigation\" BuildTime=\"22/02/2017 10:40:03\" BuildVersion=\"11.0.0.32808\" TargetType=\"WebHelp2\" SkinTemplateFolder=\"Skin/\" InPreviewMode=\"false\" MoveOutputContentToRoot=\"false\" MakeFileLowerCase=\"true\" UseCustomTopicFileExtension=\"false\" CustomTopicFileExtension=\"\" PreventExternalUrls=\"false\" EnableResponsiveOutput=\"true\" ResultsPerPage=\"20\">';
+xmlHelpSystemData += '    <!-- saved from url=(0016)http://localhost -->';
+xmlHelpSystemData += '    <CatapultSkin Version=\"2\" SkinType=\"WebHelp2\" ComponentType=\"MasterPage\" TemplateName=\"Fluid\" Comment=\"HTML5 Top Navigation skin\" EnableResponsiveOutput=\"True\" Name=\"HTML5 - Top Navigation\">';
+xmlHelpSystemData += '        <WebHelpOptions NavigationPanePosition=\"Left\" TopMenuDepth=\"4\" />';
+xmlHelpSystemData += '    </CatapultSkin>';
+xmlHelpSystemData += '</WebHelpSystem>';
+MadCap.Utilities.Xhr._FilePathToXmlStringMap.Add('HelpSystem', xmlHelpSystemData);
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/HelpSystem.xml b/src/module_gtf/module/gtf.doc/admin/Data/HelpSystem.xml
new file mode 100755
index 0000000000000000000000000000000000000000..94d93512e83ba69992be3ef75451531e55e19ba5
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/HelpSystem.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<WebHelpSystem DefaultUrl="content/gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm" Toc="Data/Toc.js" Index="Data/Index.js" Concepts="Data/Concepts.js" BrowseSequence="Data/BrowseSequence.js" Glossary="Data/Glossary.js" SearchDatabase="Data/Search.js" Alias="Data/Alias.xml" Synonyms="Data/Synonyms.xml" SearchFilterSet="Data/Filters.js" SearchUrl="content/search.htm" SkinName="HTML5 - Top Navigation" Skins="HTML5 - Top Navigation" BuildTime="22/02/2017 10:40:03" BuildVersion="11.0.0.32808" TargetType="WebHelp2" SkinTemplateFolder="Skin/" InPreviewMode="false" MoveOutputContentToRoot="false" MakeFileLowerCase="true" UseCustomTopicFileExtension="false" CustomTopicFileExtension="" PreventExternalUrls="false" EnableResponsiveOutput="true" ResultsPerPage="20">
+    <!-- saved from url=(0016)http://localhost -->
+    <CatapultSkin Version="2" SkinType="WebHelp2" ComponentType="MasterPage" TemplateName="Fluid" Comment="HTML5 Top Navigation skin" EnableResponsiveOutput="True" Name="HTML5 - Top Navigation">
+        <WebHelpOptions NavigationPanePosition="Left" TopMenuDepth="4" />
+    </CatapultSkin>
+</WebHelpSystem>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Index.js b/src/module_gtf/module/gtf.doc/admin/Data/Index.js
new file mode 100755
index 0000000000000000000000000000000000000000..7373e2e893832bcd1e4542f9f169f83dcae99446
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Index.js
@@ -0,0 +1 @@
+define({numchunks:1,prefix:'Index_Chunk',terms:[{t:'$(FME_MF_DIR_UNIX)',c:0,$:1},{t:'Architecture de GTF',c:0,$:1},{t:'Attendre le parent',c:0,$:1},{t:'attribut enfant',c:0,$:1},{t:'Attribution de droits à un traitement',c:0,$:1},{t:'Attributs de filtrage',c:0,$:1},{t:'Bing',c:0,$:1},{t:'CAPTCHA',c:0,$:1},{t:'Carte OSM',c:0,$:1},{t:'Champ caché',c:0,$:1},{t:'Composants Logiciels',c:0,$:1},{t:'Configuration de GTF',c:0,$:1},{t:'connexions nommées',c:0,$:1},{t:'contrab',c:0,$:1},{t:'Contrôle GTF',c:0,$:1},{t:'Création d\u0027utilisateur PostrgreSQL',c:0,$:1},{t:'CRON',c:0,$:1},{t:'Dépôt',c:0,$:1},{t:'Exploitation',c:0,$:1},{t:'filter',c:0,$:1},{t:'filtre',c:0,$:1},{t:'Formulaire',c:0,$:1},{t:'Gestion des périodes',c:0,$:1},{t:'Gestion mixte des utilisateurs',c:0,$:1},{t:'Gestionnaire de sources de données',c:0,$:1},{t:'gex.',c:0,$:1},{t:'Groupe d\u0027utilisateurs',c:0,$:1},{t:'H_',c:0,$:1},{t:'Import de traitements',c:0,$:1},{t:'Import groupe Active Directory',c:0,$:1},{t:'Import utilisateur Active Directory',c:0,$:1},{t:'Initialisation de GTF',c:0,$:1},{t:'Installation de GTF',c:0,$:1},{t:'Jeton public',c:0,$:1},{t:'Jetons de connexion',c:0,$:1},{t:'Liste en cascade',c:0,$:1},{t:'Logs',c:0,$:1},{t:'map.json',c:0,$:1},{t:'Metadonnées',c:0,$:1},{t:'Modèle Email',c:0,$:1},{t:'Moteur FME',c:0,$:1},{t:'Moteur GTF',c:0,$:1},{t:'Mots clé',c:0,$:1},{t:'Nettoyage des fichiers temporaires',c:0,$:1},{t:'onglets',c:0,$:1},{t:'OSM,',c:0,$:1},{t:'Période',c:0,$:1},{t:'Privilèges',c:0,$:1},{t:'Publication de traitements',c:0,$:1},{t:'Purger les demandes',c:0,$:1},{t:'Règles de nommages d\u0027un projet',c:0,$:1},{t:'Répertoire de surveillance',c:0,$:1},{t:'Répertoire projet',c:0,$:1},{t:'répertoires Public',c:0,$:1},{t:'Ressources complémentaires',c:0,$:1},{t:'Restauration de l\u0027application',c:0,$:1},{t:'Restriction',c:0,$:1},{t:'Sauvegarde de GTF',c:0,$:1},{t:'Signe de comparaison',c:0,$:1},{t:'Statistiques',c:0,$:1},{t:'Studio',c:0,$:1},{t:'Supervision',c:0,$:1},{t:'Support',c:0,$:1},{t:'Suppression de demandes',c:0,$:1},{t:'TAG',c:0,$:1},{t:'Traitement administration',c:0,$:1},{t:'Transformers et formats personnalisés',c:0,$:1},{t:'Upload',c:0,$:1},{t:'Utilisateurs Active Directory',c:0,$:1},{t:'Utilisateurs. Gestion des utilisateurs',c:0,$:1},{t:'vMap',c:0,$:1}]});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Index_Chunk0.js b/src/module_gtf/module/gtf.doc/admin/Data/Index_Chunk0.js
new file mode 100755
index 0000000000000000000000000000000000000000..1a26ef7f3c6ef528c655de630d3a8bf2bcaa2c09
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Index_Chunk0.js
@@ -0,0 +1 @@
+define({'$(FME_MF_DIR_UNIX)':{l:[{u:'/content/gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#kanchor50',t:' Exemples de publication de traitements'}]},'Architecture de GTF':{l:[{u:'/content/gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm#kanchor2',t:'  Les composants logiciels de GTF'}]},'Attendre le parent':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor41',t:' Publication de traitements'}]},'attribut enfant':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor38',t:' Publication de traitements'}]},'Attribution de droits à un traitement':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.3',t:' Publication de traitements'}]},'Attributs de filtrage':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor39',t:' Publication de traitements'}]},'Bing':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor30',t:' Publication de traitements'}]},'CAPTCHA':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor43',t:' Publication de traitements'}]},'Carte OSM':{l:[{u:'/content/gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm#7.5',t:' Exemples de publication de traitements'}]},'Champ caché':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor33',t:' Publication de traitements'}]},'Composants Logiciels':{l:[{u:'/content/gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm#2',t:'  Les composants logiciels de GTF'}]},'Configuration de GTF':{l:[{u:'/content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1',t:' Configuration et procédures d\u0027exploitation'}]},'connexions nommées':{l:[{u:'/content/param_re_personnels.htm#kanchor66',t:'6.1.8 Gestion des Transformers et formats personnalisés '}]},'contrab':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor48',t:' Publication de traitements'}]},'Contrôle GTF':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor28',t:' Publication de traitements'}]},'Création d\u0027utilisateur PostrgreSQL':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1',t:' Gestion des utilisateurs  '}]},'CRON':{l:[{u:'/content/gtf_manuel_utilisateur/annexes.htm#13.1',t:'  Annexes  '}]},'Dépôt':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.3',t:' Publication de traitements'}]},'Exploitation':{l:[{u:'/content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11',t:' Configuration et procédures d\u0027exploitation'}]},'filter':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor36',t:' Publication de traitements'}]},'filtre':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor36',t:' Publication de traitements'}]},'Formulaire':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5',t:' Publication de traitements'},{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor26',t:' Publication de traitements'}]},'Gestion des périodes':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.4',t:' Publication de traitements'}]},'Gestion mixte des utilisateurs':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.4',t:' Gestion des utilisateurs  '}]},'Gestionnaire de sources de données':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor35',t:' Publication de traitements'}]},'gex.':{l:[{u:'/content/gtf_manuel_utilisateur/annexes.htm#kanchor64',t:'  Annexes  '}]},'Groupe d\u0027utilisateurs':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.1.1',t:' Gestion des utilisateurs  '}]},'H_':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor34',t:' Publication de traitements'}]},'Import de traitements':{l:[{u:'/content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#kanchor7',t:'Installation du moteur GTF '}]},'Import groupe Active Directory':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.3',t:' Gestion des utilisateurs  '}]},'Import utilisateur Active Directory':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2.2',t:' Gestion des utilisateurs  '}]},'Initialisation de GTF':{l:[{u:'/content/gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm#kanchor3',t:'Initialisation du compte Administrateur '}]},'Installation de GTF':{l:[{u:'/content/gtf_manuel_utilisateur/gtf_manuel_utilisateur_.htm#3',t:'gtf_manuel_utilisateur '}]},'Jeton public':{l:[{u:'/content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.1.1..1compte_public',t:' Configuration et procédures d\u0027exploitation'}]},'Jetons de connexion':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor42',t:' Publication de traitements'}]},'Liste en cascade':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor37',t:' Publication de traitements'}]},'Logs':{l:[{u:'/content/gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm#10',t:'  Journaux (logs)'}]},'map.json':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor32',t:' Publication de traitements'}]},'Metadonnées':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.4',t:' Publication de traitements'}]},'Modèle Email':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.5',t:' Publication de traitements'}]},'Moteur FME':{l:[{u:'/content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#kanchor4',t:'Installation du moteur GTF '}]},'Moteur GTF':{l:[{u:'/content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#kanchor5',t:'Installation du moteur GTF '}]},'Mots clé':{l:[{u:'/content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#kanchor6',t:'Installation du moteur GTF '}]},'Nettoyage des fichiers temporaires':{l:[{u:'/content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#11.2',t:' Configuration et procédures d\u0027exploitation'}]},'onglets':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor27',t:' Publication de traitements'}]},'OSM,':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor29',t:' Publication de traitements'}]},'Période':{l:[{u:'/content/gtf_manuel_utilisateur/annexes.htm#13.1',t:'  Annexes  '}]},'Privilèges':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#kanchor17',t:' Gestion des utilisateurs  '}]},'Publication de traitements':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6',t:' Publication de traitements'}]},'Purger les demandes':{l:[{u:'/content/gtf_manuel_utilisateur/8_supervision.htm#kanchor54',t:'Supervision'}]},'Règles de nommages d\u0027un projet':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor19',t:' Publication de traitements'}]},'Répertoire de surveillance':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.3',t:' Publication de traitements'}]},'Répertoire projet':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor44',t:' Publication de traitements'}]},'répertoires Public':{l:[{u:'/content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#kanchor59',t:' Configuration et procédures d\u0027exploitation'}]},'Ressources complémentaires':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor20',t:' Publication de traitements'}]},'Restauration de l\u0027application':{l:[{u:'/content/sauvegarde_restauration.htm#11.3.2',t:' '}]},'Restriction':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#kanchor11',t:' Gestion des utilisateurs  '}]},'Sauvegarde de GTF':{l:[{u:'/content/sauvegarde_restauration.htm#kanchor67',t:' '}]},'Signe de comparaison':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor40',t:' Publication de traitements'}]},'Statistiques':{l:[{u:'/content/gtf_manuel_utilisateur/gtf_manuel_utilisateur_.htm#9',t:'gtf_manuel_utilisateur '}]},'Studio':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#6.1.5',t:' Publication de traitements'},{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor25',t:' Publication de traitements'}]},'Supervision':{l:[{u:'/content/gtf_manuel_utilisateur/8_supervision.htm#8',t:'Supervision'}]},'Support':{l:[{u:'/content/gtf_manuel_utilisateur/13_support_technique.htm#12',t:' Support technique'}]},'Suppression de demandes':{l:[{u:'/content/gtf_manuel_utilisateur/8_supervision.htm#kanchor53',t:'Supervision'}]},'TAG':{l:[{u:'/content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#kanchor6',t:'Installation du moteur GTF '}]},'Traitement administration':{l:[{u:'/content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm#4.5.2',t:'Installation du moteur GTF '}]},'Transformers et formats personnalisés':{l:[{u:'/content/param_re_personnels.htm#kanchor65',t:'6.1.8 Gestion des Transformers et formats personnalisés '}]},'Upload':{l:[{u:'/content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm#kanchor60',t:' Configuration et procédures d\u0027exploitation'}]},'Utilisateurs Active Directory':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5.2',t:' Gestion des utilisateurs  '}]},'Utilisateurs. Gestion des utilisateurs':{l:[{u:'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm#5',t:' Gestion des utilisateurs  '}]},'vMap':{l:[{u:'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm#kanchor31',t:' Publication de traitements'}]}});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Language.js b/src/module_gtf/module/gtf.doc/admin/Data/Language.js
new file mode 100755
index 0000000000000000000000000000000000000000..f16e535119db3644de06eadb383c5f575128f48f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Language.js
@@ -0,0 +1 @@
+define({'default':{'OpenBookIconAlternateText':'Livre ouvert','ClosedBookIconAlternateText':'Livre fermé','TopicIconAlternateText':'Rubrique','MarkAsNewIconAlternateText':'Nouvelle rubrique'}});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Search.js b/src/module_gtf/module/gtf.doc/admin/Data/Search.js
new file mode 100755
index 0000000000000000000000000000000000000000..b98c2523d8cdcd075d74c40c3629690b1a67d003
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Search.js
@@ -0,0 +1 @@
+define({r:0.5,st:'Stem',n:1,t:[0],s:['$'],p:[['$',7]]});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/SearchPhrase_Chunk0.js b/src/module_gtf/module/gtf.doc/admin/Data/SearchPhrase_Chunk0.js
new file mode 100755
index 0000000000000000000000000000000000000000..96b4738592eb620a3ebd8230bb92ed31f0f14b5f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/SearchPhrase_Chunk0.js
@@ -0,0 +1 @@
+define({"$":{7:{r:4100,w:{1010:4096,1013:4,}},17:{r:28,w:{1534:4,1540:4,1560:4,1569:4,1578:4,2108:4,2321:4,}},21:{r:4,w:{7028:4,}},},"$acommuneesi":{17:{r:3,w:{857:3,}},},"$acommunes":{17:{r:3,w:{856:3,}},},"$aextent":{17:{r:9,w:{1472:3,1963:3,2050:3,}},},"$afeature":{17:{r:6,w:{1474:3,2285:3,}},},"$alayers":{17:{r:6,w:{1471:3,1648:3,}},},"$atools":{17:{r:6,w:{1473:3,2078:3,}},},"$atype":{17:{r:13,w:{600:3,632:3,1030:3,1050:4,}},},"$avalues":{17:{r:53,w:{284:3,317:3,405:3,413:3,491:3,597:3,664:3,712:3,756:3,1026:4,1047:4,1130:3,1177:3,1256:3,1340:3,2388:3,2422:3,}},},"$fme_home":{6:{r:8,w:{7852:4,7857:4,}},14:{r:8,w:{163:4,168:4,}},},"$iheight":{17:{r:6,w:{1469:3,1527:3,}},},"$iwidth":{17:{r:6,w:{1468:3,1524:3,}},},"$oform":{17:{r:84,w:{236:3,279:3,312:3,401:3,408:3,486:3,519:3,554:3,592:3,659:3,707:3,751:3,814:3,846:3,937:3,1019:3,1039:3,1125:3,1165:3,1171:3,1246:3,1310:3,1333:3,1463:3,2383:3,2417:3,2463:3,2491:3,}},21:{r:3,w:{9021:3,}},},"$oform-":{17:{r:78,w:{236:3,279:3,312:3,401:3,408:3,486:3,519:3,554:3,592:3,659:3,707:3,751:3,814:3,846:3,937:3,1125:3,1165:3,1171:3,1246:3,1310:3,1333:3,1463:3,2383:3,2417:3,2463:3,2491:3,}},21:{r:3,w:{9021:3,}},},"$properties":{6:{r:83,w:{9531:7,9554:7,9576:7,9598:7,9618:7,9638:7,9661:5,9716:6,9738:6,9760:6,9781:6,9802:6,9823:6,}},11:{r:12,w:{839:3,841:3,846:3,848:3,}},21:{r:90,w:{6024:7,6047:7,6069:7,6091:7,6111:7,6131:7,6200:6,6222:6,6243:6,6262:6,6282:6,6303:6,10560:3,10562:3,10567:3,10569:3,}},},"$sidcommune":{17:{r:3,w:{819:3,}},},"$sname":{17:{r:6,w:{1467:3,1521:3,}},},"$sprojection":{17:{r:10,w:{1470:3,1530:3,1601:4,}},},"$stitle":{17:{r:6,w:{1466:3,1516:3,}},},"$this":{6:{r:95,w:{9535:7,9558:7,9580:7,9602:7,9622:7,9642:7,9665:5,9681:6,9698:6,9720:6,9742:6,9764:6,9785:6,9807:6,9828:6,}},17:{r:6,w:{244:3,714:3,}},21:{r:96,w:{6028:7,6051:7,6073:7,6095:7,6115:7,6135:7,6151:6,6166:6,6183:6,6204:6,6226:6,6247:6,6266:6,6287:6,6308:6,}},},"$this-":{6:{r:95,w:{9535:7,9558:7,9580:7,9602:7,9622:7,9642:7,9665:5,9681:6,9698:6,9720:6,9742:6,9764:6,9785:6,9807:6,9828:6,}},17:{r:6,w:{244:3,714:3,}},21:{r:96,w:{6028:7,6051:7,6073:7,6095:7,6115:7,6135:7,6151:6,6166:6,6183:6,6204:6,6226:6,6247:6,6266:6,6287:6,6308:6,}},},"$user":{6:{r:3,w:{9170:3,}},21:{r:3,w:{5687:3,}},},"+33":{12:{r:6,w:{46:3,57:3,}},21:{r:6,w:{11473:3,11481:3,}},},"+gtf_":{5:{r:8,w:{1030:4,1076:4,}},21:{r:8,w:{2866:4,2912:4,}},},"+gtf_nomdomaine":{5:{r:6,w:{981:3,994:3,}},21:{r:6,w:{2817:3,2830:3,}},},"+superusers":{5:{r:12,w:{927:3,958:3,1020:3,1069:3,}},21:{r:12,w:{2763:3,2794:3,2856:3,2905:3,}},},"0":{2:{r:6,w:{91:3,94:3,}},4:{r:6,w:{335:3,336:3,}},5:{r:50,w:{919:3,920:3,929:3,930:3,939:3,940:3,983:3,984:3,1012:3,1013:3,1022:3,1023:3,1035:4,1036:4,1050:3,1051:3,}},6:{r:6,w:{8672:3,8706:3,}},12:{r:6,w:{47:3,58:3,}},13:{r:22,w:{44:3,54:3,111:6,120:3,151:3,167:4,}},14:{r:6,w:{998:3,1036:3,}},15:{r:6,w:{325:3,326:3,}},17:{r:37,w:{1979:3,1985:6,2008:4,2069:3,2075:6,2294:3,2306:3,2310:3,2314:3,2425:3,}},21:{r:87,w:{2755:3,2756:3,2765:3,2766:3,2775:3,2776:3,2819:3,2820:3,2848:3,2849:3,2858:3,2859:3,2871:4,2872:4,2886:3,2887:3,9029:3,11111:3,11112:3,11474:3,11482:3,11531:3,11541:3,11598:6,11607:3,11638:3,11654:4,}},},"0-4":{21:{r:3,w:{11474:3,}},},"0-9":{21:{r:3,w:{11482:3,}},},"00":{6:{r:6,w:{8481:6,}},11:{r:6,w:{892:3,906:3,}},14:{r:6,w:{798:6,}},21:{r:6,w:{10612:3,10626:3,}},},"000":{7:{r:36,w:{572:4,577:4,583:4,746:4,750:4,751:4,755:4,756:4,762:4,}},21:{r:36,w:{7872:4,7877:4,7883:4,8049:4,8053:4,8054:4,8058:4,8059:4,8065:4,}},},"00000000":{6:{r:6,w:{8499:6,}},14:{r:6,w:{816:6,}},},"01":{11:{r:6,w:{891:3,905:3,}},12:{r:3,w:{63:3,}},21:{r:6,w:{10611:3,10625:3,}},},"02":{21:{r:6,w:{11486:3,11487:3,}},},"0hpyzqnax0fjrsej4ss266c7":{17:{r:3,w:{1695:3,}},},"1":{4:{r:6,w:{337:3,355:3,}},5:{r:50,w:{921:3,931:3,941:3,952:3,959:3,966:3,985:3,995:3,1014:3,1024:3,1037:4,1052:3,1063:3,1070:3,1080:4,1093:3,}},6:{r:12333,w:{1919:10,3277:3,3356:3,3595:4098,3618:3,3707:3,3721:4098,3743:3,3826:3,6055:3,7480:4099,8231:4,8743:3,}},7:{r:12,w:{570:4,575:4,754:4,}},13:{r:31,w:{68:3,89:3,121:3,178:8,200:4,596:7,655:3,}},14:{r:268595221,w:{2:268435456,12:65538,172:65538,410:4098,412:4098,546:4098,738:4098,842:4098,908:4098,1014:4098,1073:3,}},15:{r:131086,w:{43:131080,327:3,340:3,}},17:{r:2359333,w:{6:2097160,15:65540,16:131080,201:65540,384:3,599:3,1002:3,1049:4,}},18:{r:285212676,w:{1:268435456,6:16777220,}},19:{r:6,w:{14:6,}},20:{r:6,w:{14:6,}},21:{r:36196674,w:{3:16777220,834:2097160,1483:131080,2053:2097160,2203:65540,2204:131080,2442:131080,2757:3,2767:3,2777:3,2788:3,2795:3,2802:3,2821:3,2831:3,2850:3,2860:3,2873:4,2888:3,2899:3,2906:3,2916:4,2929:3,3554:2097160,3581:65540,3582:131080,3951:65540,4112:65540,4171:65540,4298:65540,4816:65540,4962:4099,4964:8198,5115:4099,5214:4099,5316:65538,5989:131080,6364:2097160,6446:65540,6447:131080,6630:65540,6751:65540,6935:131080,7362:131080,7813:131080,7870:4,7875:4,8057:4,8177:131080,8670:131080,9243:2097160,9965:2097160,10019:2097160,10051:65538,10052:131076,10346:65540,10472:65538,10831:131080,11113:3,11126:3,11494:2097160,11555:3,11576:3,11608:3,11665:8,11687:4,}},},"10":{3:{r:6,w:{147:3,153:3,}},13:{r:4,w:{213:4,}},17:{r:6,w:{758:3,854:3,}},21:{r:17825804,w:{9959:16777220,9964:1048580,11700:4,}},},"100":{0:{r:3,w:{18:3,}},11:{r:3,w:{114:3,}},17:{r:6,w:{759:3,2426:3,}},18:{r:3,w:{21:3,}},21:{r:6,w:{18:3,10193:3,}},},"10h12":{13:{r:3,w:{210:3,}},21:{r:3,w:{11697:3,}},},"11":{12:{r:3,w:{60:3,}},15:{r:131080,w:{41:65540,344:65540,}},21:{r:20250659,w:{1955:3,10011:16777220,10018:1048580,10050:65538,10345:65540,10471:65538,10639:1048580,10819:1048580,10829:65540,11130:65540,}},},"12":{13:{r:14,w:{91:3,164:3,168:4,212:4,}},16:{r:285212676,w:{1:268435456,9:16777220,}},21:{r:16777234,w:{11277:16777220,11578:3,11651:3,11655:4,11699:4,}},},"127":{4:{r:3,w:{334:3,}},5:{r:25,w:{918:3,928:3,938:3,982:3,1011:3,1021:3,1034:4,1049:3,}},15:{r:3,w:{324:3,}},21:{r:28,w:{2754:3,2764:3,2774:3,2818:3,2847:3,2857:3,2870:4,2885:3,11110:3,}},},"128":{4:{r:6,w:{356:6,}},5:{r:50,w:{953:6,960:6,967:6,996:6,1064:6,1071:6,1081:8,1094:6,}},15:{r:6,w:{341:6,}},21:{r:56,w:{2789:6,2796:6,2803:6,2832:6,2900:6,2907:6,2917:8,2930:6,11127:6,}},},"13":{21:{r:16777220,w:{11452:16777220,}},},"14":{17:{r:1179660,w:{5:1048580,14:65540,200:65540,}},21:{r:17825800,w:{11489:16777220,11493:1048580,}},},"1420898437502":{17:{r:6,w:{2299:6,}},},"15":{13:{r:11,w:{176:4,185:3,188:4,}},17:{r:4,w:{2010:4,}},21:{r:11,w:{11663:4,11672:3,11675:4,}},},"1533":{15:{r:3,w:{440:3,}},21:{r:3,w:{11222:3,}},},"169":{17:{r:6,w:{524:3,559:3,}},},"1757812500002":{17:{r:6,w:{2311:6,}},},"19":{7:{r:9,w:{805:3,1319:3,1821:3,}},21:{r:3,w:{8106:3,}},},"2":{2:{r:4102,w:{217:4098,265:4,}},6:{r:10,w:{4927:3,7073:3,8233:4,}},7:{r:12,w:{581:4,749:4,760:4,}},9:{r:3,w:{248:3,}},11:{r:3,w:{126:3,}},13:{r:19,w:{122:3,135:3,141:3,203:3,214:4,927:3,}},14:{r:16392,w:{548:8196,740:8196,}},15:{r:131092,w:{32:8,235:4,346:131080,}},16:{r:3,w:{134:3,}},17:{r:131086,w:{202:131080,417:3,1053:3,}},21:{r:31400162,w:{328:16777220,1020:2097160,1781:3,1792:131080,2338:2097160,2441:65540,2947:65540,2948:131080,3208:65540,3399:65540,3952:131080,5117:8198,5382:2097156,6318:131080,6631:131080,6858:2097160,6934:65540,7096:65540,7097:131080,7262:65540,7499:131080,7602:4,7881:4,7894:131080,8052:4,8063:4,8451:131080,8755:131080,9476:2097160,9827:3,10205:3,10347:131080,10640:2097160,11021:4,11132:131080,11402:3,11609:3,11622:3,11628:3,11690:3,11701:4,}},},"2-5":{13:{r:7,w:{135:3,214:4,}},21:{r:7,w:{11622:3,11701:4,}},},"20":{6:{r:3,w:{1852:3,}},},"200":{7:{r:4,w:{571:4,}},17:{r:3,w:{858:3,}},21:{r:4,w:{7871:4,}},},"2012":{21:{r:3,w:{871:3,}},},"2013":{4:{r:3,w:{956:3,}},21:{r:9,w:{880:3,968:3,1358:3,}},},"2014040210410540232":{15:{r:3,w:{439:3,}},21:{r:3,w:{11221:3,}},},"2015":{4:{r:3,w:{485:3,}},6:{r:3,w:{8703:3,}},14:{r:3,w:{1033:3,}},},"2016":{4:{r:7,w:{494:3,591:4,}},6:{r:10,w:{8180:4,8705:3,8742:3,}},13:{r:6,w:{826:3,894:3,}},14:{r:10,w:{495:4,1035:3,1072:3,}},19:{r:3,w:{13:3,}},20:{r:3,w:{13:3,}},},"2017":{22:{r:3,w:{13:3,}},},"2080078125002":{17:{r:6,w:{2303:6,}},},"22":{13:{r:4,w:{177:4,}},21:{r:4,w:{11664:4,}},},"22h15":{13:{r:3,w:{174:3,}},21:{r:3,w:{11661:3,}},},"23":{13:{r:3,w:{56:3,}},21:{r:3,w:{11543:3,}},},"27":{12:{r:3,w:{52:3,}},21:{r:3,w:{11479:3,}},},"28":{17:{r:3,w:{2060:3,}},},"3":{2:{r:3,w:{135:3,}},3:{r:3,w:{190:3,}},4:{r:12,w:{954:6,958:3,1585:3,}},5:{r:6,w:{1307:3,1756:3,}},6:{r:8207,w:{1355:3,1436:3,1501:3,7482:8198,}},7:{r:7,w:{1928:3,2102:4,}},11:{r:3,w:{1000:3,}},13:{r:21,w:{123:3,145:6,149:3,152:3,620:3,984:3,}},14:{r:16392,w:{844:8196,910:8196,}},15:{r:131080,w:{42:65540,345:65540,}},16:{r:6,w:{79:3,95:3,}},17:{r:12,w:{1967:3,2054:3,2298:3,2302:3,}},21:{r:28778689,w:{492:16777220,1356:6,1360:3,1378:2097160,1956:6,3132:3,3209:131080,4113:131080,4417:3,5216:8198,5436:2097160,6752:131080,7263:131080,7313:2097160,7361:65540,7498:65540,7734:65540,7735:131080,8016:131080,8569:131080,8716:3,8875:4,8883:131080,9028:3,9522:2097160,10473:131076,10720:3,10820:2097160,10830:65540,11131:65540,11347:3,11363:3,11610:3,11632:6,11636:3,11639:3,}},},"30":{17:{r:15,w:{319:3,525:3,560:3,1342:3,2424:3,}},},"300":{17:{r:3,w:{2502:3,}},},"31":{13:{r:3,w:{70:3,}},21:{r:3,w:{11557:3,}},},"32":{4:{r:9,w:{338:6,487:3,}},5:{r:50,w:{922:6,932:6,942:6,986:6,1015:6,1025:6,1038:8,1053:6,}},6:{r:5,w:{8563:5,}},14:{r:5,w:{884:5,}},15:{r:6,w:{328:6,}},21:{r:62,w:{561:3,873:3,2758:6,2768:6,2778:6,2822:6,2851:6,2861:6,2874:8,2889:6,11114:6,}},},"32b":{4:{r:3,w:{575:3,}},21:{r:3,w:{971:3,}},},"340003":{6:{r:3,w:{5721:3,}},},"38":{12:{r:3,w:{50:3,}},21:{r:3,w:{11477:3,}},},"3857":{17:{r:4,w:{1632:4,}},},"4":{2:{r:8204,w:{218:8196,266:8,}},6:{r:3,w:{1115:3,}},7:{r:8,w:{535:4,695:4,}},11:{r:4,w:{875:4,}},12:{r:12,w:{48:6,59:6,}},13:{r:7,w:{124:3,199:4,}},14:{r:8196,w:{1016:8196,}},15:{r:4,w:{30:4,}},16:{r:3,w:{76:3,}},21:{r:28115059,w:{687:16777220,833:1048580,1019:1048580,1377:1048580,1472:1048580,1473:2097160,1481:65540,1482:65540,1790:65540,1791:65540,3400:131080,4172:131080,5749:2097158,7788:2097160,7812:65540,7835:4,7893:65540,7994:4,8015:65540,9097:131080,11344:3,11475:3,11611:3,11686:4,}},},"40":{17:{r:6,w:{2308:3,2312:3,}},},"400":{17:{r:3,w:{1528:3,}},21:{r:3,w:{9034:3,}},},"41":{17:{r:3,w:{2304:3,}},},"42":{13:{r:4,w:{198:4,}},17:{r:9,w:{2296:3,2300:3,2316:3,}},21:{r:4,w:{11685:4,}},},"43":{17:{r:6,w:{1970:3,2057:3,}},21:{r:3,w:{9030:3,}},},"4326":{17:{r:7,w:{1532:3,1609:4,}},},"44":{21:{r:3,w:{11485:3,}},},"462158203125":{17:{r:3,w:{2301:3,}},},"4h42":{13:{r:3,w:{196:3,}},21:{r:3,w:{11683:3,}},},"5":{2:{r:3,w:{92:3,}},4:{r:3,w:{18:3,}},6:{r:6,w:{8400:3,8480:3,}},13:{r:19,w:{126:3,131:3,136:3,143:3,205:3,215:4,}},14:{r:6,w:{714:3,797:3,}},15:{r:4,w:{31:4,}},21:{r:23855199,w:{1966:16777220,2052:1048580,2202:65540,2337:1048580,2440:65540,2946:65540,3207:65540,3398:65540,4299:131080,5900:2097160,5988:65540,6317:65540,8146:2097160,8176:65540,8450:65540,8568:65540,11613:3,11618:3,11623:3,11630:3,11692:3,11702:4,}},},"50":{17:{r:27,w:{415:3,493:3,1132:3,1176:3,1258:3,1976:3,1982:3,2066:3,2072:3,}},},"500":{7:{r:8,w:{745:4,761:4,}},21:{r:8,w:{8048:4,8064:4,}},},"50000":{7:{r:4,w:{567:4,}},21:{r:4,w:{7867:4,}},},"5493164062502":{17:{r:6,w:{2307:6,}},},"5615234375":{17:{r:3,w:{2309:3,}},},"57":{17:{r:3,w:{2063:3,}},},"59":{13:{r:3,w:{46:3,}},21:{r:3,w:{11533:3,}},},"6":{6:{r:8202,w:{7479:4099,7481:4099,8230:4,}},13:{r:6,w:{113:3,153:3,}},14:{r:268591120,w:{1:268435456,11:65538,171:65538,409:4098,545:4098,737:4098,841:4098,907:4098,1013:4098,}},21:{r:25124975,w:{3492:16777220,3553:1048580,3580:65540,3950:65540,4111:65540,4170:65540,4297:65540,4815:65540,4817:131080,4961:4099,4963:4099,5114:4099,5116:4099,5213:4099,5215:4099,5315:65538,5381:1048578,5435:1048580,5748:1048579,5899:1048580,5987:65540,6316:65540,8630:2097160,8669:65540,8754:65540,8882:65540,9096:65540,11600:3,11640:3,}},},"600":{17:{r:6,w:{1525:3,2501:3,}},21:{r:3,w:{9033:3,}},},"64":{4:{r:3,w:{496:3,}},6:{r:5,w:{8575:5,}},14:{r:5,w:{896:5,}},21:{r:6,w:{563:3,882:3,}},},"65":{12:{r:3,w:{51:3,}},21:{r:6,w:{9031:3,11478:3,}},},"68":{12:{r:3,w:{49:3,}},21:{r:3,w:{11476:3,}},},"7":{21:{r:24445036,w:{5317:131076,6355:16777220,6363:1048580,6445:65540,6629:65540,6750:65540,6857:1048580,6933:65540,7095:65540,7261:65540,7312:1048580,7360:65540,7497:65540,7733:65540,7787:1048580,7811:65540,7892:65540,8014:65540,8145:1048580,8175:65540,8449:65540,8567:65540,8629:1048580,8668:65540,8753:65540,8881:65540,9095:65540,}},},"70":{21:{r:3,w:{11484:3,}},},"700":{7:{r:8,w:{576:4,582:4,}},21:{r:8,w:{7876:4,7882:4,}},},"7031250000002":{17:{r:12,w:{2295:6,2315:6,}},},"75001|75002":{5:{r:3,w:{305:3,}},},"78125":{17:{r:3,w:{2313:3,}},},"8":{13:{r:9,w:{127:6,133:3,}},14:{r:537001988,w:{3:536870912,13:131076,}},15:{r:4,w:{239:4,}},17:{r:3,w:{1973:3,}},21:{r:19922976,w:{9032:3,9159:16777220,9242:1048580,9475:1048580,9521:1048580,11025:4,11614:6,11620:3,}},},"81":{12:{r:3,w:{61:3,}},21:{r:3,w:{589:3,}},},"813720703125":{17:{r:6,w:{2297:3,2317:3,}},},"82":{21:{r:3,w:{590:3,}},},"84":{6:{r:4,w:{4577:4,}},},"9":{2:{r:3,w:{93:3,}},6:{r:4,w:{8232:4,}},13:{r:3,w:{154:3,}},14:{r:155664,w:{173:131076,411:4098,547:4098,739:4098,843:4098,909:4098,1015:4098,}},21:{r:16777226,w:{9578:16777220,11483:3,11641:3,}},},"900913":{17:{r:4,w:{1636:4,}},},"912841796875":{17:{r:3,w:{2305:3,}},},"93":{6:{r:12,w:{4435:4,4438:4,4574:4,}},},"98":{12:{r:3,w:{62:3,}},},"_":{4:{r:6,w:{947:6,}},21:{r:6,w:{1349:6,}},},"_admin":{3:{r:3,w:{38:3,}},},"_gtf_application_web":{2:{r:3,w:{67:3,}},},"a":{3:{r:3,w:{125:3,}},4:{r:3,w:{1169:3,}},5:{r:27,w:{532:3,773:4,1727:4,1824:4,1839:4,1850:4,1874:4,}},6:{r:19,w:{509:3,528:3,1465:3,7266:3,8173:4,9418:3,}},7:{r:12,w:{410:4,2324:4,2338:4,}},8:{r:6,w:{27:3,105:3,}},9:{r:3,w:{241:3,}},10:{r:3,w:{40:3,}},14:{r:4,w:{489:4,}},17:{r:10,w:{1457:6,1626:4,}},21:{r:41,w:{1490:3,2373:3,2609:4,3977:3,3994:3,4655:4,4994:3,5925:3,7610:3,9183:3,9264:3,9820:3,9998:3,}},},"a-bing":{17:{r:6,w:{1457:6,}},},"a-bing-maps":{17:{r:6,w:{1457:6,}},},"a-bing-maps-key":{17:{r:6,w:{1457:6,}},},"aaaa":{6:{r:5,w:{234:5,}},17:{r:3,w:{1254:3,}},},"abonnement":{6:{r:65569,w:{327:4,8832:65538,8838:3,8860:3,8931:3,8979:6,9240:3,9273:3,9288:6,}},7:{r:20,w:{333:4,649:4,1125:4,1691:4,2033:4,}},8:{r:6,w:{378:3,407:3,}},21:{r:54,w:{3814:3,5457:3,5504:6,5756:3,5789:3,5804:6,6679:4,7149:4,7552:4,7944:4,8508:4,8805:4,9484:3,9513:3,}},},"abonnements":{6:{r:1048581,w:{8830:1048578,8870:3,}},8:{r:1048597,w:{18:3,81:3,374:1048579,388:3,413:3,457:3,467:3,}},21:{r:1048597,w:{9174:3,9237:3,9480:1048579,9494:3,9519:3,9566:3,9576:3,}},},"abonner":{0:{r:8,w:{253:8,}},11:{r:6,w:{985:6,}},15:{r:6,w:{110:6,}},18:{r:8,w:{252:8,}},21:{r:20,w:{253:8,10705:6,10896:6,}},},"abord":{17:{r:6,w:{162:6,}},},"abréviation":{13:{r:12,w:{76:6,97:6,}},21:{r:12,w:{11563:6,11584:6,}},},"acceptées":{5:{r:3,w:{211:3,}},},"accessible":{6:{r:6,w:{5238:3,7929:3,}},14:{r:3,w:{247:3,}},21:{r:6,w:{3530:3,4734:3,}},},"accompagné":{17:{r:3,w:{800:3,}},},"accroître":{6:{r:3,w:{4909:3,}},},"accusé":{4:{r:6,w:{1117:6,}},11:{r:6,w:{514:6,}},21:{r:6,w:{1435:6,}},},"accède":{5:{r:8,w:{1742:4,1860:4,}},},"accès":{1:{r:12,w:{44:12,}},5:{r:11,w:{370:3,1784:4,1825:4,}},6:{r:22,w:{6513:6,7108:3,7141:3,7318:4,9123:3,9201:3,}},11:{r:3,w:{268:3,}},21:{r:37,w:{359:12,2231:3,4742:3,4840:3,4873:3,5049:4,5646:3,5718:3,10420:3,}},},"accéder":{2:{r:3,w:{685:3,}},3:{r:3,w:{143:3,}},4:{r:3,w:{134:3,}},6:{r:24,w:{103:6,6539:3,8793:6,9101:6,9265:3,}},7:{r:4,w:{963:4,}},10:{r:6,w:{23:6,}},13:{r:6,w:{245:3,272:3,}},21:{r:33,w:{2184:3,3601:6,5414:6,5624:6,5781:3,6981:3,9981:6,}},},"actifs":{8:{r:3,w:{397:3,}},21:{r:3,w:{9503:3,}},},"actions":{8:{r:3,w:{505:3,}},21:{r:6,w:{672:3,4466:3,}},},"activation":{4:{r:65543,w:{40:5,1040:65538,}},21:{r:1048579,w:{1380:1048579,}},},"active":{0:{r:4,w:{177:4,}},4:{r:3,w:{1759:3,}},5:{r:1323080,w:{64:4,76:4,496:4096,505:1048579,527:3,543:3,602:65539,613:3,682:4,827:3,846:3,1112:4096,1119:131078,1141:3,1161:3,1208:3,1386:4096,1391:65539,1410:3,1420:3,1427:6,1437:3,1596:3,1623:3,}},6:{r:6,w:{9228:6,}},18:{r:4,w:{176:4,}},21:{r:1310802,w:{177:4,2022:4,2034:4,2346:1048579,2368:3,2384:3,2447:65539,2458:3,2518:4,2663:3,2682:3,2954:131078,2973:3,2993:3,3052:3,3214:65539,3233:3,3243:3,3250:6,3260:3,3418:3,3445:3,5745:6,}},},"activer":{4:{r:6,w:{1081:3,1157:3,}},5:{r:6,w:{1651:6,}},11:{r:3,w:{554:3,}},21:{r:12,w:{1402:3,1470:3,3473:6,}},},"activité":{4:{r:12,w:{668:6,756:6,}},9:{r:6,w:{71:6,}},21:{r:18,w:{1065:6,1154:6,9650:6,}},},"actuellement":{16:{r:3,w:{61:3,}},21:{r:3,w:{11329:3,}},},"ad":{5:{r:8234,w:{66:4,557:3,637:3,1130:6,1241:3,1279:4098,1318:4,1363:3,1380:3,1399:6,1556:4098,1563:3,}},21:{r:38,w:{2024:4,2398:3,2962:6,3122:3,3143:4,3188:3,3205:3,3222:6,3379:3,3386:3,}},},"adapté":{0:{r:3,w:{85:3,}},18:{r:3,w:{88:3,}},21:{r:3,w:{85:3,}},},"admin":{3:{r:8,w:{197:4,199:4,}},4:{r:15,w:{1291:3,1619:3,1671:3,1685:3,1690:3,}},6:{r:10,w:{7438:10,}},11:{r:4,w:{961:4,}},13:{r:131085,w:{630:65538,635:3,662:65538,667:3,844:3,}},15:{r:6,w:{68:3,381:3,}},21:{r:35,w:{1591:3,1819:3,1902:3,1916:3,1921:3,5172:10,10679:4,10852:3,11163:3,}},},"admin-export":{3:{r:4,w:{199:4,}},13:{r:65538,w:{630:65538,}},},"admin-import":{3:{r:4,w:{197:4,}},4:{r:6,w:{1291:3,1685:3,}},13:{r:6,w:{667:3,844:3,}},21:{r:6,w:{1591:3,1916:3,}},},"admin_export":{6:{r:3,w:{7570:3,}},},"admin_import":{4:{r:3,w:{1211:3,}},21:{r:3,w:{1532:3,}},},"administrateur":{0:{r:16,w:{142:8,156:8,}},2:{r:14,w:{150:5,535:4,716:5,}},3:{r:287309854,w:{4:268435456,13:16777218,18:1048578,22:3,44:3,65:3,74:3,123:1048578,133:3,165:3,171:3,212:3,}},4:{r:17,w:{250:8,700:6,1277:3,}},5:{r:62,w:{229:3,531:6,567:6,640:6,854:8,1153:6,1178:6,1222:6,1473:6,1504:6,1611:3,}},6:{r:39,w:{8776:6,8803:6,8958:3,9001:6,9187:6,9263:6,9281:6,}},8:{r:30,w:{31:6,96:6,198:6,382:6,429:6,}},9:{r:6,w:{153:6,}},10:{r:6,w:{39:6,}},11:{r:15,w:{265:3,932:6,982:6,}},15:{r:12,w:{107:6,214:6,}},18:{r:16,w:{141:8,155:8,}},21:{r:265,w:{142:8,156:8,699:6,748:3,761:6,810:6,905:6,974:6,1097:6,1142:6,1258:8,1582:3,2372:6,2408:6,2479:6,2690:8,2985:6,3010:6,3065:6,3296:6,3327:6,3433:3,3806:6,4138:6,4351:6,4532:8,5397:6,5424:6,5484:3,5526:6,5704:6,5779:6,5797:6,9187:6,9255:6,9357:6,9488:6,9538:6,9732:6,9997:6,10417:3,10650:6,10702:6,10893:6,11000:6,}},},"administrateurs":{9:{r:3,w:{10:3,}},21:{r:3,w:{9589:3,}},},"administratif":{4:{r:6,w:{1014:3,1098:3,}},11:{r:3,w:{495:3,}},},"administration":{0:{r:6,w:{63:6,}},3:{r:3,w:{97:3,}},4:{r:135186,w:{1215:3,1244:3,1595:4096,1601:131078,1626:6,}},5:{r:6,w:{1619:6,}},6:{r:3,w:{7569:3,}},8:{r:6,w:{204:6,}},18:{r:6,w:{66:6,}},21:{r:131105,w:{63:6,1536:3,1798:131078,1826:6,3441:6,9363:6,}},},"adresse":{2:{r:18,w:{604:6,613:6,630:6,}},4:{r:6,w:{1126:6,}},5:{r:7,w:{176:3,671:4,}},6:{r:23,w:{9590:6,9612:6,9652:5,9731:6,}},11:{r:6,w:{523:6,}},21:{r:28,w:{1444:6,2507:4,6083:6,6105:6,6215:6,}},},"adresses":{5:{r:6,w:{190:3,208:3,}},6:{r:8,w:{9860:4,9894:4,}},16:{r:6,w:{56:6,}},21:{r:9,w:{2131:3,11324:6,}},},"aerial":{6:{r:8,w:{4762:4,4764:4,}},17:{r:4,w:{1783:4,}},},"afeature":{17:{r:4,w:{2323:4,}},},"affectant":{6:{r:3,w:{9291:3,}},21:{r:3,w:{5807:3,}},},"affichage":{6:{r:22,w:{1053:6,4528:4,4543:4,4561:4,4569:4,}},9:{r:6,w:{45:6,}},17:{r:10,w:{646:10,}},21:{r:12,w:{4317:6,9624:6,}},},"affichant":{6:{r:3,w:{5670:3,}},},"affiche":{5:{r:21,w:{138:6,439:6,629:3,1211:6,}},17:{r:16,w:{2135:4,2165:4,2197:4,2213:4,}},21:{r:44,w:{2094:6,2300:6,2473:3,3055:6,4475:4,4491:4,4525:4,4545:4,4697:4,6782:3,}},},"afficheen":{21:{r:4,w:{4570:4,}},},"afficher":{2:{r:3,w:{671:3,}},6:{r:40,w:{2162:3,2298:3,2428:3,3328:3,3468:3,4755:3,4980:3,5537:3,5919:3,6023:3,6375:3,6726:3,8209:4,}},7:{r:3,w:{1582:3,}},9:{r:12,w:{213:6,246:6,}},14:{r:4,w:{525:4,}},17:{r:20,w:{655:6,1366:6,2118:4,2186:4,}},21:{r:15,w:{8405:3,9792:6,9825:6,}},},"affiché":{6:{r:91,w:{1063:3,1134:4,1366:4,1382:4,1399:4,2020:3,2143:3,2279:3,2416:3,2526:3,2607:3,2679:3,2753:3,2823:3,2915:3,3038:3,3169:3,3292:3,3455:3,3532:3,3632:3,3757:3,3875:3,3974:3,4068:3,4195:3,4383:3,4970:3,5843:3,}},21:{r:3,w:{4327:3,}},},"affichée":{6:{r:3,w:{4650:3,}},},"affichées":{6:{r:3,w:{2692:3,}},},"affichés":{3:{r:3,w:{157:3,}},6:{r:11,w:{4515:3,6903:4,6924:4,}},7:{r:8,w:{2106:4,2292:4,}},9:{r:3,w:{269:3,}},21:{r:7,w:{8879:4,9848:3,}},},"affiliés":{4:{r:4,w:{887:4,}},21:{r:4,w:{1304:4,}},},"affine":{9:{r:3,w:{327:3,}},21:{r:6,w:{9906:6,}},},"affiner":{6:{r:4098,w:{5961:4098,}},},"afields":{6:{r:95,w:{9539:7,9562:7,9584:7,9606:7,9626:7,9646:7,9670:5,9686:6,9703:6,9725:6,9747:6,9769:6,9791:6,9812:6,9833:6,}},21:{r:96,w:{6032:7,6055:7,6077:7,6099:7,6119:7,6139:7,6155:6,6171:6,6188:6,6209:6,6231:6,6252:6,6272:6,6292:6,6313:6,}},},"afin":{2:{r:6,w:{341:3,682:3,}},5:{r:6,w:{1163:3,1460:3,}},17:{r:9,w:{84:3,99:3,615:3,}},21:{r:6,w:{2995:3,3283:3,}},},"age":{11:{r:6,w:{1044:6,}},21:{r:6,w:{10764:6,}},},"agisse":{6:{r:6,w:{9220:6,}},21:{r:6,w:{5737:6,}},},"agit":{6:{r:3,w:{7244:3,}},21:{r:3,w:{4972:3,}},},"aide":{4:{r:8,w:{296:8,}},5:{r:16,w:{889:8,1747:4,1791:4,}},21:{r:11,w:{2725:8,4813:3,}},},"aient":{21:{r:6,w:{1937:3,9413:3,}},},"aiide":{16:{r:3,w:{180:3,}},21:{r:3,w:{11448:3,}},},"ailleurs":{0:{r:4,w:{190:4,}},18:{r:4,w:{189:4,}},21:{r:4,w:{190:4,}},},"ainsi":{2:{r:3,w:{292:3,}},4:{r:13,w:{480:3,871:4,1123:3,1332:3,}},5:{r:6,w:{419:3,585:3,}},6:{r:58,w:{348:3,996:4,1626:3,2620:3,3099:3,3231:3,3469:3,4981:3,5837:3,6311:3,6662:3,6860:3,6974:3,7521:3,7597:3,7905:3,8960:3,9176:3,9439:3,}},7:{r:12,w:{906:5,1205:3,2286:4,}},8:{r:9,w:{123:3,251:3,606:3,}},11:{r:24,w:{174:3,382:3,431:3,520:3,587:3,667:3,735:3,1063:3,}},13:{r:3,w:{233:3,}},14:{r:3,w:{223:3,}},15:{r:3,w:{88:3,}},21:{r:59,w:{866:3,1288:4,1441:3,2280:3,2426:3,5255:3,5336:3,5485:3,5693:3,5945:3,6920:3,7211:4,9282:3,9421:3,10138:3,10260:3,10335:3,10783:3,10872:3,}},},"ait":{4:{r:6,w:{1561:3,1705:3,}},6:{r:3,w:{6533:3,}},21:{r:9,w:{1757:3,9063:3,9077:3,}},},"ajout":{4:{r:6,w:{692:6,}},5:{r:65548,w:{119:6,599:65539,634:3,}},6:{r:1130520,w:{59:1048579,85:65539,549:3,5305:4099,5558:4098,6065:4098,6418:4098,9313:6,}},7:{r:1048579,w:{485:1048579,}},17:{r:95,w:{224:5,259:5,295:5,331:5,503:5,537:5,573:5,641:5,678:5,732:5,772:5,924:5,949:5,1315:5,1355:5,2364:5,2400:5,2442:5,2472:5,}},21:{r:3276833,w:{836:1048579,1022:1048579,1089:6,2076:6,2444:65539,3556:1048579,3584:65539,5829:6,}},},"ajoutant":{6:{r:3,w:{8936:3,}},21:{r:3,w:{5462:3,}},},"ajoute":{13:{r:4,w:{762:4,}},},"ajouter":{4:{r:12,w:{414:3,517:3,732:3,1279:3,}},5:{r:21,w:{131:6,402:3,433:6,626:6,}},6:{r:27,w:{92:6,1683:3,5266:3,5277:3,9096:6,9276:6,}},7:{r:68,w:{303:4,425:8,609:4,726:8,1100:4,1266:8,1399:4,1523:4,1643:4,1758:8,2003:4,2368:8,}},17:{r:29,w:{431:3,1067:3,1151:3,1723:8,1790:8,2127:4,}},21:{r:129,w:{1129:3,1584:3,2088:6,2263:3,2294:6,2471:6,3591:6,5619:6,5792:6,6650:4,6765:8,7116:4,7276:8,7518:4,7748:8,7913:4,8029:8,8206:4,8242:4,8348:4,8470:4,8582:8,8774:4,9110:8,}},},"ajouté":{17:{r:3,w:{1275:3,}},},"ajoutées":{6:{r:4,w:{964:4,}},},"ajuster":{7:{r:4,w:{2254:4,}},},"alerte":{2:{r:3,w:{675:3,}},},"alertes":{0:{r:8,w:{110:8,}},21:{r:8,w:{110:8,}},},"alias":{5:{r:4,w:{649:4,}},6:{r:8211,w:{2225:4098,2239:3,2320:3,2363:4098,2377:3,2450:3,9117:3,}},7:{r:3,w:{1580:3,}},11:{r:3,w:{886:3,}},21:{r:9,w:{5640:3,8403:3,10606:3,}},},"alistbool":{17:{r:3,w:{716:3,}},},"all":{5:{r:62,w:{916:3,926:3,936:3,937:3,950:3,957:3,964:3,965:3,980:3,993:3,1009:3,1019:3,1029:4,1047:3,1048:3,1061:3,1068:3,1075:4,1091:3,1092:3,}},21:{r:62,w:{2752:3,2762:3,2772:3,2773:3,2786:3,2793:3,2800:3,2801:3,2816:3,2829:3,2845:3,2855:3,2865:4,2883:3,2884:3,2897:3,2904:3,2911:4,2927:3,2928:3,}},},"alors":{2:{r:3,w:{677:3,}},4:{r:8,w:{1449:4,1465:4,}},5:{r:6,w:{205:3,1523:3,}},6:{r:27,w:{211:5,981:4,1499:3,1516:3,8283:3,8969:3,9060:3,9084:3,}},11:{r:3,w:{700:3,}},13:{r:6,w:{982:3,1001:3,}},14:{r:3,w:{597:3,}},15:{r:4,w:{307:4,}},21:{r:39,w:{633:3,1004:3,1686:3,1699:3,3346:3,3726:4,3759:4,5494:3,5583:3,5607:3,6786:3,11093:4,}},},"alternative":{7:{r:3,w:{2133:3,}},21:{r:3,w:{8910:3,}},},"améliore":{11:{r:3,w:{154:3,}},21:{r:3,w:{10104:3,}},},"analyse":{9:{r:15,w:{185:6,325:6,361:3,}},21:{r:15,w:{9764:6,9904:6,9940:3,}},},"anciennes":{14:{r:4,w:{505:4,}},},"ancienneté":{10:{r:3,w:{51:3,}},11:{r:6,w:{1054:6,}},21:{r:9,w:{10009:3,10774:6,}},},"annexes":{13:{r:285212675,w:{1:268435456,3:16777219,}},21:{r:16777219,w:{11491:16777219,}},},"annuaire":{0:{r:4,w:{175:4,}},4:{r:3,w:{1758:3,}},5:{r:1048610,w:{75:4,504:1048579,526:3,1188:6,1379:6,1483:6,1622:3,1640:3,}},18:{r:4,w:{174:4,}},21:{r:1048614,w:{175:4,2033:4,2345:1048579,2367:3,3020:6,3204:6,3306:6,3444:3,3462:3,}},},"annuelle":{9:{r:3,w:{68:3,}},21:{r:3,w:{9647:3,}},},"année":{9:{r:13,w:{203:4,334:6,378:3,}},21:{r:13,w:{9782:4,9913:6,9957:3,}},},"ans":{17:{r:4,w:{1556:4,}},21:{r:4,w:{3035:4,}},},"antérieure":{13:{r:6,w:{823:3,891:3,}},},"aobjects":{6:{r:95,w:{9537:7,9560:7,9582:7,9604:7,9624:7,9644:7,9667:5,9683:6,9700:6,9722:6,9744:6,9766:6,9787:6,9809:6,9830:6,}},21:{r:96,w:{6030:7,6053:7,6075:7,6097:7,6117:7,6137:7,6153:6,6168:6,6185:6,6206:6,6228:6,6249:6,6268:6,6289:6,6310:6,}},},"apache":{1:{r:6,w:{49:6,}},2:{r:4121,w:{216:4098,254:3,264:4,436:6,449:6,520:4,}},10:{r:3,w:{31:3,}},21:{r:15,w:{364:6,568:3,575:3,9989:3,}},},"apache2":{11:{r:4,w:{874:4,}},21:{r:4,w:{10595:4,}},},"apacheport":{2:{r:6,w:{441:6,}},},"apacheservice":{2:{r:6,w:{431:6,}},},"ape":{21:{r:4,w:{7420:4,}},},"aperçu":{6:{r:9,w:{1699:3,5378:3,5676:3,}},17:{r:8,w:{2190:8,}},},"api":{0:{r:6,w:{121:3,134:3,}},16:{r:20,w:{66:6,82:6,154:8,}},17:{r:1048682,w:{11:1048579,1399:6,1414:6,1588:8,1651:3,1705:4,1725:4,1736:4,1751:4,1827:8,1845:8,1869:8,1884:8,1900:8,1923:8,1941:8,1959:8,}},18:{r:3,w:{124:3,}},21:{r:29,w:{121:3,134:3,4809:3,11334:6,11350:6,11422:8,}},},"api_formulaire":{17:{r:285212674,w:{1:268435456,3:16777218,}},},"appadmin":{2:{r:6,w:{451:6,}},3:{r:3,w:{30:3,}},},"apparaissent":{6:{r:6,w:{588:3,7080:3,}},7:{r:4,w:{700:4,}},21:{r:11,w:{4055:3,7605:4,7999:4,}},},"apparait":{21:{r:3,w:{3369:3,}},},"apparaît":{5:{r:18,w:{487:3,1148:3,1230:3,1449:3,1512:3,1546:3,}},21:{r:18,w:{1001:3,2329:3,2980:3,3073:3,3272:3,3335:3,}},},"apparaître":{6:{r:12,w:{1745:3,3092:3,3224:3,6994:3,}},},"apparent":{6:{r:3,w:{5060:3,}},},"apparents":{6:{r:3,w:{1727:3,}},},"appartenance":{5:{r:6,w:{174:3,1365:3,}},21:{r:9,w:{2125:6,3190:3,}},},"appartenir":{5:{r:3,w:{1664:3,}},21:{r:3,w:{3486:3,}},},"appdata":{6:{r:3,w:{7918:3,}},14:{r:3,w:{236:3,}},},"appel":{0:{r:4,w:{279:4,}},6:{r:65549,w:{7087:65539,7092:3,7127:3,7231:4,}},16:{r:10,w:{127:6,151:4,}},17:{r:3,w:{102:3,}},18:{r:4,w:{278:4,}},21:{r:65559,w:{279:4,4819:65539,4824:3,4859:3,11395:6,11419:4,}},},"appelant":{11:{r:3,w:{240:3,}},21:{r:3,w:{10392:3,}},},"appelle":{21:{r:4,w:{8994:4,}},},"applicable":{16:{r:3,w:{72:3,}},21:{r:3,w:{11340:3,}},},"application":{0:{r:10,w:{17:3,117:3,276:4,}},2:{r:23,w:{236:6,509:8,619:6,705:3,}},5:{r:12,w:{23:6,1430:6,}},8:{r:7,w:{62:3,510:4,}},10:{r:2097158,w:{16:2097158,}},11:{r:2097164,w:{20:2097158,63:3,944:3,}},15:{r:13,w:{22:10,120:3,}},16:{r:13,w:{52:6,69:3,138:4,}},18:{r:10,w:{20:3,119:3,275:4,}},21:{r:6291543,w:{17:3,117:3,276:4,707:3,756:3,808:3,1963:10,1981:6,2142:3,3253:6,9218:3,9974:2097158,10024:2097158,10072:3,10662:3,10827:2097158,10906:3,11320:6,11337:3,11406:4,}},},"applications":{1:{r:6,w:{38:6,}},21:{r:6,w:{353:6,}},},"appliquer":{4:{r:6,w:{702:6,}},21:{r:6,w:{1099:6,}},},"apppswd":{2:{r:6,w:{466:6,}},},"appuyer":{6:{r:3,w:{5633:3,}},},"après":{2:{r:6,w:{106:3,692:3,}},3:{r:3,w:{207:3,}},4:{r:6,w:{321:3,342:3,}},5:{r:6,w:{127:3,429:3,}},6:{r:34,w:{23:3,543:3,1281:3,1667:3,5354:3,6111:3,6461:3,6843:3,7048:3,7363:4,9408:3,}},7:{r:3,w:{128:3,}},8:{r:3,w:{451:3,}},11:{r:3,w:{972:3,}},13:{r:3,w:{838:3,}},15:{r:13,w:{97:3,316:4,332:3,375:3,}},21:{r:50,w:{693:3,2084:3,2290:3,3508:3,4011:3,4348:3,4735:3,5094:4,5917:3,6486:3,9560:3,10690:3,10881:3,11102:4,11118:3,11157:3,}},},"arborescence":{5:{r:18,w:{1185:6,1205:6,1480:6,}},7:{r:5,w:{911:5,}},17:{r:3,w:{2485:3,}},21:{r:1048609,w:{3017:6,3049:6,3303:6,6925:3,7325:1048579,7347:3,7650:3,7677:3,}},},"arborescences":{0:{r:4,w:{324:4,}},21:{r:4,w:{324:4,}},},"arbre":{5:{r:8196,w:{1500:8196,}},21:{r:20,w:{3037:8,3045:6,3323:6,}},},"architecture":{1:{r:4096,w:{17:4096,}},},"archive":{2:{r:3,w:{84:3,}},16:{r:3,w:{115:3,}},21:{r:3,w:{11383:3,}},},"areafield":{17:{r:10,w:{739:4,753:3,761:3,}},},"arguments":{6:{r:3,w:{6032:3,}},},"array":{17:{r:30,w:{630:3,633:3,855:3,885:3,1031:3,1649:3,1964:3,2051:3,2079:3,2286:3,}},},"arrete":{17:{r:6,w:{1175:3,1178:3,}},},"arrière":{6:{r:4,w:{4552:4,}},},"arrêté":{17:{r:3,w:{1174:3,}},},"aspx":{17:{r:12,w:{1461:12,}},},"association":{5:{r:6,w:{1414:6,}},21:{r:6,w:{3237:6,}},},"associe":{5:{r:3,w:{1895:3,}},6:{r:6,w:{675:3,7192:3,}},21:{r:12,w:{918:3,1184:3,4139:3,4922:3,}},},"associer":{3:{r:3,w:{91:3,}},4:{r:19,w:{534:3,653:6,785:3,786:3,801:4,}},5:{r:9,w:{168:3,410:3,455:3,}},6:{r:30,w:{269:6,341:3,616:3,5022:3,5141:3,5445:3,8727:3,8810:3,9061:3,}},7:{r:24,w:{356:4,670:4,1144:4,1591:4,1713:4,2077:4,}},14:{r:3,w:{1057:3,}},21:{r:72,w:{1050:6,1182:3,1194:4,1245:4,2119:3,2271:3,2310:3,3849:6,3879:3,4083:3,5431:3,5584:3,6704:4,7221:4,7577:4,7969:4,8414:4,8533:4,8850:4,}},},"associé":{4:{r:24,w:{674:3,845:4,857:4,1212:6,1241:3,1416:4,}},5:{r:3,w:{356:3,}},6:{r:9,w:{665:3,7208:3,9457:3,}},7:{r:24,w:{343:4,658:4,1134:4,1251:4,1701:4,1743:4,}},11:{r:3,w:{230:3,}},21:{r:46,w:{1071:3,1238:4,1274:4,1533:6,1658:3,2217:3,4129:3,4938:3,5952:3,6778:3,7257:4,8563:4,10383:3,}},},"associée":{16:{r:3,w:{91:3,}},21:{r:3,w:{11359:3,}},},"associées":{6:{r:3,w:{7601:3,}},21:{r:3,w:{5340:3,}},},"associés":{6:{r:3,w:{693:3,}},8:{r:3,w:{150:3,}},21:{r:9,w:{801:3,4157:3,9309:3,}},},"assurant":{1:{r:6,w:{91:6,}},5:{r:4,w:{677:4,}},6:{r:3,w:{9338:3,}},21:{r:13,w:{406:6,2513:4,5854:3,}},},"assure":{2:{r:6,w:{227:3,498:3,}},21:{r:6,w:{776:6,}},},"assurer":{0:{r:4,w:{180:4,}},4:{r:12,w:{1174:6,1557:6,}},6:{r:15,w:{3309:3,3663:3,3783:3,4084:3,8040:3,}},7:{r:6,w:{278:6,}},11:{r:3,w:{989:3,}},14:{r:3,w:{358:3,}},15:{r:3,w:{114:3,}},18:{r:4,w:{179:4,}},21:{r:28,w:{180:4,1495:6,1753:6,6621:6,10709:3,10900:3,}},},"assurez":{4:{r:3,w:{1695:3,}},14:{r:3,w:{967:3,}},21:{r:6,w:{1926:3,9058:3,}},},"assurez-vous":{4:{r:3,w:{1695:3,}},21:{r:6,w:{1926:3,9058:3,}},},"asynchrone":{0:{r:4,w:{221:4,}},18:{r:4,w:{220:4,}},21:{r:4,w:{221:4,}},},"atools":{17:{r:4,w:{2110:4,}},},"attendre":{0:{r:4,w:{232:4,}},2:{r:3,w:{549:3,}},6:{r:4102,w:{6943:4096,6947:3,6971:3,}},18:{r:4,w:{231:4,}},21:{r:4,w:{232:4,}},},"attente":{3:{r:3,w:{183:3,}},7:{r:4,w:{450:4,}},8:{r:3,w:{183:3,}},21:{r:7,w:{6817:4,9342:3,}},},"attention":{2:{r:3,w:{623:3,}},5:{r:4,w:{1097:4,}},17:{r:12,w:{1742:4,2342:8,}},21:{r:4,w:{2933:4,}},},"attribuant":{0:{r:4,w:{162:4,}},18:{r:4,w:{161:4,}},21:{r:4,w:{162:4,}},},"attribue":{21:{r:3,w:{1143:3,}},},"attribuer":{3:{r:6,w:{77:3,81:3,}},4:{r:3,w:{745:3,}},5:{r:12,w:{144:3,447:3,1590:6,}},6:{r:12,w:{122:3,5619:3,8147:3,8431:3,}},7:{r:4,w:{2021:4,}},14:{r:6,w:{463:3,749:3,}},21:{r:42,w:{2096:3,2302:3,3412:6,3614:3,3641:3,6667:4,7137:4,7540:4,7932:4,8497:4,8793:4,}},},"attribut":{4:{r:4,w:{1410:4,}},6:{r:4099,w:{410:3,6814:4096,}},21:{r:6,w:{1652:3,3915:3,}},},"attributes":{21:{r:11,w:{4764:3,7693:4,8973:4,}},},"attribution":{0:{r:6,w:{74:6,}},3:{r:3,w:{106:3,}},5:{r:6,w:{582:6,}},6:{r:69650,w:{644:4096,651:65539,706:3,8767:6,9042:6,}},18:{r:6,w:{77:6,}},21:{r:65563,w:{74:6,2423:6,4115:65539,5388:6,5565:6,}},},"attributs":{6:{r:4117,w:{2068:3,2212:3,2350:3,2480:3,5986:3,5995:3,6826:4096,6830:3,}},},"attributé":{21:{r:4,w:{1233:4,}},},"attribué":{4:{r:4,w:{840:4,}},21:{r:8,w:{3736:4,3754:4,}},},"attribués":{5:{r:3,w:{1775:3,}},21:{r:3,w:{2198:3,}},},"au":{1:{r:6,w:{118:6,}},3:{r:3,w:{95:3,}},4:{r:35,w:{231:3,748:3,793:3,916:4,930:4,1012:3,1096:3,1205:3,1213:3,1236:3,1242:3,}},5:{r:39,w:{253:3,383:3,450:3,473:3,560:3,750:4,1167:3,1439:3,1464:3,1687:3,1698:4,1861:4,}},6:{r:82042,w:{38:3,104:3,125:3,342:3,374:3,654:65539,678:3,694:3,783:3,1471:3,1495:3,1513:3,1719:3,4245:3,4794:3,5023:3,5432:3,5440:4099,5758:3,5766:4099,6239:3,6247:4098,6540:3,6590:3,6598:4098,7142:3,7164:3,7196:3,7209:3,7299:4,7395:3,7505:3,7516:3,8432:3,8731:3,8794:3,9102:3,9184:3,9213:3,9249:3,9266:3,}},7:{r:97,w:{309:4,344:4,359:4,460:4,615:4,659:4,673:4,896:5,1106:4,1135:4,1147:4,1252:4,1368:5,1405:4,1596:4,1614:4,1649:4,1702:4,1716:4,1744:4,1899:3,2009:4,2045:4,2080:4,}},9:{r:12,w:{335:3,340:3,371:3,373:3,}},11:{r:21,w:{393:3,436:3,493:3,570:3,731:3,986:3,1095:3,}},13:{r:21,w:{204:3,642:3,777:3,817:3,834:3,860:3,900:3,}},14:{r:6,w:{750:3,1061:3,}},15:{r:6,w:{111:3,422:3,}},17:{r:11,w:{166:3,1634:4,2128:4,}},21:{r:65782,w:{433:6,766:3,802:3,1146:3,1191:3,1333:4,1526:3,1534:3,2244:3,2305:3,2401:3,2586:4,2999:3,3262:3,3287:3,3523:3,3602:3,3617:3,3644:3,3880:3,4118:65539,4142:3,4158:3,4743:3,4874:3,4896:3,4926:3,4939:3,5027:4,5129:3,5239:3,5250:3,5415:3,5625:3,5701:3,5730:3,5765:3,5782:3,6656:4,6707:4,6779:3,6837:4,6910:3,7122:4,7224:4,7258:4,7356:3,7483:4,7524:4,7580:4,7919:4,7972:4,8212:4,8248:4,8419:4,8437:4,8476:4,8536:4,8564:4,8687:3,8780:4,8817:4,8853:4,9914:3,9919:3,9950:3,9952:3,10372:3,10706:3,10815:3,10897:3,11204:3,11691:3,}},},"aucun":{6:{r:6,w:{6976:3,6981:3,}},21:{r:4,w:{3751:4,}},},"aucune":{7:{r:8,w:{623:4,1665:4,}},},"augmenter":{9:{r:6,w:{306:6,}},11:{r:3,w:{117:3,}},21:{r:9,w:{9885:6,10196:3,}},},"auprès":{21:{r:3,w:{4786:3,}},},"auquel":{6:{r:3,w:{353:3,}},},"aura":{6:{r:10,w:{246:3,7140:3,9032:4,}},21:{r:9,w:{3830:3,4872:3,5555:3,}},},"aurez":{21:{r:4,w:{7714:4,}},},"aussi":{17:{r:3,w:{2043:3,}},},"auteur":{6:{r:24,w:{237:6,674:6,1284:6,8693:3,8851:3,}},14:{r:3,w:{1023:3,}},},"authentification":{11:{r:3,w:{697:3,}},},"authentifie":{5:{r:6,w:{1369:6,}},21:{r:6,w:{3194:6,}},},"authentifié":{6:{r:3,w:{7263:3,}},21:{r:3,w:{4991:3,}},},"authentifiés":{5:{r:8,w:{48:4,72:4,}},21:{r:8,w:{2006:4,2030:4,}},},"auto":{4:{r:3,w:{946:3,}},21:{r:3,w:{1348:3,}},},"automatique":{4:{r:3,w:{174:3,}},21:{r:3,w:{631:3,}},},"automatiquement":{2:{r:3,w:{646:3,}},4:{r:10,w:{62:3,1218:3,1413:4,}},6:{r:26,w:{311:3,1764:3,3400:3,7472:3,7702:5,8752:3,8973:3,9153:3,}},7:{r:4,w:{1250:4,}},15:{r:4,w:{280:4,}},17:{r:4,w:{1595:4,}},21:{r:33,w:{594:3,652:3,1539:3,1655:3,4559:4,5206:3,5498:3,5670:3,7256:4,11066:4,}},},"automatiser":{0:{r:4,w:{262:4,}},18:{r:4,w:{261:4,}},21:{r:4,w:{262:4,}},},"automatquement":{14:{r:3,w:{1082:3,}},},"autorisant":{5:{r:3,w:{1658:3,}},21:{r:3,w:{3480:3,}},},"autoriser":{4:{r:4,w:{267:4,}},5:{r:4,w:{872:4,}},11:{r:3,w:{329:3,}},21:{r:7,w:{2708:4,10436:3,}},},"autorisée":{8:{r:3,w:{195:3,}},21:{r:3,w:{9354:3,}},},"autre":{6:{r:3,w:{6796:3,}},11:{r:3,w:{796:3,}},21:{r:6,w:{626:3,10517:3,}},},"autres":{3:{r:3,w:{85:3,}},5:{r:4,w:{1844:4,}},6:{r:3,w:{4841:3,}},9:{r:12,w:{228:3,234:3,274:3,281:3,}},21:{r:12,w:{9807:3,9813:3,9853:3,9860:3,}},},"aux":{0:{r:8,w:{225:4,280:4,}},1:{r:12,w:{41:6,45:6,}},4:{r:6,w:{55:3,88:3,}},5:{r:24,w:{281:3,1591:3,1684:3,1721:4,1770:3,1785:4,1826:4,}},6:{r:32,w:{4421:3,4861:4,5142:3,6514:3,7873:3,7971:3,8133:3,8352:3,8414:3,9859:4,}},7:{r:3,w:{1548:3,}},8:{r:3,w:{389:3,}},9:{r:6,w:{9:3,343:3,}},11:{r:3,w:{340:3,}},13:{r:3,w:{273:3,}},14:{r:15,w:{191:3,289:3,449:3,666:3,728:3,}},16:{r:3,w:{166:3,}},18:{r:8,w:{224:4,279:4,}},21:{r:51,w:{225:4,280:4,356:6,360:6,814:3,2185:3,3413:3,6557:3,8370:4,9495:3,9588:3,9922:3,10447:3,11434:3,}},},"avance":{4:{r:3,w:{79:3,}},},"avancée":{6:{r:65539,w:{9902:65539,}},21:{r:65539,w:{6321:65539,}},},"avancées":{6:{r:20506,w:{3075:4098,3079:3,3118:3,3207:4099,3211:3,3556:4,5960:4098,6416:4099,6766:4099,}},},"avant":{5:{r:3,w:{906:3,}},6:{r:4,w:{4550:4,}},7:{r:3,w:{251:3,}},11:{r:3,w:{137:3,}},21:{r:9,w:{2742:3,6594:3,10216:3,}},},"avec":{0:{r:7,w:{29:3,149:4,}},2:{r:6,w:{256:3,639:3,}},3:{r:3,w:{62:3,}},4:{r:20,w:{589:4,1440:4,1486:4,1498:4,1515:4,}},5:{r:7,w:{1370:3,1809:4,}},6:{r:8226,w:{15:3,2224:4098,2238:3,2319:3,2362:4098,2376:3,2449:3,4774:3,4870:3,8701:3,8740:3,9167:3,}},7:{r:1048602,w:{43:5,704:4,1339:1048579,1579:3,1656:4,1768:4,1903:3,}},11:{r:12,w:{254:3,276:3,332:3,778:3,}},13:{r:4,w:{753:4,}},14:{r:6,w:{1031:3,1070:3,}},15:{r:7,w:{272:4,361:3,}},16:{r:4,w:{156:4,}},17:{r:10,w:{124:3,1514:3,1743:4,}},18:{r:7,w:{32:3,148:4,}},21:{r:3145824,w:{29:3,149:4,572:3,595:3,607:3,1679:3,3195:3,3500:3,3769:4,3792:4,5684:3,6398:3,6869:1048579,7318:1048579,7339:3,7533:4,8003:4,8149:1048579,8402:3,8483:4,8592:4,8691:3,10406:3,10428:3,10439:3,10499:3,11058:4,11143:3,11424:4,}},},"avertit":{0:{r:4,w:{240:4,}},18:{r:4,w:{239:4,}},21:{r:4,w:{240:4,}},},"avez":{2:{r:3,w:{653:3,}},},"avoir":{3:{r:3,w:{208:3,}},5:{r:9,w:{128:3,430:3,910:3,}},6:{r:34,w:{24:3,544:3,1668:3,5355:3,6112:3,6462:3,6844:3,7049:3,7119:3,7364:4,9189:3,}},7:{r:3,w:{1048:3,}},8:{r:3,w:{452:3,}},9:{r:6,w:{12:6,}},11:{r:9,w:{692:3,973:3,1073:3,}},13:{r:3,w:{839:3,}},15:{r:3,w:{98:3,}},21:{r:52,w:{2085:3,2179:3,2291:3,2746:3,3509:3,4012:3,4736:3,4851:3,5095:4,5706:3,7062:3,9561:3,9591:6,10691:3,10793:3,10882:3,}},},"ayant":{5:{r:14,w:{369:3,1765:3,1783:4,1794:4,}},6:{r:12,w:{9057:3,9122:3,9142:3,9200:3,}},8:{r:3,w:{129:3,}},13:{r:3,w:{238:3,}},21:{r:24,w:{1620:3,2230:3,3534:3,5580:3,5645:3,5665:3,5717:3,9288:3,}},},"ayant-droit":{6:{r:3,w:{9057:3,}},},"b12674_betax64":{11:{r:6,w:{893:3,907:3,}},21:{r:6,w:{10613:3,10627:3,}},},"b13499":{21:{r:3,w:{970:3,}},},"b16494":{4:{r:3,w:{574:3,}},},"b16494-32b":{4:{r:3,w:{574:3,}},},"backup":{15:{r:11,w:{141:3,156:8,}},21:{r:11,w:{10927:3,10942:8,}},},"baer":{17:{r:4,w:{1784:4,}},},"bak":{6:{r:6,w:{7616:3,7639:3,}},21:{r:3,w:{5355:3,}},},"balise":{6:{r:10,w:{9514:6,9837:4,}},21:{r:6,w:{6007:6,}},},"balises":{6:{r:3,w:{9502:3,}},17:{r:3,w:{34:3,}},21:{r:3,w:{5997:3,}},},"bar":{17:{r:4,w:{2196:4,}},},"barre":{3:{r:3,w:{160:3,}},9:{r:6,w:{319:3,353:3,}},21:{r:6,w:{9898:3,9932:3,}},},"bas":{6:{r:10,w:{1214:4,1687:3,5246:3,}},17:{r:12,w:{2139:4,2172:4,2218:4,}},21:{r:3,w:{4019:3,}},},"base":{1:{r:6,w:{68:6,}},2:{r:37,w:{277:3,381:6,391:6,400:6,404:6,419:6,525:4,}},4:{r:49,w:{262:4,275:4,330:6,351:6,360:6,368:3,1381:4,1399:4,1447:4,1475:4,1505:4,}},5:{r:23,w:{51:4,687:4,702:4,867:4,1604:3,1886:4,}},6:{r:4144,w:{4235:3,5190:4,5201:4,5210:4,5369:3,5583:3,5629:3,5646:3,6072:4098,6085:3,6106:4,6129:3,6152:3,7017:3,7037:3,}},11:{r:3,w:{99:3,}},13:{r:17,w:{712:3,770:4,976:3,996:3,1055:4,}},15:{r:10,w:{75:3,172:4,211:3,}},17:{r:3,w:{146:3,}},21:{r:45,w:{383:6,1640:3,1709:3,1857:4,2009:4,2523:4,2538:4,2703:4,3426:3,10859:3,10958:4,10997:3,}},},"bases":{6:{r:12,w:{7874:3,8134:3,8353:3,8415:3,}},14:{r:12,w:{192:3,450:3,667:3,729:3,}},},"bat":{15:{r:12,w:{359:6,429:6,}},21:{r:12,w:{11141:6,11211:6,}},},"bd":{17:{r:3,w:{138:3,}},},"bdd":{2:{r:6,w:{395:6,}},},"besoin":{5:{r:4,w:{774:4,}},21:{r:4,w:{2610:4,}},},"besoins":{0:{r:3,w:{90:3,}},18:{r:3,w:{93:3,}},21:{r:3,w:{90:3,}},},"bhyb":{17:{r:4,w:{1781:4,}},},"bien":{0:{r:3,w:{84:3,}},4:{r:6,w:{1562:3,1706:3,}},6:{r:12,w:{2945:3,6534:3,7405:3,8653:3,}},7:{r:12,w:{1742:4,2105:4,2325:4,}},13:{r:3,w:{103:3,}},14:{r:3,w:{979:3,}},18:{r:3,w:{87:3,}},21:{r:32,w:{84:3,789:3,800:3,1758:3,1938:3,5139:3,8562:4,8878:4,9064:3,11590:3,}},},"bienvenue":{0:{r:285212675,w:{1:268435456,5:16777219,}},18:{r:285212675,w:{2:268435456,8:16777219,}},21:{r:16777219,w:{5:16777219,}},},"bin":{17:{r:3,w:{1672:3,}},},"bing":{6:{r:8219,w:{1875:10,4265:4096,4267:4098,4281:3,4692:3,4701:3,4729:3,4779:3,}},7:{r:4,w:{2175:4,}},13:{r:7,w:{552:7,}},17:{r:52,w:{1445:7,1458:6,1656:3,1712:4,1738:4,1763:4,1776:4,1779:4,1782:4,1812:4,1818:4,1828:4,}},},"bing-key":{17:{r:7,w:{1656:3,1812:4,}},},"bing-maps":{17:{r:6,w:{1458:6,}},},"bing-maps-key":{17:{r:6,w:{1458:6,}},},"bingmapsportal":{6:{r:4,w:{4737:4,}},},"bits":{4:{r:9,w:{488:3,497:3,570:3,}},6:{r:10,w:{8564:5,8576:5,}},14:{r:10,w:{885:5,897:5,}},21:{r:12,w:{564:3,874:3,883:3,964:3,}},},"bleu":{6:{r:3,w:{1581:3,}},},"bloc":{4:{r:4,w:{910:4,}},21:{r:4,w:{1327:4,}},},"bon":{4:{r:3,w:{1176:3,}},6:{r:6,w:{8894:3,9309:3,}},7:{r:3,w:{272:3,}},21:{r:12,w:{986:3,1497:3,5825:3,6615:3,}},},"bonne":{6:{r:3,w:{7668:3,}},8:{r:3,w:{350:3,}},},"booléen":{17:{r:3,w:{705:3,}},},"bord":{15:{r:3,w:{463:3,}},21:{r:3,w:{11245:3,}},},"bouton":{4:{r:13,w:{578:4,731:3,969:3,1087:3,}},5:{r:18,w:{625:3,1126:3,1252:3,1339:3,1395:3,1536:3,}},6:{r:8359,w:{91:3,382:3,548:3,556:3,573:3,701:3,851:4,865:4,902:4,1007:4,1374:4,1390:4,1407:4,1635:3,1682:3,1871:10,4138:4098,4144:4098,4180:3,4229:3,4238:3,4251:3,5243:3,5276:3,5377:3,5390:3,5507:3,5636:3,5650:3,5661:3,5724:3,5852:3,5883:3,6142:3,6206:3,6320:3,6341:3,6557:3,6671:3,6692:3,7171:4,7203:3,7210:3,7219:3,7368:4,7490:3,9095:3,9275:3,9320:3,9323:3,9926:3,}},7:{r:15,w:{1416:4,2208:3,2303:4,2312:4,}},8:{r:15,w:{206:3,268:3,297:3,336:3,464:3,}},11:{r:6,w:{328:3,484:3,}},13:{r:7,w:{548:7,}},17:{r:21,w:{226:5,234:3,682:5,926:5,934:3,}},21:{r:129,w:{980:3,1128:3,1367:3,1408:3,2470:3,2958:3,3095:3,3164:3,3218:3,3359:3,3590:3,3887:3,4016:3,4029:3,4046:3,4165:3,4254:4,4268:4,4283:4,4732:3,4902:3,4933:3,4940:3,4949:3,5099:4,5224:3,5295:3,5618:3,5791:3,5836:3,5839:3,6345:3,7670:3,8223:4,8947:4,9365:3,9390:3,9438:3,9462:3,9573:3,10435:3,}},},"boutons":{6:{r:20,w:{3102:3,3234:3,4212:3,4244:3,4540:4,4545:4,}},8:{r:3,w:{202:3,}},21:{r:6,w:{5378:3,9361:3,}},},"boîte":{6:{r:3,w:{7060:3,}},},"broad":{17:{r:4,w:{1778:4,}},},"btn_search":{17:{r:3,w:{240:3,}},},"build":{4:{r:3,w:{565:3,}},11:{r:3,w:{423:3,}},21:{r:6,w:{959:3,10243:3,}},},"builder":{8:{r:4,w:{511:4,}},},"builds":{6:{r:3,w:{8623:3,}},14:{r:3,w:{948:3,}},},"bulles":{9:{r:3,w:{300:3,}},21:{r:3,w:{9879:3,}},},"buttonfield":{17:{r:13,w:{228:4,238:6,249:3,}},},"bâtiments":{6:{r:3,w:{5709:3,}},},"c":{0:{r:3,w:{43:3,}},2:{r:3,w:{706:3,}},4:{r:4,w:{607:4,}},11:{r:6,w:{888:3,902:3,}},15:{r:6,w:{430:3,434:3,}},17:{r:7,w:{2020:4,2498:3,}},18:{r:3,w:{46:3,}},21:{r:18,w:{43:3,708:3,10608:3,10622:3,11212:3,11216:3,}},},"c\u0027est":{0:{r:4,w:{290:4,}},3:{r:3,w:{53:3,}},6:{r:6,w:{5078:3,7103:3,}},13:{r:3,w:{795:3,}},15:{r:6,w:{479:6,}},16:{r:3,w:{37:3,}},18:{r:4,w:{289:4,}},21:{r:20,w:{290:4,1852:4,4835:3,11261:6,11305:3,}},},"c\u0027est-à":{6:{r:3,w:{5078:3,}},21:{r:4,w:{1852:4,}},},"c\u0027est-à-dire":{6:{r:3,w:{5078:3,}},21:{r:4,w:{1852:4,}},},"caché":{6:{r:8216,w:{1884:10,5032:4096,5035:4098,5043:3,5077:3,5102:3,5108:3,}},13:{r:7,w:{561:7,}},17:{r:23,w:{262:5,381:3,393:3,469:3,999:3,1011:3,1108:3,}},},"cadastre":{5:{r:6,w:{268:3,276:3,}},},"cadre":{5:{r:6,w:{224:3,273:3,}},},"calendarfield":{17:{r:7,w:{1233:4,1248:3,}},},"calendrier":{17:{r:8,w:{1231:5,1244:3,}},21:{r:3,w:{4750:3,}},},"cantons":{7:{r:4,w:{1964:4,}},21:{r:4,w:{8747:4,}},},"capable":{1:{r:6,w:{110:6,}},21:{r:6,w:{425:6,}},},"capacité":{4:{r:3,w:{637:3,}},21:{r:3,w:{1034:3,}},},"captcha":{6:{r:8209,w:{7383:4096,7387:4098,7394:3,7419:3,7469:3,7528:3,7539:3,}},21:{r:4113,w:{5121:4098,5128:3,5153:3,5203:3,5262:3,5273:3,}},},"car":{7:{r:12,w:{815:3,1329:3,1482:3,1831:3,}},21:{r:10,w:{7446:4,8116:3,8307:3,}},},"caractère":{6:{r:9,w:{4316:3,5373:3,6002:3,}},},"caractères":{6:{r:4,w:{8518:4,}},7:{r:7,w:{1939:4,2126:3,}},11:{r:3,w:{320:3,}},14:{r:4,w:{835:4,}},21:{r:10,w:{8727:4,8903:3,10464:3,}},},"carte":{6:{r:12404,w:{1874:10,1877:10,1880:10,4258:4098,4263:4098,4269:4098,4334:3,4372:3,4398:3,4425:3,4431:4,4456:4,4464:4,4486:4,4518:3,4568:4,4601:4,4617:4,4668:3,4683:3,4691:3,4700:3,4753:3,4778:3,4781:4,4788:3,4803:3,4806:3,4845:3,4874:3,}},7:{r:1052726,w:{1847:4096,1850:1048579,1871:5,2160:3,2169:4,2171:4,2174:4,2177:4,2187:3,2236:4,2251:4,2260:4,2276:4,2354:4,2392:4,}},13:{r:21,w:{551:7,554:7,557:7,}},17:{r:43,w:{1368:3,1401:6,1484:3,1488:3,1567:4,1576:4,1710:4,1858:4,1913:4,2040:4,2223:4,}},21:{r:11,w:{9009:4,9093:3,9135:4,}},},"cartes":{0:{r:8,w:{321:8,}},6:{r:7,w:{4708:3,4862:4,}},17:{r:17,w:{1397:3,1686:6,1792:4,2013:4,}},21:{r:11,w:{321:8,4776:3,}},},"cartographique":{6:{r:3,w:{4724:3,}},17:{r:8,w:{1359:5,1492:3,}},21:{r:4,w:{9014:4,}},},"cartographiques":{6:{r:3,w:{4294:3,}},21:{r:6,w:{4749:3,4772:3,}},},"cas":{6:{r:31,w:{432:3,449:3,797:3,1482:3,1526:3,7201:3,7524:3,7625:3,7646:3,8193:4,}},8:{r:3,w:{341:3,}},9:{r:6,w:{331:3,368:3,}},13:{r:3,w:{702:3,}},14:{r:4,w:{509:4,}},15:{r:3,w:{200:3,}},17:{r:4,w:{1748:4,}},21:{r:28,w:{611:3,679:3,3801:4,3937:3,4931:3,5258:3,9910:3,9947:3,10986:3,}},},"cascade":{6:{r:8237,w:{2059:4,2203:4,2341:4,2471:4,5950:4,5956:3,6406:4,6412:3,6757:4,6763:3,6773:4096,6777:4098,6799:3,7063:3,}},17:{r:16,w:{335:5,426:3,955:5,1062:3,}},},"cascadelistfield":{17:{r:14,w:{957:4,961:3,1073:4,1127:3,}},},"cascadetextfield":{17:{r:14,w:{337:4,341:3,437:4,488:3,}},},"case":{6:{r:60,w:{2044:3,2175:3,2311:3,2441:3,2707:3,2778:3,2848:3,2962:3,3487:3,3689:3,3810:3,3905:3,4004:3,4117:3,4411:3,5955:3,6411:3,6762:3,6970:3,8157:3,}},14:{r:3,w:{473:3,}},},"cassini":{17:{r:3,w:{1702:3,}},},"catalogage":{6:{r:3,w:{496:3,}},21:{r:3,w:{3964:3,}},},"categories":{13:{r:6,w:{288:6,}},},"category":{6:{r:6,w:{9774:6,}},21:{r:6,w:{6255:6,}},},"catgory":{6:{r:6,w:{9782:6,}},21:{r:6,w:{6263:6,}},},"catégorie":{6:{r:22,w:{754:3,803:4,8769:3,8787:3,8799:3,9777:6,}},7:{r:4,w:{2023:4,}},21:{r:39,w:{5390:3,5408:3,5420:3,6258:6,6669:4,7139:4,7542:4,7934:4,8499:4,8795:4,}},},"catégories":{6:{r:1048582,w:{818:4,8764:1048578,}},21:{r:1048578,w:{5385:1048578,}},},"cc":{6:{r:4,w:{9846:4,}},},"cci":{6:{r:4,w:{9848:4,}},},"ce":{0:{r:4,w:{222:4,}},2:{r:9,w:{123:3,458:6,}},3:{r:3,w:{126:3,}},4:{r:26,w:{760:3,773:3,994:3,1170:3,1425:4,1458:4,1646:3,1702:3,}},5:{r:15,w:{200:3,1795:4,1810:4,1822:4,}},6:{r:85,w:{1014:4,1292:3,1525:3,2547:3,2769:3,2839:3,2953:3,3547:3,4172:3,4402:3,4721:3,5546:3,5928:3,6384:3,6735:3,7541:3,7603:3,7605:3,7797:3,7924:3,8192:4,8206:4,8728:3,8970:3,9437:3,9493:3,9852:4,}},7:{r:56,w:{86:5,254:3,329:4,645:4,811:3,965:4,1067:4,1121:4,1325:3,1480:3,1501:4,1687:4,1827:3,2029:4,2316:4,}},11:{r:6,w:{397:3,977:3,}},13:{r:9,w:{720:3,869:3,903:3,}},14:{r:17,w:{108:3,242:3,508:4,522:4,1058:3,}},15:{r:6,w:{102:3,396:3,}},16:{r:3,w:{43:3,}},17:{r:16,w:{462:3,482:3,1101:3,1121:3,1591:4,}},18:{r:4,w:{221:4,}},21:{r:120,w:{222:4,610:3,1158:3,1171:3,1491:3,1666:3,1695:3,3800:4,4359:3,4501:4,5275:3,5342:3,5344:3,5495:3,5943:3,5984:3,6439:3,6597:3,6675:4,6983:3,7081:4,7145:4,7548:4,7611:3,7637:3,7940:4,8112:3,8305:3,8326:4,8505:4,8801:4,10696:5,10887:5,11178:3,11311:3,}},},"cela":{4:{r:3,w:{1192:3,}},5:{r:4,w:{770:4,}},6:{r:12,w:{5848:3,6316:3,6667:3,9914:3,}},8:{r:3,w:{67:3,}},11:{r:6,w:{815:3,949:3,}},17:{r:6,w:{428:3,1064:3,}},21:{r:19,w:{1513:3,2606:4,6333:3,9223:3,10536:3,10667:3,}},},"celle":{7:{r:9,w:{446:4,913:5,}},21:{r:7,w:{6813:4,6927:3,}},},"celle-ci":{7:{r:4,w:{446:4,}},21:{r:4,w:{6813:4,}},},"celles":{6:{r:19,w:{989:4,5654:3,5860:3,6328:3,6679:3,8328:3,}},14:{r:3,w:{642:3,}},},"celui":{15:{r:3,w:{412:3,}},21:{r:3,w:{11194:3,}},},"centrage":{6:{r:4,w:{4453:4,}},17:{r:15,w:{1502:3,1993:4,2000:4,2006:4,}},},"centrale":{6:{r:4,w:{1120:4,}},},"centralisée":{5:{r:3,w:{556:3,}},21:{r:3,w:{2397:3,}},},"centre":{6:{r:8,w:{4461:4,4483:4,}},7:{r:4,w:{2285:4,}},},"certaines":{8:{r:3,w:{48:3,}},17:{r:8,w:{2263:4,2272:4,}},21:{r:3,w:{9204:3,}},},"certains":{4:{r:3,w:{713:3,}},6:{r:6,w:{251:3,1817:3,}},17:{r:7,w:{1385:3,2119:4,}},21:{r:9,w:{1110:3,3835:3,4770:3,}},},"certificat":{2:{r:3,w:{656:3,}},},"ces":{2:{r:6,w:{50:3,113:3,}},4:{r:3,w:{1248:3,}},6:{r:9,w:{839:3,1655:3,1739:3,}},7:{r:8,w:{980:4,1186:4,}},8:{r:3,w:{241:3,}},9:{r:3,w:{158:3,}},11:{r:3,w:{791:3,}},15:{r:4,w:{277:4,}},17:{r:3,w:{104:3,}},21:{r:33,w:{541:3,1876:3,4242:3,4791:3,6998:3,7192:5,9411:3,9737:3,10512:3,11063:4,}},},"cet":{4:{r:8,w:{1409:8,}},7:{r:6,w:{172:3,1039:3,}},17:{r:3,w:{986:3,}},21:{r:12,w:{1651:6,6530:3,7053:3,}},},"cette":{0:{r:4,w:{153:4,}},2:{r:9,w:{308:3,483:6,}},3:{r:3,w:{179:3,}},4:{r:6,w:{203:3,943:3,}},5:{r:3,w:{545:3,}},6:{r:49,w:{510:3,2053:3,2197:3,2335:3,2465:3,4658:3,5314:3,5772:3,5944:3,6253:3,6400:3,6604:3,6751:3,7361:4,8805:3,9413:3,}},11:{r:21,w:{67:3,118:3,140:3,369:3,465:3,561:3,651:3,}},17:{r:12,w:{76:3,90:3,157:3,1293:3,}},18:{r:4,w:{152:4,}},21:{r:35,w:{153:4,1345:3,2386:3,3978:3,5092:4,5426:3,5922:3,10076:3,10098:3,10197:3,10219:3,}},},"ceux":{5:{r:8,w:{1837:8,}},6:{r:3,w:{4706:3,}},8:{r:3,w:{395:3,}},21:{r:6,w:{1725:3,9501:3,}},},"cf":{6:{r:8,w:{8228:8,}},},"cgi":{17:{r:3,w:{1671:3,}},},"cgi-bin":{17:{r:3,w:{1671:3,}},},"cgibin":{21:{r:3,w:{9040:3,}},},"chacun":{5:{r:3,w:{1764:3,}},},"chacune":{8:{r:3,w:{596:3,}},},"champ":{4:{r:3,w:{1151:3,}},5:{r:6,w:{201:3,1356:3,}},6:{r:8268,w:{176:4,1566:3,1883:10,3306:3,3660:3,3780:3,4307:3,4639:3,4823:6,4944:3,5031:4096,5034:4098,5042:3,5101:3,5107:3,6035:3,6854:3,6894:4,6898:4,7216:3,7452:3,9872:4,}},7:{r:8,w:{1167:4,2057:4,}},8:{r:6,w:{152:3,169:3,}},11:{r:6,w:{548:3,583:3,}},13:{r:7,w:{560:7,}},17:{r:244,w:{193:3,230:3,266:3,290:3,293:3,297:5,302:3,325:3,328:3,333:5,340:3,344:3,355:3,371:3,380:3,392:3,396:3,421:3,424:3,468:3,505:5,531:3,534:3,539:5,567:4,570:4,576:5,583:3,606:4,609:4,644:5,652:3,670:3,673:3,676:3,688:3,702:3,723:3,741:3,765:3,768:3,952:5,960:3,964:3,975:3,989:3,998:3,1010:3,1014:3,1057:3,1060:3,1107:3,1184:4,1208:4,1211:4,1221:4,1235:3,1264:4,1324:3,1348:3,1351:3,1363:3,1480:3,1546:4,1592:4,2371:3,2395:3,2398:3,2406:3,2432:3,2435:3,2480:3,2508:3,}},21:{r:44,w:{3181:3,3715:4,4751:3,4946:3,5186:3,7173:4,7676:6,7703:4,7710:4,8829:4,9311:3,9328:3,}},},"champcache":{17:{r:3,w:{1167:3,}},},"champcalendrier":{17:{r:4,w:{1260:4,}},},"champs":{4:{r:5,w:{1364:5,}},6:{r:33,w:{879:4,918:4,4748:3,5491:3,5696:3,5716:3,5994:3,6185:3,6874:3,9845:4,}},17:{r:14,w:{176:3,261:5,510:3,545:3,}},21:{r:4,w:{8953:4,}},},"champupload":{17:{r:6,w:{1173:6,}},},"champ|nom":{17:{r:4,w:{1196:4,}},},"changement":{17:{r:6,w:{452:3,1091:3,}},},"changer":{17:{r:4,w:{2153:4,}},},"changés":{5:{r:3,w:{597:3,}},21:{r:3,w:{2438:3,}},},"chapitre":{15:{r:3,w:{15:3,}},21:{r:3,w:{1954:3,}},},"chaque":{4:{r:12,w:{841:4,852:4,1421:4,}},5:{r:9,w:{352:3,362:3,379:3,}},6:{r:34,w:{1082:3,1242:4,1299:3,7474:3,7728:3,7768:3,7900:3,9192:3,9203:3,9447:3,9454:3,}},7:{r:7,w:{156:4,1053:3,}},8:{r:3,w:{131:3,}},13:{r:6,w:{118:3,207:3,}},14:{r:9,w:{39:3,79:3,218:3,}},17:{r:12,w:{192:3,451:3,1090:3,1305:3,}},21:{r:51,w:{1234:4,1269:4,1663:3,2213:3,2223:3,2240:3,4366:3,5208:3,5709:3,5720:3,5949:3,6514:4,7067:3,9290:3,11605:3,11694:3,}},},"charge":{1:{r:6,w:{130:6,}},2:{r:3,w:{182:3,}},4:{r:3,w:{465:3,}},5:{r:8,w:{1729:4,1876:4,}},6:{r:6,w:{238:3,602:3,}},21:{r:15,w:{445:6,721:3,851:3,4069:3,}},},"chargement":{6:{r:36,w:{533:3,956:4,977:4,1002:4,1485:3,3087:3,3104:3,3219:3,3236:3,7627:3,7648:3,}},7:{r:1048579,w:{855:1048579,}},17:{r:5,w:{1142:5,}},21:{r:3,w:{3999:3,}},},"chargent":{0:{r:4,w:{207:4,}},18:{r:4,w:{206:4,}},21:{r:4,w:{207:4,}},},"charger":{4:{r:4,w:{1390:4,}},6:{r:9,w:{5855:3,6323:3,6674:3,}},7:{r:12,w:{320:4,1112:8,}},17:{r:8,w:{2335:4,2362:4,}},21:{r:25,w:{1631:3,4047:3,5367:3,6692:4,7565:4,7957:4,8521:4,}},},"chargé":{4:{r:4,w:{1454:4,}},6:{r:7,w:{1026:4,1302:3,}},7:{r:5,w:{870:5,}},21:{r:9,w:{1691:3,4369:3,6885:3,}},},"chargée":{7:{r:8,w:{629:4,1671:4,}},},"chargées":{6:{r:11,w:{748:3,952:4,997:4,}},11:{r:3,w:{777:3,}},21:{r:6,w:{4211:3,10498:3,}},},"chargés":{6:{r:3,w:{584:3,}},7:{r:1048579,w:{849:1048579,}},11:{r:4,w:{1027:4,}},21:{r:1048592,w:{1723:3,1727:3,4051:3,6865:1048579,10747:4,}},},"charriot":{6:{r:4,w:{9899:4,}},},"chaîne":{4:{r:4,w:{1528:4,}},6:{r:9,w:{4314:3,4348:3,4664:3,}},7:{r:10,w:{1923:3,1937:4,2124:3,}},11:{r:3,w:{318:3,}},21:{r:13,w:{8711:3,8725:4,8901:3,10462:3,}},},"chemin":{4:{r:3,w:{528:3,}},6:{r:13,w:{8083:4,8465:3,9024:3,9111:3,}},7:{r:4,w:{1003:4,}},11:{r:9,w:{856:3,898:3,913:3,}},14:{r:4,w:{401:4,}},15:{r:3,w:{409:3,}},17:{r:15,w:{634:3,635:3,1032:3,1033:3,2509:3,}},21:{r:28,w:{911:3,5548:3,5634:3,7021:4,7617:3,7665:3,10577:3,10618:3,11191:3,}},},"chemins":{6:{r:6,w:{8306:6,}},14:{r:6,w:{620:6,}},},"chemion":{21:{r:3,w:{10633:3,}},},"chercher":{7:{r:8,w:{1176:4,2064:4,}},21:{r:8,w:{7182:4,8836:4,}},},"choisi":{6:{r:3,w:{687:3,}},9:{r:3,w:{243:3,}},21:{r:6,w:{4151:3,9822:3,}},},"choisie":{6:{r:3,w:{9256:3,}},21:{r:3,w:{5772:3,}},},"choisir":{4:{r:17,w:{769:3,880:4,1288:3,1482:4,1687:3,}},6:{r:27,w:{1286:3,1613:3,2539:3,5704:3,6781:3,8255:3,8274:3,8874:3,8888:3,}},7:{r:54,w:{324:4,428:4,640:4,729:4,1116:4,1270:4,1421:4,1575:3,1612:4,1682:4,1761:4,1909:3,2024:4,2371:4,}},8:{r:9,w:{316:3,402:3,445:3,}},9:{r:3,w:{90:3,}},13:{r:3,w:{716:3,}},14:{r:6,w:{569:3,588:3,}},17:{r:3,w:{789:3,}},21:{r:96,w:{1167:3,1297:4,1588:3,1918:3,3637:3,4353:3,6670:4,6768:4,7140:4,7279:4,7543:4,7751:4,7935:4,8032:4,8226:4,8398:3,8435:4,8500:4,8585:4,8697:3,8796:4,9113:4,9376:3,9508:3,9554:3,9669:3,10151:3,}},},"choisissant":{7:{r:4,w:{1439:4,}},21:{r:4,w:{8262:4,}},},"choisit":{6:{r:23,w:{164:4,1456:3,2965:3,4458:4,4504:3,6048:3,9444:3,}},7:{r:5,w:{1361:5,}},9:{r:6,w:{154:3,181:3,}},11:{r:3,w:{283:3,}},21:{r:22,w:{1174:3,3698:4,3807:3,4704:3,8163:3,9733:3,9760:3,}},},"choix":{6:{r:20533,w:{1966:4098,1979:3,2079:3,2092:4098,2105:3,2182:3,2223:4098,2237:3,2318:3,2361:4098,2375:3,2448:3,2491:4098,2504:3,2558:3,4153:3,5179:4,6545:3,8885:3,}},7:{r:29,w:{1534:4,1578:6,1657:4,1769:4,1956:4,1970:4,2152:3,}},17:{r:5,w:{778:5,}},21:{r:23,w:{8356:5,8401:3,8484:4,8593:4,8739:4,8929:3,}},},"ci":{6:{r:37,w:{155:4,196:4,226:5,5700:3,5829:3,6045:3,6190:3,6303:3,6483:3,6654:3,7556:3,}},7:{r:4,w:{447:4,}},9:{r:3,w:{238:3,}},13:{r:3,w:{264:3,}},16:{r:3,w:{124:3,}},17:{r:6,w:{221:3,368:3,}},21:{r:25,w:{3689:4,3730:4,3775:4,5290:3,6814:4,9817:3,11392:3,}},},"ci-dessous":{6:{r:6,w:{6045:3,7556:3,}},9:{r:3,w:{238:3,}},13:{r:3,w:{264:3,}},17:{r:6,w:{221:3,368:3,}},21:{r:6,w:{5290:3,9817:3,}},},"ci-dessu":{21:{r:4,w:{3689:4,}},},"ci-dessus":{6:{r:31,w:{155:4,196:4,226:5,5700:3,5829:3,6190:3,6303:3,6483:3,6654:3,}},16:{r:3,w:{124:3,}},21:{r:7,w:{3775:4,11392:3,}},},"circonstances":{6:{r:3,w:{9434:3,}},21:{r:3,w:{5940:3,}},},"circulation":{17:{r:9,w:{710:3,711:3,713:3,}},},"class":{17:{r:4,w:{54:4,}},21:{r:48,w:{4422:4,4431:4,4439:4,4556:4,4577:4,4596:4,4619:4,4640:4,4671:4,4677:4,4688:4,4694:4,}},},"classe":{6:{r:3,w:{5019:3,}},8:{r:3,w:{616:3,}},9:{r:6,w:{233:3,280:3,}},17:{r:33,w:{64:3,72:3,77:3,91:3,95:3,137:3,208:3,389:6,1007:6,}},21:{r:6,w:{9812:3,9859:3,}},},"classes":{8:{r:3,w:{584:3,}},},"classique":{6:{r:4,w:{4548:4,}},17:{r:6,w:{346:3,966:3,}},},"classiques":{6:{r:3,w:{7973:3,}},14:{r:3,w:{291:3,}},},"clause":{6:{r:18,w:{5689:3,5719:3,6013:3,6026:3,6059:3,6178:3,}},},"clef":{14:{r:10,w:{879:5,891:5,}},},"clic":{4:{r:4,w:{920:4,}},6:{r:3,w:{8548:3,}},7:{r:12,w:{1436:4,1505:4,1603:4,}},9:{r:3,w:{347:3,}},14:{r:3,w:{869:3,}},21:{r:15,w:{8259:4,8330:4,8426:4,9926:3,}},},"client":{0:{r:8,w:{138:4,248:4,}},1:{r:6,w:{36:6,}},2:{r:3,w:{241:3,}},4:{r:3,w:{237:3,}},11:{r:4,w:{833:4,}},16:{r:6,w:{30:6,}},18:{r:8,w:{137:4,247:4,}},21:{r:27,w:{138:4,248:4,351:6,739:3,10554:4,11298:6,}},},"cliente":{0:{r:3,w:{118:3,}},18:{r:3,w:{120:3,}},21:{r:3,w:{118:3,}},},"cliquant":{5:{r:9,w:{313:3,327:3,837:3,}},6:{r:9,w:{5240:3,9317:3,9923:3,}},7:{r:7,w:{1070:4,2205:3,}},8:{r:6,w:{333:3,409:3,}},9:{r:3,w:{316:3,}},21:{r:24,w:{2149:3,2163:3,2673:3,5833:3,6342:3,9387:3,9515:3,9895:3,}},},"clique":{6:{r:12,w:{553:3,569:3,697:3,9125:3,}},8:{r:3,w:{461:3,}},21:{r:21,w:{975:3,1363:3,4026:3,4042:3,4161:3,5648:3,9570:3,}},},"cliquer":{4:{r:18,w:{439:3,539:3,965:3,1155:3,1301:3,1534:3,}},5:{r:12,w:{475:3,1249:3,1336:3,1533:3,}},6:{r:36,w:{1714:3,5417:3,5503:3,5743:3,5849:3,5879:3,6224:3,6317:3,6337:3,6575:3,6668:3,6688:3,}},7:{r:128,w:{100:4,124:4,301:4,314:8,348:4,362:4,423:4,436:4,607:4,663:4,676:4,724:4,771:4,1098:4,1172:4,1182:4,1264:4,1285:4,1413:4,1641:4,1706:4,1719:4,1756:4,1787:4,2001:4,2060:4,2070:4,2083:4,2299:4,2366:4,2397:4,}},11:{r:3,w:{552:3,}},21:{r:196,w:{1468:3,1601:3,1730:3,2319:3,3092:3,3161:3,3356:3,6458:4,6482:4,6648:4,6685:4,6696:4,6710:4,6763:4,6802:4,7114:4,7178:4,7188:4,7227:4,7274:4,7294:4,7373:4,7397:4,7516:4,7558:4,7569:4,7583:4,7667:3,7746:4,7769:4,7911:4,7950:4,7961:4,7975:4,8027:4,8072:4,8220:4,8468:4,8514:4,8525:4,8539:4,8580:4,8611:4,8772:4,8832:4,8842:4,8856:4,8931:4,8944:4,9108:4,9140:4,}},},"cliqué":{5:{r:6,w:{129:3,431:3,}},6:{r:7,w:{545:3,7365:4,}},21:{r:13,w:{2086:3,2292:3,4013:3,5096:4,}},},"clé":{4:{r:4135,w:{797:4096,861:4,907:4,914:4,924:4,1329:3,1384:4,1408:4,1442:4,1470:4,1501:4,}},6:{r:4197,w:{411:3,425:3,4716:3,4728:3,4745:3,4749:3,5836:3,5864:3,5872:4,6310:3,6332:3,6661:3,6683:3,7247:3,7332:4,7369:4,7372:4,7423:3,7443:3,7448:3,7453:3,7457:3,7527:3,7538:3,8023:3,8078:4,8509:3,8527:4098,8533:3,8558:5,8570:5,}},7:{r:19,w:{342:4,657:4,1133:4,1700:4,2194:3,}},13:{r:18,w:{695:4,708:3,737:4,756:4,786:3,}},14:{r:4114,w:{341:3,396:4,826:3,848:4098,854:3,975:3,}},17:{r:17,w:{1389:3,1403:6,1815:4,1833:4,}},21:{r:54,w:{1278:4,1324:4,1331:4,3930:3,4785:3,4975:3,5063:4,5100:4,5103:4,5157:3,5177:3,5182:3,5187:3,5191:3,5261:3,5272:3,}},},"clés":{4:{r:23,w:{792:3,806:4,851:4,876:4,883:4,897:4,}},6:{r:4108,w:{370:4,5366:3,8425:4098,8584:3,}},14:{r:4101,w:{743:4098,905:3,}},21:{r:27,w:{1190:3,1199:4,1244:4,1250:4,1293:4,1300:4,1314:4,}},},"cmd":{2:{r:12,w:{328:6,543:6,}},},"cn32":{6:{r:11,w:{8449:3,8512:3,8554:5,}},14:{r:11,w:{767:3,829:3,875:5,}},},"cn64":{6:{r:8,w:{8452:3,8566:5,}},14:{r:8,w:{770:3,887:5,}},},"co":{21:{r:6,w:{5035:6,}},},"cochant":{6:{r:66,w:{2040:3,2171:3,2307:3,2437:3,2703:3,2776:3,2846:3,2960:3,3483:3,3685:3,3806:3,3901:3,4000:3,4113:3,4409:3,5553:3,5935:3,5953:3,6391:3,6409:3,6742:3,6760:3,}},},"cocher":{5:{r:3,w:{1333:3,}},6:{r:12,w:{1675:3,6968:3,7062:3,8155:3,}},7:{r:4,w:{120:4,}},21:{r:15,w:{3158:3,6478:4,7393:4,7401:4,}},},"cochez":{14:{r:3,w:{471:3,}},},"code":{2:{r:4,w:{505:4,}},6:{r:4141,w:{7148:3,7379:4,7463:3,7486:4098,7493:3,7496:3,7509:3,7532:3,7542:3,9299:3,9518:6,9908:3,9917:3,9929:3,}},8:{r:3,w:{174:3,}},13:{r:3,w:{21:3,}},17:{r:65586,w:{20:65539,25:3,442:4,446:3,463:3,1081:4,1085:3,1102:3,1607:4,1613:4,1630:4,1635:4,2444:5,2453:3,}},21:{r:4179,w:{4541:4,4547:4,4565:4,4721:3,4744:3,4755:3,4795:3,4880:3,5110:4,5197:3,5220:4098,5227:3,5230:3,5243:3,5266:3,5276:3,5815:3,6011:6,6327:3,6336:3,6348:3,7681:4,8961:4,9333:3,11508:3,}},},"codes":{2:{r:6,w:{32:3,59:3,}},21:{r:6,w:{523:3,550:3,}},},"coller":{21:{r:8,w:{7685:4,8965:4,}},},"colonne":{6:{r:8,w:{8195:4,8211:4,}},14:{r:8,w:{511:4,527:4,}},},"com":{2:{r:11,w:{23:8,61:3,}},4:{r:20,w:{1266:10,1664:10,}},5:{r:4,w:{664:4,}},6:{r:9,w:{4738:4,7436:5,}},8:{r:10,w:{486:10,}},12:{r:13,w:{27:8,41:5,}},15:{r:5,w:{390:5,}},16:{r:5,w:{109:5,}},17:{r:6,w:{1454:6,}},21:{r:64,w:{516:8,552:3,685:6,1571:10,1895:10,2500:4,5170:5,11172:5,11377:5,11471:8,}},},"commande":{2:{r:3,w:{46:3,}},4:{r:9,w:{117:3,131:3,1122:3,}},6:{r:3,w:{8538:3,}},11:{r:3,w:{519:3,}},14:{r:3,w:{859:3,}},21:{r:6,w:{537:3,1440:3,}},},"commandes":{4:{r:3,w:{66:3,}},6:{r:3,w:{5978:3,}},},"comme":{6:{r:30,w:{253:3,278:3,4336:3,5863:3,5866:3,6331:3,6334:3,6682:3,6685:3,7245:3,}},7:{r:17,w:{739:4,765:4,876:5,1007:4,}},16:{r:3,w:{117:3,}},21:{r:31,w:{3837:3,4973:3,6795:3,6891:3,7025:4,8042:4,8068:4,8266:4,11385:3,}},},"commencer":{21:{r:3,w:{759:3,}},},"commercial":{12:{r:3,w:{44:3,}},},"commune":{6:{r:18,w:{5711:3,6998:3,7006:3,7015:3,7069:3,7077:3,}},17:{r:6,w:{852:3,861:3,}},},"commune2":{17:{r:6,w:{853:3,864:3,}},},"communes":{5:{r:3,w:{299:3,}},7:{r:4,w:{1963:4,}},17:{r:3,w:{851:3,}},21:{r:4,w:{8746:4,}},},"comparaison":{6:{r:4108,w:{6837:4096,6841:3,6865:3,6871:3,6887:3,}},},"compilé":{2:{r:3,w:{255:3,}},},"complet":{11:{r:9,w:{857:3,899:3,914:3,}},21:{r:15,w:{7618:3,7666:3,10578:3,10619:3,10634:3,}},},"complémentaire":{7:{r:8,w:{625:4,1667:4,}},12:{r:3,w:{12:3,}},21:{r:3,w:{11460:3,}},},"complémentaires":{6:{r:4099,w:{263:4096,266:3,}},7:{r:13,w:{1170:5,1188:4,2059:4,}},15:{r:4,w:{182:4,}},21:{r:21,w:{3846:3,7176:5,7194:5,8831:4,10968:4,}},},"compléter":{7:{r:5,w:{493:5,}},},"complétée":{21:{r:3,w:{635:3,}},},"comporte":{2:{r:3,w:{64:3,}},5:{r:3,w:{1353:3,}},6:{r:6,w:{44:3,1274:3,}},21:{r:9,w:{3178:3,3538:3,4341:3,}},},"comporter":{5:{r:3,w:{382:3,}},21:{r:3,w:{2243:3,}},},"composant":{6:{r:3,w:{9337:3,}},17:{r:5,w:{1358:5,}},21:{r:1048592,w:{5853:3,7642:3,7675:3,8637:1048579,8952:4,}},},"composants":{0:{r:4,w:{320:4,}},1:{r:285216780,w:{2:268435456,9:4096,12:16777219,28:3,31:6,}},2:{r:16777223,w:{140:5,161:16777218,}},6:{r:3,w:{1833:3,}},11:{r:65541,w:{407:65538,427:3,}},21:{r:16777238,w:{320:4,331:16777219,343:3,346:6,4747:3,4771:3,}},},"compose":{0:{r:3,w:{114:3,}},18:{r:3,w:{116:3,}},21:{r:3,w:{114:3,}},},"composer":{6:{r:3,w:{1680:3,}},},"composé":{6:{r:3,w:{1113:3,}},},"comprendre":{8:{r:3,w:{358:3,}},},"compresser":{7:{r:8,w:{1158:4,2048:4,}},21:{r:11,w:{7164:4,8820:4,10145:3,}},},"compressibles":{11:{r:6,w:{620:3,636:3,}},21:{r:6,w:{10165:3,10180:3,}},},"compression":{11:{r:3,w:{612:3,}},21:{r:3,w:{10157:3,}},},"compressé":{6:{r:8,w:{299:3,7690:5,}},15:{r:6,w:{373:3,415:3,}},21:{r:10,w:{7427:4,11155:3,11197:3,}},},"compte":{2:{r:50,w:{149:5,413:6,427:6,453:6,459:6,472:6,480:6,534:4,715:5,}},3:{r:287309854,w:{3:268435456,12:16777218,17:1048578,21:3,43:3,64:3,73:3,93:3,122:1048578,132:3,170:3,211:3,}},4:{r:13,w:{1276:6,1544:3,1730:4,}},5:{r:17,w:{19:3,146:3,311:3,1311:4,1706:4,}},6:{r:47,w:{6531:3,7296:4,7321:4,7787:3,7952:3,7955:3,7975:3,8045:3,8055:3,8151:3,8433:3,9159:3,9214:3,9754:6,}},11:{r:4120,w:{200:4099,218:3,252:3,289:3,292:3,334:3,344:3,702:3,}},13:{r:3,w:{231:3,}},14:{r:24,w:{98:3,270:3,273:3,293:3,363:3,373:3,467:3,751:3,}},21:{r:65603,w:{747:3,1581:6,1740:3,1977:3,2098:3,2147:3,3136:4,5024:4,5052:4,5676:3,5731:3,6237:6,10341:4,10351:65539,10368:3,10373:3,10404:3,10441:3,10451:3,}},},"concerné":{6:{r:3,w:{8738:3,}},14:{r:3,w:{1068:3,}},},"conditions":{6:{r:11,w:{755:3,885:4,924:4,}},13:{r:3,w:{909:3,}},21:{r:3,w:{4217:3,}},},"conf":{4:{r:8,w:{305:8,}},5:{r:8,w:{898:8,}},11:{r:16,w:{870:8,876:8,}},21:{r:24,w:{2734:8,10591:8,10596:8,}},},"configurables":{11:{r:3,w:{649:3,}},},"configuration":{2:{r:4,w:{516:4,}},3:{r:1048581,w:{15:1048578,41:3,}},4:{r:135212,w:{30:5,35:5,99:4098,194:3,195:3,259:4,384:65538,979:65538,987:3,1021:3,1022:6,1066:3,1721:3,}},5:{r:21,w:{864:4,912:3,1005:3,1648:3,1724:4,1738:4,}},6:{r:21,w:{1222:4,1993:3,2252:3,2390:3,3429:3,7307:5,}},8:{r:3,w:{361:3,}},11:{r:287457335,w:{1:268435456,8:16777219,13:4096,17:1048579,24:3,30:3,48:65538,52:3,134:3,146:3,198:4099,213:3,355:3,556:65538,568:3,638:4098,714:4098,747:1048578,827:4,868:4,884:4,}},15:{r:3,w:{94:3,}},21:{r:18022472,w:{665:3,1389:3,1848:4,2700:4,2748:3,2841:3,3470:3,10013:16777219,10021:1048579,10028:3,10035:3,10057:65538,10061:3,10213:3,10225:3,10326:3,10349:65539,10363:3,10475:65538,10548:4,10589:4,10604:4,10878:3,}},},"configure":{5:{r:4,w:{1867:4,}},},"configurer":{6:{r:6,w:{2126:3,6441:3,}},11:{r:3,w:{139:3,}},21:{r:3,w:{10218:3,}},},"configuré":{3:{r:3,w:{209:3,}},},"configurée":{7:{r:4,w:{407:4,}},},"connaissance":{8:{r:3,w:{107:3,}},21:{r:3,w:{9266:3,}},},"connaitre":{21:{r:4,w:{2612:4,}},},"connaître":{5:{r:4,w:{776:4,}},},"connecte":{2:{r:3,w:{638:3,}},21:{r:3,w:{730:3,}},},"connecter":{2:{r:3,w:{688:3,}},3:{r:6,w:{59:3,136:3,}},4:{r:6,w:{1273:3,1675:3,}},5:{r:15,w:{28:3,198:3,1166:3,1263:3,1463:3,}},7:{r:20,w:{293:4,599:4,1090:4,1633:4,1993:4,}},21:{r:45,w:{1578:3,1906:3,1986:3,2139:3,2998:3,3106:3,3286:3,6640:4,7106:4,7508:4,7903:4,8460:4,8764:4,}},},"connection":{6:{r:12,w:{8495:3,8502:3,8669:3,8675:3,}},14:{r:12,w:{812:3,819:3,995:3,1001:3,}},},"connections":{4:{r:6,w:{324:3,345:3,}},5:{r:6,w:{947:3,1058:3,}},15:{r:7,w:{319:4,335:3,}},21:{r:13,w:{2783:3,2894:3,11105:4,11121:3,}},},"connecté":{6:{r:3,w:{6532:3,}},13:{r:3,w:{232:3,}},},"connesions":{6:{r:3,w:{8314:3,}},14:{r:3,w:{628:3,}},},"connexion":{2:{r:6,w:{625:3,644:3,}},3:{r:1048578,w:{120:1048578,}},4:{r:4,w:{269:4,}},5:{r:32,w:{148:3,659:4,874:4,1147:3,1175:3,1237:3,1345:3,1443:3,1448:3,1470:3,}},6:{r:12352,w:{5295:3,5668:3,6126:3,6164:3,7236:4096,7240:4098,7294:4,7323:4,7514:3,7536:3,8171:4,8506:3,8679:6,8689:4098,8699:3,8710:3,8749:3,9162:3,9216:3,9756:6,}},11:{r:18,w:{220:3,227:3,235:3,239:3,258:3,313:3,}},14:{r:4120,w:{487:4,823:3,1005:6,1019:4098,1029:3,1040:3,1079:3,}},16:{r:4,w:{149:4,}},17:{r:3,w:{143:3,}},21:{r:4178,w:{745:3,2100:3,2495:4,2710:4,2979:3,3007:3,3170:3,3266:3,3271:3,3293:3,4968:4098,5022:4,5054:4,5248:3,5270:3,5679:3,5733:3,6239:6,10370:3,10380:3,10387:3,10391:3,10410:3,10457:3,11417:4,}},},"connexions":{4:{r:4,w:{315:4,}},6:{r:73858,w:{7862:65538,7866:3,7872:3,7891:3,7942:3,7992:3,8007:3,8015:3,8062:4,8068:4,8092:4,8100:4098,8115:3,8132:6,8139:3,8160:3,8185:4,8203:4,8215:4,8223:4,8237:4098,8244:3,8260:3,8264:3,8291:3,8323:3,8339:3,8351:6,8367:3,8371:3,8376:3,8384:3,8390:3,8401:3,8413:6,8420:3,8441:3,8473:3,8634:3,}},11:{r:3,w:{331:3,}},14:{r:77954,w:{177:4096,180:65538,184:3,190:3,209:3,260:3,310:3,325:3,333:3,380:4,386:4,406:4,416:4098,431:3,448:6,455:3,476:3,500:4,519:4,531:4,539:4,551:4098,558:3,574:3,578:3,605:3,637:3,653:3,665:6,681:3,685:3,690:3,698:3,704:3,715:3,727:6,734:3,759:3,790:3,959:3,}},21:{r:3,w:{10438:3,}},},"connu":{5:{r:3,w:{20:3,}},21:{r:3,w:{1978:3,}},},"conseillé":{4:{r:3,w:{550:3,}},21:{r:6,w:{941:3,7634:3,}},},"conserver":{6:{r:3,w:{1288:3,}},15:{r:3,w:{130:3,}},21:{r:6,w:{4355:3,10916:3,}},},"conservée":{6:{r:3,w:{447:3,}},},"conservés":{6:{r:3,w:{1536:3,}},13:{r:8,w:{742:4,1068:4,}},15:{r:3,w:{137:3,}},21:{r:3,w:{10923:3,}},},"considèrant":{21:{r:4,w:{7449:4,}},},"consiste":{4:{r:3,w:{502:3,}},6:{r:3,w:{120:3,}},21:{r:6,w:{888:3,3612:3,}},},"console":{2:{r:3,w:{557:3,}},},"constater":{7:{r:24,w:{378:4,692:4,832:4,1235:4,1735:4,2099:4,}},21:{r:28,w:{6726:4,7243:4,7599:4,7991:4,8133:4,8555:4,8872:4,}},},"constituée":{1:{r:3,w:{25:3,}},21:{r:3,w:{340:3,}},},"consultables":{8:{r:3,w:{528:3,}},11:{r:3,w:{430:3,}},},"consultant":{4:{r:3,w:{1566:3,}},21:{r:3,w:{1762:3,}},},"consultation":{0:{r:4,w:{197:4,}},10:{r:1048579,w:{9:1048579,}},11:{r:3,w:{93:3,}},18:{r:4,w:{196:4,}},21:{r:1048583,w:{197:4,9967:1048579,}},},"consulter":{4:{r:3,w:{1577:3,}},6:{r:10,w:{6547:4,9003:3,9376:3,}},7:{r:3,w:{1565:3,}},8:{r:18,w:{34:3,140:3,146:3,384:3,431:3,607:3,}},11:{r:12,w:{40:3,55:3,414:3,451:3,}},21:{r:47,w:{1773:3,5528:3,5889:3,8387:4,8939:4,9190:3,9299:3,9305:3,9490:3,9540:3,10045:3,10064:3,10234:3,10276:3,10292:3,}},},"contacter":{12:{r:3,w:{15:3,}},21:{r:3,w:{11463:3,}},},"contactez":{21:{r:3,w:{682:3,}},},"contenant":{4:{r:6,w:{402:3,432:3,}},6:{r:10,w:{5655:3,7593:3,8081:4,}},7:{r:7,w:{476:3,1194:4,}},14:{r:4,w:{399:4,}},17:{r:3,w:{62:3,}},21:{r:11,w:{5332:3,6852:3,7200:5,}},},"contenir":{6:{r:6,w:{1946:3,8463:3,}},14:{r:3,w:{781:3,}},},"content":{17:{r:10,w:{2291:3,2358:4,2468:3,}},},"contenu":{2:{r:3,w:{333:3,}},6:{r:9,w:{6787:3,7590:3,9442:3,}},11:{r:3,w:{956:3,}},17:{r:4,w:{2360:4,}},21:{r:21,w:{4551:4,4574:4,4592:4,5329:3,5948:3,10674:3,}},},"contenus":{6:{r:20,w:{295:3,466:6,626:6,7686:5,}},11:{r:4,w:{1035:4,}},13:{r:3,w:{676:3,}},21:{r:11,w:{4093:3,7423:4,10755:4,}},},"contexte":{6:{r:3,w:{9482:3,}},21:{r:3,w:{5975:3,}},},"contextuel":{6:{r:6,w:{8254:3,8362:3,}},14:{r:6,w:{568:3,676:3,}},},"contient":{4:{r:4,w:{1436:4,}},6:{r:16,w:{7510:3,7607:3,8556:5,8568:5,}},7:{r:3,w:{471:3,}},14:{r:10,w:{877:5,889:5,}},17:{r:6,w:{32:3,108:3,}},21:{r:16,w:{1675:3,4503:4,5244:3,5346:3,6848:3,}},},"continuer":{0:{r:4,w:{228:4,}},18:{r:4,w:{227:4,}},21:{r:4,w:{228:4,}},},"contourner":{6:{r:8,w:{1013:4,8205:4,}},14:{r:4,w:{521:4,}},},"contours":{7:{r:3,w:{2156:3,}},},"contrab":{6:{r:4101,w:{9359:4096,9361:5,}},21:{r:5,w:{5874:5,}},},"contraiement":{14:{r:3,w:{288:3,}},},"contrairement":{6:{r:6,w:{457:3,7970:3,}},},"contrôle":{0:{r:4,w:{101:4,}},6:{r:102673,w:{1777:4096,1803:3,1868:9,1967:4098,1986:3,2081:3,2094:4098,2112:3,2185:3,2226:4098,2245:3,2322:3,2365:4098,2384:3,2453:3,2494:4098,2513:3,2543:3,2563:3,2574:4098,2591:3,2632:3,2643:4098,2665:3,2713:3,2724:4098,2740:3,2784:3,2794:4098,2810:3,2857:3,2869:4098,2896:3,2969:3,2979:3,2997:4098,3021:3,3048:3,3068:3,3111:3,3128:4098,3152:3,3179:3,3199:3,3251:4098,3271:3,3311:3,3326:3,3349:3,3368:4098,3422:3,3474:3,3496:4098,3515:3,3543:3,3576:3,3589:4098,3612:3,3665:3,3676:3,3700:3,3715:4098,3736:3,3785:3,3797:3,3819:3,3835:4098,3856:3,3892:3,3915:3,3932:4098,3955:3,3991:3,4016:3,4029:4098,4049:3,4086:3,4104:3,4126:3,4134:4098,4141:4098,4161:3,4177:3,4248:3,4352:3,4667:3,4680:3,4775:3,4871:3,4877:4098,4887:3,4936:3,4986:3,4994:3,5026:4098,5038:3,5098:3,5104:3,}},7:{r:1048587,w:{1843:1048579,2233:4,2248:4,}},8:{r:3,w:{549:3,}},13:{r:6,w:{545:6,}},18:{r:4,w:{104:4,}},21:{r:4,w:{101:4,}},},"contrôler":{6:{r:6,w:{2933:3,7666:3,}},},"contrôles":{6:{r:12310,w:{1775:4099,1800:3,1818:3,1855:3,4254:4098,4919:4098,4928:3,5143:3,}},7:{r:4,w:{2166:4,}},13:{r:1048578,w:{540:1048578,}},},"conversion":{0:{r:4,w:{93:4,}},7:{r:3145750,w:{15:1048579,31:5,134:3,844:1048579,1338:1048579,1349:5,}},9:{r:6,w:{253:6,}},18:{r:4,w:{96:4,}},21:{r:3145769,w:{93:3,5302:3,6369:1048579,6386:3,6492:3,6860:1048579,7315:1048579,7355:3,7529:8,8171:3,9832:6,}},},"conversion_dept_shp2mapinfo":{7:{r:4,w:{313:4,}},},"conversion_dept_shp2mif":{7:{r:8,w:{1111:4,1275:4,}},},"converti":{6:{r:3,w:{1806:3,}},},"convertir":{7:{r:8,w:{930:4,2231:4,}},21:{r:4,w:{6948:4,}},},"convient":{7:{r:7,w:{259:3,1064:4,}},21:{r:7,w:{6602:3,7078:4,}},},"convivialité":{21:{r:3,w:{7631:3,}},},"conçu":{21:{r:4,w:{4657:4,}},},"conçus":{0:{r:7,w:{28:3,148:4,}},18:{r:7,w:{31:3,147:4,}},21:{r:7,w:{28:3,148:4,}},},"coordonates":{17:{r:4,w:{2134:4,}},},"coordonnées":{6:{r:4116,w:{3367:4098,3383:3,3420:3,4473:4,4495:4,4531:4,}},7:{r:8,w:{1449:4,2282:4,}},17:{r:8,w:{1617:4,2137:4,}},21:{r:4,w:{8274:4,}},},"copie":{2:{r:4,w:{503:4,}},6:{r:16,w:{8910:3,9657:5,9875:4,9887:4,}},},"copier":{4:{r:4,w:{598:4,}},6:{r:3,w:{7498:3,}},15:{r:3,w:{217:3,}},21:{r:17,w:{4719:3,5232:3,7679:4,8959:4,11003:3,}},},"copies":{6:{r:3,w:{7609:3,}},21:{r:3,w:{5348:3,}},},"copiés":{6:{r:3,w:{7840:3,}},14:{r:3,w:{151:3,}},15:{r:4,w:{281:4,}},21:{r:4,w:{11067:4,}},},"corps":{6:{r:3,w:{9507:3,}},8:{r:3,w:{618:3,}},},"correct":{6:{r:3,w:{8656:3,}},14:{r:3,w:{982:3,}},},"correctement":{2:{r:3,w:{586:3,}},3:{r:3,w:{156:3,}},7:{r:3,w:{283:3,}},21:{r:3,w:{6626:3,}},},"correspond":{5:{r:3,w:{364:3,}},6:{r:10,w:{413:3,4443:4,8928:3,}},7:{r:9,w:{794:3,1308:3,1810:3,}},17:{r:10,w:{698:6,1641:4,}},21:{r:15,w:{2225:3,3919:3,5454:3,8095:3,10371:3,}},},"correspondant":{6:{r:12,w:{401:3,9300:3,9519:6,}},7:{r:4,w:{554:4,}},21:{r:16,w:{3906:3,5816:3,6012:6,7854:4,}},},"correspondantes":{1:{r:6,w:{146:6,}},21:{r:6,w:{461:6,}},},"correspondent":{5:{r:3,w:{1683:3,}},6:{r:3,w:{1830:3,}},},"correspondre":{7:{r:3,w:{1547:3,}},21:{r:4,w:{8369:4,}},},"corrigé":{15:{r:4,w:{39:4,}},},"couche":{17:{r:4,w:{2155:4,}},},"couches":{7:{r:8,w:{1953:4,2381:4,}},17:{r:15,w:{1497:3,1756:4,1891:4,1949:4,}},21:{r:12,w:{8736:4,9019:4,9124:4,}},},"couleur":{6:{r:8224,w:{1562:3,1886:10,2493:4098,2497:4098,2507:3,2516:3,2534:3,2561:3,2567:3,}},8:{r:3,w:{175:3,}},13:{r:7,w:{563:7,}},17:{r:9,w:{2381:3,2386:3,2387:3,}},21:{r:3,w:{9334:3,}},},"courant":{3:{r:3,w:{94:3,}},5:{r:4,w:{1714:4,}},},"cours":{5:{r:6,w:{163:3,1899:3,}},6:{r:21,w:{5385:3,5405:3,5732:3,6214:3,6508:3,6565:3,9250:3,}},8:{r:3,w:{190:3,}},11:{r:3,w:{1078:3,}},21:{r:16,w:{2115:3,5766:3,6829:4,9349:3,10798:3,}},},"court":{17:{r:3,w:{308:3,}},},"courts":{7:{r:3,w:{1550:3,}},21:{r:4,w:{8372:4,}},},"create":{17:{r:6,w:{1456:6,}},},"create-a":{17:{r:6,w:{1456:6,}},},"create-a-bing":{17:{r:6,w:{1456:6,}},},"create-a-bing-maps":{17:{r:6,w:{1456:6,}},},"create-a-bing-maps-key":{17:{r:6,w:{1456:6,}},},"creuses":{11:{r:3,w:{726:3,}},},"critères":{5:{r:6,w:{1198:3,1308:3,}},21:{r:6,w:{3030:3,3133:3,}},},"cron":{4:{r:3,w:{156:3,}},13:{r:1052675,w:{5:4096,12:1048579,}},21:{r:1048579,w:{11499:1048579,}},},"crontab":{6:{r:9,w:{9370:3,9384:6,}},21:{r:9,w:{5883:3,5897:6,}},},"cryptage":{2:{r:3,w:{229:3,}},},"crypté":{6:{r:12,w:{7910:3,8013:3,8035:3,8471:3,}},14:{r:12,w:{228:3,331:3,353:3,788:3,}},},"création":{0:{r:3,w:{66:3,}},2:{r:8,w:{522:4,531:4,}},4:{r:9,w:{646:3,740:3,974:3,}},5:{r:1118235,w:{85:3,94:4096,98:1048579,165:3,309:3,335:3,345:65539,443:3,843:3,1901:3,}},6:{r:8254,w:{51:3,107:3,113:4,394:3,404:3,516:3,1432:3,1599:4098,1693:3,5130:3,5387:3,5396:3,6510:3,7565:3,8423:4098,8797:3,9105:3,9132:3,9147:3,9329:3,9401:3,}},7:{r:327704,w:{25:5,91:65539,515:65539,919:65539,995:4,1374:65539,1884:65539,}},8:{r:3,w:{622:3,}},13:{r:3,w:{831:3,}},14:{r:4098,w:{741:4098,}},18:{r:3,w:{69:3,}},21:{r:1507423,w:{66:3,1043:3,1136:3,1372:3,2043:3,2055:1048579,2117:3,2145:3,2171:3,2206:65539,2679:3,3545:3,3605:3,3899:3,3909:3,3984:3,4514:4,4615:4,5418:3,5628:3,5655:3,5845:3,5911:3,6380:3,6449:65539,6937:65539,7013:3,7364:65539,7815:65539,8179:65539,8672:65539,}},},"crée":{4:{r:4,w:{830:4,}},5:{r:3,w:{568:3,}},6:{r:6,w:{31:3,9017:3,}},17:{r:3,w:{180:3,}},21:{r:13,w:{1223:4,2409:3,3516:3,5541:3,}},},"créer":{2:{r:3,w:{676:3,}},4:{r:12,w:{441:3,541:3,970:3,1536:3,}},5:{r:12,w:{315:3,618:3,839:3,1629:3,}},6:{r:4145,w:{71:3,383:3,1200:4,3650:3,3771:3,5280:3,5626:3,6768:4098,7938:3,8076:4,8515:3,8716:3,9010:3,9128:3,9324:3,9469:3,}},7:{r:64,w:{49:5,350:4,665:4,773:8,924:4,1184:4,1282:4,1287:4,1512:4,1708:4,1789:4,1889:3,1977:4,2072:4,2400:4,}},11:{r:3,w:{250:3,}},13:{r:3,w:{1014:3,}},14:{r:13,w:{256:3,394:4,832:3,1046:3,}},17:{r:24,w:{184:3,212:3,385:3,940:3,1003:3,2374:3,2409:3,2483:3,}},21:{r:123,w:{978:3,1368:3,1732:3,2151:3,2322:3,2463:3,2675:3,3451:3,3568:3,3789:4,3888:3,5535:3,5651:3,5840:3,5962:3,6698:4,6804:8,6942:4,7190:4,7296:4,7472:4,7571:4,7648:3,7771:4,7963:4,8074:8,8337:4,8527:4,8613:4,8677:3,8844:4,9143:4,10402:3,}},},"créé":{2:{r:18,w:{374:6,461:6,477:6,}},4:{r:3,w:{1746:3,}},5:{r:9,w:{486:3,1170:3,1545:3,}},6:{r:28,w:{681:3,1352:3,1354:3,3668:3,7008:3,7026:3,8461:3,9034:4,9190:3,}},7:{r:12,w:{1181:4,1382:4,2069:4,}},14:{r:3,w:{779:3,}},16:{r:4,w:{160:4,}},21:{r:40,w:{2328:3,3002:3,3368:3,4145:3,4414:3,4416:3,5557:3,5707:3,7187:4,8187:4,8841:4,11428:4,}},},"créée":{4:{r:7,w:{278:4,371:3,}},6:{r:25,w:{530:3,814:4,5450:3,5488:3,5826:3,6300:3,6651:3,8029:3,}},7:{r:4,w:{444:4,}},14:{r:3,w:{347:3,}},21:{r:7,w:{3996:3,6811:4,}},},"créées":{6:{r:4,w:{8187:4,}},8:{r:6,w:{438:3,587:3,}},14:{r:4,w:{502:4,}},21:{r:3,w:{9547:3,}},},"créés":{5:{r:4,w:{58:4,}},6:{r:3,w:{1703:3,}},13:{r:3,w:{899:3,}},21:{r:4,w:{2016:4,}},},"curseur":{6:{r:8218,w:{1888:10,2573:4098,2577:4098,2584:3,2594:3,2627:3,2635:3,}},13:{r:7,w:{565:7,}},17:{r:5,w:{2402:5,}},},"custom":{6:{r:3,w:{8664:3,}},14:{r:3,w:{990:3,}},},"d":{0:{r:19,w:{37:3,41:3,62:3,109:4,115:3,119:3,}},1:{r:6,w:{111:6,}},2:{r:28,w:{235:3,246:3,262:4,314:4,508:4,532:4,561:3,674:3,}},4:{r:65574,w:{60:3,287:4,297:4,473:3,638:3,647:3,652:3,701:3,755:3,1094:3,1600:65539,1625:3,}},5:{r:2297982,w:{38:3,68:4,99:1048579,173:3,336:3,348:65539,396:3,400:3,404:3,502:1048579,516:3,535:3,548:3,562:3,692:4,707:4,784:4,792:4,882:4,890:4,1116:65539,1118:65539,1132:3,1138:3,1256:3,1277:4098,1301:3,1346:3,1364:3,1401:3,1407:3,1434:3,1560:3,1589:3,1593:3,1618:3,1620:3,1633:3,1638:3,1650:3,}},6:{r:4158,w:{102:3,268:3,1065:3,1600:4098,8777:3,8792:3,8944:3,8948:3,8978:3,8988:3,9008:3,9012:3,9041:3,9052:3,9100:3,9221:3,9227:3,9272:3,9287:3,9330:3,9365:3,}},7:{r:101,w:{26:5,32:5,135:3,159:4,501:5,510:5,741:4,817:3,1024:3,1331:3,1431:4,1833:3,1858:5,1862:5,1865:5,1912:3,1917:3,1934:4,1945:4,1959:4,2117:3,2122:3,2148:3,2335:4,2349:4,2395:4,}},8:{r:18,w:{156:3,176:3,203:3,321:3,323:3,393:3,}},9:{r:31,w:{11:3,60:3,77:3,149:4,184:3,207:3,305:3,320:3,324:3,354:3,}},10:{r:3,w:{22:3,}},11:{r:9,w:{491:3,727:3,1079:3,}},15:{r:3,w:{201:3,}},16:{r:6,w:{46:3,128:3,}},17:{r:128,w:{35:3,58:3,85:3,161:3,378:3,514:3,549:3,574:5,587:3,642:5,645:5,654:3,679:5,773:5,950:5,996:3,1224:5,1229:5,1316:5,1356:5,1365:3,1375:3,1506:3,1509:3,1554:4,1722:4,1789:4,1816:4,1834:4,1931:4,2113:4,2189:4,2327:4,}},18:{r:15,w:{40:3,44:3,65:3,117:3,122:3,}},21:{r:2359696,w:{37:3,41:3,62:3,109:4,115:3,119:3,426:6,859:3,1035:3,1044:3,1049:3,1098:3,1153:3,1415:3,1797:65539,1825:3,1996:3,2026:4,2056:1048579,2124:3,2172:3,2209:65539,2257:3,2261:3,2265:3,2343:1048579,2357:3,2376:3,2389:3,2403:3,2528:4,2543:4,2620:4,2628:4,2718:4,2726:4,2951:65539,2953:65539,2964:3,2970:3,3033:4,3099:3,3120:3,3126:3,3171:3,3189:3,3224:3,3230:3,3257:3,3383:3,3411:3,3415:3,3440:3,3442:3,3455:3,3460:3,3472:3,3600:3,3848:3,4329:3,5398:3,5413:3,5470:3,5474:3,5503:3,5513:3,5533:3,5537:3,5564:3,5575:3,5623:3,5738:3,5744:3,5788:3,5803:3,5846:3,5878:3,6381:3,6387:3,6493:3,6517:4,7041:3,7336:3,7405:4,7797:3,7806:3,8044:4,8118:3,8167:3,8245:4,8254:4,8646:3,8650:3,8653:3,8700:3,8705:3,8722:4,8733:4,8742:4,8894:3,8899:3,8925:3,9074:3,9088:3,9138:4,9315:3,9335:3,9362:3,9381:3,9383:3,9499:3,9590:3,9639:3,9656:3,9728:4,9763:3,9786:3,9884:3,9899:3,9903:3,9933:3,9980:3,10799:3,10987:3,11314:3,11396:3,}},},"d\u0027abeilhan":{6:{r:3,w:{7079:3,}},},"d\u0027abonnement":{13:{r:1048579,w:{18:1048579,}},21:{r:1048579,w:{11505:1048579,}},},"d\u0027accueil":{21:{r:3,w:{5308:3,}},},"d\u0027accès":{2:{r:9,w:{33:3,388:6,}},6:{r:9,w:{4717:3,7162:3,7211:3,}},21:{r:12,w:{524:3,4894:3,4941:3,5296:3,}},},"d\u0027accéder":{6:{r:9,w:{1648:3,7249:3,7504:3,}},21:{r:6,w:{4977:3,5238:3,}},},"d\u0027activer":{11:{r:3,w:{337:3,}},21:{r:3,w:{10444:3,}},},"d\u0027administration":{3:{r:3,w:{49:3,}},21:{r:6,w:{2182:3,3537:3,}},},"d\u0027adminstration":{21:{r:3,w:{3503:3,}},},"d\u0027affichage":{4:{r:3,w:{212:3,}},6:{r:22,w:{1154:4,1182:4,1189:4,3562:3,4479:4,6824:3,}},7:{r:4,w:{2257:4,}},17:{r:3,w:{1395:3,}},},"d\u0027afficher":{6:{r:18,w:{1144:4,1246:4,4599:4,6145:3,6782:3,}},},"d\u0027affiliation":{6:{r:3,w:{359:3,}},},"d\u0027affiner":{6:{r:12,w:{3081:3,3213:3,3559:3,5969:3,}},},"d\u0027agencer":{6:{r:3,w:{1614:3,}},},"d\u0027ajout":{5:{r:3,w:{141:3,}},6:{r:15,w:{478:6,525:3,638:6,}},21:{r:3,w:{4105:3,}},},"d\u0027ajouter":{17:{r:6,w:{232:3,932:3,}},},"d\u0027alertes":{18:{r:4,w:{112:4,}},},"d\u0027améliorer":{6:{r:3,w:{4895:3,}},},"d\u0027anciennes":{6:{r:4,w:{8189:4,}},},"d\u0027assistance":{12:{r:3,w:{36:3,}},},"d\u0027associer":{5:{r:3,w:{465:3,}},6:{r:3,w:{7269:3,}},21:{r:3,w:{4997:3,}},},"d\u0027assurer":{6:{r:3,w:{437:3,}},11:{r:3,w:{799:3,}},21:{r:6,w:{3942:3,10520:3,}},},"d\u0027attente":{4:{r:3,w:{1551:3,}},21:{r:3,w:{1747:3,}},},"d\u0027auteur":{6:{r:3,w:{18:3,}},},"d\u0027autres":{4:{r:4,w:{889:4,}},6:{r:3,w:{8112:3,}},14:{r:3,w:{428:3,}},21:{r:4,w:{1306:4,}},},"d\u0027e":{6:{r:1048585,w:{9390:1048579,9404:3,9461:3,}},11:{r:3,w:{591:3,}},21:{r:1048579,w:{5903:1048579,}},},"d\u0027e-":{6:{r:3,w:{9404:3,}},},"d\u0027e-mail":{6:{r:1048582,w:{9390:1048579,9461:3,}},11:{r:3,w:{591:3,}},21:{r:1048579,w:{5903:1048579,}},},"d\u0027email":{6:{r:4,w:{338:4,}},21:{r:7,w:{3876:4,5956:3,}},},"d\u0027en":{6:{r:4,w:{1199:4,}},},"d\u0027enregistrer":{6:{r:4,w:{856:4,}},21:{r:4,w:{4259:4,}},},"d\u0027environnement":{6:{r:3,w:{7734:3,}},14:{r:3,w:{45:3,}},},"d\u0027envoi":{6:{r:3,w:{9435:3,}},},"d\u0027envoie":{21:{r:3,w:{5941:3,}},},"d\u0027envoyer":{8:{r:3,w:{496:3,}},},"d\u0027erreur":{8:{r:3,w:{578:3,}},},"d\u0027espace":{6:{r:3,w:{1947:3,}},},"d\u0027exclure":{21:{r:3,w:{10152:3,}},},"d\u0027exemples":{4:{r:3,w:{1286:3,}},},"d\u0027expiration":{11:{r:3,w:{161:3,}},21:{r:3,w:{10111:3,}},},"d\u0027exploitation":{11:{r:285212675,w:{4:268435456,11:16777219,}},21:{r:16777219,w:{10016:16777219,}},},"d\u0027exploiter":{0:{r:3,w:{125:3,}},6:{r:13,w:{4276:3,5160:3,5221:4,6431:3,}},7:{r:3,w:{2185:3,}},18:{r:3,w:{128:3,}},21:{r:9,w:{125:3,615:3,3628:3,}},},"d\u0027export":{4:{r:3,w:{1296:3,}},21:{r:3,w:{1596:3,}},},"d\u0027exporter":{6:{r:3,w:{8332:3,}},13:{r:3,w:{638:3,}},14:{r:3,w:{646:3,}},},"d\u0027expression":{6:{r:3,w:{2930:3,}},},"d\u0027extraction":{7:{r:4,w:{2270:4,}},17:{r:3,w:{1518:3,}},21:{r:3,w:{9025:3,}},},"d\u0027exécuter":{6:{r:3,w:{8843:3,}},},"d\u0027image":{17:{r:4,w:{1193:4,}},},"d\u0027import":{6:{r:12,w:{476:6,636:6,}},13:{r:9,w:{699:3,703:3,774:3,}},21:{r:6,w:{3993:3,4103:3,}},},"d\u0027importer":{6:{r:9,w:{5577:3,6079:3,8581:3,}},14:{r:3,w:{902:3,}},},"d\u0027initialisation":{4:{r:3,w:{1059:3,}},},"d\u0027insertion":{17:{r:3,w:{841:3,}},},"d\u0027insertion|listes":{17:{r:3,w:{835:3,}},},"d\u0027insertion|nom":{17:{r:3,w:{830:3,}},},"d\u0027installation":{2:{r:19,w:{71:3,85:3,129:3,208:4,366:6,}},3:{r:3,w:{26:3,}},4:{r:20,w:{95:4,188:3,230:3,374:3,425:3,618:4,}},6:{r:6,w:{450:3,1313:3,}},11:{r:7,w:{770:3,879:4,}},15:{r:3,w:{457:3,}},20:{r:3,w:{17:3,}},21:{r:19,w:{630:3,646:3,4380:3,10491:3,10599:4,11239:3,}},22:{r:3,w:{16:3,}},},"d\u0027insérer":{4:{r:5,w:{1359:5,}},6:{r:6,w:{4942:3,4999:3,}},},"d\u0027intégrer":{6:{r:3,w:{7392:3,}},17:{r:3,w:{268:3,}},21:{r:3,w:{5126:3,}},},"d\u0027onglets":{6:{r:3,w:{1623:3,}},},"d\u0027origine":{6:{r:3,w:{8325:3,}},14:{r:3,w:{639:3,}},},"d\u0027un":{0:{r:4,w:{265:4,}},2:{r:6,w:{414:6,}},4:{r:4106,w:{448:4098,863:4,904:4,}},6:{r:4192,w:{134:4096,405:3,725:3,739:3,825:3,949:4,957:4,1003:4,1415:3,1433:3,1446:3,1486:3,1610:3,1664:3,1694:3,1754:3,1758:3,1953:3,3514:3,3611:3,3735:3,3855:3,3954:3,4048:3,4679:3,4897:3,4901:3,7100:3,7202:3,7418:3,7994:3,9410:3,}},7:{r:1048589,w:{16:1048579,1346:5,1350:5,}},8:{r:3,w:{552:3,}},11:{r:6,w:{389:3,784:3,}},14:{r:3,w:{312:3,}},15:{r:3,w:{371:3,}},17:{r:12,w:{306:3,801:3,1243:3,1328:3,}},18:{r:4,w:{264:4,}},21:{r:1048624,w:{265:4,1280:4,1321:4,3910:3,4184:3,4197:3,4451:3,4832:3,4932:3,5152:3,5294:3,5919:3,6370:1048579,10505:3,11153:3,}},},"d\u0027une":{0:{r:3,w:{133:3,}},2:{r:9,w:{45:3,491:6,}},6:{r:16443,w:{423:3,1136:4,3391:3,4699:3,4805:3,5187:4,5207:4,5559:4098,5566:4098,5580:3,5710:3,6066:4098,6082:3,6419:4098,6997:3,7013:3,7016:3,7031:3,7422:3,7560:3,}},8:{r:6,w:{162:3,286:3,}},13:{r:3,w:{821:3,}},16:{r:3,w:{34:3,}},17:{r:6,w:{692:3,1388:3,}},21:{r:21,w:{133:3,536:3,3929:3,5156:3,9321:3,9451:3,11302:3,}},},"d\u0027uploader":{17:{r:3,w:{1158:3,}},},"d\u0027utilisateur":{5:{r:4099,w:{95:4096,142:3,}},},"d\u0027utilisateurs":{5:{r:4102,w:{343:4096,368:3,1758:3,}},6:{r:3,w:{6495:3,}},21:{r:3,w:{2229:3,}},},"d\u0027utilisation":{6:{r:11,w:{756:3,886:4,925:4,}},21:{r:3,w:{4218:3,}},},"d\u0027utiliser":{6:{r:4,w:{165:4,}},21:{r:7,w:{585:3,3699:4,}},},"d\u0027échange":{13:{r:3,w:{644:3,}},},"d\u0027échec":{8:{r:3,w:{342:3,}},},"d\u0027écriture":{6:{r:3,w:{798:3,}},11:{r:3,w:{83:3,}},},"d\u0027éditer":{5:{r:4,w:{1704:4,}},11:{r:3,w:{26:3,}},21:{r:3,w:{4705:3,}},},"d\u0027évaluation":{2:{r:3,w:{49:3,}},21:{r:3,w:{540:3,}},},"d\u0027être":{6:{r:3,w:{8889:3,}},},"dans":{0:{r:285212675,w:{2:268435456,6:16777219,}},2:{r:23,w:{25:3,115:3,177:3,334:3,528:4,536:4,569:3,}},3:{r:6,w:{158:3,194:3,}},4:{r:4206,w:{80:3,146:3,180:4098,183:3,191:3,209:3,227:3,284:4,604:4,612:4,643:3,723:3,891:4,908:4,1018:3,1063:3,1115:3,1149:3,1232:3,1294:3,1341:3,1346:3,1353:3,1362:5,1379:4,1397:4,1445:4,1473:4,1548:3,1572:3,1591:3,1635:4,1698:3,}},5:{r:8277,w:{60:4,79:4,222:3,260:3,271:3,489:3,524:3,569:3,848:3,879:4,900:4,1122:3,1183:3,1201:4098,1212:3,1231:3,1289:3,1295:3,1425:3,1478:3,1498:4098,1513:3,1547:3,1602:3,1744:4,1864:4,1890:3,}},6:{r:70314,w:{28:3,34:3,68:3,151:4,153:4,173:4,194:4,224:5,243:3,296:3,313:3,467:6,481:6,506:3,589:3,627:6,641:6,669:3,688:3,742:3,749:3,793:3,805:4,811:4,815:4,845:3,861:4,888:4,933:4,941:4,968:4,991:4,1037:65539,1303:3,1307:3,1367:4,1383:4,1400:4,1524:3,1538:3,1605:4098,1705:3,1728:3,1733:3,1760:3,1766:3,1789:3,1795:3,1858:3,1959:3,1982:3,2021:3,2109:3,2144:3,2242:3,2258:3,2280:3,2381:3,2396:3,2417:3,2510:3,2527:3,2608:3,2659:3,2680:3,2737:3,2754:3,2807:3,2824:3,2890:3,2916:3,3015:3,3039:3,3146:3,3170:3,3293:3,3304:3,3386:3,3404:3,3456:3,3533:3,3633:3,3658:3,3758:3,3778:3,3876:3,3975:3,4069:3,4156:3,4196:3,4298:3,4305:3,4319:3,4350:3,4384:3,4653:3,4746:3,4756:3,4790:3,4796:3,4829:3,4948:3,4971:3,5002:3,5054:3,5095:3,5168:4,5327:3,5460:3,5467:3,5477:4,5489:3,5538:3,5673:3,5694:3,5698:3,5714:3,5782:3,5796:3,5817:3,5827:3,5844:3,5874:3,5898:3,5920:3,5992:3,6033:3,6043:3,6183:3,6188:3,6201:3,6263:3,6277:3,6291:3,6301:3,6348:3,6361:3,6376:3,6481:3,6500:3,6614:3,6628:3,6642:3,6652:3,6699:3,6712:3,6727:3,6794:3,6904:4,6925:4,6985:3,7039:3,7082:3,7096:3,7152:3,7173:4,7186:4,7199:3,7214:3,7303:4,7377:4,7450:3,7461:3,7499:3,7547:3,7571:3,7687:5,7704:5,7723:3,7742:4,7756:4,7778:3,7845:3,7895:3,7907:3,7914:3,7957:3,8009:3,8071:4,8103:3,8122:3,8124:3,8162:3,8176:4,8188:4,8191:4,8199:4,8217:4,8251:3,8268:3,8279:3,8298:3,8343:3,8359:3,8363:3,8405:3,8610:3,8644:3,8800:3,8864:3,8951:3,8991:3,9067:3,9076:3,9181:3,9191:3,9258:3,9843:4,9863:4,9870:4,}},7:{r:327909,w:{79:5,83:5,166:4,171:3,256:3,289:65539,297:4,352:4,368:4,408:4,418:4,527:4,530:4,595:65539,603:4,636:4,666:4,682:4,701:4,710:4,719:4,827:4,984:4,998:4,1045:3,1086:65538,1094:4,1140:4,1161:4,1165:4,1191:4,1225:4,1259:4,1383:4,1388:4,1493:4,1518:4,1556:3,1587:3,1629:65539,1637:4,1678:4,1709:4,1725:4,1751:4,1881:5,1926:3,1989:65539,1997:4,2051:4,2055:4,2073:4,2089:4,2180:3,2210:3,2215:4,2239:4,2244:4,2293:4,2361:4,}},8:{r:15,w:{71:3,529:3,579:3,600:3,602:3,}},9:{r:18,w:{54:3,96:3,231:3,235:3,278:3,312:3,}},11:{r:48,w:{32:3,143:3,246:3,284:3,402:3,512:3,546:3,581:3,650:3,767:3,823:4,864:4,957:3,979:3,1036:4,}},13:{r:25,w:{108:3,671:3,677:3,685:3,801:3,807:3,811:3,1077:4,}},14:{r:98,w:{34:3,53:4,67:4,89:3,156:3,213:3,225:3,232:3,275:3,327:3,389:4,419:3,438:3,440:3,478:3,492:4,503:4,507:4,515:4,533:4,565:3,582:3,593:3,612:3,657:3,673:3,677:3,719:3,935:3,973:3,}},15:{r:31,w:{13:3,65:3,104:3,138:3,152:4,198:3,218:3,380:6,450:3,}},16:{r:10,w:{67:3,111:3,140:4,}},17:{r:33,w:{271:3,365:3,386:3,459:3,792:3,809:3,985:3,1004:3,1098:3,1148:3,2455:3,}},18:{r:285212675,w:{3:268435456,9:16777219,}},21:{r:18219669,w:{6:16777219,518:3,609:3,643:3,733:3,768:3,897:3,933:3,1040:3,1120:3,1308:4,1325:4,1386:3,1433:3,1553:3,1594:3,1638:3,1684:3,1707:3,1744:3,1768:3,1787:3,1835:4,1929:3,1952:3,2018:4,2037:4,2331:3,2365:3,2410:3,2684:3,2715:4,2736:4,3015:3,3043:3,3056:3,3074:3,3248:3,3301:3,3321:3,3336:3,3370:3,3424:3,3513:3,3519:3,3565:3,3651:3,3675:4,3687:4,3706:4,3712:4,3728:4,3747:4,3755:4,3773:4,3799:4,3827:3,3974:3,4000:3,4056:3,4094:3,4108:3,4133:3,4152:3,4201:3,4212:3,4248:3,4264:4,4370:3,4374:3,4479:4,4496:4,4517:4,4533:4,4552:4,4605:4,4658:4,4727:3,4760:3,4806:3,4828:3,4884:3,4904:3,4916:3,4929:3,4944:3,5031:4,5108:4,5184:3,5195:3,5233:3,5281:3,5421:3,5477:3,5516:3,5590:3,5599:3,5698:3,5708:3,5774:3,6432:3,6436:3,6524:4,6529:3,6599:3,6636:65539,6644:4,6700:4,6716:4,6758:4,7002:3,7016:3,7059:3,7102:65539,7110:4,7167:4,7171:4,7197:5,7217:4,7233:4,7269:4,7323:1048579,7345:3,7424:4,7504:65539,7512:4,7573:4,7589:4,7606:4,7686:4,7689:4,7741:4,7761:4,7827:4,7830:4,7899:65539,7907:4,7965:4,7981:4,8000:4,8009:4,8022:4,8128:4,8193:4,8318:4,8343:4,8378:4,8410:3,8456:65539,8464:4,8529:4,8545:4,8575:4,8665:3,8714:3,8760:65539,8768:4,8823:4,8827:4,8846:4,8862:4,8966:4,8969:4,9103:4,9227:3,9633:3,9675:3,9810:3,9814:3,9857:3,9891:3,10037:3,10222:3,10398:3,10488:3,10544:4,10585:4,10675:3,10698:5,10756:4,10849:3,10889:5,10924:3,10938:4,10984:3,11004:3,11162:6,11232:3,11335:3,11379:3,11408:4,11595:3,}},},"data":{4:{r:4,w:{292:4,}},5:{r:4,w:{903:4,}},6:{r:6,w:{7912:6,}},7:{r:4,w:{829:4,}},14:{r:6,w:{230:6,}},21:{r:8,w:{2739:4,8130:4,}},},"datasources":{6:{r:8,w:{7853:8,}},14:{r:8,w:{164:8,}},},"date":{4:{r:7,w:{72:3,1530:4,}},6:{r:8245,w:{221:5,773:3,1890:10,2641:4098,2646:4098,2655:3,2666:3,2689:3,2716:3,7355:4,7655:3,9545:6,9568:6,}},8:{r:3,w:{620:3,}},9:{r:9,w:{30:3,79:3,188:3,}},13:{r:7,w:{567:7,}},17:{r:17,w:{1226:5,1240:3,1249:6,1282:3,}},21:{r:31,w:{5086:4,6038:6,6061:6,6145:6,9609:3,9658:3,9767:3,}},},"date_renouv":{17:{r:6,w:{1255:3,1257:3,}},},"dates":{4:{r:3,w:{89:3,}},8:{r:3,w:{118:3,}},21:{r:6,w:{9277:3,10127:3,}},},"db":{6:{r:6,w:{8496:3,8670:3,}},14:{r:6,w:{813:3,996:3,}},},"dblogin":{2:{r:6,w:{411:6,}},},"dbpswd":{2:{r:6,w:{421:6,}},},"de":{0:{r:103,w:{11:3,22:3,32:3,47:3,49:3,52:3,54:3,91:3,94:4,98:4,105:4,129:3,143:4,191:4,193:4,196:4,198:4,205:4,227:4,242:4,251:4,270:4,277:4,282:4,284:4,307:4,313:4,325:4,}},1:{r:285216831,w:{4:268435456,14:16777219,18:4096,22:3,26:3,59:6,65:6,67:6,69:6,79:6,93:6,105:6,127:6,137:6,}},2:{r:302194858,w:{2:268435456,6:16777218,72:3,77:3,79:3,97:3,108:3,112:3,121:3,130:3,144:5,151:5,165:16777218,174:4098,183:3,195:3,209:4,271:4098,290:3,321:65538,337:3,342:3,346:3,379:6,382:6,392:6,398:6,401:6,405:6,417:6,424:6,455:6,469:6,523:4,526:4,572:3,578:3,589:65538,591:65538,596:3,614:3,657:3,680:3,683:3,694:3,703:3,717:5,}},3:{r:1052692,w:{7:4096,107:3,119:1048578,128:3,149:3,161:3,166:3,177:3,}},4:{r:217429,w:{22:5,41:5,46:65538,57:3,96:4,100:4098,106:3,112:3,116:3,124:4098,126:4098,140:3,169:3,198:3,242:4,245:4,258:4,260:4,263:4,270:4,276:4,280:4,282:4,289:4,300:4,331:3,352:3,361:3,366:3,369:3,398:3,426:3,444:3,462:3,466:3,492:3,544:3,551:3,560:3,564:3,569:3,581:4,585:4,601:4,619:4,623:4098,660:3,664:3,666:3,693:3,705:3,707:3,739:3,741:3,759:3,763:3,770:3,813:4,819:4,833:4,874:4,894:4,911:4,927:4,937:3,961:3,986:3,996:3,1005:3,1015:3,1031:3,1043:65538,1050:3,1060:3,1073:3,1077:3,1089:3,1091:3,1099:3,1103:3,1105:3,1107:3,1112:3,1118:3,1120:3,1144:3,1160:4096,1165:65538,1178:3,1183:3,1188:3,1200:3,1220:3,1223:3,1228:3,1260:3,1336:3,1403:4,1417:4,1476:4,1531:4,1614:3,1639:4,1649:3,1723:3,1740:4,}},5:{r:266569,w:{52:4,84:3,120:3,147:3,164:3,185:3,217:3,225:3,248:3,320:3,334:3,346:65539,408:3,426:3,442:3,444:3,511:3,520:3,553:3,589:3,600:65539,617:3,635:3,654:4,669:4,680:4,686:4,688:4,701:4,703:4,718:4,731:4,752:4,764:4,775:4,782:4,799:4,802:4,804:4,815:3,820:3,824:3,830:3,842:3,844:3,863:4,865:4,868:4,884:4,893:4,1128:3,1146:3,1159:3,1164:3,1186:3,1197:3,1215:3,1217:3,1234:3,1270:3,1283:3,1285:3,1293:3,1331:3,1335:3,1344:3,1350:3,1375:3,1377:3,1389:65539,1397:3,1441:3,1447:3,1458:3,1461:3,1481:3,1517:3,1524:3,1532:3,1554:4098,1571:3,1584:65539,1607:3,1616:3,1627:3,1635:3,1689:3,1710:4,1712:4,1736:4,1739:4,1781:4,1814:4,1817:4,1848:4,1881:4,1884:4,1887:4,1900:3,}},6:{r:287868969,w:{2:268435456,6:4096,10:16777219,60:1048579,70:3,76:3,80:3,86:65539,96:3,106:3,108:3,112:4,114:4,129:3,132:4096,249:3,289:3,364:3,378:3,386:3,393:3,395:3,433:3,435:3,479:6,485:65539,495:3,498:3,502:3,517:3,534:3,577:3,603:3,609:3,614:3,639:6,645:4096,652:65539,691:3,707:3,774:3,837:3,842:3,870:4,907:4,1012:4,1050:3,1056:3,1058:3,1079:3,1097:3,1101:3,1103:3,1108:3,1114:3,1121:4,1127:4,1138:4,1158:4,1169:4,1186:4,1193:4,1201:4,1207:4,1215:4,1231:4,1241:4,1287:3,1295:3,1314:3,1338:3,1341:3,1408:4,1412:3,1430:3,1457:3,1483:3,1527:3,1617:3,1619:3,1641:3,1652:3,1654:3,1660:3,1688:3,1708:3,1710:3,1736:3,1738:3,1751:3,1785:3,1824:3,1827:3,1834:3,1845:3,1847:3,1854:3,1861:3,1903:10,1926:10,1941:3,1964:4098,1968:4098,1977:3,1987:3,1994:3,2003:4,2005:4,2024:3,2030:3,2050:3,2052:3,2077:3,2083:3,2090:4098,2095:4098,2103:3,2113:3,2119:4,2121:4,2125:3,2147:3,2159:3,2180:3,2187:3,2194:3,2196:3,2221:4098,2227:4098,2235:3,2246:3,2253:3,2262:5,2264:5,2283:3,2295:3,2316:3,2324:3,2332:3,2334:3,2359:4098,2366:4098,2373:3,2385:3,2391:3,2400:5,2402:5,2420:3,2425:3,2446:3,2455:3,2462:3,2464:3,2489:4098,2492:4098,2495:4098,2502:3,2505:3,2514:3,2530:3,2556:3,2559:3,2565:3,2571:4098,2575:4098,2582:3,2590:3,2592:3,2611:3,2633:3,2639:4098,2644:4098,2653:3,2664:3,2683:3,2714:3,2721:4098,2725:4098,2732:3,2741:3,2757:3,2785:3,2791:4098,2795:4098,2802:3,2811:3,2827:3,2853:3,2858:3,2864:4098,2867:4098,2870:4098,2876:4098,2883:3,2886:3,2895:3,2897:3,2903:3,2919:3,2937:3,2973:3,2976:3,2980:3,2986:3,2991:4098,2994:4098,2998:4098,3007:3,3010:3,3020:3,3022:3,3042:3,3061:3,3064:3,3069:3,3088:3,3103:3,3106:3,3113:3,3122:4098,3125:4098,3129:4098,3138:3,3141:3,3151:3,3153:3,3173:3,3192:3,3195:3,3201:3,3220:3,3235:3,3238:3,3244:4098,3247:4098,3252:4098,3260:3,3270:3,3272:3,3296:3,3312:3,3341:3,3344:3,3351:3,3361:4098,3364:4098,3366:4098,3369:4098,3377:3,3380:3,3382:3,3396:3,3407:3,3409:3,3414:3,3417:3,3419:3,3423:3,3430:3,3439:4,3441:4,3459:3,3465:3,3492:4098,3497:4098,3505:3,3516:3,3536:3,3571:3,3577:3,3584:4098,3590:4098,3601:3,3613:3,3636:3,3647:3,3694:3,3701:3,3712:4098,3716:4098,3727:3,3737:3,3761:3,3786:3,3815:3,3821:3,3831:4098,3836:4098,3846:3,3857:3,3879:3,3910:3,3916:3,3925:4098,3933:4098,3943:3,3956:3,3978:3,4009:3,4017:3,4026:4098,4030:4098,4040:3,4050:3,4072:3,4092:3,4122:3,4127:3,4136:4098,4142:4098,4151:3,4162:3,4170:3,4178:3,4199:3,4241:3,4249:3,4256:4098,4308:3,4315:3,4325:3,4329:3,4338:3,4340:3,4345:3,4353:3,4370:3,4387:3,4396:3,4423:3,4429:4,4446:4,4452:4,4454:4,4462:4,4484:4,4508:3,4511:3,4521:3,4525:4,4532:4,4541:4,4546:4,4562:4,4566:4,4570:4,4584:4,4588:4,4610:4,4621:4,4644:3,4656:3,4671:3,4677:3,4681:3,4697:3,4759:3,4770:3,4772:3,4776:3,4801:3,4835:3,4843:3,4866:3,4868:3,4872:3,4879:4098,4883:4098,4888:3,4892:3,4899:3,4910:3,4921:4098,4929:3,4938:3,4951:3,4953:3,5005:3,5028:4098,5040:3,5045:3,5099:3,5105:3,5111:4096,5113:4096,5117:4098,5119:4098,5124:3,5126:3,5138:3,5145:3,5155:3,5157:3,5177:4,5182:4,5189:4,5191:4,5202:4,5209:4,5211:4,5233:3,5235:3,5249:3,5259:3,5261:3,5272:3,5279:3,5284:3,5289:3,5294:3,5306:4099,5308:4099,5310:4099,5317:3,5322:3,5332:3,5339:4098,5343:4,5345:4,5348:4,5350:4,5359:3,5380:3,5386:3,5393:3,5397:3,5400:3,5407:3,5414:3,5426:3,5428:3,5438:4099,5448:3,5454:3,5470:3,5485:3,5493:3,5497:4,5500:4,5511:3,5518:3,5521:3,5534:3,5561:4098,5563:4098,5572:3,5574:3,5582:3,5584:3,5597:4098,5601:4,5603:4,5606:4,5608:4,5611:4,5623:3,5630:3,5644:3,5665:3,5681:3,5690:3,5705:3,5727:3,5734:3,5740:3,5752:3,5754:3,5764:4099,5790:3,5799:3,5803:4,5806:4,5823:3,5870:4,5877:3,5887:3,5901:3,5907:4,5916:3,5943:3,5973:3,5979:3,6049:3,6068:4098,6070:4098,6073:4098,6084:3,6086:3,6093:4098,6097:4,6099:4,6102:4,6104:4,6107:4,6116:3,6120:3,6125:3,6130:3,6137:3,6150:3,6154:3,6157:3,6159:3,6162:3,6170:3,6179:3,6209:3,6221:3,6233:3,6235:3,6245:4098,6271:3,6280:3,6297:3,6345:3,6351:3,6364:3,6372:3,6399:3,6421:4098,6423:4098,6444:3,6449:4,6451:4,6454:4,6456:4,6496:3,6504:3,6509:3,6543:3,6560:3,6572:3,6584:3,6586:3,6596:4098,6622:3,6631:3,6648:3,6696:3,6702:3,6715:3,6723:3,6750:3,6803:3,6827:4096,6831:3,6836:4096,6840:3,6864:3,6886:3,6918:4,6939:4,6954:3,7018:3,7034:3,7042:3,7056:3,7075:3,7106:3,7133:3,7235:4096,7239:4098,7293:4,7316:4,7322:4,7340:4,7342:4,7356:4,7358:4,7360:4,7386:4098,7402:3,7428:3,7476:3,7513:3,7531:3,7535:3,7562:3,7564:3,7566:3,7587:3,7626:3,7628:3,7631:3,7647:3,7649:3,7651:3,7656:3,7665:3,7680:5,7765:3,7771:3,7775:3,7802:3,7871:3,7875:3,7880:3,7981:3,8024:3,8036:3,8049:3,8079:4,8135:3,8167:4,8285:3,8335:3,8354:3,8370:3,8416:3,8426:4098,8447:3,8457:3,8510:3,8525:4098,8528:4098,8534:3,8559:5,8571:5,8596:4,8694:3,8715:3,8720:3,8747:3,8758:3,8768:3,8796:3,8798:3,8820:1048579,8823:4096,8854:3,8875:3,8883:3,8923:3,9002:3,9043:3,9074:3,9104:3,9106:3,9146:3,9148:3,9161:3,9215:3,9242:3,9268:3,9282:3,9306:3,9311:3,9314:3,9328:3,9355:5,9402:3,9421:3,9436:3,9468:3,9473:3,9486:3,9490:3,9492:3,9512:6,9525:6,9528:6,9548:6,9551:6,9571:6,9573:6,9591:6,9658:5,9713:6,9735:6,9755:6,9849:4,9855:4,9866:4,9868:4,9876:4,9890:4,9932:3,}},7:{r:576717094,w:{2:268435456,4:268435456,8:16777219,10:16777219,14:1048579,30:5,72:5,133:3,178:3,202:3,252:3,260:3,325:4,441:4,451:4,486:1048579,512:5,558:4,641:4,697:4,767:4,798:3,801:3,845:1048579,887:5,907:5,916:5,993:4,1004:4,1055:3,1065:4,1117:4,1202:3,1216:3,1312:3,1315:3,1337:1048579,1348:5,1394:4,1403:4,1424:4,1448:4,1452:4,1460:3,1464:3,1516:4,1532:4,1561:3,1574:3,1598:4,1658:4,1683:4,1770:4,1814:3,1817:3,1839:1048579,1844:1048579,1856:5,1908:3,1938:4,1949:4,1968:4,1980:4,2025:4,2114:3,2125:3,2135:3,2143:3,2150:3,2165:4,2167:4,2193:3,2200:3,2225:4,2234:4,2249:4,2258:4,2274:4,2283:4,2296:4,2313:4,2315:4,}},8:{r:4195,w:{15:3,22:3,39:3,57:3,60:3,99:3,109:3,119:3,127:3,159:3,191:3,200:3,210:3,224:4096,232:3,254:3,280:3,288:3,302:3,317:3,343:3,364:3,383:3,403:3,419:3,430:3,436:3,446:3,480:3,502:3,533:3,557:3,568:3,621:3,}},9:{r:55,w:{18:3,23:3,41:3,69:3,89:3,103:4,156:3,191:3,211:3,222:3,225:3,244:3,254:3,286:3,294:3,309:3,332:3,357:3,}},10:{r:2097167,w:{12:1048579,14:1048579,29:3,43:3,49:3,}},11:{r:1188093,w:{14:4096,18:1048579,29:3,35:3,39:3,42:3,47:65538,54:3,61:3,74:3,81:3,87:3,100:3,106:3,123:3,133:3,138:3,147:3,162:3,196:4099,210:3,215:3,219:3,226:3,234:3,238:3,257:3,266:3,279:3,299:3,312:3,319:3,350:3,356:3,372:3,380:3,391:3,395:3,413:3,417:3,419:3,450:3,454:3,461:65538,469:3,473:3,475:3,477:3,480:3,486:3,488:3,496:3,500:3,502:3,504:3,509:3,515:3,517:3,541:3,567:3,585:3,610:3,617:3,624:3,659:3,663:3,683:3,707:3,720:3,740:3,771:3,789:3,800:3,811:3,826:4,867:4,880:4,969:5,990:3,1002:3,1024:4,1051:3,1066:3,1084:3,}},12:{r:3,w:{18:3,}},13:{r:115,w:{43:6,53:6,67:6,88:6,140:3,157:3,184:3,206:3,276:3,580:7,603:7,645:3,673:3,689:3,704:3,713:3,715:3,719:3,763:4,793:3,815:3,906:3,910:3,954:4,957:4,971:3,978:3,998:3,1056:4,1059:4,}},14:{r:12397,w:{76:3,82:3,86:3,113:3,189:3,193:3,198:3,299:3,342:3,354:3,367:3,397:4,451:3,483:4,599:3,649:3,668:3,684:3,730:3,744:4098,765:3,775:3,827:3,846:4098,849:4098,855:3,880:5,892:5,921:4,976:3,1024:3,1045:3,1050:3,1077:3,1088:3,}},15:{r:139387,w:{5:3,9:3,20:5,29:4,37:4,46:65539,50:4096,62:5,73:3,76:3,82:3,93:3,95:3,118:3,125:3,127:3,135:3,146:3,170:4,173:4,192:4,195:4,205:3,209:3,228:3,289:7,292:7,349:4096,353:65539,366:3,403:3,417:3,458:3,462:3,464:3,474:3,482:3,}},16:{r:285212703,w:{6:268435456,15:16777219,21:3,41:3,50:3,64:3,80:3,101:3,122:3,148:4,169:3,}},17:{r:404,w:{45:3,93:3,100:3,114:3,128:3,135:3,140:3,152:3,211:3,218:3,225:5,260:5,296:5,332:5,349:3,374:3,453:3,504:5,538:5,577:5,612:4,616:3,620:3,647:5,703:3,733:5,736:5,745:3,748:3,788:3,826:3,831:3,838:3,873:3,878:3,890:3,898:3,908:3,915:3,925:5,969:3,992:3,1079:4,1092:3,1143:5,1197:4,1200:4,1237:3,1250:3,1280:3,1286:5,1296:3,1307:3,1319:5,1330:3,1337:3,1371:3,1396:3,1482:3,1486:3,1490:3,1494:3,1499:3,1501:3,1504:3,1511:3,1565:4,1574:4,1583:4,1616:4,1708:4,1749:4,1992:4,1999:4,2005:4,2007:8,2035:4,2038:4,2123:4,2142:4,2154:4,2168:4,2173:4,2201:4,2205:4,2221:4,2228:4,2236:4,2244:4,2252:4,2261:4,2270:4,2279:4,2329:4,2336:4,2343:4,2349:4,2365:5,2373:3,2401:5,2408:3,2443:5,2450:3,2460:3,2473:5,2475:5,2482:3,2486:3,2495:3,}},18:{r:91,w:{14:3,25:3,35:3,50:3,52:3,55:3,57:3,94:3,97:4,101:4,108:4,132:3,142:4,190:4,192:4,195:4,197:4,204:4,226:4,241:4,250:4,269:4,276:4,281:4,283:4,}},19:{r:268435459,w:{2:268435456,8:3,}},20:{r:268435459,w:{2:268435456,8:3,}},21:{r:133838684,w:{11:3,22:3,32:3,47:3,49:3,52:3,54:3,91:3,94:3,98:4,105:4,129:3,143:4,191:4,193:4,196:4,198:4,205:4,227:4,242:4,251:4,270:4,277:4,282:4,284:4,307:4,313:4,325:4,333:16777219,337:3,341:3,374:6,380:6,382:6,384:6,394:6,408:6,420:6,442:6,452:6,495:4096,499:16777219,656:3,666:3,680:3,690:16777219,695:3,705:3,722:3,744:3,751:3,754:3,837:1048579,848:3,852:3,878:3,942:3,951:3,958:3,963:3,983:3,988:3,999:3,1006:3,1023:1048579,1057:3,1061:3,1063:3,1090:3,1102:3,1104:3,1135:3,1137:3,1157:3,1161:3,1168:3,1206:4,1212:4,1226:4,1259:4,1265:4,1291:4,1311:4,1328:4,1339:3,1383:1048579,1394:3,1398:3,1410:3,1412:3,1421:3,1423:3,1425:3,1430:3,1436:3,1438:3,1462:3,1477:1048579,1499:3,1504:3,1509:3,1521:3,1541:3,1544:3,1549:3,1565:3,1644:3,1659:3,1710:3,1719:3,1724:3,1814:3,1839:4,1846:4,1849:4,1855:4,1861:4,1866:4,1880:3,1944:3,1948:3,1961:5,2010:4,2042:3,2077:3,2099:3,2116:3,2156:3,2170:3,2207:65539,2269:3,2287:3,2352:3,2361:3,2394:3,2430:3,2445:65539,2462:3,2486:4,2490:4,2505:4,2516:4,2522:4,2524:4,2537:4,2539:4,2554:4,2567:4,2588:4,2600:4,2611:4,2618:4,2635:4,2638:4,2640:4,2651:3,2656:3,2660:3,2666:3,2678:3,2680:3,2699:4,2701:4,2704:4,2720:4,2729:4,2960:3,2978:3,2991:3,2996:3,3018:3,3029:3,3060:3,3078:3,3085:3,3091:3,3113:3,3156:3,3160:3,3169:3,3175:3,3200:3,3202:3,3212:65539,3220:3,3264:3,3270:3,3281:3,3284:3,3304:3,3340:3,3347:3,3355:3,3377:3,3394:3,3406:65539,3429:3,3438:3,3449:3,3457:3,3495:16777219,3557:1048579,3567:3,3573:3,3577:3,3585:65539,3594:3,3604:3,3606:3,3621:3,3638:3,3642:3,3743:4,3745:4,3762:4,3788:4,3833:3,3863:3,3891:3,3898:3,3900:3,3938:3,3940:3,3955:65539,3963:3,3966:3,3970:3,3985:3,4002:3,4022:3,4070:3,4076:3,4081:3,4106:3,4116:65539,4155:3,4240:3,4245:3,4273:4,4288:4,4314:3,4320:3,4322:3,4354:3,4362:3,4381:3,4400:3,4403:3,4448:3,4482:4,4499:4,4512:4,4536:4,4713:3,4745:3,4769:3,4778:3,4780:3,4784:3,4790:3,4801:3,4838:3,4865:3,4967:4098,5021:4,5047:4,5053:4,5071:4,5073:4,5087:4,5089:4,5091:4,5120:4098,5136:3,5162:3,5210:3,5247:3,5265:3,5269:3,5301:3,5303:3,5312:3,5326:3,5366:3,5373:3,5389:3,5417:3,5419:3,5442:1048579,5450:3,5527:3,5566:3,5597:3,5627:3,5629:3,5678:3,5732:3,5758:3,5784:3,5798:3,5822:3,5827:3,5830:3,5844:3,5871:5,5912:3,5914:3,5928:3,5942:3,5961:3,5966:3,5977:3,5981:3,5983:3,6005:6,6018:6,6021:6,6041:6,6044:6,6064:6,6066:6,6084:6,6146:6,6197:6,6219:6,6238:6,6351:3,6358:16777219,6360:16777219,6368:1048579,6385:3,6425:3,6491:3,6536:3,6560:3,6595:3,6603:3,6671:4,6808:4,6818:4,6861:1048579,6901:3,6921:3,6930:3,7011:3,7022:4,7069:3,7079:4,7141:4,7208:4,7316:1048579,7326:1048579,7348:3,7413:4,7443:4,7477:4,7485:4,7544:4,7627:3,7630:3,7635:3,7647:3,7651:3,7763:4,7808:3,7858:4,7936:4,7996:4,8099:3,8102:3,8156:3,8170:3,8172:3,8201:4,8210:4,8229:4,8243:4,8273:4,8277:4,8285:3,8289:3,8341:4,8353:4,8383:4,8397:3,8421:4,8485:4,8501:4,8594:4,8633:1048579,8644:3,8696:3,8726:4,8797:4,8891:3,8902:3,8912:3,8920:3,8927:3,8998:4,9007:4,9171:3,9178:3,9195:3,9213:3,9216:3,9258:3,9268:3,9278:3,9286:3,9318:3,9350:3,9359:3,9369:3,9377:3,9402:3,9424:3,9445:3,9453:3,9467:3,9489:3,9509:3,9528:3,9539:3,9545:3,9555:3,9597:3,9602:3,9620:3,9648:3,9668:3,9682:4,9735:3,9770:3,9790:3,9801:3,9804:3,9823:3,9833:3,9865:3,9873:3,9888:3,9911:3,9936:3,9970:1048579,9972:1048579,9987:3,10001:3,10007:3,10022:1048579,10030:3,10034:3,10040:3,10044:3,10047:3,10056:65538,10063:3,10070:3,10084:3,10112:3,10126:3,10148:3,10155:3,10162:3,10168:3,10185:3,10202:3,10212:3,10217:3,10226:3,10233:3,10237:3,10239:3,10245:3,10249:3,10266:3,10275:3,10279:3,10291:3,10300:3,10307:3,10311:3,10313:3,10315:3,10318:3,10327:3,10360:3,10365:3,10369:3,10379:3,10386:3,10390:3,10409:3,10418:3,10431:3,10456:3,10463:3,10492:3,10510:3,10521:3,10532:3,10547:4,10588:4,10600:4,10687:5,10710:3,10722:3,10744:4,10771:3,10786:3,10804:3,10825:1048579,10834:65539,10846:5,10857:3,10860:3,10866:3,10877:3,10879:3,10904:3,10911:3,10913:3,10921:3,10932:3,10956:4,10959:4,10978:4,10981:4,10991:3,10995:3,11014:3,11075:7,11078:7,11135:65539,11148:3,11185:3,11199:3,11240:3,11244:3,11246:3,11256:3,11264:3,11283:16777219,11289:3,11309:3,11318:3,11332:3,11348:3,11369:3,11390:3,11416:4,11437:3,11466:3,11530:6,11540:6,11554:6,11575:6,11627:3,11644:3,11671:3,11693:3,}},22:{r:268435459,w:{2:268435456,8:3,}},},"del":{17:{r:7,w:{2103:3,2266:4,}},},"delall":{17:{r:7,w:{2105:3,2275:4,}},},"delà":{11:{r:3,w:{394:3,}},},"demande":{2:{r:6,w:{48:3,57:3,}},3:{r:3,w:{176:3,}},4:{r:25,w:{832:4,1088:3,1102:3,1281:3,1538:3,1540:3,1560:3,1682:3,}},6:{r:149,w:{1057:3,1067:3,1098:3,1137:4,1618:3,1753:3,1846:3,2025:3,2148:3,2284:3,2421:3,2531:3,2612:3,2684:3,2758:3,2828:3,2920:3,3043:3,3174:3,3297:3,3460:3,3537:3,3637:3,3762:3,3880:3,3979:3,4073:3,4200:3,4388:3,4522:3,4657:3,4678:3,4760:3,4771:3,4867:3,4900:3,4952:3,5006:3,5902:3,6365:3,6716:3,7401:3,7475:3,7563:3,9527:6,9550:6,9867:4,}},7:{r:81,w:{426:4,440:4,727:4,775:4,780:4,800:3,809:3,1054:3,1268:4,1289:4,1294:4,1314:3,1323:3,1759:4,1791:4,1796:4,1816:3,1825:3,2297:4,2369:4,2402:4,2407:4,}},8:{r:9,w:{163:3,180:3,287:3,}},11:{r:9,w:{472:3,485:3,499:3,}},21:{r:148,w:{539:3,548:3,1225:4,1409:3,1420:3,1586:3,1734:3,1736:3,1756:3,1913:3,4321:3,4331:3,5135:3,5209:3,6020:6,6043:6,6766:4,6805:4,6807:4,7068:3,7277:4,7298:4,7303:4,7749:4,7773:4,7778:4,8030:4,8076:4,8081:4,8101:3,8110:3,8583:4,8615:4,8620:4,9111:4,9145:4,9150:4,9322:3,9339:3,9452:3,10310:3,}},},"demander":{4:{r:6,w:{1002:3,1074:3,}},7:{r:4,w:{438:4,}},21:{r:3,w:{1395:3,}},},"demandes":{0:{r:4,w:{204:4,}},1:{r:6,w:{78:6,}},2:{r:3,w:{289:3,}},4:{r:3,w:{86:3,}},8:{r:1122336,w:{14:3,38:3,88:1048579,92:3,120:3,225:4096,227:65538,237:3,272:4096,276:3,300:3,305:3,435:3,}},11:{r:3,w:{741:3,}},18:{r:4,w:{203:4,}},21:{r:1048623,w:{204:4,393:6,1860:4,9170:3,9194:3,9247:1048579,9251:3,9279:3,9397:3,9407:3,9441:3,9465:3,9470:3,9544:3,}},},"demandeur":{6:{r:18,w:{9712:6,9734:6,9758:6,}},21:{r:18,w:{6196:6,6218:6,6241:6,}},},"demandés":{8:{r:6,w:{79:3,114:3,}},21:{r:6,w:{9235:3,9273:3,}},},"departements":{7:{r:8,w:{525:4,1965:4,}},17:{r:3,w:{1676:3,}},21:{r:15,w:{7090:4,7825:4,8748:4,9042:3,}},},"departements-source":{21:{r:4,w:{7090:4,}},},"departements-source-fixe":{21:{r:4,w:{7090:4,}},},"depts":{7:{r:4,w:{621:4,}},},"depuis":{4:{r:3,w:{1756:3,}},5:{r:3,w:{542:3,}},6:{r:10,w:{1086:3,5173:4,7113:3,}},7:{r:3,w:{267:3,}},13:{r:3,w:{888:3,}},21:{r:17,w:{2383:3,4845:3,6610:3,7129:4,7286:4,}},},"dernier":{4:{r:3,w:{761:3,}},6:{r:18,w:{4173:3,7604:3,7798:3,8971:3,9438:3,9494:3,}},7:{r:4,w:{2317:4,}},11:{r:3,w:{398:3,}},13:{r:3,w:{721:3,}},14:{r:3,w:{109:3,}},21:{r:15,w:{1159:3,5343:3,5496:3,5944:3,5985:3,}},},"derniers":{6:{r:6,w:{1656:3,1740:3,}},},"dernière":{3:{r:3,w:{180:3,}},4:{r:3,w:{1055:3,}},6:{r:13,w:{775:3,7362:4,7657:3,8806:3,}},21:{r:10,w:{5093:4,5427:3,10296:3,}},},"dernières":{6:{r:3,w:{840:3,}},8:{r:3,w:{242:3,}},9:{r:3,w:{122:3,}},21:{r:9,w:{4243:3,9412:3,9701:3,}},},"des":{0:{r:39,w:{26:3,60:3,70:3,75:3,89:3,145:4,163:4,185:4,203:4,315:4,319:4,}},1:{r:18,w:{76:6,84:6,144:6,}},2:{r:16842776,w:{139:5,160:16777218,169:65538,186:3,204:3,230:3,339:3,574:3,}},3:{r:13,w:{33:3,47:3,146:3,203:4,}},4:{r:65594,w:{63:3,65:3,68:3,85:3,138:3,149:3,213:3,469:3,720:3,821:4,881:4,1202:3,1325:3,1375:4,1580:3,1598:65539,1606:3,1631:4,}},5:{r:287383685,w:{2:268435456,7:4096,11:16777218,86:3,102:1048579,114:3,234:3,372:3,492:3,518:3,537:3,540:3,550:3,558:3,583:3,591:3,622:3,697:4,712:4,720:4,725:4,733:4,738:4,875:4,1101:4,1134:3,1228:3,1403:3,1415:3,1418:3,1510:3,1550:3,1577:4096,1582:65539,1655:3,1659:3,1666:3,1671:1048578,1732:4,1766:3,1773:3,1835:4,1856:4,1879:4,}},6:{r:4542773,w:{16:3,47:3,55:3,72:3,138:3,281:3,367:3,493:3,592:3,716:65539,723:3,729:3,733:3,859:4,917:4,1020:4,1033:65539,1110:3,1164:4,1174:4,1190:4,1209:4,1343:3,1541:3,1554:3,1593:3,1638:3,1644:3,1662:3,1700:3,1799:3,1832:3,1863:3,3097:3,3108:3,3229:3,3240:3,4243:3,4472:4,4530:4,4544:4,4586:4,4707:3,4857:3,4906:3,5136:3,5161:3,5252:3,5320:3,5412:3,5642:3,5738:3,5785:3,5963:4098,5971:3,5977:3,6080:3,6148:3,6219:3,6266:3,6434:3,6550:4,6570:3,6617:3,6769:4098,6791:3,6957:3,7611:3,7659:3,7672:3,7710:65538,7724:3,7814:3,7817:3,7861:65538,7896:3,8014:3,8091:4,8184:4,8202:4,8236:4098,8259:3,8290:3,8313:3,8366:3,8383:3,8424:4098,8440:3,8472:3,8633:3,8763:1048578,8817:1048579,8829:1048578,8915:65538,9006:3,9018:3,9198:6,9232:4096,9236:1048579,9270:3,9341:3,}},7:{r:24,w:{195:3,546:4,561:4,1245:4,1544:3,1559:3,1568:3,}},8:{r:4325463,w:{13:3,17:3,20:3,37:3,77:3,80:3,83:3,87:1048579,112:3,117:3,121:3,138:3,143:3,214:3,221:65538,236:3,306:3,311:65538,326:3,362:3,373:1048579,387:3,416:1048579,434:3,470:1048578,504:3,544:3,550:3,597:3,610:3,}},9:{r:29,w:{21:3,36:3,39:3,46:3,109:4,113:4,127:3,298:3,369:3,}},10:{r:1048582,w:{10:1048579,27:3,}},11:{r:2179153,w:{33:3,71:3,76:3,79:3,84:3,94:3,168:3,204:4099,361:4,366:4098,406:65538,426:3,565:3,598:3,600:3,602:3,608:3,661:3,689:3,715:4098,729:3,748:1048578,805:3,858:3,920:4096,927:1048579,996:3,1046:3,1058:3,}},13:{r:3211316,w:{10:1048579,16:1048579,254:3,539:1048578,639:3,832:3,841:3,851:4,858:3,866:65538,878:3,880:3,885:3,912:3,917:3,937:4,1023:4,}},14:{r:268574775,w:{5:268435456,21:65538,35:3,125:3,128:3,175:65538,214:3,332:3,499:4,518:4,550:4098,573:3,604:3,627:3,680:3,697:3,742:4098,758:3,789:3,958:3,}},15:{r:26,w:{78:3,91:3,157:4,167:4,177:4,180:4,184:4,}},16:{r:285212678,w:{3:268435456,12:16777219,54:3,}},17:{r:1114171,w:{9:1048579,21:65539,175:3,213:3,807:3,836:3,850:3,883:3,888:3,896:3,903:3,1159:3,1496:3,1890:4,1948:4,2230:4,2238:4,2246:4,}},18:{r:31,w:{29:3,63:3,73:3,78:3,92:3,144:4,162:4,184:4,202:4,}},21:{r:46531086,w:{26:3,60:3,70:3,75:3,89:3,145:4,163:4,185:4,203:4,315:4,319:4,391:6,399:6,459:6,660:3,670:3,715:3,725:3,855:3,1117:3,1214:4,1267:4,1298:4,1486:65539,1523:3,1776:3,1795:65539,1803:3,1831:4,1859:4,1969:16777219,2044:3,2059:1048579,2071:3,2180:3,2193:3,2233:3,2334:3,2359:3,2378:3,2381:3,2391:3,2399:3,2424:3,2432:3,2467:3,2533:4,2548:4,2556:4,2561:4,2569:4,2574:4,2711:4,2937:4,2966:3,3071:3,3226:3,3238:3,3241:3,3333:3,3373:3,3404:65539,3477:3,3481:3,3488:3,3501:3,3535:3,3541:3,3549:3,3569:3,3623:3,3961:3,4059:3,4175:65539,4182:3,4188:3,4191:3,4262:4,4304:65539,4405:3,4602:4,4787:3,4799:3,5350:3,5384:1048578,5439:1048579,5531:3,5542:3,5715:6,5752:1048579,5786:3,5857:3,6553:3,7253:4,7320:1048579,7625:3,7846:4,7861:4,8366:4,8381:4,8390:4,9018:4,9169:3,9173:3,9176:3,9193:3,9233:3,9236:3,9239:3,9246:1048579,9271:3,9276:3,9280:3,9297:3,9302:3,9396:3,9406:3,9471:3,9479:1048579,9493:3,9525:1048579,9543:3,9600:3,9615:3,9618:3,9625:3,9688:4,9692:4,9706:3,9877:3,9948:3,9968:1048579,9985:3,10038:3,10081:3,10086:3,10092:3,10095:3,10118:3,10153:3,10255:3,10332:4,10476:65538,10526:3,10579:3,10645:1048579,10716:3,10766:3,10778:3,10862:3,10875:3,10943:4,10953:4,10963:4,10966:4,10970:4,11280:16777219,11322:3,11497:1048579,11503:1048579,}},},"descriptif":{6:{r:6,w:{9516:6,}},21:{r:6,w:{6009:6,}},},"description":{1:{r:6,w:{33:6,}},2:{r:6,w:{361:6,}},6:{r:14,w:{753:3,880:4,919:4,8812:3,}},7:{r:4,w:{2019:4,}},17:{r:9,w:{754:3,755:3,757:3,}},21:{r:40,w:{348:6,4216:3,5433:3,6665:4,7135:4,7538:4,7930:4,8495:4,8791:4,9017:4,}},},"desquelles":{5:{r:3,w:{194:3,}},21:{r:3,w:{2135:3,}},},"dessin":{6:{r:3,w:{4509:3,}},},"dessinant":{7:{r:3,w:{2154:3,}},},"dessiner":{6:{r:12,w:{4626:4,4630:4,4634:4,}},7:{r:8,w:{2267:8,}},17:{r:16,w:{2229:4,2237:4,2245:4,2253:4,}},},"dessous":{6:{r:6,w:{6046:3,7557:3,}},9:{r:3,w:{239:3,}},13:{r:3,w:{265:3,}},17:{r:6,w:{222:3,369:3,}},21:{r:10,w:{3731:4,5291:3,9818:3,}},},"dessu":{21:{r:4,w:{3690:4,}},},"dessus":{6:{r:31,w:{156:4,197:4,227:5,5701:3,5830:3,6191:3,6304:3,6484:3,6655:3,}},16:{r:3,w:{125:3,}},21:{r:7,w:{3776:4,11393:3,}},},"destdaraset_mapinfo":{7:{r:4,w:{238:4,}},},"destdataset_mapinfo":{7:{r:3,w:{154:3,}},21:{r:3,w:{6512:3,}},},"destinataire":{6:{r:5,w:{9655:5,}},},"destinataires":{6:{r:7,w:{9432:3,9883:4,}},21:{r:3,w:{5938:3,}},},"destination":{6:{r:3,w:{258:3,}},7:{r:77,w:{47:5,186:3,399:4,769:4,949:4,1240:4,1284:4,1355:5,1364:5,1396:4,1410:4,1465:3,1539:4,1664:4,1740:4,1776:4,1786:4,1975:4,2386:4,}},21:{r:95,w:{3842:3,6402:3,6544:3,6745:4,6794:3,6799:3,6851:3,6967:3,7248:4,7293:4,7768:4,8070:4,8158:3,8166:3,8203:4,8217:4,8247:4,8267:4,8290:3,8361:5,8491:4,8560:4,8600:4,8610:4,8751:4,9129:4,}},},"destiné":{6:{r:4,w:{1395:4,}},21:{r:8,w:{4442:4,4598:4,}},},"destinés":{6:{r:3,w:{1839:3,}},8:{r:3,w:{519:3,}},},"deux":{4:{r:7,w:{314:4,1249:3,}},5:{r:9,w:{36:3,298:3,975:3,}},6:{r:9,w:{66:3,1747:3,8583:3,}},7:{r:7,w:{148:3,940:4,}},8:{r:9,w:{252:3,566:3,583:3,}},9:{r:6,w:{121:3,261:3,}},11:{r:10,w:{792:3,820:3,836:4,}},14:{r:3,w:{904:3,}},15:{r:4,w:{158:4,}},17:{r:3,w:{120:3,}},21:{r:50,w:{557:3,815:3,1877:3,1934:3,1994:3,2811:3,3563:3,6506:3,6958:3,9422:3,9700:3,9840:3,10513:3,10541:3,10557:4,10944:4,}},},"deuxième":{6:{r:6,w:{1768:3,7021:3,}},17:{r:15,w:{354:3,880:3,900:3,917:3,974:3,}},},"devant":{6:{r:6,w:{1678:3,5296:3,}},9:{r:3,w:{93:3,}},21:{r:3,w:{9672:3,}},},"devez":{5:{r:3,w:{972:3,}},17:{r:6,w:{430:3,1066:3,}},21:{r:3,w:{2808:3,}},},"devraient":{7:{r:3,w:{1489:3,}},21:{r:3,w:{8314:3,}},},"devriez":{5:{r:3,w:{909:3,}},21:{r:3,w:{2745:3,}},},"devront":{5:{r:3,w:{1266:3,}},21:{r:3,w:{3109:3,}},},"diagramme":{16:{r:3,w:{121:3,}},21:{r:3,w:{11389:3,}},},"difficultés":{21:{r:3,w:{681:3,}},},"diffère":{5:{r:3,w:{89:3,}},6:{r:3,w:{6517:3,}},21:{r:3,w:{2047:3,}},},"différent":{6:{r:4,w:{4590:4,}},21:{r:3,w:{588:3,}},},"différents":{4:{r:3,w:{475:3,}},6:{r:3,w:{1749:3,}},8:{r:3,w:{201:3,}},13:{r:3,w:{274:3,}},21:{r:9,w:{861:3,4746:3,9360:3,}},},"dimanche":{13:{r:3,w:{112:3,}},21:{r:3,w:{11599:3,}},},"dir":{2:{r:6,w:{363:6,}},},"dir_export":{11:{r:3,w:{847:3,}},21:{r:3,w:{10568:3,}},},"dire":{2:{r:3,w:{710:3,}},3:{r:3,w:{55:3,}},6:{r:3,w:{5080:3,}},13:{r:3,w:{797:3,}},21:{r:7,w:{711:3,1854:4,}},},"directement":{4:{r:4,w:{901:4,}},5:{r:10,w:{59:4,523:3,1424:3,}},6:{r:29,w:{150:4,763:3,5093:3,5167:4,5319:3,7151:3,7459:3,7546:3,9906:3,}},7:{r:19,w:{1043:3,1880:5,2157:3,2351:4,2389:4,}},9:{r:3,w:{311:3,}},11:{r:6,w:{142:3,245:3,}},13:{r:6,w:{837:3,898:3,}},21:{r:65,w:{1318:4,2017:4,2364:3,3247:3,3674:4,4225:3,4604:4,4726:3,4758:3,4883:3,5193:3,5280:3,6325:3,7057:3,8664:3,9090:3,9132:4,9890:3,10221:3,10397:3,}},},"directory":{0:{r:4,w:{178:4,}},4:{r:3,w:{1760:3,}},5:{r:1257541,w:{65:4,77:4,497:4096,506:1048579,528:3,544:3,603:65539,614:3,683:4,828:3,847:3,1113:4096,1120:65539,1142:3,1162:3,1209:3,1287:3,1387:4096,1392:65539,1411:3,1421:3,1428:3,1438:3,1597:3,1624:3,}},6:{r:9,w:{8503:3,8676:3,9229:3,}},11:{r:6,w:{901:6,}},14:{r:6,w:{820:3,1002:3,}},18:{r:4,w:{177:4,}},21:{r:1245263,w:{178:4,2023:4,2035:4,2347:1048579,2369:3,2385:3,2448:65539,2459:3,2519:4,2664:3,2683:3,2955:65539,2974:3,2994:3,3053:3,3215:65539,3234:3,3244:3,3251:3,3261:3,3419:3,3446:3,5746:3,10621:6,}},},"disponibilité":{0:{r:4,w:{244:4,}},6:{r:6,w:{322:3,8943:3,}},18:{r:4,w:{243:4,}},21:{r:10,w:{244:4,3810:3,5469:3,}},},"disponible":{2:{r:3,w:{601:3,}},4:{r:7,w:{925:4,1610:3,}},6:{r:13,w:{940:4,8858:3,8966:3,9137:3,}},7:{r:25,w:{36:5,331:4,647:4,1123:4,1689:4,2031:4,}},8:{r:3,w:{476:3,}},11:{r:3,w:{964:3,}},15:{r:6,w:{57:3,383:3,}},16:{r:6,w:{97:3,176:3,}},21:{r:44,w:{5491:3,5660:3,6391:3,6677:4,7147:4,7550:4,7942:4,8803:4,10682:3,10841:3,11165:3,11365:3,11444:3,}},},"disponibles":{4:{r:10,w:{151:3,898:4,1590:3,}},5:{r:3,w:{1763:3,}},6:{r:9,w:{505:3,8783:3,9503:3,}},17:{r:65542,w:{205:65539,1382:3,}},21:{r:22,w:{1315:4,1786:3,1810:3,3973:3,4468:3,5404:3,5998:3,}},},"disposant":{5:{r:3,w:{1614:3,}},6:{r:3,w:{8047:3,}},13:{r:4,w:{952:4,}},14:{r:3,w:{365:3,}},21:{r:3,w:{3436:3,}},},"dispose":{0:{r:4,w:{188:4,}},3:{r:3,w:{31:3,}},6:{r:9,w:{7770:3,7800:3,7979:3,}},8:{r:6,w:{65:3,199:3,}},11:{r:3,w:{947:3,}},14:{r:9,w:{81:3,111:3,297:3,}},18:{r:4,w:{187:4,}},21:{r:16,w:{188:4,4712:3,9221:3,9358:3,10665:3,}},},"disposition":{0:{r:3,w:{36:3,}},4:{r:3,w:{1196:3,}},6:{r:3,w:{8591:3,}},7:{r:4,w:{227:4,}},14:{r:3,w:{916:3,}},18:{r:3,w:{39:3,}},21:{r:10,w:{36:3,1517:3,6585:4,}},},"disque":{11:{r:3,w:{797:3,}},21:{r:3,w:{10518:3,}},},"distinct":{6:{r:3,w:{6014:3,}},},"distinguer":{5:{r:3,w:{43:3,}},6:{r:6,w:{1545:3,6005:3,}},21:{r:6,w:{1720:3,2001:3,}},},"distribution":{4:{r:4,w:{820:4,}},21:{r:4,w:{1213:4,}},},"div":{17:{r:9,w:{2466:6,2470:3,}},},"dll":{15:{r:56,w:{232:8,236:8,240:8,244:8,247:8,262:8,265:8,}},21:{r:56,w:{11018:8,11022:8,11026:8,11030:8,11033:8,11048:8,11051:8,}},},"dn":{5:{r:8,w:{685:4,700:4,}},21:{r:8,w:{2521:4,2536:4,}},},"document":{17:{r:42,w:{473:3,477:3,494:3,498:3,859:3,862:3,865:3,905:3,912:3,919:3,1112:3,1116:3,1133:3,1137:3,}},},"documentation":{2:{r:3,w:{104:3,}},5:{r:4,w:{1750:4,}},16:{r:6,w:{90:3,164:3,}},17:{r:6,w:{1405:6,}},21:{r:6,w:{11358:3,11432:3,}},},"documents":{6:{r:8,w:{7747:4,7761:4,}},14:{r:8,w:{58:4,72:4,}},},"doit":{2:{r:9,w:{475:6,598:3,}},4:{r:14,w:{251:4,1132:3,1239:3,1389:4,}},5:{r:17,w:{250:3,354:3,381:3,855:4,1103:4,}},6:{r:52,w:{344:3,663:3,2071:3,2215:3,2353:3,2483:3,4821:3,6868:3,7926:3,7945:3,8017:3,8026:3,8459:3,9188:3,9209:3,9350:3,9840:4,}},7:{r:11,w:{627:4,1546:3,1669:4,}},8:{r:3,w:{32:3,}},11:{r:15,w:{228:3,315:3,529:3,817:3,933:3,}},13:{r:6,w:{24:3,1013:3,}},14:{r:15,w:{244:3,263:3,335:3,344:3,777:3,}},15:{r:6,w:{215:3,447:3,}},16:{r:4,w:{139:4,}},17:{r:15,w:{78:3,465:3,798:3,1104:3,1301:3,}},21:{r:79,w:{632:3,700:3,811:3,1450:3,1630:3,2215:3,2242:3,2691:4,2939:4,4127:3,5705:3,5726:3,5866:3,6441:3,7614:3,8368:4,9188:3,10381:3,10459:3,10538:3,10651:3,11001:3,11229:3,11407:4,11511:3,}},},"doivent":{6:{r:21,w:{5997:3,7835:3,8117:3,8520:8,9884:4,}},7:{r:4,w:{942:4,}},11:{r:3,w:{710:3,}},14:{r:14,w:{146:3,433:3,837:8,}},15:{r:7,w:{311:4,419:3,}},17:{r:4,w:{2025:4,}},21:{r:13,w:{2196:3,6960:3,11097:4,11201:3,}},},"domaine":{5:{r:68,w:{70:4,573:3,628:3,636:3,651:4,655:4,758:4,788:4,796:4,808:4,845:3,878:4,1168:3,1190:3,1357:3,1362:3,1465:3,1485:3,1595:3,1662:3,}},21:{r:65,w:{2028:4,2414:3,2472:3,2487:4,2491:4,2594:4,2624:4,2632:4,2644:4,2681:3,2714:4,3000:3,3022:3,3182:3,3187:3,3288:3,3308:3,3417:3,3484:3,}},},"domaines":{5:{r:131090,w:{514:3,601:65539,609:3,612:3,623:3,1585:65539,}},21:{r:131090,w:{2355:3,2446:65539,2454:3,2457:3,2468:3,3407:65539,}},},"domains":{13:{r:6,w:{456:6,}},},"donc":{2:{r:3,w:{244:3,}},6:{r:18,w:{1535:3,6527:3,7809:3,7836:3,7988:3,8018:3,}},7:{r:7,w:{1499:4,2198:3,}},9:{r:3,w:{268:3,}},13:{r:4,w:{964:4,}},14:{r:12,w:{120:3,147:3,306:3,336:3,}},15:{r:3,w:{492:3,}},21:{r:14,w:{3711:4,8324:4,9847:3,11274:3,}},},"donne":{17:{r:14,w:{484:3,1123:3,1854:4,1909:4,}},21:{r:3,w:{4741:3,}},},"donner":{6:{r:7,w:{7107:3,7317:4,}},7:{r:20,w:{306:4,612:4,1103:4,1646:4,2006:4,}},11:{r:3,w:{267:3,}},21:{r:34,w:{4839:3,5048:4,6653:4,7119:4,7521:4,7916:4,8473:4,8777:4,10419:3,}},},"donnnées":{4:{r:9,w:{332:3,353:3,362:3,}},},"donné":{6:{r:3,w:{7259:3,}},21:{r:3,w:{4987:3,}},},"donnée":{7:{r:8,w:{632:4,1674:4,}},},"données":{0:{r:8,w:{99:4,210:4,}},1:{r:6,w:{70:6,}},2:{r:28,w:{383:6,393:6,402:6,406:6,527:4,}},4:{r:15,w:{264:4,277:4,370:3,1477:4,}},5:{r:18,w:{53:4,235:3,282:3,869:4,1888:4,}},6:{r:57586,w:{282:3,2006:4,2122:4,2265:5,2403:5,3410:3,3442:4,5114:4096,5120:4098,5127:3,5139:3,5158:3,5162:3,5192:4,5203:4,5212:4,5236:3,5262:3,5273:3,5285:3,5309:4099,5340:4098,5346:4,5349:4,5360:3,5415:3,5429:3,5439:4099,5449:3,5486:3,5494:3,5501:4,5512:3,5562:4098,5575:3,5585:3,5598:4098,5604:4,5607:4,5624:3,5631:3,5684:3,5741:3,5755:3,5765:4099,5807:4,5824:3,5888:3,6069:4098,6074:4098,6087:3,6094:4098,6100:4,6103:4,6108:4,6121:3,6131:3,6173:3,6222:3,6236:3,6246:4098,6298:3,6346:3,6422:4098,6452:4,6455:4,6479:3,6573:3,6587:3,6597:4098,6649:3,6697:3,7019:3,7057:3,7876:3,8136:3,8355:3,8417:3,}},7:{r:49,w:{73:5,196:3,513:5,547:4,562:4,835:4,981:4,1059:4,1395:4,1404:4,1453:4,1599:4,}},11:{r:10,w:{101:3,806:3,1025:4,}},13:{r:7,w:{714:3,1057:4,}},14:{r:12,w:{194:3,452:3,669:3,731:3,}},15:{r:10,w:{77:3,174:4,470:3,}},17:{r:3,w:{808:3,}},18:{r:8,w:{102:4,209:4,}},21:{r:97,w:{99:4,210:4,385:6,1711:3,2011:4,2705:4,6426:3,6554:3,6999:3,7073:4,7444:4,7486:4,7809:3,7847:4,7862:4,8136:4,8173:3,8202:4,8211:4,8278:4,8422:4,10527:3,10745:4,10861:3,10960:4,11252:3,}},},"dont":{4:{r:4,w:{1468:4,}},6:{r:26,w:{5987:3,6028:3,6474:3,6785:3,6911:4,6932:4,7137:3,7617:3,}},7:{r:5,w:{1352:5,}},11:{r:3,w:{1086:3,}},13:{r:3,w:{706:3,}},21:{r:18,w:{1702:3,4716:3,4753:3,4869:3,5356:3,10806:3,}},},"dorénavant":{6:{r:3,w:{8399:3,}},14:{r:3,w:{713:3,}},},"dossier":{5:{r:4,w:{902:4,}},7:{r:4,w:{398:4,}},21:{r:4,w:{2738:4,}},},"dossiers":{17:{r:3,w:{2489:3,}},},"double":{6:{r:3,w:{8547:3,}},14:{r:3,w:{868:3,}},},"doublelistfield":{17:{r:16,w:{781:4,784:3,797:3,848:3,870:3,}},},"doublés":{6:{r:4,w:{8522:4,}},14:{r:4,w:{839:4,}},},"download":{2:{r:4,w:{21:4,}},4:{r:10,w:{1264:5,1662:5,}},8:{r:5,w:{484:5,}},15:{r:5,w:{388:5,}},16:{r:5,w:{107:5,}},21:{r:24,w:{514:4,1569:5,1893:5,11170:5,11375:5,}},},"dpt":{21:{r:7,w:{7030:4,7048:3,}},},"dpt2":{7:{r:3,w:{1031:3,}},},"dpts":{7:{r:4,w:{1247:4,}},},"droit":{6:{r:6,w:{9058:3,9143:3,}},7:{r:12,w:{1437:4,1506:4,1604:4,}},9:{r:3,w:{348:3,}},21:{r:21,w:{5581:3,5666:3,8260:4,8331:4,8427:4,9927:3,}},},"droite":{4:{r:4,w:{912:4,}},5:{r:6,w:{1235:3,1516:3,}},6:{r:22,w:{1168:4,1709:3,5248:3,5517:3,5789:3,6270:3,6621:3,}},17:{r:4,w:{2141:4,}},21:{r:13,w:{1329:4,3077:3,3339:3,4021:3,}},},"droits":{0:{r:11,w:{76:3,164:4,186:4,}},1:{r:6,w:{83:6,}},2:{r:3,w:{299:3,}},5:{r:24,w:{551:3,743:4,762:4,823:3,1617:3,1685:3,1853:4,}},6:{r:69654,w:{17:3,620:3,646:4096,653:65539,672:3,708:3,6536:3,6551:4,}},7:{r:20,w:{355:4,669:4,1143:4,1712:4,2076:4,}},11:{r:3,w:{280:3,}},18:{r:11,w:{79:3,163:4,185:4,}},21:{r:65615,w:{76:3,164:4,186:4,398:6,2181:3,2392:3,2579:4,2598:4,2659:3,3439:3,3502:3,3536:3,4087:3,4117:65539,4136:3,6703:4,7220:4,7576:4,7968:4,8532:4,8849:4,10432:3,}},},"dsubform":{6:{r:4,w:{1359:4,}},21:{r:16,w:{4421:4,4576:4,4618:4,4687:4,}},},"du":{0:{r:8,w:{235:4,245:4,}},1:{r:6,w:{166:6,}},2:{r:4173,w:{86:3,148:5,155:5,213:4098,251:3,330:3,426:6,434:6,444:6,447:6,471:6,504:4,506:4,513:4,517:4,714:5,722:5,}},3:{r:287309837,w:{2:268435456,11:16777218,16:1048578,42:3,121:1048578,218:4,}},4:{r:285483097,w:{2:268435456,7:16777218,12:3,26:5,31:5,36:5,177:4098,189:3,215:3,220:65538,385:65538,390:4098,395:3,529:3,616:4,765:3,975:3,980:65538,988:3,1036:3,1041:65538,1048:3,1057:3,1142:3,1175:3,1284:3,1316:3,1366:5,1552:3,1683:3,}},5:{r:82,w:{178:3,274:3,310:3,483:3,650:4,675:4,745:4,747:4,757:4,767:4,787:4,795:4,807:4,833:3,877:4,1189:3,1206:3,1361:3,1484:3,1492:3,1494:3,1569:3,1646:3,1661:3,}},6:{r:4592,w:{168:4,178:4,183:4,188:4,207:5,214:5,222:5,275:3,323:3,391:3,419:3,442:3,451:3,474:6,500:3,595:3,634:6,765:3,799:3,831:3,874:4,896:4,911:4,954:4,978:4,984:4,1000:4,1021:4,1046:3,1054:3,1095:3,1123:4,1177:4,1278:3,1311:3,1328:3,1345:3,1364:4,1563:3,1565:3,1812:3,1814:3,1843:3,1867:9,2009:3,2132:3,2268:3,2406:3,2542:3,2596:3,2626:3,2935:3,2968:3,3028:3,3047:3,3083:3,3086:3,3159:3,3178:3,3215:3,3218:3,3280:3,3325:3,3445:3,3473:3,3521:3,3542:3,3564:3,3566:3,3621:3,3645:3,3666:3,3675:3,3746:3,3796:3,3864:3,3891:3,3963:3,3990:3,4057:3,4103:3,4184:3,4228:3,4358:3,4519:3,4819:3,4985:3,5011:3,5257:3,5474:4,5905:4,6490:3,7045:3,7129:3,7183:4,7212:3,7218:3,7224:3,7284:3,7295:4,7485:4098,7591:3,8033:3,8084:4,8288:3,8311:3,8466:3,8618:3,8631:3,8733:3,8736:3,8788:3,8893:3,8898:3,8911:3,9025:3,9050:3,9112:3,9158:3,9207:3,9251:3,9396:3,9508:3,9593:6,9595:6,9613:6,9615:6,9633:6,9654:5,9677:6,9693:6,9711:6,9733:6,9757:6,9778:6,9799:6,9819:6,9888:4,9909:3,}},7:{r:4194445,w:{45:5,67:5,70:5,92:65539,213:4,274:3,287:65539,384:4,397:4,415:65539,516:65539,593:65539,716:65539,854:1048579,856:1048579,878:5,914:5,920:65539,996:4,1075:4,1084:65538,1200:3,1219:3,1222:3,1256:65538,1375:65539,1450:4,1627:65539,1662:4,1748:65539,1774:4,1842:1048579,1878:5,1885:65539,1957:4,1973:4,1987:65539,2109:65539,2347:4,2358:65539,}},8:{r:9,w:{68:3,102:3,355:3,}},9:{r:8,w:{146:4,168:4,}},11:{r:73774,w:{131:3,185:3,199:4099,343:3,539:3,557:65538,576:3,639:4098,645:3,671:3,830:4,871:4,877:4,915:3,950:3,}},13:{r:45,w:{63:3,65:3,77:3,79:3,86:3,98:3,100:3,106:3,193:3,202:3,228:3,230:3,544:6,787:3,}},14:{r:28,w:{351:3,402:4,602:3,625:3,783:3,943:3,956:3,1063:3,1066:3,}},15:{r:12,w:{85:3,377:3,413:3,455:3,}},17:{r:65666,w:{19:65539,252:3,289:3,292:3,324:3,327:3,530:3,533:3,566:4,569:4,605:4,608:4,669:3,672:3,675:3,722:3,764:3,767:3,824:3,946:3,1183:4,1195:4,1207:4,1210:4,1220:4,1263:4,1278:3,1347:3,1350:3,1479:3,1545:4,1551:4,1614:4,2394:3,2397:3,2431:3,2434:3,2452:3,2507:3,}},18:{r:8,w:{234:4,244:4,}},21:{r:3412602,w:{235:4,245:4,481:6,746:3,820:4,827:4,912:3,926:3,991:3,1163:3,1373:3,1381:1048579,1460:3,1496:3,1748:3,1870:4,1914:3,2146:3,2325:3,2511:4,2581:4,2583:4,2593:4,2603:4,2623:4,2631:4,2643:4,2669:3,2713:4,3021:3,3050:3,3186:3,3307:3,3315:3,3317:3,3392:3,3468:3,3483:3,3631:3,3655:3,3660:4,3681:4,3702:4,3717:4,3722:4,3764:4,3779:4,3811:3,3855:3,3896:3,3925:3,3947:3,3968:3,4062:3,4101:3,4204:3,4227:3,4234:3,4292:4,4310:3,4318:3,4345:3,4378:3,4407:3,4427:4,4515:4,4542:4,4548:4,4566:4,4587:4,4593:4,4616:4,4622:4,4651:4,4765:3,4811:3,4861:3,4913:3,4942:3,4948:3,4954:3,5012:3,5023:4,5219:4098,5309:3,5330:3,5409:3,5549:3,5573:3,5635:3,5675:3,5724:3,5767:3,6086:6,6088:6,6106:6,6108:6,6126:6,6148:6,6162:6,6178:6,6195:6,6217:6,6240:6,6259:6,6279:6,6299:6,6328:3,6400:3,6420:3,6423:3,6450:65539,6571:4,6617:3,6634:65539,6732:4,6755:65539,6797:3,6893:3,6928:3,6938:65539,7014:3,7100:65539,7206:4,7266:65539,7341:3,7365:65539,7441:4,7465:4,7502:65539,7619:3,7699:4,7738:65539,7816:65539,7897:65539,8019:65539,8180:65539,8275:4,8454:65539,8489:4,8572:65539,8598:4,8636:1048579,8662:3,8673:65539,8740:4,8758:65539,8886:65539,8979:4,9012:4,9086:3,9100:65539,9224:3,9261:3,9725:4,9747:4,10132:3,10210:3,10339:3,10350:65539,10450:3,10551:4,10592:4,10597:4,10635:3,10668:3,10869:3,11159:3,11195:3,11237:3,11550:3,11552:3,11564:3,11566:3,11573:3,11585:3,11587:3,11593:3,11680:3,11689:3,}},},"dufichier":{21:{r:4,w:{4575:4,}},},"duplique":{21:{r:8,w:{4667:4,4684:4,}},},"dupliquer":{7:{r:8,w:{1428:4,1442:4,}},21:{r:8,w:{8251:4,8265:4,}},},"durée":{6:{r:6,w:{9632:6,}},9:{r:7,w:{112:4,223:3,}},21:{r:13,w:{6125:6,9691:4,9802:3,}},},"dword":{6:{r:3,w:{8498:3,}},14:{r:3,w:{815:3,}},},"dynamique":{6:{r:4,w:{4529:4,}},},"dès":{6:{r:3,w:{8981:3,}},21:{r:3,w:{5506:3,}},},"début":{17:{r:3,w:{42:3,}},},"décider":{6:{r:3,w:{8853:3,}},},"décimal":{6:{r:4114,w:{1894:10,2797:4098,2813:3,2860:3,}},13:{r:7,w:{571:7,}},},"déclaration":{4:{r:16407,w:{176:4098,389:4098,394:3,443:3,447:4098,543:3,622:4098,960:3,1035:3,}},21:{r:11,w:{819:4,826:4,990:3,}},},"déclare":{21:{r:8,w:{7695:4,8975:4,}},},"déclarer":{4:{r:3,w:{504:3,}},21:{r:3,w:{890:3,}},},"déclaré":{21:{r:3,w:{790:3,}},},"déclarée":{17:{r:3,w:{75:3,}},},"déclenchement":{4:{r:6,w:{665:3,764:3,}},21:{r:6,w:{1062:3,1162:3,}},},"déclencher":{8:{r:3,w:{503:3,}},17:{r:3,w:{805:3,}},},"décline":{4:{r:3,w:{16:3,}},},"décompresser":{2:{r:3,w:{110:3,}},4:{r:3,w:{223:3,}},},"décompression":{4:{r:4,w:{244:4,}},},"décompressées":{7:{r:4,w:{1190:4,}},21:{r:5,w:{7196:5,}},},"décompressés":{6:{r:8,w:{312:3,7703:5,}},},"déconnecter":{3:{r:3,w:{104:3,}},},"décrit":{7:{r:3,w:{1920:3,}},21:{r:3,w:{8708:3,}},},"décrite":{6:{r:3,w:{4661:3,}},},"décrits":{21:{r:3,w:{4805:3,}},},"dédiés":{5:{r:3,w:{378:3,}},21:{r:3,w:{2239:3,}},},"défaut":{4:{r:3,w:{377:3,}},6:{r:4202,w:{1250:4,1264:4098,1273:3,1363:4,1439:3,1454:3,1474:3,1498:3,1521:3,1553:3,1576:3,1952:3,2154:3,2290:3,2536:3,2625:3,2694:3,2764:3,2834:3,3322:3,3644:3,3769:3,3887:3,3986:3,4099:3,4207:3,4442:4,4558:4,4652:3,4674:3,4689:3,8087:4,8308:3,8439:3,}},7:{r:38,w:{147:3,377:4,406:4,553:4,691:4,708:4,1234:4,1475:3,1734:4,2098:4,}},11:{r:9,w:{112:3,595:3,634:3,}},13:{r:26,w:{915:3,940:4,981:3,1026:4,1034:4,1046:4,1061:4,}},14:{r:6,w:{622:3,757:3,}},17:{r:10,w:{174:3,730:3,1214:4,}},21:{r:81,w:{784:3,932:3,4340:3,4426:4,4490:4,4495:4,4569:4,4612:4,4625:4,4647:4,6505:3,6725:4,7242:4,7598:4,7853:4,7990:4,8007:4,8300:3,8554:4,8871:4,10178:3,10191:3,}},},"défini":{3:{r:3,w:{23:3,}},5:{r:3,w:{1601:3,}},6:{r:24,w:{347:3,4466:4,4470:4,6845:3,7298:4,7515:3,8955:3,}},7:{r:5,w:{78:5,}},11:{r:3,w:{1090:3,}},21:{r:26,w:{3423:3,3705:4,3883:3,5026:4,5249:3,5481:3,6431:3,10810:3,}},},"définie":{6:{r:21,w:{804:4,4311:3,4492:4,4538:4,5693:3,8980:3,}},11:{r:3,w:{110:3,}},21:{r:6,w:{5505:3,10189:3,}},},"définies":{6:{r:7,w:{741:3,9862:4,}},7:{r:4,w:{709:4,}},21:{r:7,w:{4200:3,8008:4,}},},"définir":{2:{r:3,w:{343:3,}},4:{r:18,w:{399:3,422:3,429:3,661:3,752:3,1312:3,}},5:{r:11,w:{186:3,719:4,732:4,}},6:{r:93,w:{2545:3,2687:3,2767:3,2837:3,2924:3,2951:3,3318:3,3640:3,3672:3,3765:3,3793:3,3883:3,3982:3,4095:3,4302:3,4645:3,5544:3,5833:3,5862:3,5926:3,6011:3,6307:3,6330:3,6382:3,6658:3,6681:3,6733:3,6852:3,7134:3,9283:3,9487:3,}},7:{r:4,w:{1942:4,}},11:{r:18,w:{216:3,373:3,580:3,684:3,723:3,1052:3,}},13:{r:3,w:{907:3,}},17:{r:7,w:{1372:3,2032:4,}},21:{r:33,w:{1058:3,2127:3,2555:4,2568:4,4866:3,5799:3,5978:3,8730:4,10366:3,10772:3,}},},"définis":{5:{r:3,w:{522:3,}},6:{r:6,w:{373:3,5298:3,}},11:{r:3,w:{666:3,}},21:{r:10,w:{749:3,2363:3,4510:4,}},},"définissant":{4:{r:3,w:{1727:3,}},6:{r:18,w:{2062:3,2206:3,2344:3,2474:3,9427:3,9480:3,}},7:{r:4,w:{2262:4,}},11:{r:3,w:{614:3,}},21:{r:13,w:{5933:3,5973:3,9001:4,10159:3,}},},"définit":{6:{r:88,w:{319:3,2027:3,2150:3,2164:3,2286:3,2300:3,2422:3,2430:3,2532:3,2614:3,2696:3,2760:3,2830:3,3044:3,3175:3,3286:3,3462:3,3539:3,4203:3,4219:3,4378:3,4390:3,4415:3,4975:3,5008:3,5017:3,5067:3,7159:3,7353:4,}},11:{r:3,w:{182:3,}},17:{r:6,w:{170:3,191:3,}},21:{r:13,w:{1150:3,4891:3,5084:4,10129:3,}},},"définition":{6:{r:131116,w:{1208:4,1862:3,4800:3,5471:3,5800:3,5869:4,6281:3,6632:3,7044:3,9269:3,9450:3,9491:3,9496:65539,9901:65539,}},7:{r:4,w:{2242:4,}},13:{r:1048579,w:{15:1048579,}},21:{r:1179663,w:{5785:3,5982:3,5991:65539,6320:65539,11502:1048579,}},},"définitive":{8:{r:10,w:{235:3,263:4,285:3,}},21:{r:10,w:{9405:3,9433:4,9450:3,}},},"définitivement":{8:{r:6,w:{405:3,448:3,}},21:{r:6,w:{9511:3,9557:3,}},},"déjà":{2:{r:9,w:{303:3,482:6,}},4:{r:24,w:{886:4,1378:4,1395:4,1443:4,1472:4,1503:4,}},6:{r:5,w:{210:5,}},21:{r:20,w:{577:3,1303:4,1636:3,1682:3,1706:3,3795:4,}},},"délais":{11:{r:3,w:{160:3,}},21:{r:3,w:{10110:3,}},},"délivré":{4:{r:3,w:{1146:3,}},11:{r:3,w:{543:3,}},21:{r:3,w:{1464:3,}},},"démarrage":{4:{r:3,w:{170:3,}},},"démarrer":{4:{r:6,w:{103:3,109:3,}},21:{r:3,w:{736:3,}},},"démarré":{4:{r:3,w:{164:3,}},},"département":{7:{r:4,w:{735:4,}},21:{r:4,w:{8038:4,}},},"départements":{7:{r:16,w:{434:4,1246:4,1655:4,1767:4,}},21:{r:32,w:{6661:4,6774:4,7128:4,7254:4,7285:4,7925:4,8482:4,8591:4,}},},"dépend":{5:{r:3,w:{1772:3,}},13:{r:3,w:{227:3,}},},"dépendances":{7:{r:8,w:{975:4,1157:4,}},21:{r:7,w:{6993:3,7163:4,}},},"dépendants":{7:{r:3,w:{1035:3,}},},"déplacer":{11:{r:3,w:{790:3,}},21:{r:3,w:{10511:3,}},},"déposés":{11:{r:3,w:{1068:3,}},21:{r:3,w:{10788:3,}},},"dépréciée":{16:{r:3,w:{84:3,}},21:{r:3,w:{11352:3,}},},"dépublier":{7:{r:8,w:{1066:4,1500:4,}},21:{r:12,w:{7080:4,7437:4,8325:4,}},},"dépublié":{7:{r:5,w:{89:5,}},21:{r:3,w:{6443:3,}},},"dépôt":{6:{r:4144,w:{8814:4096,8919:3,8953:3,8993:3,8997:3,9044:3,9069:3,9078:3,9098:3,9107:3,9136:3,9149:3,9155:3,9166:3,9183:3,9193:3,9204:3,}},21:{r:45,w:{5446:3,5479:3,5518:3,5522:3,5567:3,5592:3,5601:3,5621:3,5630:3,5659:3,5672:3,5683:3,5700:3,5710:3,5721:3,}},},"dépôts":{5:{r:6,w:{424:3,472:3,}},6:{r:1114123,w:{8818:1048579,8916:65538,9007:3,9020:3,}},21:{r:1048591,w:{2285:3,2318:3,5440:1048579,5532:3,5544:3,}},},"déroulante":{6:{r:12341,w:{1914:10,1971:4098,1990:3,2086:3,2230:4098,2249:3,2327:3,3372:4098,3393:3,3426:3,4165:3,5151:4,5334:3,5820:3,6294:3,6645:3,}},9:{r:3,w:{86:3,}},11:{r:3,w:{287:3,}},13:{r:7,w:{591:7,}},21:{r:6,w:{936:3,9665:3,}},},"déroule":{2:{r:3,w:{133:3,}},},"déroulement":{6:{r:6,w:{8895:3,9310:3,}},7:{r:3,w:{273:3,}},21:{r:9,w:{987:3,5826:3,6616:3,}},},"déroulée":{2:{r:3,w:{585:3,}},},"désactiver":{11:{r:6,w:{338:6,}},21:{r:6,w:{10445:6,}},},"désactivés":{6:{r:18,w:{472:6,632:6,4215:3,7622:3,}},21:{r:6,w:{4099:3,5361:3,}},},"désigne":{1:{r:6,w:{102:6,}},21:{r:6,w:{417:6,}},},"désiré":{4:{r:3,w:{537:3,}},5:{r:3,w:{1327:3,}},6:{r:16,w:{1155:4,5781:3,6262:3,6613:3,7553:3,}},7:{r:20,w:{234:4,347:4,662:4,1138:4,1705:4,}},21:{r:9,w:{921:3,3152:3,5287:3,}},},"désirée":{6:{r:3,w:{7156:3,}},21:{r:7,w:{4888:3,7719:4,}},},"désirées":{6:{r:8,w:{8064:4,8070:4,}},14:{r:8,w:{382:4,388:4,}},},"désirés":{5:{r:9,w:{1247:3,1530:3,1906:3,}},6:{r:3,w:{621:3,}},7:{r:4,w:{1540:4,}},21:{r:14,w:{3089:3,3353:3,4088:3,8362:5,}},},"désormais":{2:{r:3,w:{599:3,}},4:{r:3,w:{1589:3,}},5:{r:6,w:{488:3,1354:3,}},6:{r:3,w:{7081:3,}},21:{r:9,w:{1785:3,2330:3,3179:3,}},},"détail":{9:{r:3,w:{310:3,}},21:{r:3,w:{9889:3,}},},"détaillée":{21:{r:3,w:{642:3,}},},"détaillées":{17:{r:3,w:{220:3,}},21:{r:3,w:{9850:3,}},},"détaillés":{9:{r:3,w:{271:3,}},},"détecte":{6:{r:11,w:{286:3,7677:5,8985:3,}},21:{r:3,w:{5510:3,}},},"détecter":{21:{r:4,w:{7410:4,}},},"déterminant":{11:{r:3,w:{158:3,}},21:{r:3,w:{10108:3,}},},"détermine":{6:{r:6,w:{4209:3,5291:3,}},},"déterminé":{21:{r:3,w:{3650:3,}},},"développement":{5:{r:3,w:{1690:3,}},7:{r:8,w:{917:5,1203:3,}},21:{r:7,w:{6931:3,7209:4,}},},"développeurs":{0:{r:4,w:{296:4,}},18:{r:4,w:{295:4,}},21:{r:4,w:{296:4,}},},"e":{0:{r:4,w:{238:4,}},2:{r:3,w:{40:3,}},5:{r:3,w:{152:3,}},6:{r:9,w:{8504:3,8677:3,9424:3,}},14:{r:6,w:{821:3,1003:3,}},18:{r:4,w:{237:4,}},21:{r:10,w:{238:4,531:3,2104:3,}},},"e-mail":{0:{r:4,w:{238:4,}},2:{r:3,w:{40:3,}},5:{r:3,w:{152:3,}},6:{r:3,w:{9424:3,}},18:{r:4,w:{237:4,}},21:{r:10,w:{238:4,531:3,2104:3,}},},"echelle":{6:{r:4,w:{4560:4,}},},"ecrire":{6:{r:4,w:{903:4,}},21:{r:4,w:{4284:4,}},},"edans":{16:{r:3,w:{177:3,}},21:{r:3,w:{11445:3,}},},"edigeo":{6:{r:8,w:{294:3,7685:5,}},21:{r:11,w:{7344:3,7422:4,7530:4,}},},"edigeo2mapinfo_upload":{21:{r:4,w:{7494:4,}},},"edigéo":{21:{r:4,w:{7384:4,}},},"editer":{2:{r:3,w:{324:3,}},7:{r:4,w:{232:4,}},21:{r:18,w:{4580:4,4737:6,8933:8,}},},"edition":{1:{r:6,w:{153:6,}},6:{r:7,w:{1636:3,4619:4,}},21:{r:6,w:{468:6,}},},"editor":{6:{r:3,w:{8478:3,}},14:{r:3,w:{795:3,}},},"effectue":{5:{r:6,w:{1423:6,}},21:{r:6,w:{3246:6,}},},"effectuer":{5:{r:6,w:{1192:3,1487:3,}},6:{r:3,w:{6821:3,}},21:{r:6,w:{3024:3,3310:3,}},},"effectuée":{5:{r:6,w:{1176:3,1471:3,}},21:{r:6,w:{3008:3,3294:3,}},},"effet":{15:{r:3,w:{461:3,}},21:{r:3,w:{11243:3,}},},"egalité":{6:{r:4,w:{6890:4,}},},"elle":{6:{r:15,w:{820:4,1125:4,1171:4,8030:3,}},14:{r:3,w:{348:3,}},17:{r:15,w:{107:3,118:3,169:3,179:3,187:3,}},},"elles":{6:{r:3,w:{7903:3,}},14:{r:3,w:{221:3,}},},"email":{6:{r:4132,w:{9387:4096,9395:3,9653:5,9663:5,9671:5,9740:6,9748:6,9792:6,}},21:{r:24,w:{5908:3,5931:3,6224:6,6232:6,6273:6,}},},"email_notifications":{6:{r:9,w:{9650:5,9839:4,}},},"emailcontexts":{13:{r:6,w:{294:6,}},},"emailoptions":{13:{r:6,w:{300:6,}},},"emailtemplates":{13:{r:6,w:{306:6,}},},"emplacement":{4:{r:6,w:{1141:6,}},6:{r:7,w:{8220:4,8277:3,}},7:{r:14,w:{65:5,1023:6,1040:3,}},11:{r:6,w:{538:6,}},14:{r:7,w:{536:4,591:3,}},21:{r:18,w:{1459:6,6418:3,7040:6,7054:3,}},},"emprise":{7:{r:71,w:{509:5,557:8,622:4,699:8,736:4,742:8,841:8,1660:8,1772:8,1866:10,}},21:{r:69,w:{7805:3,7857:8,7926:4,7998:8,8039:4,8045:8,8067:4,8142:8,8487:8,8596:8,8654:6,}},},"empêchant":{7:{r:3,w:{198:3,}},21:{r:3,w:{6556:3,}},},"empêcher":{21:{r:3,w:{3869:3,}},},"en":{0:{r:16,w:{160:4,219:4,309:4,317:4,}},1:{r:6,w:{156:6,}},2:{r:9,w:{134:3,181:3,190:3,}},3:{r:10,w:{24:3,111:4,182:3,}},4:{r:70,w:{17:3,114:3,172:3,306:4,372:3,464:3,486:3,495:3,556:3,709:3,716:3,757:3,815:4,1008:3,1504:4,1523:4,1543:3,1565:3,1655:3,1725:3,1726:3,1735:3,}},5:{r:48,w:{162:3,239:3,300:3,312:3,326:3,401:6,405:6,836:3,1657:3,1728:4,1854:4,1875:4,1898:3,}},6:{r:41459,w:{397:3,431:3,448:3,520:3,538:3,601:3,682:3,796:3,1092:3,1150:4,1156:4,1198:4,1213:4,1227:4,1289:3,1481:3,1505:3,1686:3,1807:3,1836:3,1917:10,1923:10,1930:10,1935:10,1985:3,2039:3,2058:4,2061:3,2111:3,2170:3,2202:4,2205:3,2244:3,2306:3,2340:4,2343:3,2383:3,2436:3,2470:4,2473:3,2512:3,2702:3,2739:3,2775:3,2809:3,2845:3,2873:4098,2900:3,2959:3,2983:3,3090:3,3222:3,3249:4098,3263:3,3275:3,3346:3,3354:3,3482:3,3587:4098,3593:4098,3604:3,3616:3,3684:3,3697:3,3704:3,3719:4098,3740:3,3805:3,3824:3,3839:4098,3860:3,3900:3,3919:3,3936:4098,3959:3,3999:3,4020:3,4033:4098,4053:3,4112:3,4130:3,4158:3,4174:3,4224:3,4234:3,4290:3,4331:3,4408:3,4436:4,4602:4,4713:3,4846:3,4854:3,4903:3,5097:3,5226:4,5239:3,5245:3,5368:3,5384:3,5404:3,5514:3,5552:3,5669:3,5731:3,5934:3,5949:4,5952:3,6056:3,6195:3,6213:3,6390:3,6405:4,6408:3,6507:3,6564:3,6741:3,6756:4,6759:3,6772:4096,6776:4098,6789:3,6806:3,7615:3,7624:3,7638:3,7645:3,7793:3,7823:3,8039:3,8293:3,8756:3,8935:3,9009:6,9013:6,9021:3,9056:3,9089:3,9108:3,9141:3,9156:3,9163:3,9289:3,9295:3,9316:3,9426:3,9475:3,9479:3,9635:6,9656:5,9886:4,9922:3,}},7:{r:55,w:{40:5,112:4,118:4,449:4,957:4,1069:4,1283:4,1438:4,1609:4,1983:4,2153:3,2204:3,2232:4,2261:4,}},8:{r:27,w:{46:3,182:3,184:3,189:3,332:3,340:3,367:3,408:3,555:3,}},9:{r:13,w:{81:3,171:4,220:3,315:3,}},10:{r:3,w:{47:3,}},11:{r:39,w:{65:3,157:3,387:3,613:3,743:3,819:3,853:3,895:6,910:3,1056:6,1077:3,}},13:{r:51,w:{594:7,600:7,607:7,612:7,701:3,711:3,769:4,975:3,995:3,1054:4,1070:3,}},14:{r:15,w:{104:3,134:3,357:3,607:3,1086:3,}},15:{r:4,w:{27:4,}},16:{r:3,w:{133:3,}},17:{r:47,w:{28:3,41:3,423:3,434:3,954:5,1059:3,1070:3,1729:4,1747:4,1796:4,2138:4,2171:4,2217:4,}},18:{r:8,w:{159:4,218:4,}},21:{r:315,w:{160:4,219:4,309:4,317:4,471:6,678:3,720:3,740:3,850:3,872:3,881:3,947:3,1010:3,1106:3,1113:3,1155:3,1208:4,1261:4,1739:3,1761:3,1886:3,2114:3,2148:3,2162:3,2262:6,2266:6,2672:3,3479:3,3868:3,3902:3,3936:3,3988:3,4006:3,4018:3,4068:3,4146:3,4356:3,4589:4,5354:3,5461:3,5534:6,5538:6,5545:3,5579:3,5612:3,5631:3,5664:3,5673:3,5680:3,5805:3,5811:3,5832:3,5932:3,5968:3,5972:3,6128:6,6341:3,6395:3,6470:4,6476:4,6816:4,6828:4,6975:3,7385:4,7391:4,7639:3,7716:4,8261:4,8432:4,9000:4,9202:3,9341:3,9343:3,9348:3,9386:3,9514:3,9660:3,9750:4,9799:3,9894:3,10005:3,10074:3,10107:3,10158:3,10540:3,10574:3,10615:6,10630:3,10776:6,10797:3,11401:3,}},},"enabled":{6:{r:3,w:{8683:3,}},14:{r:3,w:{1009:3,}},},"enclenchent":{8:{r:3,w:{595:3,}},},"endroit":{7:{r:5,w:{898:5,}},21:{r:3,w:{6912:3,}},},"enfant":{6:{r:4120,w:{6815:4096,6818:3,6855:3,6882:3,6899:4,6907:4,6928:4,6983:3,}},},"enfants":{6:{r:3,w:{6959:3,}},},"enfin":{17:{r:3,w:{195:3,}},},"engine":{1:{r:12,w:{98:6,101:6,}},6:{r:3,w:{8491:3,}},14:{r:3,w:{808:3,}},21:{r:12,w:{413:6,416:6,}},},"engines":{4:{r:10,w:{248:4,437:6,}},21:{r:6,w:{798:6,}},},"enregistrements":{6:{r:8,w:{6910:4,6931:4,}},},"enregistrer":{7:{r:16,w:{240:4,585:4,1079:4,1618:4,}},21:{r:27,w:{6590:4,7084:4,7489:4,7721:3,7885:4,8441:4,9051:4,}},},"ensemble":{5:{r:6,w:{113:6,}},6:{r:6,w:{46:6,}},7:{r:8,w:{560:8,}},8:{r:12,w:{76:6,111:6,}},10:{r:6,w:{26:6,}},21:{r:44,w:{2070:6,3540:6,4798:6,7860:8,9232:6,9270:6,9984:6,}},},"ensuite":{4:{r:19,w:{787:3,856:4,966:3,1313:3,1676:3,1747:3,}},5:{r:16,w:{317:3,464:3,476:3,857:4,1244:3,}},6:{r:96,w:{239:3,320:3,345:3,385:3,408:3,570:3,600:3,698:3,1449:3,4220:3,4416:3,4505:3,4834:3,4976:3,5482:3,5504:3,5794:3,5834:3,5880:3,6275:3,6308:3,6338:3,6626:3,6659:3,6689:3,7193:3,8027:3,8148:3,8275:3,9126:3,9304:3,9445:3,}},7:{r:24,w:{1511:4,1592:4,2017:4,2221:4,2300:4,2398:4,}},9:{r:3,w:{155:3,}},11:{r:3,w:{296:3,}},14:{r:9,w:{345:3,464:3,589:3,}},17:{r:6,w:{70:3,168:3,}},21:{r:117,w:{812:3,976:3,1185:3,1273:4,1364:3,1907:3,2153:3,2320:3,2693:4,3084:3,3808:3,3884:3,3890:3,3913:3,4043:3,4067:3,4162:3,4923:3,5649:3,5820:3,6663:4,6686:4,7133:4,7536:4,7559:4,7928:4,7951:4,8336:4,8415:4,8493:4,8515:4,8789:4,9141:4,9734:3,}},},"entend":{4:{r:3,w:{628:3,}},8:{r:3,w:{8:3,}},21:{r:6,w:{1029:3,9164:3,}},},"entier":{6:{r:8215,w:{1896:10,2723:4098,2727:4098,2734:3,2743:3,2787:3,}},13:{r:7,w:{573:7,}},17:{r:5,w:{541:5,}},},"entité":{21:{r:8,w:{8246:8,}},},"entités":{7:{r:26,w:{1432:8,1859:10,1960:8,}},21:{r:30,w:{7406:8,8255:8,8647:6,8743:8,}},},"entrant":{6:{r:3,w:{4225:3,}},},"entre":{2:{r:3,w:{232:3,}},6:{r:7,w:{6872:3,6892:4,}},},"entreprise":{5:{r:4,w:{663:4,}},21:{r:4,w:{2499:4,}},},"entrer":{6:{r:3,w:{4743:3,}},7:{r:8,w:{549:4,2016:4,}},21:{r:31,w:{6662:4,6791:3,7132:4,7535:4,7849:4,7927:4,8492:4,8788:4,}},},"entrée":{5:{r:16,w:{693:8,708:8,}},7:{r:4,w:{165:4,}},21:{r:20,w:{2529:8,2544:8,6523:4,}},},"environ":{2:{r:3,w:{552:3,}},},"environnement":{6:{r:3,w:{7774:3,}},14:{r:3,w:{85:3,}},},"envoyant":{4:{r:3,w:{1009:3,}},},"envoyer":{4:{r:6,w:{1095:6,}},6:{r:7,w:{8908:3,9873:4,}},8:{r:3,w:{543:3,}},11:{r:9,w:{492:6,688:3,}},21:{r:6,w:{1416:6,}},},"envoyé":{4:{r:3,w:{1134:3,}},6:{r:3,w:{9407:3,}},8:{r:3,w:{562:3,}},11:{r:3,w:{531:3,}},21:{r:6,w:{1452:3,5916:3,}},},"envoyée":{6:{r:7,w:{4233:3,9858:4,}},},"envoyées":{17:{r:3,w:{165:3,}},},"envoyés":{8:{r:6,w:{572:3,612:3,}},},"epsg":{17:{r:11,w:{1531:3,1608:4,1631:4,}},},"erreur":{6:{r:3,w:{7824:3,}},8:{r:3,w:{185:3,}},9:{r:4,w:{172:4,}},14:{r:3,w:{135:3,}},21:{r:11,w:{3803:4,9344:3,9751:4,}},},"erreurs":{8:{r:3,w:{51:3,}},21:{r:3,w:{9207:3,}},},"es":{17:{r:4,w:{2022:4,}},21:{r:8,w:{821:4,828:4,}},},"esi":{6:{r:6,w:{6194:3,6305:3,}},},"espace":{11:{r:3,w:{325:3,}},21:{r:3,w:{10469:3,}},},"esri":{7:{r:3,w:{1901:3,}},21:{r:3,w:{8689:3,}},},"est":{0:{r:12,w:{15:3,44:6,82:3,}},1:{r:9,w:{24:3,171:6,}},2:{r:48,w:{180:3,243:3,302:3,310:3,493:6,567:3,584:6,611:3,620:3,632:3,645:3,664:6,707:3,}},4:{r:62,w:{50:3,363:3,459:3,549:3,673:3,838:4,844:4,855:4,935:3,991:3,1053:3,1181:3,1357:5,1411:4,1415:4,1521:4,1541:3,1609:3,}},5:{r:22,w:{17:3,202:3,339:3,509:3,850:3,1258:3,1812:4,}},6:{r:344,w:{185:4,217:5,446:3,599:3,809:4,939:4,1112:3,1142:4,1184:4,1305:3,1421:3,1493:3,1511:3,1522:3,1577:3,1587:3,1763:3,1805:3,1980:3,2037:3,2048:3,2107:3,2168:3,2192:3,2240:3,2304:3,2330:3,2379:3,2434:3,2460:3,2508:3,2549:3,2585:3,2657:3,2700:3,2735:3,2771:3,2805:3,2841:3,2888:3,2955:3,3013:3,3054:3,3144:3,3185:3,3265:3,3334:3,3384:3,3480:3,3509:3,3549:3,3606:3,3682:3,3730:3,3803:3,3850:3,3898:3,3949:3,3997:3,4043:3,4110:3,4154:3,4168:3,4322:3,4404:3,4465:4,4487:4,4660:3,5052:3,5084:3,5092:3,5237:3,5548:3,5679:3,5930:3,5967:3,6167:3,6386:3,6429:3,6737:3,6847:3,6914:4,6935:4,6964:3,7007:3,7025:3,7291:4,7313:4,7373:4,7390:3,7404:3,7458:3,7470:3,7543:3,7636:3,7661:3,7783:3,8282:3,8579:3,8713:3,8920:3,8941:6,8964:3,8972:3,9082:3,9087:3,9303:3,9335:3,9456:3,}},7:{r:115,w:{54:5,77:5,88:5,143:3,388:8,401:4,443:4,448:4,464:4,634:4,813:3,865:5,869:5,1016:3,1036:3,1204:3,1241:4,1249:4,1327:3,1356:5,1371:5,1472:3,1571:3,1676:4,1741:4,1829:3,2129:6,2197:3,}},8:{r:18,w:{73:3,181:3,230:3,348:3,368:3,561:3,}},9:{r:9,w:{58:3,284:3,303:3,}},11:{r:33,w:{109:3,121:3,236:3,259:3,290:3,429:3,578:3,698:3,787:3,1089:3,1093:3,}},13:{r:33,w:{259:3,687:3,709:3,729:4,775:3,977:3,997:3,1008:3,1035:4,1058:4,}},14:{r:12,w:{94:3,596:3,900:3,1043:3,}},15:{r:10,w:{11:3,270:4,491:3,}},16:{r:15,w:{19:3,73:3,83:3,96:3,175:3,}},17:{r:102,w:{26:3,74:3,342:3,448:3,962:3,1087:3,1593:4,1598:4,1611:4,1720:4,1787:4,1820:8,1838:8,1862:8,1877:8,1893:8,1916:8,1934:8,1952:8,}},18:{r:12,w:{18:3,47:6,85:3,}},21:{r:346,w:{15:3,44:6,82:3,339:3,486:6,570:3,576:3,583:3,592:3,613:3,641:3,650:3,709:6,845:3,929:3,939:3,1003:3,1070:3,1231:4,1237:4,1272:4,1337:3,1502:3,1653:3,1657:3,1737:3,1950:3,1975:3,2175:3,2350:3,2686:3,3046:3,3101:3,3685:4,3725:4,3767:4,3786:4,3860:3,3882:3,4066:3,4372:3,4457:3,5019:4,5044:4,5104:4,5124:3,5138:3,5192:3,5204:3,5277:3,5364:3,5447:3,5467:6,5489:3,5497:3,5605:3,5610:3,5819:3,5851:3,5951:3,6407:3,6430:3,6501:3,6736:8,6747:4,6810:4,6815:4,6827:4,6841:4,6880:3,6884:3,7033:3,7050:3,7210:4,7249:4,7255:4,7633:3,8114:3,8297:3,8394:3,8561:4,8906:6,9229:3,9340:3,9400:3,9637:3,9863:3,9882:3,10188:3,10200:3,10388:3,10411:3,10508:3,10809:3,10813:3,11056:4,11273:3,11287:3,11341:3,11351:3,11364:3,11443:3,}},},"est-à":{2:{r:3,w:{707:3,}},},"est-à-":{2:{r:6,w:{707:6,}},},"et":{0:{r:31,w:{31:3,51:3,67:3,72:3,132:3,169:4,182:4,195:4,211:4,}},1:{r:6,w:{140:6,}},2:{r:16777250,w:{35:3,69:3,76:3,143:5,164:16777218,202:3,238:3,287:3,297:3,667:3,686:3,}},3:{r:19,w:{36:3,75:3,88:3,142:3,184:3,201:4,}},4:{r:89,w:{73:3,90:3,165:3,238:3,317:4,405:3,489:3,525:3,566:3,659:3,715:3,751:3,780:3,885:4,1216:3,1304:3,1330:3,1401:4,1414:4,1431:4,1490:4,1506:4,1545:3,1641:4,1679:3,1733:3,1752:3,}},5:{r:2097249,w:{31:3,71:4,101:1048579,125:3,156:3,166:3,221:3,407:3,453:3,470:3,500:1048579,515:3,539:3,578:3,620:3,648:4,779:4,812:3,1157:3,1373:3,1417:3,1456:3,1707:4,1735:4,1790:4,1820:4,1830:4,1871:4,1883:4,}},6:{r:1192560,w:{52:3,78:3,171:4,329:3,439:3,497:3,512:3,558:3,613:3,619:3,727:3,760:3,768:3,777:3,787:3,813:4,841:3,884:4,923:4,965:4,970:4,1031:65539,1088:3,1179:4,1197:4,1221:4,1238:4,1254:4,1325:3,1330:3,1340:3,1441:3,1475:3,1532:3,1595:3,1670:3,1774:4099,1791:3,1829:3,1891:10,2014:3,2026:3,2066:3,2080:3,2137:3,2149:3,2184:3,2210:3,2273:3,2285:3,2321:3,2348:3,2411:3,2452:3,2478:3,2521:3,2544:3,2562:3,2601:3,2613:3,2618:3,2631:3,2647:4098,2667:3,2674:3,2690:3,2712:3,2748:3,2759:3,2783:3,2818:3,2829:3,2856:3,2910:3,2939:3,2964:3,2978:3,3033:3,3049:3,3067:3,3105:3,3164:3,3180:3,3198:3,3237:3,3285:3,3329:3,3348:3,3402:3,3421:3,3450:3,3461:3,3526:3,3544:3,3575:3,3626:3,3651:3,3677:3,3699:3,3751:3,3772:3,3798:3,3818:3,3869:3,3888:3,3893:3,3914:3,3968:3,3987:3,3992:3,4015:3,4062:3,4100:3,4105:3,4125:3,4189:3,4208:3,4230:3,4268:4098,4377:3,4393:3,4399:3,4476:4,4497:4,4500:4,4510:3,4553:4,4593:4,4750:3,4850:3,4908:3,4915:3,4945:3,4964:3,5013:3,5066:3,5133:3,5364:3,5406:3,5430:3,5543:3,5712:3,5733:3,5756:3,5858:3,5925:3,5982:3,6139:3,6153:3,6197:3,6215:3,6237:3,6326:3,6381:3,6438:3,6566:3,6588:3,6677:3,6732:3,6812:3,6833:3,6896:4,7198:3,7222:3,7282:3,7338:4,7375:4,7411:3,7663:3,7712:65538,7720:3,7816:3,7832:3,7877:3,7887:3,7939:3,8145:6,8208:4,8333:3,8356:3,8462:3,8641:3,8655:3,8704:3,8754:3,8807:3,8828:1048578,8886:3,9011:3,9118:3,9133:3,9371:3,9478:3,9485:3,9546:6,9569:6,9847:4,}},7:{r:178,w:{59:5,85:5,114:4,153:3,183:3,204:3,276:3,319:4,334:4,361:4,391:4,427:4,445:4,543:4,578:4,675:4,728:4,757:4,763:4,831:4,867:5,947:4,973:4,1033:3,1155:4,1175:4,1269:4,1398:4,1420:4,1535:4,1611:4,1661:4,1692:4,1718:4,1760:4,1773:4,1783:4,2020:4,2034:4,2063:4,2082:4,2279:4,2330:4,2370:4,2387:4,}},8:{r:36,w:{19:3,52:3,82:3,145:3,167:3,357:3,392:3,398:3,501:3,591:3,617:3,623:3,}},9:{r:36,w:{16:3,31:3,38:3,56:3,67:3,129:3,186:3,256:3,270:3,297:3,342:3,375:3,}},10:{r:3,w:{35:3,}},11:{r:287313985,w:{2:268435456,9:16777219,38:3,56:3,86:3,91:3,129:3,153:3,202:4099,323:3,421:3,438:3,656:3,674:3,704:3,755:1048578,764:3,781:3,798:3,861:3,925:1048579,975:3,988:3,}},13:{r:1048615,w:{132:3,219:1048578,568:7,733:4,738:4,757:4,784:3,790:3,874:3,916:3,1010:3,}},14:{r:268505139,w:{7:268435456,16:4096,23:65538,31:3,127:3,143:3,195:3,205:3,257:3,461:6,524:4,647:3,670:3,780:3,966:3,981:3,1034:3,1084:3,}},15:{r:31,w:{7:3,18:5,81:3,100:3,113:3,162:4,183:4,411:3,489:3,}},16:{r:3,w:{171:3,}},17:{r:40,w:{31:3,37:3,40:3,43:3,132:3,194:3,394:3,1012:3,1154:3,1300:3,1370:3,1762:4,2488:3,}},18:{r:31,w:{34:3,54:3,70:3,75:3,121:3,168:4,181:4,194:4,210:4,}},21:{r:21168876,w:{31:3,51:3,67:3,72:3,132:3,169:4,182:4,195:4,211:4,455:6,526:3,562:3,668:3,718:3,791:3,796:3,875:3,916:3,960:3,1056:3,1112:3,1149:3,1177:3,1302:4,1537:3,1604:3,1642:3,1656:3,1670:3,1741:3,1806:3,1841:4,1863:4,1869:4,1910:3,1946:3,1959:5,1989:3,2029:4,2058:1048579,2082:3,2108:3,2126:3,2183:3,2268:3,2308:3,2316:3,2341:1048579,2356:3,2380:3,2419:3,2465:3,2615:4,2648:3,2989:3,3198:3,3240:3,3279:3,3546:3,3575:3,3646:3,3677:4,3709:4,3749:4,3815:3,3944:3,3965:3,3980:3,4031:3,4080:3,4086:3,4186:3,4222:3,4244:3,4278:4,4302:65539,4392:3,4402:3,4696:4,4724:3,4796:3,4928:3,4952:3,5010:3,5069:4,5106:4,5145:3,5372:3,5428:3,5536:3,5641:3,5656:3,5884:3,5971:3,5976:3,6039:6,6062:6,6412:3,6438:3,6472:4,6511:3,6541:3,6562:3,6619:3,6666:4,6680:4,6691:4,6709:4,6739:4,6767:4,6812:4,6882:3,6965:3,6991:3,7136:4,7150:4,7161:4,7181:4,7226:4,7278:4,7354:3,7387:4,7480:4,7539:4,7553:4,7564:4,7582:4,7629:3,7659:3,7683:4,7705:4,7750:4,7765:4,7843:4,7878:4,7931:4,7945:4,7956:4,7974:4,8031:4,8060:4,8066:4,8132:4,8205:4,8225:4,8357:5,8434:4,8488:4,8496:4,8509:4,8520:4,8538:4,8584:4,8597:4,8607:4,8792:4,8806:4,8835:4,8855:4,8940:4,8963:4,8985:4,9004:4,9015:4,9069:3,9112:4,9130:4,9175:3,9208:3,9238:3,9304:3,9326:3,9498:3,9504:3,9595:3,9610:3,9617:3,9635:3,9646:3,9708:3,9765:3,9835:3,9849:3,9876:3,9921:3,9954:3,9993:3,10014:16777219,10043:3,10065:3,10090:3,10094:3,10103:3,10208:3,10241:3,10252:3,10258:3,10265:3,10293:3,10353:65539,10467:3,10479:65538,10485:3,10502:3,10519:3,10582:3,10643:1048579,10694:5,10708:3,10823:1048579,10865:3,10885:5,10899:3,10948:4,10969:4,11193:3,11271:3,11439:3,11619:3,}},},"etat":{8:{r:3,w:{170:3,}},9:{r:4,w:{167:4,}},21:{r:7,w:{9329:3,9746:4,}},},"exact":{21:{r:3,w:{998:3,}},},"excel":{9:{r:3,w:{55:3,}},21:{r:3,w:{9634:3,}},},"exception":{2:{r:3,w:{679:3,}},},"exclure":{11:{r:3,w:{607:3,}},},"exe":{2:{r:3,w:{95:3,}},4:{r:3,w:{532:3,}},15:{r:41,w:{250:8,253:8,256:8,259:8,433:3,446:6,}},21:{r:47,w:{915:6,11036:8,11039:8,11042:8,11045:8,11215:3,11228:6,}},},"execution_date":{6:{r:13,w:{9566:6,9578:7,}},21:{r:19,w:{6059:6,6071:7,6156:6,}},},"exemple":{4:{r:9,w:{572:3,712:3,953:3,}},5:{r:10,w:{270:3,294:3,661:4,}},6:{r:24,w:{255:3,280:3,430:3,4297:3,4670:3,6989:3,7530:3,8320:3,}},7:{r:57,w:{173:3,244:4,312:4,497:6,564:4,619:4,804:3,1110:4,1318:3,1622:4,1653:4,1820:3,2013:4,2182:3,2266:4,}},8:{r:3,w:{536:3,}},9:{r:6,w:{237:6,}},13:{r:3,w:{235:3,}},14:{r:3,w:{634:3,}},15:{r:3,w:{426:3,}},17:{r:40,w:{367:3,399:3,461:3,471:3,987:3,1017:3,1100:3,1110:3,1735:8,1802:8,}},21:{r:77,w:{966:3,1109:3,1355:3,2497:4,3839:3,3935:3,5264:3,6531:3,6659:4,7088:4,7126:4,7493:4,7528:4,7864:4,7923:4,8105:3,8445:4,8480:4,8784:4,9816:6,11208:3,}},},"exemples":{4:{r:9,w:{1204:3,1255:3,1308:3,}},7:{r:285212675,w:{1:268435456,7:16777219,}},13:{r:3,w:{156:3,}},21:{r:16842786,w:{1488:65539,1525:3,1560:3,1608:3,4715:3,4733:3,4748:3,6357:16777219,7671:3,8948:4,11643:3,}},},"existant":{6:{r:8211,w:{3127:4098,3143:3,3197:3,3495:4098,3508:3,3574:3,4369:3,}},13:{r:4,w:{726:4,}},21:{r:11,w:{1683:3,3686:4,3796:4,}},},"existante":{2:{r:6,w:{409:6,}},4:{r:4,w:{1444:4,}},13:{r:3,w:{710:3,}},21:{r:3,w:{618:3,}},},"existants":{4:{r:16,w:{884:4,1377:4,1396:4,1464:4,}},21:{r:7,w:{1301:4,1637:3,}},},"existe":{2:{r:6,w:{481:6,}},4:{r:8,w:{1471:4,1502:4,}},6:{r:14,w:{65:3,209:5,1851:3,4926:3,}},8:{r:3,w:{250:3,}},16:{r:3,w:{60:3,}},21:{r:15,w:{555:3,1705:3,3562:3,9420:3,11328:3,}},},"explicite":{7:{r:3,w:{1586:3,}},21:{r:3,w:{8409:3,}},},"expliquée":{15:{r:3,w:{12:3,}},21:{r:3,w:{1951:3,}},},"exploitable":{4:{r:3,w:{508:3,}},16:{r:3,w:{88:3,}},21:{r:6,w:{894:3,11356:3,}},},"exploitables":{6:{r:3,w:{8110:3,}},14:{r:3,w:{426:3,}},},"exploitant":{6:{r:18,w:{1549:3,1556:3,4175:3,4291:3,4332:3,9090:3,}},21:{r:6,w:{5613:3,7640:3,}},},"exploitation":{7:{r:1048579,w:{1841:1048579,}},11:{r:4096,w:{6:4096,}},21:{r:1048579,w:{8635:1048579,}},},"exploite":{1:{r:6,w:{117:6,}},6:{r:16,w:{6486:3,7010:3,7028:3,8183:4,9500:3,}},14:{r:4,w:{498:4,}},21:{r:9,w:{432:6,5995:3,}},},"exploiter":{4:{r:21,w:{474:6,481:3,639:6,685:3,1247:3,}},5:{r:6,w:{517:6,}},6:{r:18,w:{4720:3,4786:3,5071:3,6467:3,7990:3,8005:3,}},14:{r:6,w:{308:3,323:3,}},17:{r:3,w:{1392:3,}},21:{r:24,w:{860:6,867:3,1036:6,1082:3,2358:6,}},},"exploité":{2:{r:6,w:{437:6,}},6:{r:6,w:{660:3,5053:3,}},11:{r:3,w:{188:3,}},21:{r:6,w:{4124:3,10135:3,}},},"exploitée":{2:{r:6,w:{487:6,}},},"exploités":{6:{r:6,w:{1597:3,7829:3,}},8:{r:3,w:{522:3,}},14:{r:3,w:{140:3,}},},"export":{3:{r:4,w:{200:4,}},6:{r:3,w:{8258:3,}},9:{r:6,w:{53:6,}},13:{r:65541,w:{631:65538,636:3,}},14:{r:3,w:{572:3,}},21:{r:6,w:{9632:6,}},},"exportconnectiondata_x":{6:{r:3,w:{8272:3,}},14:{r:3,w:{586:3,}},},"exporter":{6:{r:4118,w:{4798:3,8066:4,8144:3,8213:4,8235:4098,8249:3,8256:3,}},13:{r:3,w:{654:3,}},14:{r:4111,w:{384:4,460:3,549:4098,563:3,570:3,}},},"exportez":{14:{r:4,w:{529:4,}},},"exports":{15:{r:4,w:{168:4,}},21:{r:4,w:{10954:4,}},},"exportées":{6:{r:6,w:{8267:3,8393:3,}},14:{r:6,w:{581:3,707:3,}},},"expression":{5:{r:6,w:{182:3,289:3,}},6:{r:12,w:{3302:3,3656:3,3776:3,4081:3,}},},"expressions":{13:{r:1048579,w:{11:1048579,}},21:{r:1048579,w:{11498:1048579,}},},"extension":{6:{r:4,w:{193:4,}},21:{r:7,w:{3771:4,10268:3,}},},"extensions":{11:{r:3,w:{616:3,}},21:{r:6,w:{10161:3,10256:3,}},},"external_commune":{17:{r:6,w:{817:3,867:3,}},},"external_upload":{17:{r:3,w:{1168:3,}},},"external_uploadxxxx":{17:{r:4,w:{1185:4,}},},"external_xxxxxx":{17:{r:3,w:{822:3,}},},"external_xxxxxxx":{17:{r:3,w:{921:3,}},},"externe":{6:{r:69662,w:{5204:4,5213:4,6075:4098,6088:3,6109:4,7088:65539,7093:3,7128:3,7232:4,}},21:{r:65545,w:{4820:65539,4825:3,4860:3,}},},"extract_dept":{21:{r:8,w:{3662:4,3782:4,}},},"extraction":{0:{r:4,w:{97:4,}},7:{r:109,w:{433:4,511:10,524:4,620:8,734:4,1654:8,1766:4,1855:5,1913:6,1935:8,1946:4,2014:8,2118:6,2149:6,2336:8,2350:8,2376:4,2396:4,}},9:{r:6,w:{257:6,}},17:{r:3,w:{1376:3,}},18:{r:4,w:{100:4,}},21:{r:137,w:{97:4,6660:8,6773:4,7089:4,7127:8,7284:4,7807:6,7824:4,7924:8,8037:4,8481:8,8590:4,8643:3,8701:6,8723:8,8734:8,8785:8,8895:6,8926:6,9075:6,9089:6,9118:4,9139:4,9836:6,}},},"extraction-departements":{7:{r:4,w:{524:4,}},21:{r:8,w:{7089:4,7824:4,}},},"extraction-departements-source":{21:{r:4,w:{7089:4,}},},"extraction-departements-source-fixe":{21:{r:4,w:{7089:4,}},},"extraction_departement":{21:{r:4,w:{3734:4,}},},"extraction_departements":{7:{r:4,w:{248:4,}},21:{r:4,w:{3695:4,}},},"extraction_departements_emprise":{21:{r:10,w:{7889:5,8190:5,}},},"extraction_depts_emprise":{7:{r:9,w:{589:5,1386:4,}},},"extraire":{7:{r:15,w:{1895:3,1955:4,1962:4,2383:4,}},21:{r:15,w:{8683:3,8738:4,8745:4,9126:4,}},},"extraites":{7:{r:4,w:{838:4,}},21:{r:4,w:{8139:4,}},},"exécutable":{2:{r:3,w:{68:3,}},},"exécute":{5:{r:4,w:{1797:4,}},6:{r:6,w:{7789:3,7959:3,}},14:{r:6,w:{100:3,277:3,}},},"exécuter":{1:{r:12,w:{112:12,}},2:{r:6,w:{203:3,539:3,}},4:{r:9,w:{61:6,129:3,}},6:{r:3,w:{8636:3,}},21:{r:12,w:{427:12,}},},"exécutez":{14:{r:3,w:{961:3,}},},"exécution":{2:{r:9,w:{185:6,693:3,}},4:{r:6,w:{468:6,}},5:{r:14,w:{766:8,832:6,}},6:{r:9,w:{9340:6,9409:3,}},7:{r:327694,w:{414:65539,715:65539,1255:65538,1747:65539,2357:65539,}},8:{r:6,w:{322:6,}},11:{r:9,w:{728:6,1080:3,}},15:{r:25,w:{191:8,288:14,376:3,}},21:{r:393306,w:{694:3,724:6,854:6,2602:8,2668:6,5856:6,5918:3,6754:65539,7265:65539,7737:65539,8018:65539,8571:65539,9099:65539,9382:6,10800:3,10977:8,11074:14,11158:3,}},},"exécuté":{6:{r:6,w:{7784:3,8974:3,}},14:{r:3,w:{95:3,}},15:{r:3,w:{400:3,}},17:{r:6,w:{449:3,1088:3,}},21:{r:6,w:{5499:3,11182:3,}},},"exécutée":{3:{r:3,w:{188:3,}},},"exécutées":{11:{r:3,w:{742:3,}},},"exécutés":{0:{r:4,w:{218:4,}},9:{r:4,w:{105:4,}},18:{r:4,w:{217:4,}},21:{r:8,w:{218:4,9684:4,}},},"faciliter":{6:{r:3,w:{514:3,}},11:{r:3,w:{808:3,}},21:{r:6,w:{3982:3,10529:3,}},},"facultatif":{6:{r:3,w:{5632:3,}},},"facultative":{2:{r:3,w:{311:3,}},},"faire":{0:{r:4,w:{278:4,}},4:{r:7,w:{1374:4,1680:3,}},5:{r:6,w:{1305:3,1566:3,}},6:{r:24,w:{2051:3,2195:3,2333:3,2463:3,5942:3,6398:3,6749:3,6993:3,}},7:{r:4,w:{1601:4,}},11:{r:3,w:{470:3,}},17:{r:6,w:{101:3,141:3,}},18:{r:4,w:{277:4,}},21:{r:20,w:{278:4,1911:3,3130:3,3389:3,8424:4,10308:3,}},},"faisant":{6:{r:9,w:{683:3,3091:3,3223:3,}},21:{r:3,w:{4147:3,}},},"fait":{1:{r:6,w:{163:6,}},4:{r:4,w:{870:4,}},6:{r:18,w:{361:3,1998:3,2257:3,2395:3,3434:3,9046:3,}},16:{r:3,w:{132:3,}},21:{r:16,w:{478:6,1287:4,5569:3,11400:3,}},},"faite":{13:{r:3,w:{718:3,}},},"false":{6:{r:3,w:{8666:3,}},14:{r:3,w:{992:3,}},},"faut":{2:{r:6,w:{13:3,698:3,}},6:{r:18,w:{4711:3,4793:3,6526:3,6851:3,6967:3,8726:3,}},7:{r:12,w:{968:4,1498:4,1510:4,}},14:{r:3,w:{1056:3,}},17:{r:3,w:{626:3,}},21:{r:14,w:{506:3,6986:3,8323:4,8335:4,}},},"façon":{4:{r:8,w:{1404:4,1418:4,}},5:{r:3,w:{220:3,}},6:{r:6,w:{4838:3,7136:3,}},8:{r:3,w:{422:3,}},13:{r:3,w:{690:3,}},21:{r:12,w:{1645:3,1660:3,4868:3,9531:3,}},},"façons":{6:{r:3,w:{67:3,}},21:{r:3,w:{3564:3,}},},"feature":{6:{r:6,w:{8489:6,}},14:{r:6,w:{806:6,}},},"feb":{13:{r:3,w:{82:3,}},21:{r:3,w:{11569:3,}},},"fenetre":{5:{r:6,w:{1214:3,1233:3,}},},"fenêtre":{4:{r:3,w:{211:3,}},6:{r:108,w:{1119:4,1160:4,1163:4,1206:4,1225:4,1643:3,1651:3,1659:3,1690:3,1712:3,1735:3,1860:3,5251:3,5256:3,5403:3,5462:3,5469:3,5520:3,5675:3,5730:3,5784:3,5798:3,5876:3,6212:3,6265:3,6279:3,6350:3,6563:3,6616:3,6630:3,6701:3,7041:3,7561:3,8201:4,}},7:{r:11,w:{2212:3,2217:4,2241:4,}},14:{r:4,w:{517:4,}},17:{r:4,w:{2188:4,}},21:{r:3,w:{4024:3,}},},"fenêtres":{6:{r:3,w:{1116:3,}},},"ferme":{17:{r:3,w:{196:3,}},},"fermer":{6:{r:24,w:{5401:3,5423:3,5728:3,5749:3,6210:3,6230:3,6561:3,6581:3,}},},"fermeture":{17:{r:3,w:{38:3,}},},"fichier":{4:{r:65606,w:{257:4,303:4,600:4,1004:3,1042:65538,1049:3,1076:3,1090:3,1106:3,1131:3,1143:3,1152:3,1234:3,1254:3,1285:3,1295:3,1307:3,1434:4,1451:4,1647:3,1670:3,1689:3,}},5:{r:8,w:{862:4,896:4,}},6:{r:28804,w:{298:3,1419:3,1426:3,1898:10,2995:4098,3000:4098,3011:3,3024:3,3065:3,3071:3,3126:4098,3131:4098,3142:3,3155:3,3196:3,3203:3,3248:4098,3254:4098,3262:3,3345:3,3499:4098,3518:3,3567:3,3579:3,4810:3,4824:3,7689:5,7909:3,7925:3,8012:3,8034:3,8090:4,8270:3,8289:3,8446:3,8470:3,8551:3,8606:3,8646:3,8946:3,8990:3,9081:3,9092:3,}},7:{r:1048692,w:{17:1048579,34:5,41:5,52:5,102:4,110:4,137:3,141:3,223:4,468:3,824:4,863:5,932:4,936:4,955:4,966:4,971:4,1029:3,1153:4,1163:4,1178:4,1239:4,1244:4,1351:5,1366:5,1780:4,1897:3,2053:4,2066:4,}},8:{r:6,w:{553:3,581:3,}},9:{r:3,w:{255:3,}},11:{r:65576,w:{107:3,132:3,390:3,460:65538,474:3,487:3,503:3,528:3,540:3,549:3,825:4,866:4,959:3,}},13:{r:7,w:{575:7,}},14:{r:30,w:{227:3,243:3,330:3,352:3,584:3,603:3,764:3,787:3,872:3,931:3,}},15:{r:12,w:{86:3,372:3,414:3,444:3,}},17:{r:6,w:{46:3,61:3,}},21:{r:2097422,w:{1382:1048579,1397:3,1411:3,1424:3,1449:3,1461:3,1555:3,1559:3,1595:3,1607:3,1673:3,1688:3,1871:4,1901:3,1920:3,2698:4,2732:4,3763:4,4455:3,4462:3,4554:4,4594:4,4617:4,4621:4,4638:4,4669:4,4686:4,5472:3,5515:3,5598:3,5604:3,5615:3,6371:1048579,6389:3,6396:3,6405:3,6460:4,6468:4,6495:3,6499:3,6581:4,6845:3,6854:3,6878:3,6950:4,6954:4,6973:3,6984:3,6989:3,7046:3,7159:4,7169:4,7184:4,7247:4,7252:4,7342:3,7375:4,7426:4,7452:4,7466:4,7620:3,7759:4,8125:4,8604:4,8685:3,8815:4,8825:4,8838:4,9834:3,10186:3,10211:3,10312:3,10546:4,10587:4,10677:3,10870:3,11154:3,11196:3,11226:3,}},},"fichiers":{0:{r:8,w:{95:4,326:4,}},4:{r:7,w:{1607:3,1632:4,}},6:{r:50,w:{309:3,608:3,1337:3,1356:3,3089:3,3098:3,3109:3,3115:3,3221:3,3230:3,3241:3,7660:3,7673:3,7700:5,7813:3,9075:3,}},7:{r:1048605,w:{207:3,478:3,846:1048579,888:5,1034:3,1160:4,2043:4,2050:4,}},10:{r:1048585,w:{11:1048579,28:3,46:3,}},11:{r:1052716,w:{34:3,169:3,178:3,618:3,625:3,921:4096,928:1048579,939:3,997:3,1003:3,1009:4,1016:4,1047:3,1059:3,1067:3,}},14:{r:3,w:{124:3,}},15:{r:17,w:{126:3,136:3,159:4,223:3,278:4,}},17:{r:19,w:{1144:5,1160:3,2476:5,2487:3,2496:3,}},18:{r:4,w:{98:4,}},21:{r:6291591,w:{95:3,326:4,1804:3,1832:4,1878:3,4075:3,4399:3,4418:3,5304:3,6565:3,6862:1048579,6902:3,7166:4,7317:1048579,7321:1048579,7327:1048579,7349:3,7652:3,7764:4,8822:4,9969:1048579,9986:3,10004:3,10039:3,10119:3,10141:3,10163:3,10169:3,10646:1048579,10657:3,10717:3,10723:3,10729:4,10736:4,10767:3,10779:3,10787:3,10912:3,10922:3,10945:4,11009:3,11064:4,}},},"figure":{6:{r:3,w:{1528:3,}},},"file":{4:{r:3,w:{1550:3,}},6:{r:8,w:{293:3,7684:5,}},21:{r:7,w:{1746:3,7421:4,}},},"fileselector":{17:{r:3,w:{2497:3,}},},"filter":{6:{r:4099,w:{6038:4096,6042:3,}},},"filtrage":{6:{r:4099,w:{6828:4096,6832:3,}},},"filtre":{5:{r:11,w:{249:3,715:4,728:4,}},6:{r:4116,w:{5697:3,5717:3,6040:4096,6186:3,6823:3,6919:4,6940:4,}},21:{r:8,w:{2551:4,2564:4,}},},"filtrer":{6:{r:9,w:{5682:3,6019:3,6171:3,}},},"filtres":{5:{r:8,w:{721:4,734:4,}},21:{r:8,w:{2557:4,2570:4,}},},"fin":{0:{r:4,w:{234:4,}},6:{r:13,w:{511:3,7357:4,9572:6,}},8:{r:3,w:{556:3,}},15:{r:4,w:{28:4,}},17:{r:6,w:{44:3,1306:3,}},18:{r:4,w:{233:4,}},21:{r:26,w:{234:4,655:3,3979:3,5088:4,6065:6,6147:6,}},},"final":{6:{r:6,w:{7139:3,9173:3,}},7:{r:13,w:{1360:5,1876:5,2140:3,}},21:{r:18,w:{1717:3,4871:3,5690:3,8162:3,8660:3,8917:3,}},},"finalise":{6:{r:3,w:{9325:3,}},21:{r:3,w:{5841:3,}},},"finaliser":{4:{r:3,w:{972:3,}},6:{r:3,w:{387:3,}},21:{r:9,w:{675:3,1370:3,3892:3,}},},"finalisée":{5:{r:3,w:{851:3,}},21:{r:3,w:{2687:3,}},},"finaux":{7:{r:8,w:{201:3,883:5,}},11:{r:4,w:{1034:4,}},21:{r:7,w:{6559:3,10754:4,}},},"fine":{8:{r:3,w:{108:3,}},21:{r:3,w:{9267:3,}},},"finir":{17:{r:3,w:{178:3,}},},"fixe":{1:{r:6,w:{158:6,}},21:{r:10,w:{473:6,7092:4,}},},"fixes":{6:{r:3,w:{9345:3,}},7:{r:4,w:{1062:4,}},21:{r:7,w:{5861:3,7076:4,}},},"flottant":{6:{r:4104,w:{2793:4098,2804:3,2855:3,}},},"flottante":{1:{r:6,w:{160:6,}},21:{r:6,w:{475:6,}},},"flux":{17:{r:8,w:{1874:4,1929:4,}},},"fme":{0:{r:13,w:{14:3,30:3,56:3,150:4,}},1:{r:24,w:{115:6,148:6,151:6,161:6,}},2:{r:4111,w:{175:4098,179:3,196:3,210:4,286:3,}},4:{r:8270,w:{450:4098,455:4096,458:3,463:3,484:3,493:3,507:3,516:3,520:3,531:3,546:3,555:3,588:4,590:4,610:4,642:3,679:3,689:3,783:3,854:4,948:3,955:3,1439:4,1497:4,1642:4,}},5:{r:12,w:{1800:4,1819:4,1870:4,}},6:{r:1184013,w:{29:3,62:1048579,74:3,88:65539,95:3,100:3,170:4,190:4,242:3,277:3,470:6,487:65539,504:3,537:3,562:3,587:3,594:3,630:6,735:3,743:3,767:3,780:3,785:3,808:4,848:3,876:4,898:4,913:4,959:4,980:4,986:4,1005:4,1023:4,1087:3,1280:3,1301:3,1320:6,1488:3,1773:4099,1786:3,1810:3,1828:3,1956:3,1976:3,2102:3,2882:3,3006:3,3137:3,4150:3,4299:3,5076:3,5176:4,7596:3,7613:3,7716:3,7748:4,7762:4,7782:3,7806:3,7922:3,7935:3,7967:3,7996:3,8123:3,8130:3,8163:3,8179:4,8182:4,8280:3,8304:3,8349:3,8411:3,8458:3,8562:5,8574:5,8617:3,9695:6,9821:6,}},7:{r:1376383,w:{84:5,94:65539,97:4,162:4,268:3,305:4,323:4,386:4,409:4,518:65539,528:4,611:4,639:4,713:4,828:4,858:1048579,880:5,902:5,922:65539,928:4,991:4,1019:3,1102:4,1115:4,1377:65539,1389:4,1488:3,1562:3,1645:4,1681:4,1887:65539,1893:3,1927:3,2005:4,}},8:{r:16,w:{149:3,366:3,391:3,495:3,513:4,}},9:{r:8,w:{117:4,165:4,}},11:{r:65545,w:{463:65538,952:3,1020:4,}},13:{r:1048593,w:{617:1048578,622:3,641:3,659:3,675:3,684:3,}},14:{r:70,w:{27:3,59:4,73:4,93:3,117:3,240:3,253:3,285:3,314:3,439:3,446:3,479:3,497:4,594:3,618:3,663:3,725:3,776:3,883:5,895:5,942:3,}},15:{r:4,w:{179:4,}},17:{r:4,w:{1558:4,}},18:{r:13,w:{17:3,33:3,59:3,149:4,}},19:{r:268435459,w:{5:268435456,11:3,}},20:{r:268435459,w:{5:268435456,11:3,}},21:{r:3670410,w:{14:3,30:3,56:3,150:4,430:6,463:6,466:6,476:6,717:3,824:4,840:1048579,844:3,849:3,870:3,879:3,893:3,903:3,914:3,946:3,967:3,993:3,1000:3,1039:3,1076:3,1086:3,1180:3,1271:4,1350:3,1357:3,1678:3,1842:4,3514:3,3559:1048579,3571:3,3587:65539,3593:3,3598:3,3633:3,3683:4,3704:4,3724:4,3758:4,3766:4,3826:3,3857:3,3957:65539,3972:3,4005:3,4035:3,4054:3,4061:3,4097:3,4193:3,4199:3,4206:3,4229:3,4251:3,4277:4,4294:4,4347:3,4368:3,4387:6,4518:4,4661:4,5335:3,5352:3,5371:3,6180:6,6301:6,6437:3,6452:65539,6455:4,6520:4,6611:3,6652:4,6695:4,6734:4,6872:1048579,6895:3,6916:3,6940:65539,6946:4,7009:3,7036:3,7118:4,7367:65539,7370:4,7520:4,7568:4,7818:65539,7828:4,7915:4,7960:4,8012:4,8129:4,8182:65539,8194:4,8313:3,8384:4,8472:4,8524:4,8675:65539,8681:3,8715:3,8776:4,9308:3,9497:3,9696:4,9744:4,10670:3,10740:4,10965:4,}},22:{r:268435459,w:{5:268435456,11:3,}},},"fme-":{6:{r:12,w:{8130:3,8304:3,8349:3,8411:3,}},14:{r:12,w:{446:3,618:3,663:3,725:3,}},},"fme2016":{4:{r:7,w:{573:3,620:4,}},},"fme_engine":{6:{r:6,w:{9689:6,}},21:{r:6,w:{6174:6,}},},"fme_mf_dir_unix":{7:{r:4100,w:{1011:4096,1014:4,}},21:{r:4,w:{7029:4,}},},"fmeengines":{13:{r:6,w:{312:6,}},},"fmw":{6:{r:29,w:{937:8,1324:6,7630:3,8602:6,8640:6,}},7:{r:41,w:{249:4,526:4,590:10,1027:3,1197:4,1387:8,1624:8,}},11:{r:3,w:{955:3,}},14:{r:12,w:{927:6,965:6,}},21:{r:84,w:{3657:3,3663:4,3772:4,3783:8,4391:6,7044:3,7093:8,7203:5,7495:8,7826:4,7890:10,8191:10,8447:8,10673:3,}},},"fmw_file":{6:{r:18,w:{9816:6,9826:6,9834:6,}},21:{r:18,w:{6296:6,6306:6,6314:6,}},},"fois":{4:{r:6,w:{1137:3,1711:3,}},5:{r:9,w:{1173:3,1324:3,1468:3,}},6:{r:15,w:{541:3,583:3,1349:3,4741:3,7441:3,}},7:{r:20,w:{455:4,778:4,1292:4,1794:4,2405:4,}},8:{r:3,w:{239:3,}},11:{r:3,w:{534:3,}},15:{r:7,w:{34:4,468:3,}},17:{r:8,w:{1728:4,1795:4,}},21:{r:54,w:{1455:3,3005:3,3149:3,3291:3,4009:3,4050:3,4411:3,5175:3,6832:4,7301:4,7776:4,8079:4,8618:4,9148:4,9409:3,11250:3,}},},"fonction":{6:{r:14,w:{524:3,6790:3,9157:3,9357:5,}},10:{r:3,w:{48:3,}},17:{r:30,w:{110:3,149:3,158:3,629:3,1284:5,1294:3,1314:5,1354:5,}},21:{r:22,w:{3992:3,5674:3,5873:5,8983:4,8990:4,10006:3,}},},"fonctionnalités":{6:{r:3,w:{494:3,}},16:{r:3,w:{49:3,}},21:{r:6,w:{3962:3,11317:3,}},},"fonctionnement":{1:{r:6,w:{175:6,}},4:{r:3,w:{1177:3,}},6:{r:4,w:{1015:4,}},21:{r:9,w:{490:6,1498:3,}},},"fonctionner":{2:{r:3,w:{201:3,}},},"fonctions":{0:{r:7,w:{61:3,192:4,}},4:{r:3,w:{1624:3,}},17:{r:65545,w:{105:3,204:65539,219:3,}},18:{r:7,w:{64:3,191:4,}},21:{r:10,w:{61:3,192:4,1824:3,}},},"for":{8:{r:4,w:{512:4,}},},"force":{21:{r:4,w:{4613:4,}},},"forcer":{6:{r:3,w:{6952:3,}},7:{r:4,w:{217:4,}},13:{r:8,w:{934:4,1020:4,}},21:{r:4,w:{6575:4,}},},"form":{6:{r:6,w:{1334:6,}},21:{r:28,w:{4396:6,4763:6,7692:8,8972:8,}},},"format":{4:{r:3,w:{1206:3,}},7:{r:68,w:{116:4,1354:5,1363:5,1369:5,1406:4,1423:4,1457:3,1463:3,1531:4,1595:4,1608:8,1663:4,1739:4,1775:4,1900:3,2046:4,}},11:{r:6,w:{732:3,1096:3,}},13:{r:18,w:{643:3,778:3,818:3,835:3,861:3,901:3,}},17:{r:3,w:{1279:3,}},21:{r:72,w:{1527:3,6474:4,7357:3,7383:4,7389:4,8157:3,8165:3,8213:4,8228:4,8282:3,8288:3,8418:4,8431:8,8490:4,8559:4,8599:4,8688:3,8818:4,10816:3,}},},"formats":{6:{r:65574,w:{288:3,7679:5,7713:65538,7719:3,7752:4,7763:8,7818:3,7831:3,7850:4,7886:3,}},7:{r:20,w:{1485:3,1517:4,1538:4,1545:3,1560:3,1569:3,}},11:{r:6,w:{609:3,623:3,}},14:{r:268505118,w:{8:268435456,17:4096,24:65538,30:3,63:4,74:8,129:3,142:3,161:4,204:3,}},21:{r:37,w:{7412:4,8310:3,8342:4,8360:5,8367:4,8382:4,8391:4,10125:3,10154:3,10167:3,}},},"formcontent":{17:{r:7,w:{2447:4,2465:3,}},},"forme":{0:{r:7,w:{128:3,310:4,}},6:{r:48,w:{1622:3,2589:3,2663:3,2894:3,2929:3,3019:3,3150:3,3269:3,3390:3,3513:3,3610:3,3734:3,3854:3,3953:3,4047:3,5331:3,}},7:{r:6,w:{1916:3,2121:3,}},17:{r:6,w:{2048:3,2459:3,}},18:{r:3,w:{131:3,}},21:{r:13,w:{128:3,310:4,8704:3,8898:3,}},},"formes":{21:{r:3,w:{558:3,}},},"formulaire":{0:{r:11,w:{135:3,305:4,312:4,}},4:{r:3,w:{738:3,}},5:{r:18,w:{135:3,140:3,436:3,441:3,631:3,1282:3,}},6:{r:24892,w:{105:3,111:4,400:3,1028:4096,1045:3,1055:3,1096:3,1104:3,1124:4,1130:4,1146:4,1226:4,1243:4,1248:4,1252:4,1256:4,1259:4098,1261:4096,1265:4098,1267:4098,1271:3,1293:3,1361:4,1378:4,1394:4,1416:3,1452:3,1462:3,1472:3,1491:3,1496:3,1509:3,1514:3,1519:3,1551:3,1558:3,1567:3,1574:3,1585:3,1589:3,1607:4098,1616:3,1665:3,1844:3,2023:3,2146:3,2282:3,2419:3,2529:3,2610:3,2682:3,2756:3,2826:3,2918:3,3041:3,3084:3,3172:3,3216:3,3295:3,3458:3,3535:3,3635:3,3760:3,3878:3,3977:3,4071:3,4198:3,4289:3,4328:3,4386:3,4520:3,4655:3,4676:3,4758:3,4769:3,4820:3,4831:3,4865:3,4898:3,4950:3,4973:3,5004:3,5329:3,5846:3,5900:3,6203:3,6363:3,6714:3,7101:3,7143:3,7165:3,7184:4,7197:3,7213:3,7225:3,7252:3,7285:3,7396:3,7506:3,8795:3,9103:3,9145:3,9267:3,9865:4,}},7:{r:1114192,w:{168:4,175:3,371:4,374:4,685:4,688:4,703:4,1228:4,1231:4,1728:4,1731:4,1840:1048579,1879:5,2092:4,2095:4,2110:65539,2203:3,2213:3,2295:4,2306:4,2323:4,}},11:{r:3,w:{271:3,}},13:{r:21,w:{955:4,972:3,992:3,1018:3,1032:4,1053:4,}},17:{r:50,w:{68:3,117:3,131:3,155:3,167:3,182:3,186:3,198:3,273:3,388:3,1006:3,1150:3,1289:5,1299:3,1308:3,2457:3,}},21:{r:1114425,w:{135:3,305:4,312:4,1134:3,2091:3,2297:3,2475:3,3603:3,3905:3,4309:3,4319:3,4338:3,4360:3,4424:4,4433:4,4441:4,4452:3,4473:4,4477:4,4488:4,4493:4,4502:4,4523:4,4527:4,4543:4,4549:4,4567:4,4582:4,4588:4,4610:4,4623:4,4627:4,4634:4,4645:4,4652:4,4665:4,4682:4,4699:4,4707:3,4730:3,4739:3,4766:3,4803:3,4810:3,4833:3,4875:3,4897:3,4914:3,4927:3,4943:3,4955:3,4980:3,5013:3,5130:3,5240:3,5299:3,5416:3,5626:3,5783:3,6526:4,6533:3,6719:4,6722:4,6777:3,7236:4,7239:4,7592:4,7595:4,7608:4,7638:3,7688:4,7723:3,7730:3,7984:4,7987:4,8002:4,8548:4,8551:4,8634:1048579,8663:3,8865:4,8868:4,8887:65539,8935:4,8943:4,8968:4,9055:4,9062:3,10423:3,}},},"formulaires":{3:{r:4,w:{204:4,}},6:{r:24,w:{48:3,1111:3,1344:3,1437:3,1502:3,1530:3,1596:3,1645:3,}},13:{r:65587,w:{833:3,852:4,859:3,867:65538,879:3,884:3,913:3,918:3,938:4,962:4,985:3,1024:4,1044:4,1064:4,1076:4,}},15:{r:4,w:{185:4,}},17:{r:2162700,w:{10:1048579,12:1048579,22:65539,214:3,}},21:{r:65549,w:{3542:3,4305:65539,4406:3,10971:4,}},},"fortement":{21:{r:3,w:{940:3,}},},"forçant":{21:{r:3,w:{7653:3,}},},"fourni":{4:{r:3,w:{1114:3,}},11:{r:3,w:{511:3,}},15:{r:3,w:{360:3,}},21:{r:14,w:{1432:3,7682:4,8962:4,11142:3,}},},"fournie":{6:{r:3,w:{7449:3,}},21:{r:3,w:{5183:3,}},},"fournir":{6:{r:7,w:{4712:3,7309:4,}},21:{r:4,w:{5040:4,}},},"fournis":{2:{r:3,w:{38:3,}},21:{r:3,w:{529:3,}},},"fournisseurs":{21:{r:3,w:{4789:3,}},},"fournit":{21:{r:3,w:{659:3,}},},"fr":{6:{r:3,w:{9380:3,}},17:{r:9,w:{1416:6,1694:3,}},21:{r:3,w:{5893:3,}},},"france":{6:{r:4,w:{4448:4,}},},"fréquence":{0:{r:4,w:{259:4,}},6:{r:9,w:{8845:3,8882:3,9255:3,}},18:{r:4,w:{258:4,}},21:{r:7,w:{259:4,5771:3,}},},"galerie":{7:{r:6,w:{1558:3,1567:3,}},21:{r:8,w:{8380:4,8389:4,}},},"gauche":{3:{r:3,w:{162:3,}},4:{r:4,w:{895:4,}},5:{r:6,w:{1216:3,1292:3,}},6:{r:8,w:{1212:4,1230:4,}},17:{r:8,w:{2204:4,2220:4,}},21:{r:7,w:{1312:4,3059:3,}},},"generic":{7:{r:11,w:{1407:4,1454:4,1458:3,}},21:{r:11,w:{8214:4,8279:4,8283:3,}},},"generic_out_format_generic":{7:{r:3,w:{1471:3,}},21:{r:3,w:{8296:3,}},},"genericquerys":{13:{r:6,w:{462:6,}},},"geofla":{7:{r:15,w:{1898:3,2015:4,2044:4,2377:4,}},21:{r:15,w:{8686:3,8786:4,8816:4,9119:4,}},},"geographicalgridsystems":{17:{r:3,w:{1701:3,}},},"geometrycollection":{17:{r:3,w:{2292:3,}},},"geosignal":{17:{r:3,w:{1669:3,}},21:{r:7,w:{8999:4,9038:3,}},},"geosignalwms":{21:{r:3,w:{9035:3,}},},"gestion":{0:{r:11,w:{69:3,108:4,184:4,}},1:{r:6,w:{66:6,}},5:{r:286334997,w:{1:268435456,6:4096,10:16777218,555:3,1575:4096,1580:65539,1653:3,1670:1048578,1731:4,1878:4,}},6:{r:3412007,w:{499:3,715:65539,722:3,1030:65539,1339:3,1637:3,1653:3,1661:3,1737:3,7709:65538,7860:65538,8762:1048578,8816:1048579,9231:4096,9235:1048579,}},8:{r:1048578,w:{469:1048578,}},11:{r:8204,w:{82:3,203:4099,359:4,365:4098,}},14:{r:268566532,w:{4:268435456,20:65538,174:65538,}},18:{r:11,w:{72:3,111:4,183:4,}},21:{r:20119611,w:{69:3,108:4,184:4,381:6,1968:16777219,2396:3,3402:65539,3475:3,3967:3,4174:65539,4181:3,4301:65539,4401:3,5383:1048578,5438:1048579,5751:1048579,10330:4,10338:3,}},},"gestionnaire":{0:{r:6,w:{10:6,}},6:{r:8263,w:{2002:4,2118:4,2261:5,2399:5,3438:4,5110:4096,5116:4098,5123:3,5154:3,5170:4,5232:3,5258:3,5342:4,5425:3,5571:3,5600:4,5751:3,6096:4,6232:3,6448:4,6583:3,}},18:{r:6,w:{13:6,}},19:{r:268435459,w:{1:268435456,7:3,}},20:{r:268435459,w:{1:268435456,7:3,}},21:{r:6,w:{10:6,}},22:{r:268435459,w:{1:268435456,7:3,}},},"gestionnaires":{6:{r:3,w:{3406:3,}},},"getcategory":{6:{r:6,w:{9790:6,}},21:{r:6,w:{6271:6,}},},"getelementbyid":{17:{r:33,w:{495:3,860:3,863:3,866:3,906:3,913:3,920:3,1113:3,1117:3,1134:3,1138:3,}},},"getelementbyld":{17:{r:6,w:{474:3,478:3,}},},"getelementid":{17:{r:3,w:{499:3,}},},"getfmeengine":{6:{r:6,w:{9702:6,}},21:{r:6,w:{6187:6,}},},"getgtfengine":{6:{r:6,w:{9685:6,}},21:{r:6,w:{6170:6,}},},"gethtmlform":{17:{r:6,w:{111:3,150:3,}},},"getuser":{6:{r:23,w:{9669:5,9724:6,9746:6,9768:6,}},21:{r:18,w:{6208:6,6230:6,6251:6,}},},"getworkspace":{6:{r:18,w:{9789:6,9811:6,9832:6,}},21:{r:18,w:{6270:6,6291:6,6312:6,}},},"gex":{4:{r:44,w:{1207:3,1235:3,1256:3,1270:3,1300:3,1309:6,1435:8,1620:3,1668:3,1672:3,1691:6,}},6:{r:3,w:{7567:3,}},8:{r:3,w:{490:3,}},11:{r:8,w:{962:8,}},13:{r:4105,w:{648:4096,650:3,680:3,819:3,}},15:{r:15,w:{69:6,382:6,394:3,}},21:{r:65,w:{1528:3,1556:3,1561:3,1575:3,1600:3,1609:6,1674:6,1820:3,1899:3,1903:3,1922:6,10680:8,10853:6,11164:6,11176:3,}},},"ghyb":{17:{r:8,w:{1772:4,1807:4,}},},"glisser":{6:{r:3,w:{684:3,}},21:{r:3,w:{4148:3,}},},"global":{21:{r:12,w:{1624:3,1650:3,1681:3,3917:3,}},},"gmap":{17:{r:8,w:{1769:4,1806:4,}},},"google":{6:{r:8,w:{7429:3,7435:5,}},17:{r:64,w:{1433:6,1435:7,1623:4,1659:3,1711:4,1737:4,1760:4,1764:8,1767:4,1770:4,1773:4,1830:4,1836:4,1846:4,}},21:{r:8,w:{5163:3,5169:5,}},},"google-key":{17:{r:7,w:{1659:3,1830:4,}},},"gphy":{17:{r:8,w:{1766:4,1805:4,}},},"gpp3":{17:{r:3,w:{1691:3,}},},"gpp3-wxs":{17:{r:3,w:{1691:3,}},},"grand":{0:{r:3,w:{39:3,}},18:{r:3,w:{42:3,}},21:{r:3,w:{39:3,}},},"graphicspalettefield":{17:{r:10,w:{2369:4,2385:3,2391:3,}},},"graphique":{0:{r:4,w:{302:4,}},9:{r:9,w:{15:3,50:3,314:3,}},11:{r:3,w:{164:3,}},17:{r:8,w:{2367:5,2377:3,}},18:{r:4,w:{301:4,}},21:{r:16,w:{302:4,9594:3,9629:3,9893:3,10114:3,}},},"graphiquement":{6:{r:3,w:{1081:3,}},7:{r:5,w:{1868:5,}},21:{r:3,w:{8656:3,}},},"graphiques":{9:{r:6,w:{37:3,100:3,}},21:{r:6,w:{9616:3,9679:3,}},},"groupe":{3:{r:3,w:{96:3,}},4:{r:6,w:{1214:3,1243:3,}},5:{r:12334,w:{342:4096,363:3,380:3,434:3,445:3,452:3,474:3,484:3,705:4,729:4,1385:4096,1495:3,1543:3,1555:4098,1562:3,1572:3,1599:3,}},6:{r:12,w:{668:3,677:3,686:3,9051:3,}},7:{r:20,w:{358:4,672:4,1146:4,1715:4,2079:4,}},21:{r:80,w:{1535:3,2224:3,2241:3,2295:3,2307:3,2326:3,2541:4,2565:4,3318:3,3366:3,3378:3,3385:3,3395:3,3421:3,4132:3,4141:3,4150:3,5574:3,6706:4,7223:4,7579:4,7971:4,8535:4,8852:4,}},},"groupes":{5:{r:2228302,w:{103:1048579,172:3,347:65539,361:3,392:3,395:3,493:3,501:1048579,519:3,541:3,580:3,584:3,713:4,739:4,1317:4,1390:65539,1404:3,1419:3,1433:3,1511:3,1529:3,1539:3,1551:3,1632:3,1667:3,}},6:{r:21,w:{618:3,692:3,6494:3,6656:3,9120:3,9140:3,9199:3,}},11:{r:4099,w:{205:4099,}},21:{r:2228317,w:{2060:1048579,2123:3,2208:65539,2222:3,2253:3,2256:3,2335:3,2342:1048579,2360:3,2382:3,2421:3,2425:3,2549:4,2575:4,3142:4,3213:65539,3227:3,3242:3,3256:3,3334:3,3352:3,3362:3,3374:3,3454:3,3489:3,4085:3,4156:3,5643:3,5663:3,5716:3,}},},"groups":{6:{r:3,w:{6489:3,}},13:{r:6,w:{468:6,}},},"gsat":{17:{r:8,w:{1775:4,1808:4,}},},"gtf":{0:{r:285212706,w:{3:268435456,7:16777219,9:3,58:3,81:3,112:3,126:3,137:4,247:4,271:4,283:4,}},1:{r:285216822,w:{5:268435456,15:16777219,19:4096,23:3,35:6,47:6,97:6,100:6,106:6,116:6,122:6,168:6,}},2:{r:302121041,w:{3:268435456,7:16777218,11:3,28:3,80:3,88:3,131:3,145:5,152:5,157:5,166:16777218,178:3,199:3,220:3,274:3,322:65538,457:6,592:65538,597:3,607:6,627:3,690:3,718:5,724:5,}},3:{r:4118,w:{8:4096,52:3,61:3,138:3,141:3,167:3,195:3,220:4,}},4:{r:285356223,w:{4:268435456,9:16777218,14:3,28:5,33:5,81:3,87:3,181:4098,184:3,196:3,247:4,283:4,387:65538,408:3,435:3,436:3,471:3,510:3,625:4098,632:4096,635:3,644:3,650:3,672:3,683:3,695:3,729:3,735:3,743:3,750:3,826:4,843:4,868:4,932:4,941:3,963:3,977:3,1007:3,1023:3,1045:65538,1052:3,1061:3,1179:3,1224:3,1269:3,1275:3,1297:3,1342:3,1347:3,1354:3,1382:4,1387:4,1400:4,1448:4,1478:4,1554:3,1592:3,1640:4,1667:3,1678:3,1714:3,1724:3,}},5:{r:73,w:{16:3,24:3,30:3,40:3,56:4,61:4,80:4,88:3,258:3,462:3,570:3,849:3,1179:3,1474:3,1587:3,1612:3,1636:3,1740:4,1761:3,1782:4,1872:4,1882:4,}},6:{r:28985,w:{35:3,57:3,69:3,152:4,174:4,285:3,352:3,436:3,482:6,491:3,567:3,642:6,719:3,750:3,794:3,812:4,862:4,889:4,934:4,969:4,992:4,1304:3,1315:3,1353:3,1381:4,1778:4096,1780:4099,1790:3,1801:3,1804:3,1819:3,1856:3,1869:9,1960:3,1984:3,2082:3,2110:3,2186:3,2243:3,2323:3,2382:3,2454:3,2511:3,2564:3,2660:3,2738:3,2808:3,2891:3,3016:3,3112:3,3147:3,3200:3,3350:3,3387:3,3820:3,4135:4098,4157:3,4255:4098,4320:3,4791:3,4878:4098,4920:4098,4937:3,5027:4098,5039:3,5096:3,5144:3,5199:4,5215:4,5592:3,6077:3,6439:3,6470:3,7102:3,7112:3,7120:3,7144:3,7166:3,7185:4,7253:3,7286:3,7327:4,7466:3,7507:3,7676:5,7779:3,7844:3,7958:3,8001:3,8010:3,8702:3,8741:3,8984:3,9070:3,9151:3,9484:3,9679:6,}},7:{r:327791,w:{169:4,176:3,191:3,257:3,290:65539,295:4,346:4,596:65539,601:4,617:4,661:4,875:5,961:4,979:4,999:4,1046:3,1087:65538,1092:4,1108:4,1137:4,1476:3,1630:65539,1635:4,1651:4,1704:4,1882:5,1990:65539,1995:4,2011:4,2162:4,}},8:{r:18,w:{26:3,489:3,500:3,534:3,564:3,603:3,}},9:{r:3,w:{24:3,}},10:{r:3,w:{34:3,}},11:{r:73778,w:{15:4096,148:3,190:3,243:3,272:3,342:3,420:3,559:65538,572:3,717:4098,721:3,772:3,832:4,881:4,980:3,1013:4,1039:4,}},13:{r:1048783,w:{286:6,292:6,298:6,304:6,310:6,316:6,322:6,328:6,334:6,340:6,346:6,352:6,358:6,364:6,370:6,376:6,382:6,388:6,394:6,400:6,406:6,412:6,418:6,424:6,430:6,436:6,442:6,448:6,541:1048578,546:6,627:3,646:3,672:3,686:3,802:3,808:3,812:3,825:3,893:3,1078:4,}},14:{r:21,w:{90:3,155:3,276:3,319:3,328:3,1032:3,1071:3,}},15:{r:4142,w:{51:4096,56:3,96:3,105:3,155:4,196:4,206:3,219:3,294:8,362:3,368:3,393:3,436:3,459:3,}},16:{r:285212690,w:{7:268435456,16:16777219,23:3,29:3,42:3,114:3,170:3,}},17:{r:3,w:{89:3,}},18:{r:285212706,w:{4:268435456,10:16777219,12:3,61:3,84:3,114:3,129:3,136:4,246:4,270:4,282:4,}},21:{r:85332608,w:{7:16777219,9:3,58:3,81:3,112:3,126:3,137:4,247:4,271:4,283:4,334:16777219,338:3,350:6,362:6,412:6,415:6,421:6,431:6,437:6,483:6,496:4096,500:16777219,504:3,521:3,573:3,596:3,608:3,667:3,691:16777219,719:3,732:3,738:3,797:3,831:4,857:3,896:3,1026:1048579,1032:3,1041:3,1047:3,1069:3,1080:3,1092:3,1126:3,1131:3,1139:3,1148:3,1219:4,1236:4,1254:4,1285:4,1343:3,1375:3,1500:3,1545:3,1574:3,1580:3,1597:3,1627:3,1641:3,1685:3,1712:3,1750:3,1788:3,1808:3,1840:4,1851:4,1898:3,1909:3,1974:3,1982:3,1988:3,1998:3,2014:4,2019:4,2038:4,2046:3,2411:3,2685:3,3011:3,3297:3,3409:3,3434:3,3458:3,3520:3,3551:3,3566:3,3626:3,3676:4,3713:4,3748:4,3797:4,3941:3,3959:3,4001:3,4040:3,4109:3,4178:3,4213:3,4265:4,4371:3,4382:3,4415:3,4436:4,4561:4,4606:4,4834:3,4844:3,4852:3,4876:3,4898:3,4915:3,4981:3,5014:3,5058:4,5200:3,5241:3,5300:3,5509:3,5593:3,5668:3,6164:6,6527:4,6534:3,6549:3,6600:3,6637:65539,6642:4,6890:3,6979:3,6997:3,7017:3,7060:3,7103:65539,7108:4,7124:4,7408:4,7448:4,7505:65539,7510:4,7526:4,7900:65539,7905:4,7921:4,8301:3,8457:65539,8462:4,8478:4,8666:3,8761:65539,8766:4,8782:4,9182:3,9603:3,9992:3,10085:3,10137:3,10227:3,10240:3,10301:3,10395:3,10424:3,10449:3,10493:3,10553:4,10601:4,10699:5,10733:4,10759:4,10840:3,10880:3,10890:5,10941:4,10982:4,10992:3,11005:3,11080:8,11144:3,11150:3,11175:3,11218:3,11241:3,11284:16777219,11291:3,11297:3,11310:3,11382:3,11438:3,}},},"gtf2016":{2:{r:3,w:{29:3,}},},"gtf_2015":{11:{r:6,w:{890:3,904:3,}},21:{r:6,w:{10610:3,10624:3,}},},"gtf_2015-01":{11:{r:6,w:{890:3,904:3,}},21:{r:6,w:{10610:3,10624:3,}},},"gtf_admin":{3:{r:9,w:{56:3,80:3,109:3,}},5:{r:4,w:{1846:4,}},13:{r:24,w:{314:6,320:6,338:6,386:6,}},21:{r:3,w:{2195:3,}},},"gtf_author":{3:{r:3,w:{87:3,}},5:{r:4,w:{1806:4,}},13:{r:51,w:{258:3,308:6,332:6,362:6,392:6,398:6,404:6,410:6,452:6,}},},"gtf_engine":{6:{r:6,w:{9673:6,}},21:{r:6,w:{6158:6,}},},"gtf_engine_id":{6:{r:3,w:{6063:3,}},},"gtf_files":{17:{r:3,w:{2500:3,}},},"gtf_home":{11:{r:6,w:{842:3,849:3,}},21:{r:6,w:{10563:3,10570:3,}},},"gtf_manuel_utilisateur":{21:{r:268435456,w:{1:268435456,}},},"gtf_telechargement":{2:{r:3,w:{125:3,}},},"gtf_user":{3:{r:3,w:{89:3,}},5:{r:4,w:{1779:4,}},13:{r:93,w:{241:3,290:6,296:6,302:6,344:6,350:6,356:6,368:6,374:6,380:6,416:6,422:6,428:6,434:6,440:6,446:6,}},},"gtf_v2":{15:{r:3,w:{437:3,}},21:{r:3,w:{11219:3,}},},"gtfengines":{13:{r:6,w:{318:6,}},},"gtfgroups":{13:{r:6,w:{324:6,}},},"gtfmessagesender":{8:{r:9,w:{475:3,538:3,614:3,}},},"gtfpermet":{6:{r:3,w:{4275:3,}},},"guide":{20:{r:3,w:{16:3,}},22:{r:3,w:{15:3,}},},"gère":{0:{r:4,w:{157:4,}},18:{r:4,w:{156:4,}},21:{r:4,w:{157:4,}},},"génère":{6:{r:12,w:{407:3,4808:3,7146:3,8604:3,}},7:{r:4,w:{163:4,}},14:{r:3,w:{929:3,}},21:{r:10,w:{3912:3,4878:3,6521:4,}},},"général":{6:{r:3,w:{7794:3,}},14:{r:3,w:{105:3,}},21:{r:3,w:{5959:3,}},},"générale":{6:{r:7,w:{1094:3,4608:4,}},},"généralement":{17:{r:3,w:{699:3,}},},"générales":{6:{r:3,w:{9466:3,}},},"générant":{6:{r:3,w:{398:3,}},21:{r:3,w:{3903:3,}},},"génération":{0:{r:4,w:{104:4,}},4:{r:3,w:{1104:3,}},11:{r:3,w:{501:3,}},13:{r:9,w:{857:3,877:3,911:3,}},18:{r:4,w:{107:4,}},21:{r:7,w:{104:4,1422:3,}},},"généraux":{11:{r:65544,w:{46:65538,60:3,73:3,}},21:{r:65544,w:{10055:65538,10069:3,10083:3,}},},"générer":{4:{r:8,w:{1320:3,1369:5,}},6:{r:17,w:{4726:3,7330:4,7348:4,7491:3,9927:3,}},7:{r:4,w:{104:4,}},11:{r:3,w:{377:3,}},16:{r:4,w:{144:4,}},17:{r:9,w:{66:3,115:3,153:3,}},21:{r:26,w:{5061:4,5079:4,5225:3,6346:3,6462:4,7377:4,11412:4,}},},"générique":{7:{r:1048588,w:{1341:1048579,1357:5,1600:4,}},21:{r:1048586,w:{8151:1048579,8159:3,8423:4,}},},"généré":{2:{r:6,w:{568:3,654:3,}},4:{r:4,w:{1412:4,}},6:{r:4113,w:{25:3,7464:3,7471:3,7487:4098,8648:3,9918:3,}},7:{r:29,w:{144:3,284:3,470:3,787:4,826:4,1301:4,1803:4,2414:4,}},11:{r:3,w:{1094:3,}},13:{r:3,w:{776:3,}},21:{r:4156,w:{651:3,1654:3,3510:3,4558:4,5198:3,5205:3,5221:4098,6337:3,6502:3,6627:3,6847:3,7310:4,7785:4,8088:4,8127:4,8627:4,9157:4,10814:3,}},},"générée":{6:{r:3,w:{7406:3,}},21:{r:3,w:{5140:3,}},},"générés":{7:{r:3,w:{480:3,}},11:{r:3,w:{941:3,}},13:{r:3,w:{987:3,}},21:{r:3,w:{10659:3,}},},"géo":{17:{r:3,w:{1379:3,}},},"géométrie":{6:{r:19,w:{4304:3,4342:3,4623:4,4647:3,4659:3,4686:3,}},},"géométries":{6:{r:12,w:{4580:4,4587:4,4613:4,}},8:{r:3,w:{551:3,}},17:{r:27,w:{1512:3,2255:4,2264:4,2273:4,2283:4,2330:4,2337:4,}},},"géoportail":{21:{r:3,w:{4779:3,}},},"gérer":{5:{r:3,w:{512:3,}},6:{r:9,w:{610:3,1051:3,7940:3,}},14:{r:3,w:{258:3,}},21:{r:9,w:{2353:3,4077:3,4315:3,}},},"h":{13:{r:3,w:{165:3,}},21:{r:7,w:{7418:4,11652:3,}},},"h_":{6:{r:4099,w:{5089:4096,5091:3,}},},"haut":{6:{r:11,w:{1157:4,1228:4,5515:3,}},},"hauteur":{6:{r:6,w:{4392:3,7221:3,}},7:{r:8,w:{2273:8,}},17:{r:19,w:{769:3,882:6,1485:3,1573:4,2512:3,}},21:{r:7,w:{4951:3,9006:4,}},},"hebdomadaire":{9:{r:3,w:{65:3,}},21:{r:3,w:{9644:3,}},},"heure":{4:{r:3,w:{75:3,}},6:{r:12334,w:{1892:10,2642:8196,2648:4098,2656:6,2668:3,2691:3,2717:6,9547:6,9570:6,}},9:{r:4,w:{143:4,}},13:{r:13,w:{52:6,569:7,}},21:{r:22,w:{6040:6,6063:6,9722:4,11539:6,}},},"heures":{4:{r:3,w:{91:3,}},6:{r:3,w:{9344:3,}},9:{r:6,w:{344:3,370:3,}},11:{r:3,w:{725:3,}},13:{r:3,w:{182:3,}},21:{r:12,w:{5860:3,9923:3,9949:3,11669:3,}},},"hh":{11:{r:3,w:{733:3,}},13:{r:8,w:{30:4,48:4,}},21:{r:8,w:{11517:4,11535:4,}},},"hiddenfield":{17:{r:44,w:{264:4,281:3,287:3,382:3,403:6,802:3,816:6,821:3,1000:3,1022:3,1153:3,1181:4,}},},"histogramme":{9:{r:9,w:{321:3,355:6,}},21:{r:9,w:{9900:3,9934:6,}},},"historique":{6:{r:3,w:{761:3,}},21:{r:3,w:{4223:3,}},},"hkey_local_machine":{6:{r:3,w:{8483:3,}},14:{r:3,w:{800:3,}},},"host":{4:{r:6,w:{329:3,350:3,}},5:{r:50,w:{915:3,925:3,935:3,949:3,956:3,963:3,979:3,992:3,1008:3,1018:3,1028:4,1046:3,1060:3,1067:3,1074:4,1090:3,}},15:{r:6,w:{321:3,337:3,}},21:{r:56,w:{2751:3,2761:3,2771:3,2785:3,2792:3,2799:3,2815:3,2828:3,2844:3,2854:3,2864:4,2882:3,2896:3,2903:3,2910:4,2926:3,11107:3,11123:3,}},},"htm":{11:{r:6,w:{631:6,}},21:{r:6,w:{10175:6,}},},"html":{4:{r:13,w:{1318:3,1361:10,}},6:{r:18,w:{5020:3,7099:3,7155:3,7502:3,7550:3,7574:3,}},11:{r:3,w:{630:3,}},13:{r:3,w:{779:3,}},17:{r:11,w:{215:3,2445:5,2454:3,}},21:{r:15,w:{4831:3,4887:3,5236:3,5284:3,10174:3,}},},"htmlform":{17:{r:3,w:{209:3,}},},"http":{1:{r:6,w:{54:6,}},2:{r:10,w:{20:4,253:3,642:3,}},4:{r:10,w:{1263:5,1661:5,}},6:{r:3,w:{9379:3,}},8:{r:5,w:{483:5,}},11:{r:3,w:{78:3,}},12:{r:5,w:{38:5,}},15:{r:5,w:{387:5,}},16:{r:5,w:{106:5,}},17:{r:24,w:{1413:6,1426:6,1451:6,1667:3,1690:3,}},21:{r:39,w:{369:6,513:4,1568:5,1892:5,5892:3,9036:3,10088:3,11169:5,11374:5,}},},"httpd":{1:{r:6,w:{50:6,}},11:{r:4,w:{869:4,}},21:{r:13,w:{365:6,569:3,10590:4,}},},"https":{2:{r:4117,w:{215:4098,225:3,446:6,519:4,605:3,649:3,}},3:{r:3,w:{139:3,}},6:{r:9,w:{4735:4,7433:5,}},21:{r:5,w:{5167:5,}},},"humain":{6:{r:3,w:{7410:3,}},21:{r:3,w:{5144:3,}},},"hybrid":{17:{r:8,w:{1771:4,1780:4,}},},"hérite":{17:{r:3,w:{92:3,}},},"hériter":{5:{r:6,w:{549:6,}},21:{r:6,w:{2390:6,}},},"hétérogènes":{4:{r:3,w:{477:3,}},21:{r:3,w:{863:3,}},},"ici":{5:{r:3,w:{818:3,}},21:{r:3,w:{2654:3,}},},"id":{4:{r:6,w:{945:3,1331:3,}},6:{r:3,w:{461:3,}},17:{r:9,w:{282:3,662:3,2467:3,}},21:{r:15,w:{1347:3,1623:3,1649:3,1680:3,3916:3,}},},"id_com":{6:{r:3,w:{5720:3,}},},"id_order":{21:{r:6,w:{6015:6,}},},"identifiant":{4:{r:4,w:{1489:4,}},6:{r:9,w:{416:3,9524:6,}},7:{r:18,w:{797:6,1311:6,1813:6,}},13:{r:4,w:{740:4,}},17:{r:18,w:{251:3,439:4,945:3,1075:4,1219:4,}},21:{r:15,w:{3922:3,6017:6,8098:6,}},},"identifiants":{17:{r:3,w:{837:3,}},},"identifier":{8:{r:18,w:{49:3,177:6,353:3,394:6,}},21:{r:15,w:{9205:3,9336:6,9500:6,}},},"identifié":{13:{r:3,w:{688:3,}},},"identifiés":{4:{r:4,w:{1402:4,}},6:{r:3,w:{7730:3,}},14:{r:3,w:{41:3,}},21:{r:3,w:{1643:3,}},},"identique":{6:{r:9,w:{1494:3,1512:3,9212:3,}},21:{r:3,w:{5729:3,}},},"identiques":{6:{r:12,w:{1357:3,1444:3,4704:3,6008:3,}},21:{r:3,w:{4419:3,}},},"idéale":{0:{r:4,w:{293:4,}},18:{r:4,w:{292:4,}},21:{r:4,w:{293:4,}},},"ign":{17:{r:46,w:{1407:6,1415:6,1687:3,1693:3,1716:4,1924:4,1932:8,1942:4,1950:4,1960:4,}},},"ign-wmts":{17:{r:16,w:{1716:4,1924:4,1942:4,1960:4,}},},"ignore":{7:{r:3,w:{192:3,}},21:{r:3,w:{6550:3,}},},"ignwmtslayers":{17:{r:7,w:{1698:3,1945:4,}},},"ignwmtsname":{17:{r:7,w:{1685:3,1903:4,}},},"ignwmtsservice":{17:{r:7,w:{1689:3,1927:4,}},},"iheight":{17:{r:4,w:{1571:4,}},},"il":{0:{r:4,w:{187:4,}},1:{r:6,w:{170:6,}},2:{r:18,w:{12:3,242:3,372:6,576:3,697:3,}},4:{r:26,w:{82:3,548:3,934:3,1180:3,1321:3,1356:5,1621:3,1745:3,}},5:{r:45,w:{116:3,291:3,398:3,508:3,615:3,1329:3,1521:3,1726:4,1741:4,1832:4,1859:4,1866:4,1873:4,}},6:{r:255,w:{30:3,64:3,245:3,318:3,421:3,568:3,696:3,1141:4,1183:4,1244:4,1455:3,1468:3,1624:3,1850:3,2032:3,2047:3,2155:3,2163:3,2191:3,2291:3,2299:3,2329:3,2429:3,2459:3,2537:3,2685:3,2695:3,2765:3,2835:3,2922:3,2949:3,3298:3,3316:3,3475:3,3538:3,3638:3,3652:3,3670:3,3763:3,3791:3,3881:3,3980:3,4074:3,4167:3,4202:3,4218:3,4321:3,4389:3,4414:3,4710:3,4792:3,4832:3,4925:3,4974:3,5678:3,5966:3,6166:3,6428:3,6525:3,6850:3,6966:3,7009:3,7027:3,7191:3,7204:3,7346:4,7389:3,7944:3,7985:3,8281:3,8578:3,8712:3,8725:3,8900:3,9016:3,9031:8,9124:3,9218:6,9302:3,9443:3,9911:3,}},7:{r:43,w:{60:5,258:3,868:5,904:5,967:4,1041:3,1063:4,1497:4,1509:4,1570:3,2196:3,}},8:{r:21,w:{64:3,104:3,133:3,249:3,400:3,443:3,460:3,}},9:{r:15,w:{57:3,180:3,240:3,283:3,302:3,}},11:{r:15,w:{120:3,181:3,294:3,786:3,946:3,}},13:{r:3,w:{780:3,}},14:{r:18,w:{262:3,303:3,595:3,899:3,1042:3,1055:3,}},16:{r:6,w:{18:3,59:3,}},17:{r:22,w:{625:3,1276:3,1597:4,1719:4,1786:4,2121:4,}},18:{r:4,w:{186:4,}},21:{r:243,w:{187:4,485:6,505:3,582:3,612:3,658:3,728:3,774:3,938:3,1002:3,1165:3,1183:3,1336:3,1362:3,1501:3,1629:3,2073:3,2136:3,2259:3,2349:3,2460:3,3082:3,3154:3,3344:3,3515:3,3561:3,3785:4,3829:3,3859:3,3927:3,4041:3,4160:3,4711:3,4717:3,4921:3,4934:3,5077:4,5123:3,5363:3,5540:3,5554:6,5647:3,5735:6,5818:3,6330:3,6413:3,6601:3,6883:3,6918:3,6985:3,7055:3,7077:4,7632:3,8322:4,8334:4,8393:3,9220:3,9263:3,9292:3,9374:3,9419:3,9506:3,9552:3,9569:3,9636:3,9759:3,9819:3,9862:3,9881:3,10128:3,10146:3,10199:3,10507:3,10664:3,11286:3,11327:3,}},},"illustre":{6:{r:3,w:{7558:3,}},21:{r:3,w:{5292:3,}},},"ils":{6:{r:3,w:{5996:3,}},7:{r:11,w:{890:5,1553:6,}},8:{r:3,w:{526:3,}},9:{r:3,w:{266:3,}},21:{r:17,w:{1821:3,6904:3,8375:8,9845:3,}},},"image":{17:{r:4,w:{1189:4,}},},"immédiatement":{4:{r:6,w:{320:3,341:3,}},15:{r:10,w:{315:4,331:3,478:3,}},21:{r:10,w:{11101:4,11117:3,11260:3,}},},"implémenté":{5:{r:3,w:{252:3,}},14:{r:4,w:{491:4,}},},"implémentée":{6:{r:4,w:{8175:4,}},},"import":{3:{r:4,w:{198:4,}},4:{r:135202,w:{1159:4096,1164:65538,1187:6,1227:6,1283:3,1292:3,1529:8,1597:65539,1686:3,}},5:{r:139276,w:{1110:4096,1115:65539,1257:6,1382:65539,1384:4096,}},6:{r:69651,w:{484:65539,576:3,8369:3,8524:4098,8542:8,}},13:{r:65544,w:{663:65538,668:3,845:3,}},14:{r:4109,w:{683:3,845:4098,863:8,}},21:{r:1376301,w:{1476:1048579,1485:65539,1508:6,1548:6,1592:3,1794:65539,1917:3,2950:65539,3100:6,3211:65539,3954:65539,4017:3,}},},"importantes":{21:{r:3,w:{662:3,}},},"importants":{9:{r:3,w:{219:3,}},21:{r:3,w:{9798:3,}},},"importe":{4:{r:3,w:{1755:3,}},5:{r:3,w:{575:3,}},21:{r:3,w:{2416:3,}},},"importer":{4:{r:18,w:{1299:3,1430:4,1483:4,1510:4,1645:3,}},5:{r:33,w:{536:6,1127:3,1133:6,1253:3,1340:3,1396:3,1402:6,1537:3,}},6:{r:27,w:{5301:3,5686:3,6175:3,6477:3,8327:3,8358:3,8380:3,8387:3,8531:3,}},13:{r:8,w:{746:4,750:4,}},14:{r:15,w:{641:3,672:3,694:3,701:3,852:3,}},17:{r:6,w:{59:6,}},21:{r:39,w:{1599:3,1875:3,2377:6,2959:3,2965:6,3096:3,3165:3,3219:3,3225:6,3360:3,}},},"importé":{4:{r:3,w:{1708:3,}},5:{r:3,w:{1349:3,}},6:{r:72,w:{1085:3,1981:3,2108:3,2241:3,2380:3,2509:3,2586:3,2658:3,2736:3,2806:3,2889:3,3014:3,3145:3,3266:3,3385:3,3510:3,3607:3,3731:3,3851:3,3950:3,4044:3,4155:3,5094:3,9226:3,}},11:{r:3,w:{974:3,}},13:{r:6,w:{789:3,840:3,}},15:{r:3,w:{99:3,}},21:{r:16,w:{3174:3,5743:3,10693:5,10884:5,}},},"importée":{6:{r:7,w:{810:4,2129:3,}},7:{r:4,w:{412:4,}},},"importées":{6:{r:20,w:{1958:3,3401:3,5172:4,5206:4,8397:3,8444:3,}},14:{r:6,w:{711:3,762:3,}},},"importés":{4:{r:6,w:{1327:3,1583:3,}},5:{r:7,w:{78:4,1541:3,}},6:{r:6,w:{1788:3,6499:3,}},13:{r:3,w:{887:3,}},21:{r:13,w:{1779:3,1940:3,2036:4,3364:3,}},},"impossible":{2:{r:3,w:{633:3,}},21:{r:4,w:{3787:4,}},},"impérativement":{5:{r:4,w:{1105:4,}},15:{r:3,w:{216:3,}},21:{r:7,w:{2941:4,11002:3,}},},"inactif":{4:{r:3,w:{772:3,}},21:{r:3,w:{1170:3,}},},"inactifs":{8:{r:3,w:{399:3,}},21:{r:3,w:{9505:3,}},},"inboxes":{13:{r:6,w:{330:6,}},},"inc":{6:{r:3,w:{8488:3,}},11:{r:8,w:{829:8,}},14:{r:3,w:{805:3,}},15:{r:16,w:{161:8,164:8,}},17:{r:4,w:{55:4,}},21:{r:112,w:{4423:8,4432:8,4440:8,4557:8,4578:8,4597:8,4620:4,4641:4,4672:8,4678:8,4689:8,4695:8,10550:8,10947:8,10950:8,}},},"inchangé":{21:{r:4,w:{4630:4,}},},"indiquant":{4:{r:3,w:{557:3,}},6:{r:3,w:{8294:3,}},11:{r:9,w:{854:3,896:3,911:3,}},14:{r:3,w:{608:3,}},21:{r:16,w:{948:3,7717:4,10575:3,10616:3,10631:3,}},},"indique":{4:{r:7,w:{1322:3,1385:4,}},6:{r:24,w:{1582:3,2033:3,3050:3,3181:3,3330:3,3476:3,3545:3,4400:3,}},7:{r:3,w:{1021:3,}},13:{r:6,w:{781:3,1004:3,}},15:{r:3,w:{131:3,}},16:{r:6,w:{119:6,}},21:{r:22,w:{909:3,1625:3,6823:4,7038:3,10917:3,11387:6,}},},"indiquer":{4:{r:12,w:{185:3,526:3,1109:3,1139:3,}},6:{r:15,w:{3678:3,3799:3,3894:3,3993:3,4106:3,}},7:{r:24,w:{108:4,738:4,1277:4,1408:4,1778:4,2379:4,}},11:{r:6,w:{506:3,536:3,}},21:{r:41,w:{1427:3,1457:3,6466:4,7290:4,7381:4,7663:3,8041:4,8215:4,8233:4,8602:4,9122:4,}},},"indiquera":{6:{r:3,w:{8031:3,}},14:{r:3,w:{349:3,}},},"indiqué":{13:{r:6,w:{974:3,994:3,}},},"indiquée":{6:{r:3,w:{7662:3,}},},"indiqués":{15:{r:3,w:{421:3,}},21:{r:3,w:{11203:3,}},},"indispensable":{1:{r:6,w:{172:6,}},21:{r:6,w:{487:6,}},},"indispensables":{21:{r:3,w:{10257:3,}},},"info":{9:{r:3,w:{299:3,}},11:{r:3,w:{448:3,}},21:{r:3,w:{9878:3,}},},"info-bulles":{9:{r:3,w:{299:3,}},21:{r:3,w:{9878:3,}},},"information":{6:{r:6,w:{9366:6,}},12:{r:3,w:{11:3,}},21:{r:9,w:{5879:6,11459:3,}},},"informations":{1:{r:6,w:{77:6,}},2:{r:6,w:{51:3,282:3,}},5:{r:3,w:{643:3,}},6:{r:6,w:{7870:3,9465:3,}},11:{r:65544,w:{95:3,434:3,442:65538,}},14:{r:3,w:{188:3,}},21:{r:15,w:{392:6,542:3,661:3,2482:3,}},},"informé":{8:{r:3,w:{158:3,}},21:{r:3,w:{9317:3,}},},"inférieure":{6:{r:4,w:{6936:4,}},},"ini":{11:{r:6,w:{136:6,}},21:{r:6,w:{10215:6,}},},"initial":{6:{r:4,w:{877:4,}},},"initialement":{3:{r:3,w:{32:3,}},6:{r:4,w:{1025:4,}},13:{r:3,w:{625:3,}},},"initiales":{6:{r:11,w:{926:4,8224:4,8340:3,}},14:{r:7,w:{540:4,654:3,}},},"initialisation":{2:{r:11,w:{147:5,702:6,}},3:{r:285216773,w:{1:268435456,6:4096,10:16777218,130:3,}},21:{r:16777225,w:{689:16777219,704:6,}},},"initialise":{17:{r:3,w:{189:3,}},},"initialiser":{21:{r:3,w:{806:3,}},},"inscrire":{6:{r:6,w:{9244:6,}},21:{r:6,w:{5760:6,}},},"inscrits":{6:{r:3,w:{6198:3,}},},"insert2|nom":{17:{r:6,w:{823:6,}},},"insert2|pdesi|commune_esi|id_esi|id_com|":{17:{r:3,w:{818:3,}},},"insertion":{6:{r:4098,w:{7484:4098,}},17:{r:14,w:{1510:6,2328:8,}},21:{r:4098,w:{5218:4098,}},},"inspector":{7:{r:4,w:{830:4,}},21:{r:4,w:{8131:4,}},},"install":{2:{r:6,w:{327:3,542:3,}},},"install_report_dd":{2:{r:3,w:{563:3,}},},"install_report_dd-mm":{2:{r:3,w:{563:3,}},},"install_report_dd-mm-yyyy":{2:{r:3,w:{563:3,}},},"installateur":{2:{r:15,w:{66:3,96:3,497:6,696:3,}},},"installateur_gtf_application_web":{2:{r:3,w:{332:3,}},},"installation":{2:{r:302133326,w:{1:268435456,5:16777218,138:5,154:5,159:16777218,168:65538,173:4098,212:4098,263:8,270:4098,315:8,320:65538,348:3,356:6,512:4,547:3,562:6,582:6,721:10,}},3:{r:4,w:{217:4,}},4:{r:285343774,w:{1:268435456,6:16777218,21:5,25:5,45:65538,219:65538,288:8,1222:6,}},5:{r:8,w:{883:8,}},15:{r:6,w:{203:3,208:3,}},21:{r:16781353,w:{494:4096,498:16777219,714:6,753:6,1543:6,2719:8,10254:6,10989:3,10994:3,}},},"installer":{2:{r:9,w:{10:3,247:6,}},21:{r:3,w:{503:3,}},},"installeur":{15:{r:4,w:{275:4,}},21:{r:10,w:{697:3,787:3,11061:4,}},},"installé":{2:{r:3,w:{304:3,}},4:{r:6,w:{1217:3,1715:3,}},6:{r:3,w:{7121:3,}},11:{r:3,w:{424:3,}},15:{r:8,w:{271:4,302:4,}},21:{r:29,w:{571:3,593:3,606:3,782:3,1538:3,4853:3,10244:3,11057:4,11088:4,}},},"installée":{2:{r:3,w:{621:3,}},6:{r:7,w:{5193:4,5586:3,}},11:{r:3,w:{458:3,}},21:{r:3,w:{10283:3,}},},"installés":{6:{r:3,w:{7838:3,}},11:{r:6,w:{428:3,766:3,}},14:{r:3,w:{149:3,}},21:{r:3,w:{10487:3,}},},"instance":{2:{r:3,w:{595:3,}},4:{r:9,w:{461:6,491:3,}},21:{r:12,w:{617:3,847:6,877:3,}},},"instruction":{6:{r:9,w:{6196:3,9347:6,}},21:{r:6,w:{5863:6,}},},"insère":{6:{r:3,w:{4361:3,}},},"insérant":{4:{r:4,w:{308:4,}},5:{r:3,w:{240:3,}},6:{r:9,w:{4905:3,6057:3,9297:3,}},21:{r:3,w:{5813:3,}},},"insérer":{4:{r:6,w:{325:3,346:3,}},6:{r:9,w:{3300:3,4076:3,7545:3,}},15:{r:4,w:{26:4,}},21:{r:3,w:{5279:3,}},},"inséré":{4:{r:3,w:{1340:3,}},13:{r:6,w:{810:6,}},21:{r:3,w:{4759:3,}},},"insérée":{6:{r:4,w:{9842:4,}},},"integerfield":{17:{r:11,w:{543:4,556:3,562:4,}},},"interdits":{11:{r:3,w:{179:3,}},},"interface":{0:{r:8,w:{154:4,301:4,}},3:{r:3,w:{164:3,}},5:{r:12,w:{1145:3,1343:6,1446:3,}},6:{r:4114,w:{1838:3,1901:10,4881:4098,4890:3,}},13:{r:7,w:{578:7,}},16:{r:6,w:{28:6,}},18:{r:8,w:{153:4,300:4,}},21:{r:26,w:{154:4,301:4,2977:3,3168:6,3269:3,11296:6,}},},"interface-ligne":{6:{r:3,w:{4890:3,}},},"interne":{5:{r:7,w:{54:4,1605:3,}},21:{r:7,w:{2012:4,3427:3,}},},"internet":{0:{r:3,w:{25:3,}},6:{r:4,w:{7176:4,}},11:{r:3,w:{249:3,}},18:{r:3,w:{28:3,}},21:{r:12,w:{25:3,4907:3,5311:3,10401:3,}},},"intégrant":{0:{r:4,w:{318:4,}},21:{r:4,w:{318:4,}},},"intégrer":{6:{r:6,w:{565:3,7150:3,}},17:{r:4,w:{1758:4,}},21:{r:6,w:{4038:3,4882:3,}},},"intégré":{6:{r:4,w:{7172:4,}},11:{r:3,w:{244:3,}},21:{r:6,w:{4903:3,10396:3,}},},"intégrée":{6:{r:7,w:{7376:4,7460:3,}},7:{r:8,w:{635:4,1677:4,}},21:{r:7,w:{5107:4,5194:3,}},},"intégrés":{3:{r:3,w:{193:3,}},13:{r:1048581,w:{618:1048578,624:3,}},},"invalide":{13:{r:3,w:{1009:3,}},},"invalides":{13:{r:4,w:{965:4,}},},"inversement":{4:{r:4,w:{1456:4,}},9:{r:3,w:{345:3,}},21:{r:3,w:{9924:3,}},},"inversément":{21:{r:3,w:{1693:3,}},},"ip":{5:{r:17,w:{177:3,191:3,209:3,666:4,672:4,}},21:{r:11,w:{2132:3,2502:4,2508:4,}},},"ipv4":{4:{r:7,w:{316:4,322:3,}},15:{r:4,w:{317:4,}},21:{r:4,w:{11103:4,}},},"ipv6":{4:{r:7,w:{318:4,343:3,}},5:{r:6,w:{945:3,1056:3,}},15:{r:3,w:{333:3,}},21:{r:9,w:{2781:3,2892:3,11119:3,}},},"issu":{7:{r:9,w:{816:3,1330:3,1832:3,}},21:{r:3,w:{8117:3,}},},"issues":{6:{r:14,w:{732:3,764:3,895:4,5186:4,}},21:{r:6,w:{4190:3,4226:3,}},},"issus":{5:{r:6,w:{552:3,1637:3,}},6:{r:3,w:{1823:3,}},13:{r:3,w:{820:3,}},21:{r:6,w:{2393:3,3459:3,}},},"iwidth":{17:{r:4,w:{1562:4,}},},"jan":{13:{r:3,w:{81:3,}},21:{r:3,w:{11568:3,}},},"javascript":{6:{r:4,w:{1149:4,}},17:{r:27,w:{254:3,443:4,447:3,464:3,1082:4,1086:3,1103:3,1215:4,}},},"jeton":{6:{r:30,w:{7243:3,7255:3,7274:3,7278:3,7289:4,7311:4,7350:4,7512:3,7534:3,}},11:{r:4111,w:{192:4096,225:3,233:3,256:3,304:3,311:3,}},16:{r:8,w:{147:8,}},21:{r:65589,w:{4971:3,4983:3,5002:3,5006:3,5017:4,5042:4,5081:4,5246:3,5268:3,10354:65539,10378:3,10385:3,10408:3,10455:3,11415:8,}},},"jetons":{6:{r:8194,w:{7234:4096,7238:4098,}},21:{r:4098,w:{4966:4098,}},},"jeu":{7:{r:21,w:{71:5,1393:4,1402:4,1451:4,1597:4,}},21:{r:27,w:{6424:3,7442:4,7484:4,8200:4,8209:4,8276:4,8420:4,}},},"jeux":{11:{r:4,w:{1023:4,}},21:{r:4,w:{10743:4,}},},"jj":{13:{r:8,w:{31:4,58:4,}},17:{r:3,w:{1252:3,}},21:{r:8,w:{11518:4,11545:4,}},},"jjj":{13:{r:8,w:{33:4,93:4,}},21:{r:8,w:{11520:4,11580:4,}},},"jour":{2:{r:3,w:{75:3,}},3:{r:3,w:{101:3,}},4:{r:6,w:{1345:3,1352:3,}},5:{r:6,w:{331:3,480:3,}},6:{r:15,w:{223:5,704:3,854:4,7671:3,}},7:{r:20,w:{366:4,680:4,1723:4,2087:4,2329:4,}},9:{r:10,w:{197:4,341:3,372:3,}},13:{r:19,w:{64:3,101:3,107:3,732:4,800:3,806:3,}},17:{r:6,w:{352:3,972:3,}},21:{r:65,w:{1617:3,2167:3,4168:3,4257:4,6714:4,7231:4,7587:4,7979:4,8543:4,8860:4,9068:3,9776:4,9920:3,9951:3,10289:3,10299:3,11551:3,11588:3,11594:3,}},},"journalisation":{11:{r:3,w:{381:3,}},},"journalière":{9:{r:3,w:{64:3,}},21:{r:3,w:{9643:3,}},},"journaux":{4:{r:3,w:{214:3,}},10:{r:285212675,w:{1:268435456,4:16777219,}},11:{r:4101,w:{367:4098,375:3,}},21:{r:16777219,w:{9961:16777219,}},},"jours":{11:{r:3,w:{1057:3,}},13:{r:3,w:{162:3,}},21:{r:6,w:{10777:3,11649:3,}},},"json":{6:{r:8226,w:{1147:4,1360:8,1377:8,1393:8,4813:8192,4816:6,}},13:{r:13,w:{836:3,862:3,902:3,960:4,}},17:{r:4,w:{2356:4,}},},"key":{17:{r:20,w:{1460:6,1657:3,1660:3,1813:4,1831:4,}},},"ko":{8:{r:3,w:{593:3,}},11:{r:3,w:{388:3,}},},"l":{0:{r:11,w:{73:3,141:4,155:4,}},1:{r:6,w:{43:6,}},2:{r:44,w:{184:3,355:3,496:3,546:3,581:3,594:3,603:3,612:3,618:3,629:3,695:3,701:3,704:3,720:5,}},3:{r:6,w:{129:3,215:3,}},4:{r:44,w:{78:3,249:4,295:4,460:3,467:3,667:3,691:3,699:3,1116:3,1125:3,1140:3,1186:3,1221:3,1226:3,}},5:{r:4220,w:{22:3,112:3,118:3,160:3,324:3,530:3,566:3,581:3,639:3,765:4,805:4,825:3,831:3,853:4,888:4,1099:4,1129:3,1150:3,1152:3,1177:3,1184:3,1187:3,1204:3,1218:3,1221:3,1325:3,1342:3,1366:3,1378:3,1398:3,1413:3,1426:3,1429:3,1451:3,1472:3,1479:3,1482:3,1499:4098,1503:3,1518:3,}},6:{r:90,w:{45:3,97:3,236:3,302:3,673:3,1052:3,1283:3,1290:3,4439:4,5131:3,6512:3,6523:3,7693:5,8766:3,8775:3,8785:3,8802:3,8957:3,8995:3,9000:3,9048:3,9171:3,9186:3,9259:3,9262:3,9280:3,9312:3,9339:3,9346:3,}},7:{r:56,w:{556:4,559:4,698:4,796:3,840:4,1022:3,1050:3,1310:3,1358:5,1440:4,1659:4,1771:4,1812:3,1874:5,2138:3,}},8:{r:39,w:{30:3,58:3,61:3,75:3,90:3,95:3,100:3,110:3,197:3,376:3,381:3,423:3,428:3,}},9:{r:21,w:{19:3,44:3,70:3,152:3,236:3,333:3,377:3,}},10:{r:1048585,w:{15:1048579,25:3,38:3,}},11:{r:1048603,w:{19:1048579,62:3,513:3,522:3,537:3,931:3,943:3,981:3,1053:3,}},12:{r:3,w:{16:3,}},13:{r:9,w:{51:3,75:3,96:3,}},15:{r:29,w:{21:5,106:3,119:3,190:4,213:3,273:4,287:7,}},16:{r:25,w:{27:3,51:3,65:3,68:3,81:3,118:3,126:3,153:4,}},17:{r:70,w:{188:3,366:3,1587:4,1826:4,1844:4,1852:4,1868:4,1883:4,1899:4,1907:4,1922:4,1940:4,1958:4,2143:4,2174:4,2199:4,2206:4,2215:4,}},18:{r:11,w:{76:3,140:4,154:4,}},21:{r:3146256,w:{73:3,141:4,155:4,358:6,696:3,698:3,703:3,706:3,713:3,723:3,752:3,755:3,760:3,786:3,807:3,809:3,846:3,853:3,904:3,973:3,1064:3,1088:3,1096:3,1141:3,1257:4,1434:3,1443:3,1458:3,1507:3,1542:3,1547:3,1962:5,1980:3,2069:3,2075:3,2112:3,2141:3,2160:3,2371:3,2407:3,2422:3,2478:3,2601:4,2641:4,2661:3,2667:3,2689:4,2724:4,2935:4,2961:3,2982:3,2984:3,3009:3,3016:3,3019:3,3036:4,3040:3,3044:3,3048:3,3061:3,3064:3,3079:3,3150:3,3167:3,3191:3,3203:3,3221:3,3236:3,3249:3,3252:3,3274:3,3295:3,3302:3,3305:3,3322:3,3326:3,3341:3,3539:3,3595:3,3805:3,4137:3,4316:3,4350:3,4357:3,4531:4,4797:3,5387:3,5396:3,5406:3,5423:3,5483:3,5520:3,5525:3,5571:3,5688:3,5703:3,5775:3,5778:3,5796:3,5828:3,5855:3,5862:3,6783:3,7039:3,7064:3,7430:4,7856:4,7859:4,7997:4,8097:3,8141:4,8160:3,8263:4,8486:4,8595:4,8658:3,8915:3,9186:3,9214:3,9217:3,9231:3,9249:3,9254:3,9259:3,9269:3,9356:3,9482:3,9487:3,9532:3,9537:3,9598:3,9623:3,9649:3,9731:3,9815:3,9912:3,9956:3,9973:1048579,9983:3,9996:3,10023:1048579,10071:3,10253:3,10649:3,10661:3,10701:3,10773:3,10826:1048579,10892:3,10905:3,10976:4,10999:3,11059:4,11073:7,11295:3,11319:3,11333:3,11336:3,11349:3,11386:3,11394:3,11421:4,11464:3,11538:3,11562:3,11583:3,}},},"l\u0027accès":{5:{r:20,w:{232:3,280:3,296:3,1697:4,1720:4,1769:3,}},6:{r:3,w:{7281:3,}},11:{r:3,w:{339:3,}},13:{r:3,w:{222:3,}},21:{r:6,w:{5009:3,10446:3,}},},"l\u0027acquisition":{1:{r:6,w:{143:6,}},21:{r:6,w:{458:6,}},},"l\u0027active":{5:{r:3,w:{1286:3,}},},"l\u0027activer":{11:{r:3,w:{481:3,}},21:{r:3,w:{10319:3,}},},"l\u0027administrateur":{2:{r:6,w:{456:6,}},3:{r:3,w:{83:3,}},4:{r:17,w:{812:4,878:4,1000:3,1238:3,1716:3,}},5:{r:10,w:{277:3,1847:4,1894:3,}},6:{r:29,w:{377:3,7158:3,7265:3,7302:4,7334:4,7445:3,9415:3,9499:3,9904:3,}},8:{r:16,w:{229:3,265:4,279:3,314:3,604:3,}},11:{r:12,w:{150:3,282:3,719:3,816:3,}},21:{r:77,w:{1205:4,1295:4,3635:3,3670:4,3697:4,3739:4,4025:3,4065:3,4239:3,4703:3,4890:3,4993:3,5030:4,5065:4,5179:3,5924:3,5994:3,6323:3,9399:3,9435:4,9444:3,10100:3,10537:3,}},},"l\u0027adresse":{6:{r:6,w:{7431:3,8904:3,}},11:{r:3,w:{654:3,}},12:{r:3,w:{23:3,}},15:{r:3,w:{385:3,}},16:{r:3,w:{104:3,}},21:{r:9,w:{5165:3,11167:3,11372:3,}},},"l\u0027affichage":{6:{r:4119,w:{2934:3,3082:3,3214:3,4856:3,4896:3,5962:4098,5970:3,6953:3,}},},"l\u0027afficher":{17:{r:3,w:{275:3,}},},"l\u0027affiliation":{4:{r:4,w:{862:4,}},21:{r:4,w:{1279:4,}},},"l\u0027aide":{16:{r:3,w:{33:3,}},21:{r:3,w:{11301:3,}},},"l\u0027ajout":{1:{r:6,w:{136:6,}},6:{r:3,w:{75:3,}},21:{r:9,w:{451:6,3572:3,}},},"l\u0027ancien":{6:{r:3,w:{7634:3,}},},"l\u0027api":{0:{r:8,w:{268:4,304:4,}},5:{r:4,w:{1753:4,}},13:{r:3,w:{277:3,}},16:{r:3,w:{173:3,}},18:{r:4,w:{267:4,}},21:{r:14,w:{268:4,304:4,4802:3,11441:3,}},},"l\u0027application":{2:{r:6,w:{439:6,}},3:{r:3,w:{150:3,}},5:{r:4,w:{1849:4,}},6:{r:3,w:{379:3,}},8:{r:3,w:{507:3,}},11:{r:9,w:{43:3,75:3,152:3,}},15:{r:135180,w:{10:3,47:65539,350:4096,354:65539,367:3,}},21:{r:131090,w:{1949:3,10048:3,10102:3,10835:65539,11136:65539,11149:3,}},},"l\u0027arborescence":{7:{r:3,w:{1199:3,}},21:{r:12,w:{7205:4,7718:4,7762:4,}},},"l\u0027arbre":{5:{r:4098,w:{1202:4098,}},},"l\u0027architecture":{1:{r:3,w:{21:3,}},21:{r:3,w:{336:3,}},},"l\u0027archive":{4:{r:7,w:{224:3,246:4,}},},"l\u0027ascendance":{6:{r:15,w:{2073:3,2217:3,2355:3,2485:3,6859:3,}},},"l\u0027aspect":{16:{r:3,w:{38:3,}},21:{r:3,w:{11306:3,}},},"l\u0027associe":{6:{r:3,w:{37:3,}},21:{r:3,w:{3522:3,}},},"l\u0027attribut":{4:{r:4,w:{1407:4,}},6:{r:18,w:{5871:4,6062:3,6817:3,6917:4,6938:4,}},21:{r:3,w:{1648:3,}},},"l\u0027attribution":{3:{r:3,w:{46:3,}},},"l\u0027auteur":{6:{r:114,w:{146:4,163:4,552:3,598:3,836:3,1445:3,1609:3,2008:3,2131:3,2267:3,2405:3,2517:3,2595:3,2670:3,2744:3,2814:3,2906:3,3027:3,3158:3,3279:3,3444:3,3520:3,3620:3,3745:3,3863:3,3962:3,4056:3,4183:3,4357:3,4457:4,4503:3,4643:3,4818:3,4960:3,5007:3,5062:3,9417:3,}},13:{r:3,w:{1012:3,}},},"l\u0027authentification":{0:{r:4,w:{181:4,}},11:{r:3,w:{680:3,}},18:{r:4,w:{180:4,}},21:{r:4,w:{181:4,}},},"l\u0027e":{6:{r:4,w:{9877:4,}},},"l\u0027e-mail":{6:{r:4,w:{9877:4,}},},"l\u0027emplacement":{6:{r:12,w:{7552:3,8032:3,8287:3,8630:3,}},7:{r:5,w:{69:5,}},11:{r:3,w:{184:3,}},14:{r:12,w:{350:3,601:3,782:3,955:3,}},21:{r:9,w:{5286:3,6422:3,10131:3,}},},"l\u0027enregistrement":{6:{r:4,w:{1235:4,}},},"l\u0027ensemble":{6:{r:8,w:{1173:4,4445:4,}},15:{r:3,w:{90:3,}},21:{r:3,w:{10874:3,}},},"l\u0027environnement":{21:{r:4,w:{1850:4,}},},"l\u0027envoi":{11:{r:3,w:{597:3,}},},"l\u0027exemple":{6:{r:37,w:{154:4,195:4,225:5,5699:3,5828:3,6044:3,6189:3,6302:3,6482:3,6653:3,7555:3,}},21:{r:15,w:{3688:4,3729:4,3774:4,5289:3,}},},"l\u0027exercice":{7:{r:4,w:{1384:4,}},},"l\u0027exploitation":{6:{r:3,w:{728:3,}},7:{r:4,w:{2164:4,}},21:{r:3,w:{4187:3,}},},"l\u0027export":{6:{r:3,w:{4804:3,}},},"l\u0027expression":{5:{r:3,w:{302:3,}},},"l\u0027expéditeur":{8:{r:3,w:{624:3,}},11:{r:6,w:{660:3,686:3,}},},"l\u0027extension":{4:{r:5,w:{1360:5,}},},"l\u0027exécution":{1:{r:6,w:{92:6,}},4:{r:3,w:{84:3,}},6:{r:3,w:{274:3,}},21:{r:9,w:{407:6,3854:3,}},},"l\u0027identifiant":{6:{r:7,w:{459:3,7292:4,}},11:{r:3,w:{237:3,}},17:{r:3,w:{832:3,}},21:{r:7,w:{5020:4,10389:3,}},},"l\u0027ign":{21:{r:3,w:{4781:3,}},},"l\u0027import":{4:{r:4,w:{1532:4,}},6:{r:3,w:{79:3,}},13:{r:9,w:{670:3,794:3,814:3,}},21:{r:3,w:{3576:3,}},},"l\u0027importation":{4:{r:3,w:{1337:3,}},},"l\u0027initialisation":{2:{r:5,w:{713:5,}},4:{r:3,w:{997:3,}},},"l\u0027insertion":{6:{r:10,w:{7180:4,7417:3,7559:3,}},17:{r:3,w:{806:3,}},21:{r:12,w:{4768:3,4910:3,5151:3,5293:3,}},},"l\u0027installateur":{2:{r:9,w:{15:3,63:3,109:3,}},},"l\u0027installation":{2:{r:65541,w:{194:3,590:65538,}},4:{r:4108,w:{11:3,125:4098,281:4,1047:3,}},21:{r:6,w:{657:3,676:3,}},},"l\u0027installer":{11:{r:3,w:{478:3,}},21:{r:3,w:{10316:3,}},},"l\u0027installeur":{21:{r:6,w:{508:3,554:3,}},},"l\u0027insérer":{21:{r:3,w:{4725:3,}},},"l\u0027interface":{6:{r:3,w:{1842:3,}},11:{r:6,w:{163:3,403:3,}},21:{r:3,w:{10113:3,}},},"l\u0027interpréteur":{6:{r:3,w:{8624:3,}},14:{r:3,w:{949:3,}},},"l\u0027intégralité":{2:{r:3,w:{111:3,}},3:{r:3,w:{145:3,}},5:{r:4,w:{1834:4,}},7:{r:3,w:{1218:3,}},},"l\u0027intégration":{6:{r:3,w:{7095:3,}},21:{r:3,w:{4827:3,}},},"l\u0027intégrer":{6:{r:3,w:{4828:3,}},},"l\u0027obtention":{6:{r:3,w:{7421:3,}},17:{r:3,w:{1387:3,}},21:{r:6,w:{4783:3,5155:3,}},},"l\u0027on":{2:{r:3,w:{636:3,}},6:{r:16,w:{972:4,1371:4,1387:4,1404:4,}},},"l\u0027onglet":{5:{r:6,w:{1123:3,1296:3,}},6:{r:6,w:{9393:3,9464:3,}},21:{r:6,w:{5906:3,5958:3,}},},"l\u0027option":{6:{r:3,w:{6798:3,}},},"l\u0027ordonnanceur":{4:{r:3,w:{403:3,}},},"l\u0027ordre":{6:{r:4,w:{1188:4,}},},"l\u0027origine":{8:{r:6,w:{354:3,370:3,}},},"l\u0027unicité":{6:{r:3,w:{438:3,}},21:{r:3,w:{3943:3,}},},"l\u0027utilisateur":{0:{r:4,w:{241:4,}},4:{r:4,w:{271:4,}},5:{r:13,w:{195:3,1713:4,1777:3,1897:3,}},6:{r:7,w:{7138:3,7343:4,}},11:{r:3,w:{1092:3,}},17:{r:12,w:{277:3,363:3,787:3,983:3,}},18:{r:4,w:{240:4,}},21:{r:23,w:{241:4,2200:3,4870:3,5074:4,7613:3,7654:3,10812:3,}},},"l\u0027utilisation":{6:{r:3,w:{7283:3,}},21:{r:3,w:{5011:3,}},},"l\u0027échelle":{6:{r:4,w:{4563:4,}},},"l\u0027écran":{5:{r:3,w:{1294:3,}},6:{r:21,w:{1170:4,1216:4,1232:4,5791:3,6272:3,6623:3,}},},"l\u0027éditer":{6:{r:12,w:{5466:3,5795:3,6276:3,6627:3,}},},"l\u0027édition":{6:{r:9,w:{1757:3,9920:3,9933:3,}},11:{r:6,w:{70:3,564:3,}},21:{r:6,w:{6339:3,6352:3,}},},"l\u0027élément":{6:{r:3,w:{6848:3,}},},"l\u0027état":{11:{r:6,w:{41:3,425:3,}},21:{r:3,w:{10046:3,}},},"l\u0027étendue":{6:{r:4,w:{4556:4,}},},"l\u0027évènement":{17:{r:7,w:{256:3,1217:4,}},},"la":{0:{r:30,w:{65:3,68:3,183:4,233:4,243:4,258:4,263:4,291:4,}},1:{r:12,w:{107:6,129:6,}},2:{r:61,w:{43:3,102:3,380:6,390:6,399:6,403:12,418:6,489:6,524:4,615:3,624:3,643:3,}},3:{r:9,w:{28:3,40:3,159:3,}},4:{r:146,w:{42:5,130:3,136:3,147:3,210:3,243:4,261:4,268:4,274:4,326:3,347:3,367:3,393:3,499:3,583:4,586:4,594:4,636:3,645:3,718:3,753:3,892:4,973:3,984:3,1024:3,1034:3,1054:3,1067:3,1323:3,1380:4,1398:4,1446:4,1469:4,1474:4,1499:4,1527:4,1537:3,1539:3,1549:3,1559:3,1578:3,1650:3,1720:3,}},5:{r:147,w:{50:4,82:3,187:3,218:3,308:3,460:3,490:3,533:3,554:3,658:4,695:4,710:4,723:4,736:4,840:3,866:4,873:4,911:3,1004:3,1174:3,1213:3,1226:3,1232:3,1290:3,1299:3,1351:3,1359:3,1442:3,1469:3,1508:3,1514:3,1548:3,1558:3,1603:3,1608:3,1642:3,1652:3,1702:4,1730:4,1737:4,1749:4,1815:4,1877:4,1885:4,}},6:{r:33673,w:{50:3,117:3,220:5,321:3,357:3,365:3,388:3,403:3,515:3,523:3,590:3,670:3,689:3,721:3,772:3,778:3,828:3,942:4,1043:3,1090:3,1159:4,1236:4,1413:3,1431:3,1539:3,1561:3,1642:3,1650:3,1689:3,1692:3,1706:3,1711:3,1734:3,1752:3,1859:3,1992:3,1995:3,2043:3,2063:3,2127:3,2151:3,2174:3,2207:3,2251:3,2254:3,2310:3,2345:3,2389:3,2392:3,2440:3,2475:3,2506:3,2533:3,2540:3,2560:3,2588:3,2622:3,2662:3,2688:3,2706:3,2761:3,2777:3,2831:3,2847:3,2893:3,2928:3,2942:3,2961:3,2966:3,3018:3,3045:3,3095:3,3149:3,3176:3,3227:3,3268:3,3313:3,3323:3,3389:3,3397:3,3428:3,3431:3,3471:3,3486:3,3512:3,3540:3,3609:3,3641:3,3673:3,3688:3,3733:3,3766:3,3787:3,3794:3,3809:3,3853:3,3884:3,3889:3,3904:3,3952:3,3983:3,3988:3,4003:3,4046:3,4088:3,4096:3,4101:3,4116:3,4204:3,4231:3,4341:3,4391:3,4394:3,4397:3,4410:3,4427:4,4430:4,4447:4,4455:4,4463:4,4485:4,4517:3,4526:4,4533:4,4536:4,4567:4,4571:4,4600:4,4616:4,4622:4,4744:3,4752:3,4799:3,4802:3,4836:3,4911:3,4977:3,4983:3,5018:3,5068:3,5129:3,5134:3,5250:3,5337:4098,5357:3,5382:3,5395:3,5398:3,5402:3,5410:3,5436:4099,5446:3,5461:3,5468:3,5483:3,5498:4,5519:3,5526:3,5539:3,5595:4098,5621:3,5628:3,5640:3,5645:3,5667:3,5671:3,5674:3,5718:3,5729:3,5762:4099,5783:3,5797:3,5804:4,5818:3,5821:3,5835:3,5875:3,5893:3,5921:3,5954:3,5974:3,6091:4098,6117:3,6128:3,6146:3,6151:3,6155:3,6160:3,6163:3,6211:3,6243:4098,6264:3,6278:3,6292:3,6295:3,6309:3,6349:3,6356:3,6377:3,6410:3,6472:3,6487:3,6548:4,6562:3,6594:4098,6615:3,6629:3,6643:3,6646:3,6660:3,6700:3,6707:3,6728:3,6761:3,6870:3,6876:3,6880:3,6905:4,6912:4,6926:4,6933:4,6955:3,6969:3,6986:3,7035:3,7040:3,7043:3,7054:3,7059:3,7076:3,7083:3,7090:3,7125:3,7135:3,7153:3,7174:4,7187:4,7220:3,7267:3,7371:4,7400:3,7442:3,7447:3,7456:3,7500:3,7526:3,7548:3,7582:3,7654:3,7667:3,7732:3,7766:3,7881:3,8156:3,8165:4,8177:4,8194:4,8200:4,8210:4,8241:3,8336:3,8364:3,8526:4098,8532:3,8537:3,8557:5,8569:5,8881:3,8909:3,8942:3,8976:3,8986:3,9004:3,9039:3,9072:3,9168:3,9352:3,9356:5,9372:3,9400:3,9419:3,9428:3,9449:3,9513:6,9526:6,9549:6,9836:4,}},7:{r:218,w:{193:3,211:4,353:4,369:4,403:4,439:4,631:4,667:4,683:4,774:4,779:4,799:3,808:3,909:5,945:4,948:4,950:4,994:4,1005:4,1141:4,1211:3,1226:4,1288:4,1293:4,1313:3,1322:3,1557:3,1566:3,1588:3,1673:4,1710:4,1726:4,1790:4,1795:4,1815:3,1824:3,1915:3,1943:4,2074:4,2090:4,2112:3,2115:3,2120:3,2141:3,2146:3,2186:3,2211:3,2216:4,2240:4,2245:4,2259:4,2268:4,2271:4,2275:4,2345:4,2391:4,2393:4,2401:4,2406:4,}},8:{r:38,w:{35:3,160:3,233:3,257:4,261:4,283:3,360:3,385:3,420:3,432:3,574:3,608:3,}},9:{r:27,w:{84:3,91:3,182:3,187:3,232:3,279:3,292:3,295:3,338:3,}},10:{r:3,w:{41:3,}},11:{r:61,w:{50:3,92:3,98:3,103:3,207:3,211:3,285:3,347:3,354:3,357:3,378:3,384:3,409:3,445:3,455:3,611:3,801:3,883:4,991:3,1064:3,}},12:{r:3,w:{34:3,}},13:{r:1048621,w:{14:1048579,26:3,109:3,247:3,252:3,707:3,764:4,785:3,830:3,856:3,872:3,876:3,935:4,1021:4,}},14:{r:4158,w:{43:3,77:3,199:3,472:3,481:4,493:4,510:4,516:4,526:4,555:3,650:3,678:3,847:4098,853:3,858:3,878:5,890:5,974:3,}},15:{r:36,w:{3:3,71:3,74:3,147:3,171:4,193:4,210:3,290:7,364:3,465:3,}},16:{r:18,w:{70:3,74:3,77:3,89:3,93:3,163:3,}},17:{r:160,w:{48:3,63:3,71:3,94:3,109:3,136:3,145:3,148:3,207:3,304:3,359:3,376:3,512:3,547:3,585:3,623:3,628:3,690:3,743:3,810:3,827:3,833:3,839:3,874:3,879:3,891:3,899:3,909:3,916:3,979:3,994:3,1198:4,1201:4,1281:3,1326:3,1483:3,1487:3,1566:4,1575:4,1643:4,1709:4,1727:4,1794:4,1856:4,1911:4,2039:4,2047:3,2187:4,2222:4,}},18:{r:30,w:{68:3,71:3,182:4,232:4,242:4,257:4,262:4,290:4,}},21:{r:1049414,w:{65:3,68:3,183:4,233:4,243:4,258:4,263:4,291:4,422:6,444:6,534:3,628:3,654:3,664:3,885:3,924:3,934:3,989:3,1012:3,1033:3,1042:3,1115:3,1151:3,1309:4,1371:3,1390:3,1639:3,1708:3,1733:3,1735:3,1745:3,1755:3,1774:3,1844:4,1847:4,1856:4,1881:3,1942:3,2008:4,2040:3,2128:3,2144:3,2332:3,2374:3,2395:3,2494:4,2531:4,2546:4,2559:4,2572:4,2676:3,2702:4,2709:4,2747:3,2840:3,3006:3,3057:3,3069:3,3075:3,3124:3,3176:3,3184:3,3265:3,3292:3,3331:3,3337:3,3371:3,3381:3,3425:3,3430:3,3464:3,3474:3,3544:3,3609:3,3809:3,3893:3,3908:3,3983:3,3991:3,4023:3,4057:3,4134:3,4153:3,4180:3,4231:3,4307:3,4449:3,4480:4,4497:4,4513:4,4534:4,4585:4,4600:4,4614:4,4649:4,4761:3,4807:3,4822:3,4857:3,4867:3,4885:3,4905:3,4917:3,4950:3,4995:3,5102:4,5134:3,5176:3,5181:3,5190:3,5234:3,5260:3,5282:3,5306:3,5321:3,5468:3,5501:3,5511:3,5529:3,5562:3,5595:3,5685:3,5868:3,5872:5,5885:3,5910:3,5926:3,5934:3,6006:6,6019:6,6042:6,6551:3,6569:4,6701:4,6717:4,6792:3,6806:4,6923:3,6963:3,6966:3,6968:3,7012:3,7023:4,7218:4,7234:4,7297:4,7302:4,7463:4,7574:4,7590:4,7657:3,7690:4,7772:4,7777:4,7966:4,7982:4,8075:4,8080:4,8100:3,8109:3,8236:4,8379:4,8388:4,8411:3,8530:4,8546:4,8614:4,8619:4,8703:3,8731:4,8847:4,8863:4,8889:3,8892:3,8897:3,8918:3,8923:3,8970:4,8982:4,8986:4,8989:4,9002:4,9005:4,9008:4,9016:4,9084:3,9134:4,9136:4,9144:4,9149:4,9191:3,9319:3,9403:3,9427:4,9431:4,9448:3,9491:3,9529:3,9541:3,9663:3,9670:3,9761:3,9766:3,9811:3,9858:3,9871:3,9874:3,9917:3,9999:3,10059:3,10079:3,10149:3,10156:3,10182:3,10229:3,10262:3,10271:3,10280:3,10285:3,10295:3,10303:3,10321:3,10325:3,10328:3,10357:3,10361:3,10522:3,10603:4,10711:3,10784:3,10855:3,10858:3,10933:3,10957:4,10979:4,10996:3,11076:7,11146:3,11247:3,11338:3,11342:3,11345:3,11357:3,11361:3,11431:3,11501:1048579,11513:3,11596:3,}},},"label":{6:{r:4135,w:{1906:10,1908:10,4923:4098,4931:3,4933:4,4940:3,4988:4,4995:3,}},13:{r:14,w:{583:7,585:7,}},},"label-":{6:{r:4,w:{4988:4,}},},"labelfield":{17:{r:10,w:{650:4,661:3,667:3,}},},"laisse":{6:{r:4,w:{172:4,}},21:{r:4,w:{3710:4,}},},"laisser":{17:{r:4,w:{2338:4,}},},"laissé":{5:{r:3,w:{203:3,}},},"lambert":{6:{r:12,w:{4434:4,4437:4,4573:4,}},},"lance":{15:{r:3,w:{477:3,}},21:{r:3,w:{11259:3,}},},"lancement":{5:{r:4,w:{746:4,}},15:{r:3,w:{423:3,}},21:{r:7,w:{2582:4,11205:3,}},},"lancer":{2:{r:3,w:{545:3,}},6:{r:3,w:{7964:3,}},7:{r:7,w:{96:4,264:3,}},13:{r:3,w:{846:3,}},14:{r:3,w:{282:3,}},21:{r:11,w:{6454:4,6607:3,7369:4,}},},"lancé":{6:{r:3,w:{9088:3,}},21:{r:3,w:{5611:3,}},},"langage":{1:{r:6,w:{58:6,}},17:{r:3,w:{29:3,}},21:{r:6,w:{373:6,}},},"laquelle":{4:{r:3,w:{1129:3,}},6:{r:3,w:{8907:3,}},9:{r:3,w:{192:3,}},11:{r:6,w:{396:3,526:3,}},21:{r:6,w:{1447:3,9771:3,}},},"large":{9:{r:3,w:{364:3,}},21:{r:3,w:{9943:3,}},},"largeur":{6:{r:57,w:{2541:3,2967:3,3046:3,3177:3,3324:3,3472:3,3541:3,3674:3,3795:3,3890:3,3989:3,4102:3,4395:3,4984:3,5542:3,5924:3,6380:3,6731:3,7223:3,}},7:{r:4,w:{2272:4,}},17:{r:13,w:{902:3,1481:3,1564:4,2511:3,}},21:{r:7,w:{4953:3,9003:4,}},},"largueur":{17:{r:3,w:{770:3,}},},"lat":{17:{r:7,w:{1969:3,1996:4,}},},"latitude":{17:{r:4,w:{1998:4,}},},"layer":{0:{r:4,w:{323:4,}},17:{r:8,w:{2149:8,}},21:{r:4,w:{323:4,}},},"layers":{17:{r:11,w:{1654:3,1754:4,1804:4,}},},"ldap":{5:{r:14,w:{987:3,997:3,1039:4,1083:4,}},21:{r:14,w:{2823:3,2833:3,2875:4,2919:4,}},},"ldapprefix":{5:{r:14,w:{990:3,1000:3,1044:4,1088:4,}},21:{r:14,w:{2826:3,2836:3,2880:4,2924:4,}},},"ldapserver":{5:{r:14,w:{988:3,998:3,1040:4,1084:4,}},21:{r:14,w:{2824:3,2834:3,2876:4,2920:4,}},},"le":{0:{r:4,w:{311:4,}},1:{r:12,w:{74:6,103:6,}},2:{r:57,w:{17:3,26:3,127:3,222:3,228:3,233:3,239:3,257:3,325:3,335:3,368:6,479:6,540:3,570:3,640:3,661:3,668:3,}},3:{r:21,w:{20:3,63:3,72:3,92:3,131:3,169:3,210:3,}},4:{r:239,w:{51:3,104:3,110:3,152:3,161:3,167:3,186:3,192:3,228:3,256:4,285:4,302:4,364:3,380:3,406:3,419:3,423:3,430:3,433:3,523:3,527:3,535:3,553:3,558:3,562:3,567:3,577:4,599:4,605:4,613:4,686:3,724:3,730:3,737:3,778:3,781:3,902:4,909:4,928:4,939:3,968:3,1003:3,1019:3,1064:3,1086:3,1110:3,1130:3,1150:3,1209:3,1253:3,1289:3,1306:3,1314:3,1334:3,1363:5,1371:4,1433:4,1450:4,1484:4,1495:4,1511:4,1519:4,1567:3,1573:3,1603:3,1617:3,1629:4,1658:3,1669:3,1688:3,1699:3,1712:3,1728:3,}},5:{r:161,w:{91:3,106:3,134:3,223:3,246:3,266:3,272:3,318:3,332:3,388:3,435:3,481:3,571:3,605:3,624:3,630:3,652:4,678:4,771:4,777:4,780:4,810:3,813:3,861:4,880:4,895:4,901:4,1125:3,1251:3,1254:3,1281:3,1310:4,1314:4,1320:4,1332:3,1338:3,1394:3,1454:3,1526:3,1535:3,1542:3,1693:4,1705:4,1708:4,1716:4,1745:4,1891:3,1902:3,}},6:{r:70762,w:{41:3,53:3,90:3,148:4,157:4,166:4,175:4,181:4,186:4,198:4,205:5,212:5,228:5,240:3,256:3,259:3,306:3,314:3,335:3,350:3,355:3,381:3,399:3,440:3,532:3,547:3,555:3,572:3,685:3,700:3,745:3,816:4,846:3,850:4,864:4,867:4,901:4,904:4,935:4,1006:4,1009:4,1018:4,1038:65539,1073:3,1106:3,1129:4,1145:4,1152:4,1239:4,1247:4,1251:4,1255:4,1270:3,1296:3,1308:3,1316:3,1322:3,1331:3,1368:4,1373:4,1384:4,1389:4,1401:4,1406:4,1418:3,1425:3,1451:3,1461:3,1476:3,1490:3,1508:3,1518:3,1573:3,1584:3,1615:3,1634:3,1679:3,1681:3,1729:3,1767:3,1796:3,2000:3,2012:3,2022:3,2028:3,2035:3,2116:3,2135:3,2138:3,2145:3,2157:3,2166:3,2259:3,2271:3,2281:3,2293:3,2302:3,2397:3,2409:3,2412:3,2418:3,2423:3,2432:3,2519:3,2522:3,2528:3,2599:3,2602:3,2609:3,2672:3,2675:3,2681:3,2698:3,2746:3,2749:3,2755:3,2816:3,2819:3,2825:3,2908:3,2911:3,2917:3,3031:3,3034:3,3040:3,3052:3,3162:3,3165:3,3171:3,3183:3,3257:3,3283:3,3287:3,3294:3,3305:3,3332:3,3405:3,3436:3,3448:3,3451:3,3457:3,3463:3,3478:3,3524:3,3527:3,3534:3,3624:3,3627:3,3634:3,3659:3,3680:3,3749:3,3752:3,3759:3,3779:3,3801:3,3867:3,3870:3,3877:3,3896:3,3966:3,3969:3,3976:3,3995:3,4060:3,4063:3,4070:3,4108:3,4187:3,4197:3,4226:3,4237:3,4327:3,4375:3,4379:3,4385:3,4460:4,4482:4,4638:3,4654:3,4732:3,4747:3,4757:3,4848:3,4962:3,4972:3,5003:3,5009:3,5050:3,5055:3,5064:3,5122:3,5153:3,5169:4,5195:4,5231:3,5242:3,5275:3,5287:3,5328:3,5372:3,5376:3,5389:3,5424:3,5458:3,5478:4,5490:3,5506:3,5532:3,5554:3,5570:3,5588:3,5616:3,5635:3,5649:3,5660:3,5695:3,5715:3,5723:3,5750:3,5779:3,5810:3,5839:3,5845:3,5851:3,5882:3,5899:3,5914:3,5936:3,5993:3,6001:3,6034:3,6052:3,6114:3,6141:3,6184:3,6202:3,6205:3,6231:3,6260:3,6284:3,6313:3,6319:3,6340:3,6362:3,6370:3,6392:3,6464:3,6501:3,6530:3,6556:3,6582:3,6611:3,6635:3,6664:3,6670:3,6691:3,6713:3,6721:3,6743:3,6786:3,6801:3,6808:3,6822:3,6853:3,6862:3,6893:4,6897:4,6944:4096,6948:3,6972:3,7051:3,7066:3,7147:3,7160:3,7200:3,7206:3,7215:3,7288:4,7304:4,7336:4,7367:4,7378:4,7425:3,7451:3,7462:3,7467:3,7489:3,7492:3,7495:3,7508:3,7511:3,7523:3,7589:3,7594:3,7697:5,7705:5,7743:4,7757:4,7786:3,7790:3,7820:3,7842:3,7915:3,7951:3,7960:3,7974:3,8011:3,8054:3,8082:4,8089:4,8125:3,8252:3,8295:3,8299:3,8344:3,8360:3,8406:3,8436:3,8464:3,8469:3,8550:3,8599:3,8637:3,8645:3,8649:3,8865:3,8992:3,9023:3,9036:4,9077:3,9085:3,9091:3,9094:3,9110:3,9135:3,9154:3,9165:3,9182:3,9205:3,9274:3,9298:3,9308:3,9319:3,9322:3,9326:3,9336:3,9368:3,9377:3,9476:3,9488:3,9506:3,9864:4,9871:4,9907:3,9916:3,9925:3,9928:3,}},7:{r:2097635,w:{20:1048579,38:5,51:5,57:5,75:5,80:5,109:4,115:4,167:4,174:3,180:3,184:3,222:4,229:4,235:4,241:4,246:4,261:3,265:3,271:3,280:3,298:4,321:4,340:4,373:4,380:4,394:4,419:4,429:4,457:4,462:4,467:3,482:3,494:5,521:4,531:4,586:4,604:4,637:4,655:4,687:4,702:4,711:4,720:4,730:4,785:4,791:3,823:4,851:1048579,862:5,872:5,894:5,900:5,970:4,977:4,985:4,989:4,1002:4,1028:3,1073:4,1080:4,1095:4,1113:4,1131:4,1152:4,1166:4,1177:4,1192:4,1195:4,1208:3,1230:4,1238:4,1243:4,1260:4,1271:4,1278:4,1299:4,1305:3,1353:5,1362:5,1365:5,1380:4,1392:4,1415:4,1422:4,1429:4,1445:4,1456:3,1462:3,1469:3,1542:3,1593:4,1606:4,1619:4,1638:4,1679:4,1698:4,1730:4,1737:4,1752:4,1762:4,1779:4,1784:4,1801:4,1807:3,1998:4,2056:4,2065:4,2094:4,2202:3,2207:3,2222:4,2247:4,2294:4,2302:4,2305:4,2311:4,2322:4,2332:4,2362:4,2372:4,2384:4,2412:4,}},8:{r:48,w:{11:3,125:3,151:3,168:3,205:3,267:3,296:3,319:3,335:3,338:3,346:3,454:3,463:3,473:3,530:3,580:3,}},9:{r:24,w:{5:3,73:3,124:3,130:3,205:3,307:3,313:3,322:3,}},10:{r:3,w:{18:3,}},11:{r:118,w:{22:3,144:3,172:3,176:3,232:3,291:3,303:3,307:3,310:3,327:3,333:3,415:3,422:3,483:3,507:3,527:3,547:3,574:3,582:3,589:3,657:3,669:3,675:3,701:3,705:3,737:3,768:3,824:4,855:3,865:4,897:3,912:3,958:3,1029:4,1037:4,1042:3,1070:3,1087:3,}},13:{r:65,w:{20:3,61:3,84:3,104:3,262:3,633:3,665:3,697:3,724:4,727:4,747:4,751:4,782:3,791:3,847:3,969:3,991:3,1006:3,1017:3,1052:4,}},14:{r:81,w:{54:4,68:4,97:3,101:3,131:3,153:3,233:3,269:3,278:3,292:3,329:3,372:3,400:4,441:3,566:3,609:3,613:3,658:3,674:3,720:3,754:3,786:3,871:3,924:3,962:3,970:3,}},15:{r:51,w:{14:3,35:4,53:3,66:3,122:3,132:3,139:3,143:3,153:4,199:3,304:4,356:3,408:3,443:3,451:3,480:3,}},16:{r:17,w:{112:3,120:3,145:4,157:4,178:3,}},17:{r:124,w:{24:3,60:3,67:3,81:3,116:3,130:3,154:3,181:3,185:3,197:3,272:3,339:3,370:3,387:3,419:3,445:3,467:3,618:3,783:3,796:3,959:3,988:3,1005:3,1055:3,1084:3,1106:3,1162:3,1191:4,1288:5,1298:3,1589:4,1606:4,1612:4,1629:4,2033:4,2166:4,2339:4,2456:3,}},21:{r:4195793,w:{311:4,389:6,418:6,510:3,519:3,566:3,580:3,598:3,620:3,644:3,734:3,769:3,778:3,898:3,907:3,910:3,919:3,944:3,949:3,953:3,956:3,961:3,985:3,996:3,1008:3,1016:3,1083:3,1121:3,1127:3,1133:3,1175:3,1178:3,1319:4,1326:4,1341:3,1366:3,1387:3,1407:3,1428:3,1448:3,1530:3,1558:3,1589:3,1606:3,1613:3,1621:3,1672:3,1687:3,1703:3,1763:3,1769:3,1817:3,1829:4,1889:3,1900:3,1919:3,1930:3,1953:3,2049:3,2063:3,2090:3,2154:3,2168:3,2249:3,2296:3,2323:3,2412:3,2450:3,2469:3,2474:3,2488:4,2514:4,2607:4,2613:4,2616:4,2646:3,2649:3,2697:4,2716:4,2731:4,2737:4,2957:3,3094:3,3097:3,3135:4,3139:4,3145:4,3157:3,3163:3,3217:3,3277:3,3349:3,3358:3,3365:3,3526:3,3547:3,3589:3,3648:3,3672:4,3679:4,3691:4,3700:4,3714:4,3720:4,3732:4,3756:4,3760:4,3777:4,3821:3,3840:3,3843:3,3873:3,3886:3,3904:3,3945:3,3998:3,4015:3,4028:3,4045:3,4149:3,4164:3,4208:3,4249:3,4253:4,4267:4,4270:4,4275:4,4282:4,4285:4,4337:3,4363:3,4375:3,4383:3,4389:3,4393:3,4454:3,4461:3,4472:4,4476:4,4487:4,4492:4,4522:4,4526:4,4540:4,4546:4,4553:4,4564:4,4573:4,4581:4,4591:4,4609:4,4626:4,4633:4,4637:4,4644:4,4659:4,4664:4,4668:4,4674:4,4681:4,4685:4,4691:4,4698:4,4709:3,4720:3,4722:3,4731:3,4738:3,4754:3,4794:3,4879:3,4892:3,4930:3,4936:3,4945:3,5016:4,5032:4,5067:4,5098:4,5109:4,5159:3,5185:3,5196:3,5201:3,5223:3,5226:3,5229:3,5242:3,5245:3,5257:3,5328:3,5333:3,5517:3,5547:3,5559:3,5600:3,5608:3,5614:3,5617:3,5633:3,5658:3,5671:3,5682:3,5699:3,5722:3,5790:3,5814:3,5824:3,5835:3,5838:3,5842:3,5852:3,5881:3,5890:3,5969:3,5979:3,6001:3,6326:3,6335:3,6344:3,6347:3,6374:1048579,6393:3,6404:3,6410:3,6428:3,6433:3,6467:4,6473:4,6525:4,6532:3,6538:3,6542:3,6580:4,6587:4,6591:4,6604:3,6608:3,6614:3,6623:3,6645:4,6693:4,6721:4,6728:4,6742:4,6759:4,6769:4,6776:3,6788:3,6825:4,6834:4,6839:4,6844:3,6853:3,6867:1048579,6870:1048579,6877:3,6887:3,6908:3,6914:3,6988:3,6995:3,7003:3,7007:3,7020:4,7045:3,7085:4,7111:4,7130:4,7158:4,7172:4,7183:4,7198:5,7201:5,7214:4,7238:4,7246:4,7251:4,7270:4,7280:4,7287:4,7291:4,7308:4,7330:1048579,7352:3,7382:4,7388:4,7434:4,7438:4,7451:4,7457:4,7469:4,7481:4,7490:4,7513:4,7566:4,7594:4,7607:4,7616:3,7641:3,7669:3,7674:3,7680:4,7684:4,7702:4,7706:4,7709:4,7726:3,7729:3,7742:4,7752:4,7758:4,7766:4,7783:4,7821:4,7831:4,7886:4,7908:4,7958:4,7986:4,8001:4,8010:4,8023:4,8033:4,8086:4,8092:3,8124:4,8164:3,8185:4,8199:4,8222:4,8227:4,8252:4,8270:4,8281:3,8287:3,8294:3,8364:4,8416:4,8429:4,8442:4,8465:4,8522:4,8550:4,8557:4,8576:4,8586:4,8603:4,8608:4,8625:4,8769:4,8814:4,8828:4,8837:4,8867:4,8934:4,8942:4,8946:4,8951:4,8960:4,8964:4,8995:4,9054:4,9061:3,9071:3,9104:4,9114:4,9127:4,9155:4,9167:3,9284:3,9310:3,9327:3,9364:3,9379:3,9389:3,9392:3,9437:3,9461:3,9563:3,9572:3,9584:3,9652:3,9703:3,9709:3,9784:3,9886:3,9892:3,9901:3,9976:3,10026:3,10122:3,10223:3,10235:3,10242:3,10247:3,10384:3,10434:3,10440:3,10454:3,10489:3,10545:4,10576:3,10586:4,10617:3,10632:3,10676:3,10749:4,10757:4,10762:3,10790:3,10807:3,10837:3,10850:3,10908:3,10918:3,10925:3,10929:3,10939:4,10985:3,11090:4,11138:3,11190:3,11225:3,11233:3,11262:3,11380:3,11388:3,11413:4,11425:4,11446:3,11507:3,11548:3,11571:3,11591:3,}},},"lecture":{21:{r:4,w:{4571:4,}},},"length_sec":{6:{r:20,w:{9630:6,9640:7,9647:7,}},21:{r:20,w:{6123:6,6133:7,6140:7,}},},"lequel":{5:{r:4,w:{1865:4,}},6:{r:22,w:{244:3,6820:3,6857:3,6867:3,7345:4,8611:3,8801:3,}},8:{r:3,w:{72:3,}},11:{r:3,w:{223:3,}},14:{r:3,w:{936:3,}},21:{r:16,w:{3828:3,5076:4,5422:3,9228:3,10376:3,}},},"les":{0:{r:34,w:{33:3,78:3,158:4,166:4,200:4,213:4,215:4,288:4,295:4,}},1:{r:285212687,w:{1:268435456,7:16777219,113:6,123:6,}},2:{r:24,w:{31:3,281:3,284:3,288:3,295:3,344:3,350:3,499:3,}},3:{r:13,w:{78:3,84:3,115:4,152:3,}},4:{r:43,w:{235:3,309:4,313:4,400:3,1082:3,1393:4,1462:4,1466:4,1623:3,1636:4,1749:4,1754:3,}},5:{r:75,w:{189:3,207:3,394:3,576:3,579:3,587:3,611:3,642:3,742:4,761:4,822:3,974:3,1245:3,1264:3,1316:4,1432:3,1528:3,1538:3,1678:3,1843:4,1852:4,1868:4,1904:3,}},6:{r:4562,w:{270:3,287:3,308:3,464:6,560:3,585:3,607:3,617:3,624:6,737:3,751:3,843:3,857:4,872:4,878:4,893:4,909:4,915:4,930:4,947:4,961:4,982:4,993:4,1194:4,1275:3,1326:3,1336:3,1435:3,1500:3,1529:3,1546:3,1628:3,1676:3,1722:3,1782:3,1949:3,2067:3,2211:3,2349:3,2479:3,2615:3,3077:3,3101:3,3209:3,3233:3,3394:3,3554:4,3560:3,4211:3,4221:3,4277:3,4417:3,4494:4,4506:3,4612:4,4695:3,4840:3,5228:4,5292:3,5302:3,5362:3,5365:3,5509:3,5578:3,5656:3,5683:3,5708:3,5856:3,5885:3,5985:3,5990:3,6006:3,6020:3,6031:3,6123:3,6172:3,6193:3,6324:3,6343:3,6432:3,6442:3,6478:3,6493:3,6519:3,6535:3,6675:3,6694:3,6873:3,6884:3,6909:4,6930:4,6995:3,7011:3,7029:3,7072:3,7599:3,7608:3,7618:3,7641:3,7678:5,7699:5,7718:3,7737:4,7751:4,7812:3,7830:3,7846:3,7865:3,7869:3,7885:3,7890:3,7941:3,7991:3,8006:3,8061:4,8067:4,8099:4098,8114:3,8138:3,8146:3,8214:4,8222:4,8226:4,8243:3,8263:3,8322:3,8338:3,8375:3,8389:3,8455:3,8517:4,8582:3,8614:3,8622:3,8744:3,8781:3,9119:3,9139:3,9430:3,9433:3,9501:3,9844:4,9893:4,}},7:{r:81,w:{199:3,206:3,218:4,477:3,534:4,550:4,694:4,705:4,834:4,881:5,1058:4,1159:4,1484:3,1537:4,2042:4,2049:4,2101:4,2255:4,2281:4,2288:4,2380:4,}},8:{r:4141,w:{24:3,44:3,50:3,136:3,141:3,147:3,247:3,271:4096,275:3,299:3,304:3,412:3,440:3,456:3,466:3,516:3,}},9:{r:39,w:{97:3,120:3,194:3,215:3,217:3,227:3,251:3,260:3,263:3,273:3,288:3,330:3,367:3,}},10:{r:3,w:{45:3,}},11:{r:74,w:{27:3,58:3,125:3,159:3,165:3,330:3,374:3,433:3,452:3,615:3,622:3,643:3,724:3,761:3,775:3,782:3,809:3,835:4,938:3,1008:4,1015:4,1022:4,1032:4,}},13:{r:66,w:{41:3,129:3,138:3,148:3,161:3,171:3,181:3,191:3,267:3,883:3,908:3,922:3,943:4,949:4,983:3,1029:4,1041:4,1043:4,1063:4,1074:3,}},14:{r:4209,w:{29:3,48:4,62:4,123:3,141:3,157:3,183:3,187:3,203:3,208:3,259:3,309:3,324:3,379:4,385:4,405:4,415:4098,430:3,454:3,462:3,530:4,538:4,543:4,557:3,577:3,636:3,652:3,689:3,703:3,773:3,834:4,903:3,939:3,947:3,1074:3,}},15:{r:10,w:{222:3,308:4,469:3,}},17:{r:47,w:{33:3,125:3,163:3,171:3,1378:3,1730:4,1744:4,1797:4,2012:4,2126:4,2136:4,2282:4,2347:4,}},18:{r:34,w:{36:3,81:3,157:4,165:4,199:4,212:4,214:4,287:4,294:4,}},21:{r:16777717,w:{33:3,78:3,158:4,166:4,200:4,213:4,215:4,288:4,295:4,330:16777219,428:6,438:6,522:3,742:3,763:3,793:3,1403:3,1618:3,1634:3,1700:3,1721:3,1800:3,1823:3,1836:4,1933:3,2130:3,2255:3,2417:3,2420:3,2428:3,2456:3,2481:3,2578:4,2597:4,2658:3,2810:3,3087:3,3107:3,3141:4,3255:3,3351:3,3361:3,3629:3,3652:3,3850:3,4033:3,4052:3,4074:3,4084:3,4091:3,4195:3,4202:3,4214:3,4246:3,4260:4,4290:4,4342:3,4398:3,4504:4,4775:3,5338:3,5347:3,5357:3,5377:3,5402:3,5642:3,5662:3,5936:3,5939:3,5996:3,6564:3,6576:4,6896:3,7072:4,7165:4,7403:4,7411:4,7601:4,7696:4,7834:4,7850:4,7993:4,8004:4,8135:4,8309:3,8359:5,8821:4,8874:4,8976:4,9010:4,9123:4,9180:3,9200:3,9206:3,9295:3,9300:3,9306:3,9417:3,9440:3,9464:3,9469:3,9518:3,9549:3,9565:3,9575:3,9676:3,9699:3,9773:3,9794:3,9796:3,9806:3,9830:3,9839:3,9842:3,9852:3,9867:3,9909:3,9946:3,10003:3,10032:3,10067:3,10109:3,10115:3,10124:3,10140:3,10160:3,10166:3,10204:3,10277:3,10337:3,10437:3,10482:3,10496:3,10503:3,10530:3,10556:4,10656:3,10728:4,10735:4,10742:4,10752:4,11008:3,11094:4,11251:3,11528:3,11616:3,11625:3,11635:3,11648:3,11658:3,11668:3,11678:3,}},},"lesquels":{6:{r:12,w:{2070:3,2214:3,2352:3,2482:3,}},},"leur":{0:{r:8,w:{161:4,299:4,}},5:{r:6,w:{123:3,409:3,}},6:{r:14,w:{611:3,615:3,1180:4,1219:4,}},8:{r:6,w:{615:3,619:3,}},10:{r:3,w:{50:3,}},18:{r:8,w:{160:4,298:4,}},21:{r:23,w:{161:4,299:4,2080:3,2270:3,4078:3,4082:3,10008:3,}},},"leurs":{0:{r:4,w:{208:4,}},2:{r:3,w:{298:3,}},4:{r:3,w:{1328:3,}},5:{r:3,w:{375:3,}},6:{r:3,w:{4292:3,}},13:{r:4,w:{961:4,}},15:{r:3,w:{83:3,}},17:{r:3,w:{1393:3,}},18:{r:4,w:{207:4,}},21:{r:18,w:{208:4,1864:4,1867:4,2236:3,10867:3,}},},"liant":{6:{r:3,w:{6875:3,}},},"libeay32":{15:{r:4,w:{231:4,}},21:{r:4,w:{11017:4,}},},"libellé":{6:{r:108,w:{2016:3,2139:3,2275:3,2413:3,2523:3,2603:3,2676:3,2750:3,2820:3,2912:3,3035:3,3166:3,3288:3,3452:3,3528:3,3628:3,3753:3,3871:3,3970:3,4064:3,4191:3,4227:3,4380:3,4852:3,4966:3,5015:3,5814:3,5840:3,5867:3,6288:3,6314:3,6335:3,6639:3,6665:3,6686:3,9293:3,}},7:{r:4,w:{2264:4,}},17:{r:70,w:{250:3,322:3,438:4,528:3,564:4,603:4,668:6,720:3,762:3,871:3,944:3,1074:4,1205:4,1261:4,1345:3,1477:3,1538:4,2392:3,2429:3,2505:3,}},21:{r:3,w:{5809:3,}},},"libellés":{6:{r:3,w:{5363:3,}},9:{r:3,w:{289:3,}},21:{r:3,w:{9868:3,}},},"libiconv":{15:{r:4,w:{234:4,}},21:{r:4,w:{11020:4,}},},"libiconv-2":{15:{r:4,w:{234:4,}},21:{r:4,w:{11020:4,}},},"libintl":{15:{r:8,w:{238:4,243:4,}},21:{r:8,w:{11024:4,11029:4,}},},"libintl-8":{15:{r:4,w:{238:4,}},21:{r:4,w:{11024:4,}},},"libpq":{15:{r:4,w:{246:4,}},21:{r:4,w:{11032:4,}},},"librement":{17:{r:3,w:{1383:3,}},},"licence":{1:{r:6,w:{157:6,}},4:{r:65580,w:{43:5,587:4,595:4,602:4,1006:3,1044:65538,1051:3,1070:4,1078:3,1092:3,1108:3,1113:3,1145:3,}},11:{r:65556,w:{462:65538,467:3,476:3,489:3,505:3,510:3,542:3,}},21:{r:1048609,w:{472:6,1384:1048579,1392:3,1399:3,1413:3,1426:3,1431:3,1463:3,10305:3,10314:3,}},},"licences":{1:{r:6,w:{145:6,}},4:{r:3,w:{1083:3,}},21:{r:9,w:{460:6,1404:3,}},},"license":{13:{r:6,w:{336:6,}},},"licenses":{4:{r:12,w:{611:4,615:8,}},},"lien":{7:{r:4,w:{1074:4,}},17:{r:6,w:{253:3,947:3,}},},"lier":{4:{r:4,w:{929:4,}},6:{r:16403,w:{5435:4099,5761:4099,5771:3,6242:4098,6252:3,6593:4098,6603:3,}},7:{r:8,w:{1613:8,}},21:{r:12,w:{7482:4,8436:8,}},},"lieu":{2:{r:3,w:{192:3,}},},"ligne":{4:{r:9,w:{115:3,327:3,348:3,}},6:{r:12343,w:{1902:10,1920:10,3278:3,3357:3,3596:4098,3619:3,3708:3,3722:4098,3744:3,3827:3,4592:4,4632:4,4882:4098,4891:3,}},13:{r:14,w:{579:7,597:7,}},17:{r:6,w:{49:3,310:3,}},},"lignes":{4:{r:4,w:{310:4,}},5:{r:7,w:{976:3,1102:4,}},6:{r:30,w:{2031:3,2160:3,2296:3,2426:3,3466:3,4907:3,5535:3,5917:3,6373:3,6724:3,}},15:{r:4,w:{309:4,}},17:{r:12,w:{735:5,747:3,2239:4,}},21:{r:11,w:{2812:3,2938:4,11095:4,}},},"limiter":{5:{r:3,w:{295:3,}},},"line":{17:{r:7,w:{2095:3,2233:4,}},},"lisibilité":{6:{r:3,w:{4917:3,}},},"liste":{4:{r:12,w:{137:3,148:3,1324:3,1579:3,}},5:{r:21,w:{111:3,393:3,491:3,610:3,1227:3,1509:3,1549:3,}},6:{r:24860,w:{366:3,591:3,1172:4,1540:3,1592:3,1911:10,1913:10,1970:4098,1989:3,1996:3,2054:3,2057:4,2064:3,2085:3,2097:4098,2115:3,2128:3,2189:3,2198:3,2201:4,2208:3,2229:4098,2248:3,2255:3,2326:3,2336:3,2339:4,2346:3,2368:4098,2387:3,2393:3,2457:3,2466:3,2469:4,2476:3,3371:4098,3392:3,3398:3,3425:3,3432:3,4164:3,5148:4,5150:4,5333:3,5383:3,5399:3,5411:3,5456:3,5527:3,5540:3,5641:3,5737:3,5773:3,5819:3,5894:3,5909:4,5922:3,5945:3,5948:4,5975:3,6147:3,6218:3,6254:3,6293:3,6357:3,6378:3,6401:3,6404:4,6446:3,6506:3,6549:4,6569:3,6605:3,6644:3,6708:3,6729:3,6752:3,6755:4,6771:4096,6784:3,6797:3,6906:4,6927:4,6956:3,6987:3,7084:3,8365:3,9005:3,}},7:{r:11,w:{1515:4,1589:3,2246:4,}},8:{r:12,w:{36:3,386:3,433:3,609:3,}},9:{r:3,w:{85:3,}},11:{r:3,w:{286:3,}},13:{r:1048595,w:{253:3,538:1048578,588:7,590:7,}},14:{r:3,w:{679:3,}},17:{r:65,w:{579:5,775:5,794:3,849:6,876:3,881:3,893:3,901:3,911:3,918:3,953:5,965:3,990:3,1015:3,1058:3,1061:3,1889:4,1947:4,}},21:{r:52,w:{935:3,1775:3,2068:3,2254:3,2333:3,2455:3,3070:3,3332:3,3372:3,4058:3,5530:3,8340:4,8412:3,9192:3,9492:3,9542:3,9664:3,}},},"liste_moteurs":{6:{r:3,w:{5831:3,}},},"listes":{6:{r:8199,w:{5964:4098,6775:4098,6805:3,}},17:{r:6,w:{884:3,904:3,}},},"listesettings":{6:{r:3,w:{8639:3,}},14:{r:3,w:{964:3,}},},"listfield":{17:{r:14,w:{581:4,594:3,602:4,1042:3,}},},"listsettings":{6:{r:3,w:{8601:3,}},14:{r:3,w:{926:3,}},},"listé":{8:{r:3,w:{74:3,}},21:{r:3,w:{9230:3,}},},"listées":{6:{r:3,w:{8404:3,}},14:{r:3,w:{718:3,}},},"listés":{6:{r:6,w:{6200:3,8613:3,}},7:{r:6,w:{1491:3,1555:3,}},14:{r:3,w:{938:3,}},21:{r:7,w:{8316:3,8377:4,}},},"lié":{4:{r:4,w:{915:4,}},6:{r:3,w:{7050:3,}},21:{r:4,w:{1332:4,}},},"liés":{6:{r:3,w:{6521:3,}},},"local":{4:{r:6,w:{323:3,344:3,}},5:{r:9,w:{946:3,1057:3,1600:3,}},6:{r:16441,w:{1899:10,3001:4098,3025:3,3072:3,3132:4098,3156:3,3204:3,3255:4098,3500:4098,3519:3,3580:3,4825:3,7796:3,7954:3,7977:3,8057:3,8153:3,8435:3,}},7:{r:4,w:{958:4,}},13:{r:7,w:{576:7,}},14:{r:18,w:{107:3,272:3,295:3,375:3,469:3,753:3,}},15:{r:7,w:{318:4,334:3,}},21:{r:19,w:{2782:3,2893:3,3422:3,6976:3,11104:4,11120:3,}},},"locale":{6:{r:4106,w:{5184:4,5568:4098,5613:4,}},},"localement":{7:{r:3,w:{263:3,}},21:{r:3,w:{6606:3,}},},"localhost":{2:{r:3,w:{631:3,}},21:{r:6,w:{780:3,928:3,}},},"localiser":{6:{r:3,w:{7811:3,}},14:{r:3,w:{122:3,}},},"localisé":{6:{r:3,w:{8020:3,}},14:{r:3,w:{338:3,}},},"locaux":{5:{r:3,w:{1668:3,}},21:{r:3,w:{3490:3,}},},"log":{4:{r:6,w:{208:3,217:3,}},6:{r:6,w:{9614:6,}},11:{r:3,w:{392:3,}},21:{r:6,w:{6107:6,}},},"log_url":{6:{r:13,w:{9610:6,9627:7,}},21:{r:13,w:{6103:6,6120:7,}},},"logiciel":{1:{r:18,w:{52:6,150:6,167:6,}},21:{r:24,w:{367:6,465:6,482:6,567:3,599:3,}},},"logicielle":{1:{r:6,w:{109:6,}},21:{r:6,w:{424:6,}},},"logiciels":{1:{r:285216774,w:{3:268435456,10:4096,13:16777219,29:3,}},4:{r:3,w:{69:3,}},21:{r:16777222,w:{332:16777219,344:3,}},},"login":{2:{r:6,w:{34:6,}},5:{r:31,w:{778:4,790:4,791:4,811:3,1156:3,1269:3,1273:4,1372:3,1455:3,}},6:{r:25,w:{6135:3,7337:4,9752:6,9762:6,9770:6,}},21:{r:59,w:{525:6,2614:4,2626:4,2627:4,2647:3,2988:3,3112:3,3116:4,3197:3,3278:3,5068:4,6235:6,6245:6,6253:6,}},},"logs":{5:{r:4,w:{1725:4,}},8:{r:3,w:{148:3,}},10:{r:286265356,w:{2:268435456,5:16777219,7:4096,13:1048579,20:3,30:3,}},11:{r:3,w:{85:3,}},13:{r:6,w:{474:6,}},21:{r:17825810,w:{9307:3,9962:16777219,9971:1048579,9978:3,9988:3,10096:3,}},},"lon":{17:{r:7,w:{1966:3,1988:4,}},},"longitude":{17:{r:4,w:{1991:4,}},},"longs":{9:{r:3,w:{265:3,}},21:{r:3,w:{9844:3,}},},"lors":{4:{r:11,w:{241:4,279:4,1219:3,}},5:{r:11,w:{744:4,763:4,829:3,}},6:{r:51,w:{473:6,633:6,953:4,999:4,1064:3,1135:4,1411:3,1429:3,1750:3,1811:3,3085:3,3217:3,3563:3,8982:3,}},7:{r:1048583,w:{853:1048579,992:4,}},21:{r:36,w:{750:3,1540:3,2580:4,2599:4,2665:3,4100:3,4328:3,4447:3,4511:4,5507:3,7010:3,}},},"lorsqu":{17:{r:32,w:{1823:4,1841:4,1865:4,1880:4,1896:4,1919:4,1937:4,1955:4,}},},"lorsqu\u0027un":{6:{r:3,w:{6961:3,}},},"lorsque":{5:{r:6,w:{1220:3,1502:3,}},6:{r:19,w:{1370:4,1386:4,1403:4,1507:3,9881:4,}},21:{r:6,w:{3063:3,3325:3,}},},"lot":{6:{r:65551,w:{83:3,489:65539,527:3,551:3,580:3,}},},"lou":{6:{r:3,w:{8242:3,}},14:{r:3,w:{556:3,}},},"lpiste":{17:{r:3,w:{624:3,}},},"ls":{17:{r:7,w:{2083:3,2147:4,}},},"lui":{3:{r:3,w:{76:3,}},5:{r:6,w:{167:3,454:3,}},6:{r:6,w:{8809:3,9290:3,}},8:{r:6,w:{154:3,208:3,}},13:{r:3,w:{1015:3,}},15:{r:3,w:{487:3,}},21:{r:24,w:{917:3,2118:3,2309:3,5430:3,5806:3,9313:3,9367:3,11269:3,}},},"lui-même":{15:{r:3,w:{487:3,}},21:{r:3,w:{11269:3,}},},"lundis":{13:{r:3,w:{172:3,}},21:{r:3,w:{11659:3,}},},"légende":{9:{r:3,w:{296:3,}},21:{r:3,w:{9875:3,}},},"m":{17:{r:4,w:{1624:4,}},},"machine":{2:{r:3,w:{616:3,}},9:{r:3,w:{28:3,}},21:{r:9,w:{560:3,627:3,9607:3,}},},"machines":{1:{r:6,w:{135:6,}},21:{r:6,w:{450:6,}},},"mail":{0:{r:4,w:{239:4,}},2:{r:3,w:{41:3,}},4:{r:6,w:{1011:3,1127:3,}},5:{r:3,w:{153:3,}},6:{r:1048633,w:{8892:3,8905:3,8912:3,9391:1048579,9406:3,9425:3,9462:3,9474:3,9509:3,9659:5,9732:6,9861:4,9878:4,9889:4,9895:4,9910:3,}},11:{r:9,w:{524:3,592:3,655:3,}},12:{r:3,w:{21:3,}},18:{r:4,w:{238:4,}},21:{r:1048613,w:{239:4,532:3,1418:3,1445:3,2105:3,5904:1048579,5915:3,5967:3,6002:3,6216:6,6329:3,}},},"mails":{11:{r:6,w:{662:3,690:3,}},},"main_page":{17:{r:12,w:{1431:12,}},},"mais":{1:{r:6,w:{169:6,}},2:{r:6,w:{488:6,}},4:{r:7,w:{680:3,1514:4,}},5:{r:8,w:{1801:4,1841:4,}},6:{r:16,w:{1140:4,1731:3,4166:3,5057:3,7943:3,}},8:{r:3,w:{525:3,}},14:{r:3,w:{261:3,}},15:{r:3,w:{407:3,}},16:{r:6,w:{31:3,85:3,}},17:{r:3,w:{1384:3,}},21:{r:18,w:{484:6,1077:3,11189:3,11299:3,11353:3,}},},"manipulation":{6:{r:3,w:{8490:3,}},14:{r:3,w:{807:3,}},},"manipuler":{16:{r:3,w:{22:3,}},21:{r:3,w:{11290:3,}},},"manière":{0:{r:4,w:{285:4,}},4:{r:3,w:{1652:3,}},6:{r:3,w:{7883:3,}},14:{r:3,w:{201:3,}},15:{r:3,w:{148:3,}},18:{r:4,w:{284:4,}},21:{r:10,w:{285:4,1883:3,10934:3,}},},"manuel":{19:{r:3,w:{16:3,}},},"manuelle":{21:{r:3,w:{639:3,}},},"manuellement":{4:{r:4,w:{255:4,}},5:{r:4,w:{860:4,}},6:{r:3,w:{7839:3,}},7:{r:3,w:{2145:3,}},14:{r:3,w:{150:3,}},21:{r:7,w:{2696:4,8922:3,}},},"map":{6:{r:4099,w:{4812:4096,4815:3,}},17:{r:7,w:{1436:7,}},},"mapinfo":{7:{r:31,w:{42:5,117:4,142:3,400:4,479:3,825:4,1397:4,1426:4,}},21:{r:43,w:{6397:3,6475:4,6500:3,6746:4,6800:3,6855:3,7358:3,7390:4,7532:4,8126:4,8204:4,8231:4,}},},"maps":{6:{r:9,w:{4282:3,4702:3,4730:3,}},17:{r:19,w:{1447:7,1455:6,1459:6,}},},"maps-key":{17:{r:6,w:{1459:6,}},},"masquer":{6:{r:3,w:{5046:3,}},},"max":{6:{r:4,w:{4501:4,}},7:{r:8,w:{753:4,759:4,}},9:{r:3,w:{209:3,}},17:{r:3,w:{2440:3,}},21:{r:11,w:{8056:4,8062:4,9788:3,}},},"maximale":{11:{r:6,w:{105:3,386:3,}},17:{r:4,w:{2037:4,}},21:{r:3,w:{10184:3,}},},"maximales":{6:{r:3,w:{2619:3,}},11:{r:3,w:{167:3,}},21:{r:3,w:{10117:3,}},},"maximum":{7:{r:16,w:{542:4,545:4,569:4,580:4,}},9:{r:3,w:{250:3,}},11:{r:3,w:{739:3,}},15:{r:3,w:{134:3,}},21:{r:22,w:{7842:4,7845:4,7869:4,7880:4,9829:3,10920:3,}},},"mc":{17:{r:7,w:{2081:3,2131:4,}},},"md5":{5:{r:24,w:{933:3,943:3,961:3,968:3,1026:3,1054:3,1072:3,1095:3,}},21:{r:24,w:{2769:3,2779:3,2797:3,2804:3,2862:3,2890:3,2908:3,2931:3,}},},"mensuelle":{9:{r:3,w:{66:3,}},21:{r:3,w:{9645:3,}},},"menu":{6:{r:25,w:{817:4,8126:3,8253:3,8300:3,8345:3,8361:3,8407:3,8866:3,}},7:{r:20,w:{299:4,605:4,1096:4,1639:4,1999:4,}},14:{r:18,w:{442:3,567:3,614:3,659:3,675:3,721:3,}},16:{r:3,w:{179:3,}},21:{r:33,w:{735:3,4812:3,6646:4,7112:4,7514:4,7909:4,8466:4,8770:4,11447:3,}},},"mercator":{17:{r:4,w:{1646:4,}},},"mes":{6:{r:16,w:{7746:8,7760:8,}},14:{r:16,w:{57:8,71:8,}},},"message":{2:{r:3,w:{673:3,}},8:{r:6,w:{498:3,560:3,}},},"messageclasses":{13:{r:6,w:{342:6,}},},"messageclasstypes":{13:{r:6,w:{348:6,}},},"messages":{8:{r:1048590,w:{471:1048578,517:3,545:3,569:3,611:3,}},13:{r:6,w:{354:6,}},},"met":{4:{r:3,w:{1194:3,}},6:{r:3,w:{8589:3,}},14:{r:3,w:{914:3,}},21:{r:3,w:{1515:3,}},},"metadonnées":{6:{r:4096,w:{713:4096,}},21:{r:4,w:{3659:4,}},},"mettant":{4:{r:3,w:{1734:3,}},},"mettre":{0:{r:7,w:{34:3,308:4,}},3:{r:3,w:{99:3,}},4:{r:4,w:{814:4,}},5:{r:9,w:{329:6,478:3,}},6:{r:7,w:{702:3,852:4,}},7:{r:16,w:{364:4,678:4,1721:4,2085:4,}},17:{r:6,w:{350:3,970:3,}},18:{r:3,w:{37:3,}},21:{r:58,w:{34:3,308:4,1207:4,1260:4,1615:6,2165:6,4166:3,4255:4,6712:4,7229:4,7585:4,7977:4,8541:4,8858:4,}},},"microsoft":{17:{r:12,w:{1443:6,1453:6,}},},"mid":{7:{r:4,w:{938:4,}},21:{r:4,w:{6956:4,}},},"mif":{7:{r:4,w:{937:4,}},21:{r:4,w:{6955:4,}},},"min":{6:{r:4,w:{4499:4,}},7:{r:8,w:{744:4,748:4,}},13:{r:3,w:{186:3,}},17:{r:3,w:{2438:3,}},21:{r:11,w:{8047:4,8051:4,11673:3,}},},"minimale":{11:{r:3,w:{1055:3,}},21:{r:3,w:{10775:3,}},},"minimales":{6:{r:3,w:{2617:3,}},},"minimum":{1:{r:6,w:{119:6,}},7:{r:16,w:{538:4,540:4,566:4,574:4,}},11:{r:6,w:{278:3,1045:3,}},21:{r:28,w:{434:6,7838:4,7840:4,7866:4,7874:4,10430:3,10765:3,}},},"minute":{2:{r:3,w:{551:3,}},9:{r:4,w:{141:4,}},21:{r:4,w:{9720:4,}},},"minutes":{4:{r:3,w:{758:3,}},13:{r:3,w:{42:3,}},21:{r:6,w:{1156:3,11529:3,}},},"mis":{4:{r:6,w:{1343:3,1350:3,}},7:{r:8,w:{225:4,2327:4,}},13:{r:13,w:{730:4,798:6,804:3,}},21:{r:7,w:{6583:4,9066:3,}},},"mise":{2:{r:3,w:{73:3,}},6:{r:9,w:{1091:3,1835:3,7669:3,}},21:{r:3,w:{10297:3,}},},"mises":{21:{r:3,w:{10287:3,}},},"mixte":{5:{r:69638,w:{1576:4096,1581:65539,1654:3,}},11:{r:4,w:{360:4,}},21:{r:65546,w:{3403:65539,3476:3,10331:4,}},},"mm":{2:{r:3,w:{564:3,}},11:{r:6,w:{734:6,}},13:{r:8,w:{29:4,38:4,}},17:{r:3,w:{1253:3,}},21:{r:8,w:{11516:4,11525:4,}},},"mm-yyyy":{2:{r:3,w:{564:3,}},},"mmm":{13:{r:8,w:{32:4,72:4,}},21:{r:8,w:{11519:4,11559:4,}},},"mo":{11:{r:3,w:{115:3,}},21:{r:3,w:{10194:3,}},},"mode":{0:{r:4,w:{220:4,}},3:{r:3,w:{67:3,}},4:{r:33,w:{173:3,193:3,216:3,410:3,512:3,725:3,1020:3,1065:3,1568:3,1574:3,1700:3,}},5:{r:27,w:{107:3,389:3,606:3,1647:3,1699:4,1746:4,1862:4,1892:3,}},6:{r:29,w:{42:3,596:3,832:3,1047:3,4603:4,7130:3,7305:4,8789:3,9397:3,}},7:{r:20,w:{420:4,721:4,1261:4,1753:4,2363:4,}},8:{r:6,w:{69:3,531:3,}},9:{r:3,w:{6:3,}},10:{r:3,w:{19:3,}},11:{r:6,w:{23:3,145:3,}},18:{r:4,w:{219:4,}},21:{r:98,w:{220:4,770:3,899:3,1122:3,1388:3,1764:3,1770:3,1931:3,2064:3,2250:3,2451:3,3469:3,3527:3,4063:3,4235:3,4311:3,4862:3,5033:4,5410:3,6760:4,7271:4,7743:4,8024:4,8577:4,9105:4,9225:3,9585:3,9977:3,10027:3,10224:3,}},},"modes":{3:{r:6,w:{148:3,154:3,}},5:{r:15,w:{1722:4,1771:3,1786:4,1827:4,}},13:{r:6,w:{480:6,}},21:{r:3,w:{2186:3,}},},"modification":{5:{r:3,w:{907:3,}},6:{r:7,w:{4620:4,7658:3,}},7:{r:5,w:{1877:5,}},8:{r:65538,w:{310:65538,}},21:{r:13,w:{2743:3,4601:4,8661:3,10080:3,}},},"modifications":{6:{r:4,w:{858:4,}},21:{r:4,w:{4261:4,}},},"modifie":{6:{r:3,w:{4366:3,}},},"modifier":{2:{r:3,w:{353:3,}},4:{r:8,w:{254:4,293:4,}},5:{r:11,w:{619:3,859:4,886:4,}},6:{r:17,w:{838:3,908:4,1187:4,4171:3,8286:3,}},7:{r:10,w:{179:3,205:3,1001:4,}},8:{r:12,w:{318:3,337:6,345:3,}},11:{r:14,w:{57:3,124:3,834:4,882:4,}},14:{r:3,w:{600:3,}},17:{r:10,w:{375:3,993:3,2262:4,}},21:{r:61,w:{2464:3,2695:4,2722:4,4241:3,4289:4,6537:3,6563:3,6787:3,7019:4,8941:4,9378:3,9391:6,10031:3,10066:3,10203:3,10555:4,10602:4,}},},"modifié":{6:{r:10,w:{938:4,1422:3,4959:3,}},21:{r:3,w:{4458:3,}},},"modifiées":{6:{r:7,w:{771:3,967:4,}},},"modifiés":{6:{r:6,w:{792:3,1794:3,}},},"modify":{17:{r:7,w:{2101:3,2257:4,}},},"module":{2:{r:6,w:{87:3,258:3,}},4:{r:3,w:{1713:3,}},5:{r:9,w:{262:3,267:3,275:3,}},11:{r:65541,w:{558:65538,571:3,}},},"modules":{5:{r:3,w:{226:3,}},},"modèle":{6:{r:4112,w:{337:4,2947:3,9386:4096,9448:3,9460:3,9472:3,}},11:{r:3,w:{590:3,}},21:{r:13,w:{3875:4,5913:3,5955:3,5965:3,}},},"modèles":{6:{r:1048585,w:{9389:1048579,9394:3,9403:3,}},21:{r:1048582,w:{5902:1048579,5907:3,}},},"modèles-email":{6:{r:3,w:{9394:3,}},21:{r:3,w:{5907:3,}},},"moins":{5:{r:3,w:{384:3,}},21:{r:3,w:{2245:3,}},},"mois":{9:{r:10,w:{201:4,336:3,374:3,}},13:{r:15,w:{66:3,80:3,87:3,194:3,208:3,}},21:{r:25,w:{9780:4,9915:3,9953:3,11553:3,11567:3,11574:3,11681:3,11695:3,}},},"moment":{5:{r:3,w:{1440:3,}},6:{r:3,w:{1467:3,}},8:{r:3,w:{29:3,}},17:{r:4,w:{2158:4,}},21:{r:6,w:{3263:3,9185:3,}},},"mon":{5:{r:4,w:{1787:4,}},6:{r:3,w:{8867:3,}},7:{r:46,w:{421:8,474:6,722:8,1262:8,1754:8,2364:8,}},21:{r:48,w:{6761:8,7272:8,7744:8,8025:8,8578:8,9106:8,}},},"mon_résultat_emprise":{7:{r:4,w:{764:4,}},},"mot":{2:{r:12,w:{423:6,468:6,}},4:{r:16,w:{860:4,906:4,913:4,923:4,}},5:{r:31,w:{319:3,781:4,798:4,801:4,814:3,1158:3,1374:3,1457:3,1709:4,}},6:{r:8228,w:{1925:10,2866:4098,2875:4098,2885:3,2902:3,2936:3,2975:3,2985:3,6136:3,7339:4,}},7:{r:16,w:{341:4,656:4,1132:4,1699:4,}},11:{r:6,w:{298:3,706:3,}},13:{r:7,w:{602:7,}},17:{r:14,w:{1318:5,1329:3,1336:6,}},21:{r:43,w:{1277:4,1323:4,1330:4,2155:3,2617:4,2634:4,2637:4,2650:3,2990:3,3199:3,3280:3,5070:4,}},},"moteur":{1:{r:12,w:{104:6,121:6,}},2:{r:10,w:{156:5,723:5,}},3:{r:4,w:{219:4,}},4:{r:285360268,w:{3:268435456,8:16777218,13:3,27:5,32:5,221:65538,386:65538,407:3,411:3,434:3,449:4098,454:4096,457:3,483:3,506:3,515:3,519:3,524:3,530:3,545:3,554:3,624:4098,631:4096,634:3,641:3,649:3,658:3,671:3,678:3,688:3,728:3,734:3,742:3,749:3,766:3,774:3,782:3,794:3,809:4,836:4,842:4,867:4,917:4,931:4,940:3,962:3,976:3,1553:3,}},6:{r:18,w:{351:3,6053:3,9678:6,9694:6,}},7:{r:16,w:{345:4,660:4,1136:4,1703:4,}},8:{r:12,w:{128:3,320:3,339:3,347:3,}},9:{r:7,w:{25:3,176:4,}},21:{r:2097314,w:{419:6,436:6,771:3,822:4,829:4,838:1048579,843:3,869:3,892:3,902:3,908:3,913:3,945:3,992:3,1009:3,1024:1048579,1031:3,1038:3,1046:3,1055:3,1068:3,1075:3,1085:3,1125:3,1130:3,1138:3,1147:3,1164:3,1172:3,1179:3,1192:3,1202:4,1229:4,1235:4,1253:4,1284:4,1334:4,1342:3,1374:3,1749:3,6163:6,6179:6,9287:3,9380:3,9393:3,9604:3,9755:4,}},},"moteur_gf":{2:{r:3,w:{82:3,}},},"moteur_gtf":{4:{r:3,w:{225:3,}},},"moteurs":{1:{r:12,w:{124:6,138:6,}},4:{r:26,w:{476:3,513:3,682:3,694:3,714:3,726:3,825:4,890:4,}},5:{r:8,w:{1863:4,1869:4,}},6:{r:8,w:{371:8,}},8:{r:65541,w:{312:65538,365:3,}},11:{r:4101,w:{716:4098,730:3,}},21:{r:51,w:{439:6,453:6,716:3,862:3,900:3,1079:3,1091:3,1111:3,1123:3,1218:4,1268:4,1307:4,2189:3,10093:3,}},},"motif":{6:{r:18,w:{2926:3,3307:3,3661:3,3781:3,4078:3,7468:3,}},21:{r:3,w:{5202:3,}},},"mots":{4:{r:4119,w:{791:3,796:4096,805:4,850:4,875:4,882:4,896:4,}},5:{r:3,w:{588:3,}},6:{r:4,w:{369:4,}},21:{r:30,w:{1189:3,1198:4,1243:4,1249:4,1292:4,1299:4,1313:4,2429:3,}},},"mouse":{17:{r:8,w:{2133:8,}},},"moyen":{6:{r:7,w:{7105:3,7315:4,}},11:{r:3,w:{261:3,}},21:{r:10,w:{4837:3,5046:4,10413:3,}},},"ms":{0:{r:4,w:{176:4,}},18:{r:4,w:{175:4,}},21:{r:4,w:{176:4,}},},"ms-active":{0:{r:4,w:{176:4,}},18:{r:4,w:{175:4,}},21:{r:4,w:{176:4,}},},"msc":{4:{r:6,w:{143:6,}},},"multi":{17:{r:7,w:{2099:3,2249:4,}},},"multifichiers":{6:{r:8,w:{291:3,7682:5,}},21:{r:4,w:{7415:4,}},},"multiligne":{6:{r:16426,w:{1932:10,3834:4098,3841:4098,3849:3,3862:3,3913:3,3921:3,3928:4098,3938:4098,3946:3,3961:3,4012:3,4022:3,}},13:{r:7,w:{609:7,}},},"multiple":{6:{r:12312,w:{2093:4098,2106:3,2183:3,2364:4098,2378:3,2451:3,2996:4098,3012:3,3066:3,}},17:{r:4,w:{1750:4,}},},"multiples":{6:{r:7,w:{3116:3,4579:4,}},},"mécanisme":{5:{r:3,w:{247:3,}},},"mélanger":{17:{r:4,w:{2346:4,}},},"métadonnées":{6:{r:65585,w:{612:3,717:65539,724:3,730:3,738:3,824:3,830:3,860:4,873:4,910:4,948:4,962:4,983:4,994:4,}},21:{r:65572,w:{3630:3,3653:3,4079:3,4176:65539,4183:3,4189:3,4196:3,4233:3,4263:4,4280:4,4291:4,}},},"méthode":{5:{r:3,w:{546:3,}},6:{r:4,w:{4451:4,}},8:{r:3,w:{351:3,}},21:{r:3,w:{2387:3,}},},"métropolitaine":{6:{r:4,w:{4449:4,}},},"même":{4:{r:25,w:{232:3,687:3,1383:8,1500:4,1512:4,1651:3,}},5:{r:6,w:{219:3,1628:3,}},6:{r:28,w:{521:3,795:3,4837:3,5196:4,5589:3,7036:3,7632:3,7652:3,7882:3,}},7:{r:19,w:{58:5,897:5,910:5,986:4,}},8:{r:3,w:{421:3,}},11:{r:3,w:{744:3,}},13:{r:3,w:{1016:3,}},14:{r:3,w:{200:3,}},15:{r:3,w:{488:3,}},17:{r:3,w:{82:3,}},21:{r:36,w:{621:3,1084:3,1622:3,1882:3,3450:3,3989:3,6411:3,6911:3,6924:3,7004:3,9530:3,11270:3,}},},"n":{2:{r:3,w:{663:3,}},7:{r:12,w:{387:4,884:5,2128:3,}},9:{r:6,w:{212:3,245:3,}},13:{r:3,w:{657:3,}},17:{r:32,w:{1819:4,1837:4,1861:4,1876:4,1892:4,1915:4,1933:4,1951:4,}},21:{r:16,w:{6735:4,6898:3,8905:3,9791:3,9824:3,}},},"n\u0027a":{15:{r:4,w:{299:4,}},21:{r:4,w:{11085:4,}},},"n\u0027afficher":{6:{r:6,w:{5706:3,6050:3,}},},"n\u0027apparaît":{6:{r:4,w:{8197:4,}},14:{r:4,w:{513:4,}},},"n\u0027apparaîtra":{6:{r:3,w:{6984:3,}},},"n\u0027en":{5:{r:4,w:{1802:4,}},},"n\u0027est":{2:{r:6,w:{485:6,}},4:{r:4,w:{1452:4,}},6:{r:6,w:{5058:3,6979:3,}},21:{r:7,w:{1689:3,3753:4,}},},"n\u0027existe":{2:{r:12,w:{370:6,463:6,}},6:{r:4,w:{821:4,}},},"n\u0027importe":{0:{r:4,w:{274:4,}},15:{r:3,w:{404:3,}},18:{r:4,w:{273:4,}},21:{r:7,w:{274:4,11186:3,}},},"n\u0027écrasent":{6:{r:4,w:{987:4,}},},"name":{6:{r:72,w:{9674:6,9687:6,9690:6,9704:6,9708:6,9718:6,9726:6,9775:6,9783:6,9796:6,9805:6,9813:6,}},17:{r:27,w:{404:3,406:3,411:3,414:3,475:3,489:3,492:3,496:3,1114:3,}},21:{r:72,w:{6159:6,6172:6,6175:6,6189:6,6192:6,6202:6,6210:6,6256:6,6264:6,6276:6,6285:6,6293:6,}},},"name_cascade":{17:{r:18,w:{412:3,479:3,490:6,500:3,1118:3,}},},"named":{6:{r:18,w:{8494:6,8501:6,8668:3,8674:3,}},14:{r:18,w:{811:6,818:6,994:3,1000:3,}},},"namedconnections":{6:{r:3,w:{7911:3,}},14:{r:3,w:{229:3,}},},"natives":{6:{r:3,w:{731:3,}},},"navigateur":{2:{r:3,w:{669:3,}},6:{r:3,w:{746:3,}},7:{r:4,w:{532:4,}},21:{r:7,w:{4209:3,7832:4,}},},"navigation":{5:{r:8196,w:{1200:4098,1497:4098,}},6:{r:7,w:{4512:3,4547:4,}},21:{r:10,w:{3032:4,3042:3,3320:3,}},},"naviguer":{5:{r:6,w:{1182:3,1477:3,}},21:{r:6,w:{3014:3,3300:3,}},},"ne":{1:{r:6,w:{162:6,}},3:{r:3,w:{185:3,}},4:{r:4,w:{1428:4,}},5:{r:6,w:{593:3,1613:3,}},6:{r:41,w:{788:3,1724:3,1820:3,1943:3,6901:4,6922:4,7256:3,7799:3,7807:3,7978:3,7986:3,8046:3,9174:3,}},7:{r:34,w:{326:4,626:4,642:4,1118:4,1477:3,1668:4,1684:4,2026:4,2190:3,}},11:{r:3,w:{399:3,}},13:{r:25,w:{242:3,744:4,827:3,895:3,932:4,945:4,951:4,}},14:{r:15,w:{110:3,118:3,296:3,304:3,364:3,}},17:{r:16,w:{2116:4,2124:4,2333:4,2344:4,}},21:{r:66,w:{477:6,603:3,2434:3,3435:3,3639:3,3740:4,4984:3,5691:3,6672:4,7142:4,7460:4,7545:4,7937:4,8240:4,8302:3,8502:4,8798:4,10143:3,}},},"nettoyage":{4:{r:7,w:{1605:3,1630:4,}},11:{r:1052678,w:{919:4096,924:1048579,1085:3,}},21:{r:1048589,w:{1802:3,1830:4,10642:1048579,10805:3,}},},"nettoyage_des_fichiers_temporaires":{11:{r:3,w:{954:3,}},21:{r:3,w:{10672:3,}},},"nfiguration":{21:{r:6,w:{5037:6,}},},"ni":{7:{r:20,w:{335:4,650:4,1126:4,1693:4,2035:4,}},21:{r:24,w:{6681:4,7151:4,7554:4,7946:4,8510:4,8807:4,}},},"niveau":{4:{r:3,w:{233:3,}},9:{r:6,w:{308:3,323:3,}},17:{r:4,w:{2034:4,}},21:{r:6,w:{9887:3,9902:3,}},},"niveaux":{8:{r:3,w:{253:3,}},21:{r:3,w:{9423:3,}},},"no":{6:{r:3,w:{8684:3,}},14:{r:3,w:{1010:3,}},},"nom":{2:{r:12,w:{397:6,433:6,}},4:{r:26,w:{365:3,747:3,903:4,1315:3,1365:5,1493:4,1518:4,}},5:{r:31,w:{150:3,449:3,482:3,647:4,653:4,668:4,674:4,1493:3,1570:3,}},6:{r:16517,w:{124:3,167:4,177:4,182:4,187:4,206:5,213:5,1866:9,1940:3,2993:4098,3009:3,3063:3,3124:4098,3140:3,3194:3,3246:4098,3343:3,3363:4098,3379:3,3416:3,3646:3,3667:3,5010:3,5083:3,5617:3,6115:3,7633:3,7653:3,9206:3,9511:6,9676:6,9692:6,9710:6,9798:6,9818:6,}},7:{r:56,w:{247:4,308:4,396:8,614:4,766:4,792:3,1105:4,1279:4,1306:3,1543:3,1648:4,1808:3,1972:4,2008:4,}},11:{r:9,w:{658:3,670:3,1088:3,}},13:{r:23,w:{78:3,99:3,543:6,735:4,760:4,783:3,}},17:{r:100,w:{83:3,288:6,323:3,529:3,565:4,604:4,671:3,721:3,763:3,872:6,877:3,907:6,914:6,1182:8,1206:4,1262:4,1346:3,1478:3,1544:4,1550:4,1850:4,1905:4,2393:3,2430:3,2506:3,}},21:{r:183,w:{997:3,1145:3,1320:4,1704:3,2102:3,2304:3,2324:3,2485:4,2489:4,2504:4,2510:4,3316:3,3393:3,3616:3,3643:3,3649:3,3680:4,3701:4,3716:4,3721:4,3733:4,3744:4,3752:4,3761:4,3778:4,3794:4,4675:4,4692:4,5723:3,6004:6,6161:6,6177:6,6194:6,6278:6,6298:6,6655:4,6796:3,7121:4,7523:4,7918:4,8093:3,8365:4,8475:4,8779:4,10808:3,11565:3,11586:3,}},},"nombre":{0:{r:3,w:{40:3,}},4:{r:3,w:{568:3,}},6:{r:4131,w:{2029:3,2158:3,2294:3,2424:3,3464:3,3930:4098,3948:3,4014:3,5533:3,5915:3,6371:3,6722:3,}},9:{r:10,w:{102:4,206:3,226:3,}},11:{r:3,w:{738:3,}},15:{r:6,w:{124:3,133:3,}},18:{r:3,w:{43:3,}},21:{r:25,w:{40:3,962:3,4752:3,9681:4,9785:3,9805:3,10910:3,10919:3,}},},"nombre-":{6:{r:4098,w:{3930:4098,}},},"nomdomaine":{5:{r:16,w:{1032:4,1078:4,1274:8,}},21:{r:16,w:{2868:4,2914:4,3117:8,}},},"nomduserveur":{5:{r:20,w:{989:6,999:6,1042:4,1086:4,}},21:{r:20,w:{2825:6,2835:6,2878:4,2922:4,}},},"nommage":{6:{r:7,w:{137:3,1240:4,}},21:{r:3,w:{3622:3,}},},"nommages":{6:{r:4096,w:{133:4096,}},},"nommant":{6:{r:6,w:{4847:3,9477:3,}},21:{r:3,w:{5970:3,}},},"nomme":{6:{r:83,w:{147:4,160:4,2011:3,2134:3,2270:3,2408:3,2518:3,2598:3,2671:3,2745:3,2815:3,2907:3,3030:3,3161:3,3282:3,3447:3,3523:3,3623:3,3748:3,3866:3,3965:3,4059:3,4186:3,4374:3,4961:3,5063:3,8804:3,}},11:{r:3,w:{302:3,}},21:{r:10,w:{906:3,3671:4,5425:3,}},},"nommer":{2:{r:3,w:{122:3,}},4:{r:12,w:{418:3,522:3,552:3,938:3,}},6:{r:12,w:{604:3,5809:3,6283:3,6634:3,}},21:{r:9,w:{943:3,1340:3,4071:3,}},},"nommerait":{6:{r:4,w:{201:4,}},},"nommerez":{7:{r:4,w:{1530:4,}},},"nommé":{6:{r:17,w:{232:5,1671:3,5356:3,7005:3,7023:3,}},21:{r:4,w:{3694:4,}},},"nommée":{6:{r:4111,w:{8172:4,8690:4098,8700:3,8711:3,8750:3,}},14:{r:4111,w:{488:4,1020:4098,1030:3,1041:3,1080:3,}},},"nommées":{6:{r:73811,w:{7863:65538,7867:3,7892:3,7993:3,8008:3,8016:3,8063:4,8069:4,8093:4,8101:4098,8116:3,8140:3,8161:3,8186:4,8216:4,8238:4098,8245:3,8261:3,8292:3,8315:3,8324:3,8372:3,8385:3,8391:3,8402:3,8421:3,8442:3,}},14:{r:77903,w:{178:4096,181:65538,185:3,210:3,311:3,326:3,334:3,381:4,407:4,417:4098,432:3,456:3,477:3,501:4,532:4,552:4098,559:3,575:3,606:3,629:3,638:3,686:3,699:3,705:3,716:3,735:3,760:3,}},},"nommés":{6:{r:3,w:{8635:3,}},14:{r:7,w:{387:4,960:3,}},},"noms":{6:{r:3,w:{5991:3,}},7:{r:3,w:{1549:3,}},21:{r:4,w:{8371:4,}},},"non":{4:{r:3,w:{1349:3,}},6:{r:3,w:{7412:3,}},8:{r:9,w:{187:3,194:3,577:3,}},11:{r:9,w:{321:3,619:3,635:3,}},13:{r:6,w:{803:6,}},17:{r:6,w:{697:3,727:3,}},21:{r:31,w:{1669:3,1726:3,5146:3,7660:3,8234:4,9346:3,9353:3,10164:3,10179:3,10465:3,}},},"notez":{21:{r:6,w:{922:3,994:3,}},},"notification":{6:{r:8,w:{9854:4,9891:4,}},11:{r:3,w:{664:3,}},},"notifications":{11:{r:3,w:{599:3,}},},"notifié":{6:{r:3,w:{8890:3,}},},"notre":{4:{r:6,w:{1258:3,1612:3,}},7:{r:3,w:{2181:3,}},8:{r:3,w:{478:3,}},11:{r:5,w:{967:5,}},15:{r:5,w:{60:5,}},16:{r:3,w:{99:3,}},17:{r:6,w:{460:3,1099:3,}},21:{r:19,w:{1563:3,1812:3,10685:5,10844:5,11367:3,}},},"nous":{2:{r:3,w:{119:3,}},7:{r:6,w:{188:3,2183:3,}},21:{r:3,w:{6546:3,}},},"nouveau":{4:{r:15,w:{905:4,1492:4,1517:4,1703:3,}},5:{r:6,w:{451:3,572:3,}},6:{r:44,w:{215:5,229:5,455:3,976:4,1479:3,5419:3,5745:3,6226:3,6577:3,8296:3,8396:3,8938:3,9471:3,}},7:{r:23,w:{103:4,926:4,1401:4,1520:4,1525:4,1891:3,}},13:{r:8,w:{759:4,767:4,}},14:{r:6,w:{610:3,710:3,}},21:{r:50,w:{1322:4,2306:3,2413:3,5369:3,5464:3,5964:3,6461:4,6944:4,7376:4,7474:4,8208:4,8345:4,8350:4,8679:3,}},},"nouveaux":{4:{r:65547,w:{1166:65538,1189:3,1229:3,1586:3,}},5:{r:3,w:{121:3,}},6:{r:7,w:{1202:4,9019:3,}},21:{r:1048597,w:{1478:1048579,1510:3,1550:3,1782:3,1935:3,2078:3,5543:3,}},},"nouvel":{4:{r:4,w:{1488:4,}},6:{r:7,w:{1695:3,8219:4,}},14:{r:4,w:{535:4,}},},"nouvelle":{6:{r:9,w:{5282:3,6118:3,9285:3,}},13:{r:4,w:{755:4,}},21:{r:3,w:{5801:3,}},},"nouvellement":{4:{r:3,w:{1582:3,}},5:{r:6,w:{485:3,1544:3,}},6:{r:24,w:{680:3,1702:3,5487:3,5825:3,6299:3,6650:3,8443:6,}},14:{r:6,w:{761:6,}},21:{r:12,w:{1778:3,2327:3,3367:3,4144:3,}},},"nouvelles":{6:{r:3,w:{8419:3,}},14:{r:3,w:{733:3,}},21:{r:3,w:{5374:3,}},},"numberfield":{17:{r:6,w:{521:3,527:3,}},},"numberfiled":{17:{r:4,w:{508:4,}},},"numérique":{17:{r:14,w:{506:5,517:3,552:3,590:3,}},},"numéro":{4:{r:9,w:{559:3,563:3,1111:3,}},7:{r:9,w:{812:3,1326:3,1828:3,}},8:{r:3,w:{126:3,}},11:{r:6,w:{416:3,508:3,}},13:{r:9,w:{62:3,85:3,105:3,}},21:{r:30,w:{950:3,957:3,1429:3,8113:3,9285:3,10236:3,10248:3,11549:3,11572:3,11592:3,}},},"n°":{6:{r:3,w:{6054:3,}},},"n°1":{7:{r:6,w:{498:6,}},},"n°19":{7:{r:9,w:{810:3,1324:3,1826:3,}},21:{r:3,w:{8111:3,}},},"n°2":{7:{r:4,w:{1385:4,}},},"nécessaire":{2:{r:3,w:{245:3,}},4:{r:6,w:{992:3,1079:3,}},6:{r:3,w:{8714:3,}},7:{r:3,w:{2199:3,}},11:{r:3,w:{122:3,}},14:{r:3,w:{1044:3,}},17:{r:24,w:{1411:6,1424:6,1441:6,1449:6,}},21:{r:12,w:{584:3,614:3,1400:3,10201:3,}},},"nécessaires":{6:{r:3,w:{272:3,}},21:{r:6,w:{673:3,3852:3,}},},"nécessite":{6:{r:3,w:{7420:3,}},7:{r:3,w:{2191:3,}},17:{r:3,w:{119:3,}},21:{r:6,w:{4782:3,5154:3,}},},"nœud":{5:{r:6,w:{1225:3,1507:3,}},21:{r:6,w:{3068:3,3330:3,}},},"object_id":{17:{r:12,w:{283:3,285:3,663:3,665:3,}},},"objectif":{7:{r:30,w:{23:6,491:6,860:6,1343:6,1853:6,}},21:{r:24,w:{6377:4,6874:4,7333:4,7794:4,8153:4,8640:4,}},},"objet":{17:{r:3,w:{134:3,}},},"obligatoire":{2:{r:6,w:{494:6,}},4:{r:5,w:{1358:5,}},6:{r:72,w:{2038:3,2169:3,2305:3,2435:3,2550:3,2701:3,2772:3,2842:3,2956:3,3055:3,3186:3,3335:3,3481:3,3550:3,3683:3,3804:3,3899:3,3998:3,4111:3,4405:3,5549:3,5931:3,6387:3,6738:3,}},},"obligent":{17:{r:3,w:{1386:3,}},},"obtenir":{2:{r:3,w:{554:3,}},5:{r:3,w:{1003:3,}},6:{r:3,w:{5639:3,}},8:{r:3,w:{53:3,}},9:{r:6,w:{61:6,}},21:{r:12,w:{2839:3,9209:3,9640:6,}},},"obtenu":{4:{r:3,w:{1138:3,}},11:{r:3,w:{535:3,}},15:{r:3,w:{374:3,}},21:{r:6,w:{1456:3,11156:3,}},},"obtenue":{6:{r:6,w:{4742:3,7444:3,}},21:{r:3,w:{5178:3,}},},"offrant":{5:{r:4,w:{1701:4,}},},"offre":{0:{r:3,w:{59:3,}},6:{r:3,w:{492:3,}},8:{r:3,w:{93:3,}},18:{r:3,w:{62:3,}},21:{r:9,w:{59:3,3960:3,9252:3,}},},"offrir":{0:{r:4,w:{298:4,}},18:{r:4,w:{297:4,}},21:{r:4,w:{298:4,}},},"ok":{7:{r:4,w:{126:4,}},8:{r:3,w:{590:3,}},21:{r:8,w:{6484:4,7399:4,}},},"on":{4:{r:12,w:{478:3,627:3,767:3,776:3,}},6:{r:36,w:{1543:3,4300:3,5264:3,5702:3,5988:3,6009:3,6016:3,6029:3,6047:3,6485:3,6779:3,6991:3,}},8:{r:3,w:{7:3,}},11:{r:3,w:{605:3,}},13:{r:7,w:{652:3,761:4,}},17:{r:64,w:{1824:8,1842:8,1866:8,1881:8,1897:8,1920:8,1938:8,1956:8,}},21:{r:9,w:{864:3,1028:3,9163:3,}},},"onchange":{17:{r:4,w:{1218:4,}},},"onclick":{17:{r:3,w:{257:3,}},},"onglet":{3:{r:3,w:{69:3,}},4:{r:9,w:{412:3,514:3,727:3,}},5:{r:9,w:{109:3,391:3,608:3,}},6:{r:45,w:{98:6,1673:3,1685:3,1696:3,1762:3,1769:3,8786:6,8869:3,8996:6,9260:6,9414:3,}},8:{r:18,w:{91:6,377:6,424:6,}},21:{r:63,w:{772:3,901:3,1124:3,2066:3,2252:3,2453:3,3596:6,5407:6,5521:6,5776:6,5923:3,9250:6,9483:6,9533:6,}},},"onglets":{6:{r:8212,w:{1602:4096,1604:4098,1632:3,1639:3,1663:3,1701:3,1723:3,1748:3,}},},"ont":{6:{r:3,w:{7620:3,}},7:{r:4,w:{836:4,}},8:{r:3,w:{243:3,}},21:{r:11,w:{4508:4,5359:3,8137:4,}},},"oorder":{6:{r:95,w:{9538:7,9561:7,9583:7,9605:7,9625:7,9645:7,9668:5,9684:6,9701:6,9723:6,9745:6,9767:6,9788:6,9810:6,9831:6,}},21:{r:96,w:{6031:7,6054:7,6076:7,6098:7,6118:7,6138:7,6154:6,6169:6,6186:6,6207:6,6229:6,6250:6,6269:6,6290:6,6311:6,}},},"open":{0:{r:4,w:{322:4,}},21:{r:4,w:{322:4,}},},"openlayers":{17:{r:9,w:{1369:3,1663:6,}},},"openlayers2":{21:{r:1048583,w:{8638:1048579,8954:4,}},},"openlayers2field":{17:{r:7,w:{1361:4,1465:3,}},},"openlayersfield":{17:{r:3,w:{1476:3,}},21:{r:10,w:{8991:4,9023:6,}},},"opensstreetmap":{17:{r:4,w:{1639:4,}},},"openstreetmap":{17:{r:6,w:{1428:6,}},},"option":{6:{r:3,w:{5315:3,}},7:{r:8,w:{1441:8,}},21:{r:14,w:{3041:6,8264:8,}},},"optionnelles":{21:{r:3,w:{10259:3,}},},"options":{6:{r:20539,w:{142:3,3074:4098,3078:3,3117:3,3206:4099,3210:3,3555:4,4222:3,4419:3,5959:4098,6415:4099,6765:4099,8129:6,8303:6,8348:6,8410:6,}},13:{r:3,w:{928:3,}},14:{r:24,w:{445:6,617:6,662:6,724:6,}},21:{r:3,w:{3666:3,}},},"opère":{15:{r:3,w:{145:3,}},21:{r:3,w:{10931:3,}},},"opération":{4:{r:3,w:{204:3,}},16:{r:3,w:{130:3,}},21:{r:3,w:{11398:3,}},},"opérations":{2:{r:3,w:{500:3,}},21:{r:3,w:{4800:3,}},},"opérer":{11:{r:3,w:{818:3,}},21:{r:3,w:{10539:3,}},},"or":{6:{r:7,w:{7969:3,8181:4,}},7:{r:3,w:{187:3,}},14:{r:7,w:{287:3,496:4,}},21:{r:3,w:{6545:3,}},},"order":{6:{r:129,w:{9521:6,9532:7,9542:6,9555:7,9565:6,9577:7,9587:6,9599:7,9609:6,9619:7,9629:6,9639:7,9649:5,9706:6,9728:6,9750:6,9772:6,9794:6,9803:6,9824:6,9838:4,}},21:{r:96,w:{6014:6,6025:7,6035:6,6048:7,6058:6,6070:7,6080:6,6092:7,6102:6,6112:7,6122:6,6132:7,6142:6,6283:6,6304:6,}},},"order_by":{6:{r:6,w:{5981:6,}},},"order_date":{6:{r:20,w:{9543:6,9556:7,9563:7,}},21:{r:20,w:{6036:6,6049:7,6056:7,}},},"order_execution_date":{6:{r:7,w:{9585:7,}},21:{r:7,w:{6078:7,}},},"order_id":{6:{r:20,w:{9522:6,9533:7,9540:7,}},21:{r:14,w:{6026:7,6033:7,}},},"order_log":{6:{r:7,w:{9620:7,}},21:{r:7,w:{6113:7,}},},"orders":{13:{r:6,w:{360:6,}},},"orderstatutes":{13:{r:6,w:{366:6,}},},"ordinateur":{6:{r:3,w:{7415:3,}},21:{r:3,w:{5149:3,}},},"ordre":{5:{r:8,w:{1100:8,}},6:{r:4,w:{1181:4,}},21:{r:8,w:{2936:8,}},},"org":{6:{r:3,w:{9382:3,}},17:{r:9,w:{1429:6,1670:3,}},21:{r:6,w:{5895:3,9039:3,}},},"organisation":{6:{r:3,w:{4914:3,}},},"organiser":{6:{r:6,w:{8778:6,}},21:{r:6,w:{5399:6,}},},"organisme":{5:{r:6,w:{155:3,564:3,}},6:{r:3,w:{508:3,}},21:{r:9,w:{2107:3,2405:3,3976:3,}},},"organismes":{21:{r:3,w:{4788:3,}},},"organisée":{11:{r:3,w:{64:3,}},21:{r:3,w:{10073:3,}},},"orthoimagery":{17:{r:3,w:{1699:3,}},},"orthophotos":{17:{r:3,w:{1700:3,}},},"osm":{6:{r:8222,w:{1878:10,4260:4096,4262:4098,4280:3,4335:3,4373:3,4669:3,4684:3,4709:3,}},7:{r:1052699,w:{1848:4096,1851:1048579,1872:5,2172:4,2188:3,2237:4,2252:4,2355:4,}},13:{r:7,w:{555:7,}},17:{r:24,w:{1419:6,1421:6,1714:4,1739:4,1761:4,}},},"osm-":{6:{r:3,w:{4684:3,}},},"ou":{1:{r:18,w:{134:6,154:6,159:6,}},2:{r:3,w:{47:3,}},4:{r:31,w:{67:3,789:3,803:4,848:4,899:4,1348:3,1391:4,1753:6,}},5:{r:54,w:{170:3,188:3,259:3,359:3,403:3,412:3,416:3,422:3,457:3,467:3,471:6,667:4,673:4,1315:4,1527:3,1903:3,}},6:{r:4292,w:{477:6,605:3,637:6,966:8,1148:4,1294:3,1459:3,2041:3,2172:3,2308:3,2438:3,2551:3,2704:3,2773:3,2843:3,2957:3,3056:3,3093:3,3187:3,3225:3,3336:3,3484:3,3551:3,3686:3,3807:3,3902:3,3929:4098,3947:3,4001:3,4013:3,4114:3,4216:3,4283:3,4364:6,4406:3,4433:4,4480:4,4575:4,4582:4,5171:4,5268:3,5550:3,5932:3,6388:3,6469:3,6739:3,7276:3,7519:3,8451:6,8544:3,8735:3,8861:3,8896:3,8947:3,9225:3,9416:6,9429:3,}},8:{r:21,w:{193:3,213:6,325:6,455:3,576:3,}},9:{r:19,w:{32:6,51:3,99:3,173:4,224:3,}},11:{r:3,w:{1076:3,}},12:{r:3,w:{29:3,}},13:{r:15,w:{83:3,102:3,809:3,875:6,}},14:{r:12,w:{769:6,865:3,1065:3,}},15:{r:4,w:{242:4,}},17:{r:15,w:{696:3,1188:4,1715:4,2355:4,}},21:{r:153,w:{449:6,469:6,474:6,538:3,623:3,1187:3,1196:4,1241:4,1247:4,1316:4,1632:3,2121:3,2129:3,2220:3,2264:3,2273:3,2277:3,2283:3,2312:3,2317:6,2503:4,2509:4,3140:4,3350:3,4072:3,4104:3,4361:3,5004:3,5253:3,5473:3,5742:3,5935:3,9352:3,9564:3,9611:6,9630:3,9678:3,9752:4,9803:3,10796:3,11028:4,11570:3,11589:3,}},},"oui":{17:{r:6,w:{695:3,726:3,}},21:{r:3,w:{1698:3,}},},"out":{9:{r:3,w:{350:3,}},21:{r:3,w:{9929:3,}},},"outil":{0:{r:3,w:{46:3,}},17:{r:28,w:{2151:4,2182:4,2200:8,2259:4,2268:4,2277:4,}},18:{r:3,w:{49:3,}},21:{r:3,w:{46:3,}},},"outils":{6:{r:16,w:{4859:4,8127:3,8301:3,8346:3,8408:3,}},7:{r:7,w:{1564:3,2289:4,}},14:{r:12,w:{443:3,615:3,660:3,722:3,}},17:{r:15,w:{1507:3,2114:8,2120:4,}},21:{r:4,w:{8386:4,}},},"outils-":{6:{r:12,w:{8127:3,8301:3,8346:3,8408:3,}},14:{r:12,w:{443:3,615:3,660:3,722:3,}},},"ouverture":{17:{r:6,w:{36:6,}},},"ouvre":{4:{r:3,w:{736:3,}},21:{r:3,w:{1132:3,}},},"ouvrir":{7:{r:12,w:{520:4,822:4,1379:4,}},21:{r:12,w:{7820:4,8123:4,8184:4,}},},"ov":{17:{r:7,w:{2087:3,2178:4,}},},"over":{17:{r:8,w:{2180:8,}},},"où":{2:{r:6,w:{609:3,617:3,}},4:{r:3,w:{359:3,}},13:{r:3,w:{36:3,}},21:{r:3,w:{11523:3,}},},"p":{15:{r:3,w:{432:3,}},21:{r:3,w:{11214:3,}},},"pack":{4:{r:3,w:{951:3,}},21:{r:6,w:{955:3,1353:3,}},},"page":{6:{r:32,w:{1093:3,1837:3,7098:3,7116:3,7154:3,7175:4,7188:4,7501:3,7549:3,7573:3,}},11:{r:3,w:{248:3,}},21:{r:27,w:{4830:3,4848:3,4886:3,4906:3,4918:3,5235:3,5283:3,5307:3,10400:3,}},},"palette":{17:{r:8,w:{2366:5,2376:3,}},},"par":{0:{r:8,w:{152:4,189:4,}},2:{r:12,w:{39:3,438:6,628:3,}},3:{r:3,w:{27:3,}},4:{r:29,w:{376:3,509:3,571:3,629:3,711:3,952:3,1147:3,1406:4,1526:4,}},5:{r:24,w:{21:3,49:4,73:4,269:3,293:3,660:4,1681:3,}},6:{r:69875,w:{82:3,219:5,254:3,279:3,376:3,429:3,488:65539,526:3,550:3,579:3,892:4,929:4,1069:3,1249:4,1263:4098,1272:3,1362:4,1380:4,1438:3,1453:3,1473:3,1497:3,1520:3,1552:3,1560:3,1575:3,1951:3,2153:3,2289:3,2535:3,2624:3,2693:3,2763:3,2833:3,3321:3,3643:3,3768:3,3886:3,3985:3,4098:3,4206:3,4296:3,4312:3,4441:4,4467:4,4489:4,4493:4,4557:4,4651:3,4673:3,4688:3,5085:3,5087:3,5371:3,6000:3,6552:4,7301:4,7407:3,7413:3,7465:3,7731:3,7785:3,7930:3,7950:3,8043:3,8086:4,8111:3,8307:3,8319:3,8438:3,8545:3,8779:3,8891:3,8956:3,9196:3,9896:4,}},7:{r:114,w:{146:3,243:4,311:4,376:4,405:4,481:3,552:4,563:4,618:4,690:4,707:4,803:3,874:5,1109:4,1233:4,1317:3,1434:4,1474:3,1487:3,1503:4,1621:4,1652:4,1733:4,1819:3,1873:5,1921:3,2012:4,2097:4,2265:4,2341:4,}},8:{r:31,w:{9:3,42:3,115:3,164:3,246:3,264:4,292:3,439:3,523:3,613:3,}},9:{r:16,w:{29:3,115:4,132:3,137:3,160:3,}},11:{r:33,w:{111:3,189:3,544:3,594:3,633:3,942:3,1012:4,1019:4,1031:4,1091:3,}},12:{r:3,w:{20:3,}},13:{r:28,w:{234:3,692:3,914:3,939:4,980:3,1025:4,1033:4,1045:4,}},14:{r:30,w:{42:3,96:3,248:3,268:3,361:3,427:3,621:3,633:3,756:3,866:3,}},15:{r:7,w:{303:4,425:3,}},16:{r:3,w:{26:3,}},17:{r:53,w:{88:3,173:3,356:3,362:3,455:3,694:3,729:3,843:3,976:3,982:3,1094:3,1213:4,1622:4,1638:4,1732:4,1799:4,}},18:{r:8,w:{151:4,188:4,}},21:{r:332,w:{152:4,189:4,530:3,636:3,783:3,785:3,895:3,931:3,965:3,1015:3,1030:3,1108:3,1354:3,1417:3,1465:3,1647:3,1979:3,2007:4,2031:4,2496:4,3531:3,3838:3,3934:3,4333:3,4339:3,4425:4,4435:4,4489:4,4494:4,4530:4,4560:4,4568:4,4611:4,4624:4,4646:4,5029:4,5141:3,5147:3,5199:3,5400:3,5482:3,5713:3,6504:3,6658:4,6724:4,6889:3,7087:4,7125:4,7241:4,7492:4,7527:4,7597:4,7708:4,7852:4,7863:4,7922:4,7989:4,8006:4,8104:3,8257:4,8299:3,8312:3,8328:4,8444:4,8479:4,8553:4,8657:3,8709:3,8783:4,8870:4,8988:4,9080:3,9165:3,9198:3,9274:3,9323:3,9416:3,9434:4,9457:3,9548:3,9608:3,9694:4,9711:3,9716:3,9739:3,10136:3,10177:3,10190:3,10660:3,10732:4,10739:4,10751:4,10811:3,11089:4,11207:3,11294:3,}},},"parallélisation":{4:{r:3,w:{719:3,}},21:{r:3,w:{1116:3,}},},"paramètre":{4:{r:12,w:{1372:4,1426:4,1459:4,}},6:{r:98762,w:{260:3,1083:3,1743:3,1759:3,1808:3,1942:3,1954:3,1962:4098,1974:3,2013:3,2036:3,2075:3,2088:4098,2100:3,2136:3,2156:3,2167:3,2178:3,2219:4098,2233:3,2272:3,2292:3,2303:3,2314:3,2357:4098,2371:3,2410:3,2433:3,2444:3,2487:4098,2500:3,2520:3,2548:3,2554:3,2569:4098,2580:3,2600:3,2629:3,2637:4098,2651:3,2673:3,2699:3,2710:3,2719:4098,2730:3,2747:3,2770:3,2781:3,2789:4098,2800:3,2817:3,2840:3,2851:3,2862:4098,2880:3,2909:3,2954:3,2971:3,2989:4098,3004:3,3032:3,3053:3,3059:3,3120:4098,3135:3,3163:3,3184:3,3190:3,3243:4098,3258:3,3284:3,3333:3,3339:3,3359:4098,3375:3,3412:3,3449:3,3479:3,3490:4098,3503:3,3525:3,3548:3,3569:3,3582:4098,3599:3,3625:3,3681:3,3692:3,3710:4098,3725:3,3750:3,3802:3,3813:3,3829:4098,3844:3,3868:3,3897:3,3908:3,3923:4098,3941:3,3967:3,3996:3,4007:3,4024:4098,4038:3,4061:3,4109:3,4120:3,4148:3,4188:3,4246:3,4368:3,4376:3,4403:3,4849:3,4963:3,5012:3,5048:3,5051:3,5065:3,5074:3,5175:4,5441:4099,5453:3,5459:3,5475:4,5547:3,5555:3,5767:4099,5776:3,5780:3,5811:3,5906:4,5929:3,5937:3,6248:4098,6257:3,6261:3,6285:3,6385:3,6393:3,6502:3,6599:4098,6608:3,6612:3,6636:3,6736:3,6744:3,6809:3,7004:3,7022:3,7046:3,7052:3,7067:3,8718:3,8729:3,8732:3,8757:3,8939:3,}},7:{r:123,w:{81:5,87:5,157:4,214:4,236:4,381:4,395:4,503:5,1068:4,1076:4,1446:4,1468:3,1470:3,1481:3,1502:4,1521:4,1526:4,1594:4,1607:4,1615:4,1738:4,1905:3,1947:8,1966:8,1978:8,2223:4,2333:4,2343:4,}},9:{r:3,w:{82:3,}},11:{r:3,w:{1043:3,}},14:{r:12,w:{1048:3,1059:3,1062:3,1087:3,}},15:{r:3,w:{123:3,}},17:{r:13,w:{433:3,1069:3,1272:3,1552:4,}},21:{r:1048693,w:{1614:3,1667:3,1696:3,3844:3,5465:3,6434:3,6440:3,6515:4,6572:4,6729:4,6743:4,6789:3,7082:4,7439:4,7475:4,7790:1048579,7799:3,8271:4,8293:3,8295:3,8306:3,8327:4,8346:4,8351:4,8417:4,8430:4,8438:4,8558:4,8693:3,9072:3,9082:3,9661:3,10763:3,10909:3,}},},"paramètres":{0:{r:4,w:{316:4,}},2:{r:3,w:{345:3,}},5:{r:4,w:{1733:4,}},6:{r:69711,w:{252:3,1034:65539,1165:4,1175:4,1191:4,1210:4,1276:3,1629:3,1677:3,1771:4099,1783:3,1825:3,1864:3,3561:3,4696:3,5253:3,5293:3,5463:3,5786:3,6124:3,6267:3,6443:3,6618:3,8615:3,8745:3,}},7:{r:1048614,w:{149:3,487:1048579,536:4,696:4,941:4,1418:5,1929:3,2103:4,2218:4,2256:4,}},8:{r:3,w:{142:3,}},11:{r:65559,w:{28:3,45:65538,59:3,72:3,80:3,453:3,566:3,644:3,}},14:{r:6,w:{940:3,1075:3,}},15:{r:3,w:{92:3,}},17:{r:12,w:{121:3,1495:3,1500:3,1505:3,}},21:{r:65617,w:{316:4,743:3,764:3,3836:3,4343:3,4505:4,4603:4,6507:3,6959:3,7603:4,7697:4,7836:4,7995:4,8224:4,8717:3,8876:4,8977:4,9301:3,10033:3,10054:65538,10068:3,10082:3,10278:3,10876:3,}},},"paramétrable":{7:{r:4,w:{1242:4,}},21:{r:4,w:{7250:4,}},},"paramétrables":{6:{r:3,w:{1857:3,}},},"paramétrage":{6:{r:6,w:{54:3,6802:3,}},21:{r:3,w:{3548:3,}},},"paramétrant":{6:{r:3,w:{4855:3,}},},"paramétrer":{6:{r:12306,w:{5336:4098,5531:3,5594:4098,5913:3,6090:4098,6369:3,6720:3,}},},"paramétrée":{6:{r:4,w:{4488:4,}},},"paramétrées":{6:{r:3,w:{7229:3,}},21:{r:3,w:{4959:3,}},},"parcourir":{4:{r:3,w:{1303:3,}},6:{r:3,w:{557:3,}},7:{r:13,w:{317:5,1174:4,2062:4,}},21:{r:37,w:{1603:3,4030:3,5379:3,6689:5,7180:4,7562:5,7954:5,8518:5,8834:4,}},},"parcourus":{13:{r:3,w:{925:3,}},},"parent":{6:{r:4144,w:{2065:3,2209:3,2347:3,2477:3,6811:3,6849:3,6878:3,6895:4,6920:4,6941:4,6945:4096,6949:3,6963:3,6973:3,6978:3,7068:3,}},17:{r:3,w:{241:3,}},},"parfaite":{6:{r:4,w:{6891:4,}},},"parfaitement":{6:{r:3,w:{9211:3,}},21:{r:3,w:{5728:3,}},},"partage":{0:{r:3,w:{48:3,}},18:{r:3,w:{51:3,}},21:{r:3,w:{48:3,}},},"particulier":{6:{r:4,w:{7328:4,}},21:{r:4,w:{5059:4,}},},"particulièrement":{0:{r:3,w:{83:3,}},18:{r:3,w:{86:3,}},21:{r:3,w:{83:3,}},},"partie":{1:{r:12,w:{108:6,165:6,}},4:{r:4,w:{893:4,}},5:{r:6,w:{1291:3,1515:3,}},6:{r:6,w:{690:3,1707:3,}},11:{r:6,w:{208:3,348:3,}},21:{r:31,w:{423:6,480:6,1310:4,3058:3,3076:3,3338:3,4154:3,10358:3,}},},"partir":{4:{r:4,w:{873:4,}},5:{r:18,w:{193:3,1137:3,1196:3,1406:3,1491:3,1568:3,}},6:{r:6,w:{363:3,9931:3,}},7:{r:5,w:{1861:5,}},9:{r:6,w:{76:3,190:3,}},15:{r:6,w:{370:3,402:3,}},17:{r:11,w:{217:3,1228:5,1242:3,}},21:{r:40,w:{1290:4,2134:3,2969:3,3028:3,3229:3,3314:3,3391:3,6350:3,8649:3,9655:3,9769:3,11152:3,11184:3,}},},"pas":{1:{r:6,w:{164:6,}},2:{r:21,w:{371:6,464:6,486:6,665:3,}},3:{r:3,w:{187:3,}},4:{r:12,w:{1392:4,1429:4,1453:4,}},5:{r:10,w:{595:3,1615:3,1804:4,}},6:{r:136,w:{790:3,822:4,988:4,1460:3,1726:3,1822:3,1945:3,2042:3,2173:3,2309:3,2439:3,2552:3,2705:3,2774:3,2844:3,2958:3,3057:3,3094:3,3188:3,3226:3,3337:3,3485:3,3552:3,3687:3,3808:3,3903:3,4002:3,4115:3,4217:3,4407:3,4583:4,5059:3,5551:3,5933:3,6389:3,6740:3,7801:3,7810:3,7980:3,7989:3,8048:3,8198:4,8862:3,8897:3,}},7:{r:38,w:{327:4,389:4,643:4,886:5,1119:4,1479:3,1685:4,2027:4,2130:3,2192:3,}},13:{r:21,w:{244:3,745:4,829:3,897:3,933:4,953:4,}},14:{r:19,w:{112:3,121:3,298:3,307:3,366:3,514:4,}},15:{r:4,w:{300:4,}},17:{r:28,w:{1423:6,1440:6,2117:4,2125:4,2334:4,2345:4,}},21:{r:80,w:{479:6,604:3,1633:3,1690:3,2436:3,3437:3,3640:3,3742:4,6673:4,6737:4,6900:3,7143:4,7462:4,7546:4,7938:4,8241:4,8304:3,8503:4,8799:4,8907:3,10144:3,11086:4,}},},"passant":{9:{r:6,w:{328:3,365:3,}},21:{r:6,w:{9907:3,9944:3,}},},"passe":{2:{r:12,w:{425:6,470:6,}},5:{r:34,w:{321:3,590:3,783:4,800:4,803:4,816:3,1160:3,1376:3,1459:3,1711:4,}},6:{r:8228,w:{1927:10,2868:4098,2877:4098,2887:3,2904:3,2938:3,2977:3,2987:3,6138:3,7341:4,}},7:{r:4,w:{459:4,}},11:{r:6,w:{300:3,708:3,}},13:{r:7,w:{604:7,}},17:{r:11,w:{1320:5,1331:3,1338:3,}},21:{r:38,w:{2157:3,2431:3,2619:4,2636:4,2639:4,2652:3,2992:3,3201:3,3282:3,5072:4,6836:4,}},},"passer":{9:{r:3,w:{358:3,}},16:{r:3,w:{25:3,}},21:{r:6,w:{9937:3,11293:3,}},},"password":{2:{r:3,w:{36:3,}},17:{r:12,w:{1339:3,1341:3,2389:3,2423:3,}},21:{r:3,w:{527:3,}},},"passwordfield":{17:{r:10,w:{1322:4,1335:3,1344:3,}},},"passées":{13:{r:3,w:{183:3,}},21:{r:3,w:{11670:3,}},},"pateforme":{12:{r:3,w:{35:3,}},},"patrimoine":{6:{r:3,w:{501:3,}},21:{r:3,w:{3969:3,}},},"pdf":{2:{r:3,w:{101:3,}},},"penser":{4:{r:4,w:{252:4,}},},"performances":{11:{r:3,w:{156:3,}},21:{r:3,w:{10106:3,}},},"periods":{13:{r:6,w:{372:6,}},},"permanentes":{4:{r:3,w:{1084:3,}},21:{r:3,w:{1405:3,}},},"permet":{0:{r:26,w:{21:3,124:3,139:4,224:4,249:4,272:4,306:4,}},2:{r:3,w:{577:3,}},3:{r:3,w:{45:3,}},4:{r:45,w:{54:3,83:3,397:3,472:3,580:4,651:3,697:3,810:4,926:4,1030:3,1072:3,1093:3,1225:3,1622:3,}},5:{r:50,w:{117:3,184:3,399:3,463:3,547:3,616:3,717:4,730:4,749:4,1131:3,1400:3,1588:3,1649:3,1696:4,1719:4,}},6:{r:175,w:{101:3,267:3,384:3,428:3,720:3,834:3,855:4,869:4,906:4,1011:4,1049:3,1078:3,1089:3,1126:4,1218:4,1234:4,1245:4,1647:3,1691:3,2124:3,4240:3,4598:4,4641:3,4894:3,4941:3,4998:3,5044:3,5128:3,5159:3,5220:4,5278:3,5316:3,5379:3,5392:3,5576:3,5664:3,5726:3,6078:3,6144:3,6208:3,6559:3,6800:3,7094:3,7132:3,7586:3,7664:3,8773:3,8791:3,8839:3,8998:3,9099:3,9241:3,9278:3,9399:3,9467:3,}},7:{r:16,w:{177:3,1215:3,1459:3,1907:3,2163:4,}},8:{r:24,w:{155:3,171:3,209:3,277:3,301:3,379:3,426:3,491:3,}},9:{r:12,w:{8:3,88:3,210:3,356:3,}},10:{r:3,w:{21:3,}},11:{r:42,w:{25:3,53:3,69:3,214:3,336:3,353:3,371:3,412:3,449:3,468:3,490:3,563:3,682:3,1050:3,}},13:{r:18,w:{637:3,669:3,700:3,828:3,871:3,905:3,}},15:{r:6,w:{70:3,363:3,}},16:{r:3,w:{45:3,}},17:{r:52,w:{57:3,113:3,151:3,210:3,348:3,373:3,785:3,931:3,968:3,991:3,1295:3,2227:4,2235:4,2243:4,2251:4,2449:3,}},18:{r:22,w:{24:3,127:3,138:4,223:4,248:4,271:4,}},21:{r:258,w:{21:3,124:3,139:4,224:4,249:4,272:4,306:4,858:3,982:3,1048:3,1094:3,1203:4,1255:4,1393:3,1414:3,1546:3,1718:3,2074:3,2260:3,2388:3,2461:3,2553:4,2566:4,2585:4,2963:3,3223:3,3410:3,3471:3,3599:3,3627:3,3847:3,3889:3,3933:3,4179:3,4237:3,4258:4,4272:4,4287:4,4313:3,4584:4,4648:4,4826:3,4864:3,5325:3,5394:3,5412:3,5523:3,5622:3,5757:3,5794:3,5909:3,5960:3,6535:3,8284:3,8695:3,9314:3,9330:3,9368:3,9442:3,9466:3,9485:3,9535:3,9587:3,9667:3,9789:3,9935:3,9979:3,10029:3,10062:3,10078:3,10232:3,10274:3,10290:3,10306:3,10324:3,10364:3,10443:3,10770:3,10854:3,11145:3,11313:3,}},},"permettant":{1:{r:6,w:{40:6,}},4:{r:3,w:{717:3,}},5:{r:3,w:{1358:3,}},6:{r:15,w:{49:3,531:3,7248:3,7280:3,7503:3,}},7:{r:4,w:{2344:4,}},17:{r:71,w:{127:3,139:3,231:3,267:3,303:3,511:3,546:3,584:3,653:3,689:3,742:3,1157:3,1236:3,1285:5,1325:3,1364:3,2260:4,2269:4,2278:4,2372:3,2407:3,2481:3,}},21:{r:33,w:{355:6,1114:3,3183:3,3543:3,3997:3,4976:3,5008:3,5237:3,7646:3,9083:3,}},},"permettent":{1:{r:6,w:{126:6,}},5:{r:3,w:{819:3,}},6:{r:9,w:{3080:3,3212:3,3558:3,}},21:{r:12,w:{441:6,1822:3,2655:3,}},},"permettra":{21:{r:4,w:{7461:4,}},},"permettre":{6:{r:4,w:{1017:4,}},13:{r:3,w:{855:3,}},},"personnalisation":{6:{r:65555,w:{1032:65539,1102:3,1109:3,1342:3,1409:4,4698:3,}},7:{r:1114118,w:{1838:1048579,2108:65539,}},17:{r:1048579,w:{8:1048579,}},21:{r:1179664,w:{4303:65539,4404:3,4586:4,8632:1048579,8885:65539,}},},"personnalise":{6:{r:3,w:{9152:3,}},11:{r:3,w:{151:3,}},21:{r:6,w:{5669:3,10101:3,}},},"personnaliser":{6:{r:24,w:{1080:3,1297:3,1450:3,1841:3,4287:3,4326:3,9422:3,9505:3,}},7:{r:3,w:{2201:3,}},21:{r:18,w:{4364:3,4710:3,4723:3,5929:3,6000:3,7636:3,}},},"personnalisé":{6:{r:4124,w:{1257:4,1266:4098,1398:4,1417:3,1440:3,1463:3,1515:3,1559:3,1590:3,}},7:{r:4,w:{2307:4,}},13:{r:3,w:{1000:3,}},21:{r:56,w:{4445:4,4453:3,4524:4,4529:4,4583:4,4635:4,4666:4,4683:4,4700:4,4740:3,7715:4,7724:3,7731:3,8936:4,9056:4,}},},"personnalisée":{15:{r:3,w:{204:3,}},17:{r:3,w:{1519:3,}},21:{r:6,w:{9026:3,10990:3,}},},"personnalisés":{6:{r:65572,w:{1531:3,1646:3,7714:65538,7722:3,7739:4,7753:4,7819:3,7834:3,7851:4,7856:4,7889:3,}},13:{r:4,w:{1066:4,}},14:{r:268505118,w:{9:268435456,18:4096,25:65538,33:3,50:4,64:4,130:3,145:3,162:4,167:4,207:3,}},},"personnel":{6:{r:6,w:{7983:3,8051:3,}},14:{r:6,w:{301:3,369:3,}},},"personnes":{6:{r:3,w:{9431:3,}},21:{r:3,w:{5937:3,}},},"peut":{0:{r:4,w:{170:4,}},2:{r:6,w:{407:6,}},3:{r:6,w:{134:3,172:3,}},4:{r:13,w:{479:3,768:3,879:4,1717:3,}},5:{r:30,w:{26:3,196:3,230:3,278:3,292:3,1180:3,1303:3,1475:3,1564:3,1625:3,}},6:{r:132,w:{19:3,1285:3,1448:3,1469:3,1544:3,1612:3,1625:3,1744:3,1944:3,2538:3,2686:3,2766:3,2836:3,2923:3,2950:3,3299:3,3317:3,3639:3,3653:3,3671:3,3764:3,3773:3,3792:3,3882:3,3981:3,4075:3,4301:3,5265:3,5703:3,6010:3,6017:3,6780:3,7257:3,7808:3,7987:3,8696:3,8808:3,8852:3,8873:3,8887:3,8901:3,9059:3,9264:3,9912:3,}},8:{r:15,w:{134:3,315:3,401:3,444:3,539:3,}},9:{r:3,w:{48:3,}},11:{r:12,w:{606:3,687:3,722:3,983:3,}},13:{r:6,w:{243:3,653:3,}},14:{r:9,w:{119:3,305:3,1026:3,}},15:{r:6,w:{108:3,398:3,}},17:{r:6,w:{1273:3,2042:3,}},18:{r:4,w:{169:4,}},21:{r:99,w:{170:4,602:3,865:3,1166:3,1296:4,1984:3,3012:3,3128:3,3298:3,3387:3,3447:3,3504:3,3636:3,4352:3,4718:3,4756:3,4985:3,5429:3,5582:3,5780:3,6331:3,6785:3,7409:4,9293:3,9375:3,9507:3,9553:3,9627:3,10147:3,10703:3,10894:3,11180:3,}},},"peuvent":{2:{r:3,w:{52:3,}},4:{r:3,w:{684:3,}},6:{r:12,w:{769:3,789:3,1792:3,7226:3,}},8:{r:6,w:{570:3,585:3,}},9:{r:3,w:{134:3,}},11:{r:3,w:{1004:3,}},21:{r:15,w:{543:3,1081:3,4956:3,9713:3,10724:3,}},},"pg_dump":{15:{r:4,w:{249:4,}},21:{r:4,w:{11035:4,}},},"pg_dumpall":{15:{r:4,w:{252:4,}},21:{r:4,w:{11038:4,}},},"pg_hba":{4:{r:4,w:{304:4,}},5:{r:4,w:{897:4,}},21:{r:4,w:{2733:4,}},},"pg_restore":{15:{r:4,w:{255:4,}},21:{r:4,w:{11041:4,}},},"phase":{3:{r:3,w:{25:3,}},4:{r:6,w:{373:3,985:3,}},},"php":{1:{r:6,w:{56:6,}},2:{r:4,w:{514:4,}},10:{r:3,w:{33:3,}},11:{r:65547,w:{135:3,443:65538,447:3,457:3,}},15:{r:3,w:{410:3,}},17:{r:21,w:{30:3,39:6,390:3,887:3,895:3,1008:3,}},21:{r:24,w:{371:6,9991:3,10214:3,10251:3,10273:3,10282:3,11192:3,}},},"phpinfo":{13:{r:6,w:{486:6,}},},"phrase":{15:{r:4,w:{24:4,}},},"physical":{17:{r:4,w:{1765:4,}},},"pictogramme":{6:{r:9,w:{1564:3,1569:3,1580:3,}},},"place":{4:{r:7,w:{816:4,1736:3,}},21:{r:8,w:{1209:4,1262:4,}},},"planification":{0:{r:3,w:{50:3,}},18:{r:3,w:{53:3,}},21:{r:3,w:{50:3,}},},"planifiées":{1:{r:6,w:{95:6,}},21:{r:6,w:{410:6,}},},"plein":{6:{r:8,w:{4596:4,4604:4,}},},"plus":{3:{r:4,w:{113:4,}},5:{r:4,w:{1855:4,}},6:{r:9,w:{4323:3,4714:3,9364:3,}},7:{r:3,w:{1585:3,}},9:{r:9,w:{218:3,264:3,363:3,}},13:{r:3,w:{1072:3,}},17:{r:6,w:{435:3,1071:3,}},21:{r:18,w:{5877:3,7661:3,8408:3,9797:3,9843:3,9942:3,}},},"plusieurs":{1:{r:9,w:{27:3,132:6,}},4:{r:18,w:{681:3,790:3,804:4,824:4,849:4,}},5:{r:21,w:{360:3,413:3,417:3,423:3,458:3,468:3,513:3,}},6:{r:16,w:{141:3,518:3,535:3,1631:3,9882:4,}},16:{r:6,w:{48:3,62:3,}},17:{r:28,w:{734:5,746:3,777:5,790:3,1724:4,1791:4,2254:4,}},21:{r:70,w:{342:3,447:6,1078:3,1188:3,1197:4,1217:4,1242:4,1248:4,2221:3,2274:3,2278:3,2284:3,2313:3,2354:3,3665:3,3986:3,4003:3,4465:3,4714:3,11316:3,11330:3,}},},"plutôt":{6:{r:3,w:{4343:3,}},},"point":{5:{r:8,w:{691:4,706:4,}},6:{r:12,w:{4469:4,4591:4,4628:4,}},17:{r:7,w:{2093:3,2225:4,}},21:{r:8,w:{2527:4,2542:4,}},},"pointe":{7:{r:4,w:{952:4,}},21:{r:3,w:{6970:3,}},},"points":{17:{r:4,w:{2231:4,}},},"poly":{17:{r:7,w:{2097:3,2241:4,}},},"polygon":{17:{r:3,w:{2293:3,}},},"polygone":{6:{r:8,w:{4594:4,4636:4,}},7:{r:3,w:{1919:3,}},21:{r:6,w:{8707:3,9027:3,}},},"polygones":{17:{r:4,w:{2247:4,}},},"port":{2:{r:18,w:{385:6,387:6,443:6,}},6:{r:3,w:{6133:3,}},11:{r:3,w:{676:3,}},21:{r:3,w:{587:3,}},},"porter":{17:{r:3,w:{80:3,}},},"poser":{12:{r:3,w:{30:3,}},},"position":{6:{r:4,w:{4524:4,}},},"possibilité":{5:{r:7,w:{534:3,1703:4,}},6:{r:14,w:{4581:4,7268:3,8166:4,9420:3,}},7:{r:3,w:{2142:3,}},10:{r:3,w:{42:3,}},14:{r:4,w:{482:4,}},21:{r:15,w:{2375:3,4996:3,5927:3,8919:3,10000:3,}},},"possible":{5:{r:3,w:{510:3,}},6:{r:47,w:{1143:4,1185:4,2049:3,2193:3,2331:3,2461:3,4169:3,5680:3,5968:3,6169:3,6430:3,7391:3,8284:3,8580:3,9305:3,}},7:{r:3,w:{1573:3,}},9:{r:9,w:{59:3,285:3,304:3,}},11:{r:3,w:{788:3,}},14:{r:6,w:{598:3,901:3,}},16:{r:3,w:{20:3,}},17:{r:8,w:{1721:4,1788:4,}},21:{r:36,w:{1005:3,2351:3,3862:3,5125:3,5365:3,5821:3,8396:3,9638:3,9864:3,9883:3,10509:3,11288:3,}},},"possibles":{6:{r:6,w:{144:3,4223:3,}},13:{r:3,w:{930:3,}},17:{r:5,w:{779:5,}},21:{r:3,w:{3668:3,}},},"possède":{5:{r:4,w:{759:4,}},21:{r:4,w:{2595:4,}},},"post_max_size":{11:{r:3,w:{130:3,}},21:{r:3,w:{10209:3,}},},"poste":{2:{r:6,w:{240:3,307:3,}},5:{r:3,w:{179:3,}},6:{r:3,w:{7124:3,}},7:{r:8,w:{915:5,1201:3,}},21:{r:14,w:{4856:3,6929:3,7207:4,7458:4,}},},"postgis":{21:{r:3,w:{10269:3,}},},"postgre":{15:{r:4,w:{298:4,}},21:{r:4,w:{11084:4,}},},"postgres":{15:{r:25,w:{221:6,224:3,269:4,322:3,338:3,454:6,}},21:{r:25,w:{11007:6,11010:3,11055:4,11108:3,11124:3,11236:6,}},},"postgresql":{1:{r:6,w:{62:6,}},2:{r:4122,w:{272:4098,278:3,301:3,316:4,454:6,529:4,537:4,}},4:{r:11,w:{265:4,290:4,382:3,}},5:{r:1114137,w:{46:4,57:4,104:1048579,350:65539,870:4,885:4,1606:3,}},6:{r:3,w:{9224:3,}},7:{r:9,w:{820:3,1334:3,1836:3,}},15:{r:6,w:{212:3,229:3,}},21:{r:1114165,w:{377:6,601:3,1858:4,2004:4,2015:4,2061:1048579,2211:65539,2706:4,2721:4,3428:3,5741:3,8121:3,10264:3,10998:3,11015:3,}},},"postrgresql":{5:{r:4096,w:{96:4096,}},},"pour":{0:{r:25,w:{13:3,64:3,86:3,179:4,261:4,287:4,294:4,}},1:{r:6,w:{73:6,}},2:{r:26,w:{9:3,197:3,267:4,279:3,317:4,354:3,544:3,553:3,}},4:{r:39,w:{133:3,266:4,312:4,592:4,971:3,998:3,1080:3,1172:3,1191:3,1245:3,1576:3,1644:3,}},5:{r:34,w:{657:4,694:4,709:4,722:4,735:4,769:4,871:4,1002:3,1261:3,}},6:{r:207,w:{273:3,330:3,513:3,657:3,1016:4,1717:3,2932:3,3308:3,3662:3,3782:3,4083:3,4286:3,4718:3,4784:3,4826:3,5225:4,5299:3,5422:3,5444:3,5523:3,5638:3,5652:3,5748:3,5770:3,5792:3,5847:3,5854:3,5890:3,6004:3,6229:3,6251:3,6273:3,6315:3,6322:3,6353:3,6440:3,6538:3,6580:3,6602:3,6624:3,6666:3,6673:3,6704:3,6951:3,7329:4,7344:4,7397:3,7826:3,7937:3,7963:3,8003:3,8107:3,8204:4,8429:3,8561:5,8573:5,8628:3,8707:3,8859:3,8967:3,9129:3,9138:3,9363:3,9446:3,9504:3,9913:3,}},7:{r:64,w:{216:4,336:4,506:5,651:4,807:3,929:4,959:4,1127:4,1150:4,1321:3,1581:3,1694:4,1823:3,1894:3,1941:4,2036:4,2040:4,}},8:{r:9,w:{66:3,352:3,542:3,}},9:{r:6,w:{119:3,290:3,}},11:{r:21,w:{116:3,222:3,263:3,596:3,807:3,814:3,948:3,}},12:{r:3,w:{9:3,}},13:{r:1048600,w:{13:1048579,239:3,270:3,854:3,941:4,1027:4,1037:4,}},14:{r:38,w:{137:3,255:3,281:3,321:3,423:3,520:4,747:3,882:5,894:5,953:3,1037:3,}},17:{r:51,w:{65:3,177:3,183:3,427:3,622:3,1063:3,1390:3,1759:4,2031:4,2115:4,2152:4,2184:4,2332:4,2378:3,2412:3,}},18:{r:25,w:{16:3,67:3,89:3,178:4,260:4,286:4,293:4,}},19:{r:268435459,w:{4:268435456,10:3,}},20:{r:268435459,w:{4:268435456,10:3,}},21:{r:1048830,w:{13:3,64:3,86:3,179:4,261:4,287:4,294:4,388:6,502:3,559:3,674:3,758:3,805:3,1369:6,1401:3,1493:3,1512:3,1772:3,1874:3,2178:3,2493:4,2530:4,2545:4,2558:4,2571:4,2605:4,2707:4,2838:3,3104:3,3816:3,3853:3,3867:3,3981:3,4121:3,4708:3,5060:4,5075:4,5131:3,5492:3,5652:3,5661:3,5876:3,5999:3,6332:3,6574:4,6682:4,6947:4,6977:3,7152:4,7156:4,7555:4,7624:3,7802:3,7947:4,8108:3,8239:4,8404:3,8511:4,8682:3,8729:4,8808:4,8812:4,8937:4,9222:3,9698:3,9869:3,10195:3,10375:3,10415:3,10528:3,10535:3,10666:3,11457:3,11500:1048579,}},22:{r:268435459,w:{4:268435456,10:3,}},},"pourcentage":{9:{r:4,w:{145:4,}},21:{r:4,w:{9724:4,}},},"pourra":{11:{r:3,w:{400:3,}},21:{r:3,w:{2137:3,}},},"pourrait":{8:{r:3,w:{605:3,}},},"pourront":{5:{r:3,w:{594:3,}},21:{r:3,w:{2435:3,}},},"pouvez":{6:{r:24,w:{5530:3,5912:3,5941:3,6368:3,6397:3,6719:3,6748:3,8318:3,}},12:{r:3,w:{14:3,}},14:{r:3,w:{632:3,}},21:{r:3,w:{11462:3,}},},"pouvoir":{2:{r:3,w:{684:3,}},4:{r:3,w:{1246:3,}},6:{r:54,w:{658:3,4719:3,4785:3,4827:3,5300:3,5524:3,5793:3,5891:3,6274:3,6354:3,6625:3,6705:3,7827:3,7927:3,7947:3,8004:3,8108:3,8430:3,}},8:{r:3,w:{33:3,}},13:{r:3,w:{271:3,}},14:{r:18,w:{138:3,245:3,265:3,322:3,424:3,748:3,}},17:{r:3,w:{1391:3,}},21:{r:10,w:{4122:3,8938:4,9189:3,}},},"premier":{2:{r:3,w:{191:3,}},6:{r:14,w:{955:4,1001:4,7003:3,8105:3,}},7:{r:4,w:{1495:4,}},14:{r:3,w:{421:3,}},16:{r:4,w:{142:4,}},17:{r:6,w:{420:3,1056:3,}},21:{r:8,w:{8320:4,11410:4,}},},"premiere":{17:{r:9,w:{828:3,875:3,910:3,}},},"premiers":{13:{r:3,w:{192:3,}},21:{r:3,w:{11679:3,}},},"première":{4:{r:3,w:{500:3,}},6:{r:6,w:{118:3,389:3,}},17:{r:3,w:{892:3,}},21:{r:9,w:{886:3,3610:3,3894:3,}},},"priorities":{13:{r:6,w:{378:6,}},},"priorités":{8:{r:3,w:{122:3,}},21:{r:3,w:{9281:3,}},},"pris":{6:{r:3,w:{247:3,}},21:{r:3,w:{3831:3,}},},"prise":{4:{r:3,w:{1542:3,}},21:{r:3,w:{1738:3,}},},"privileges":{3:{r:3,w:{86:3,}},13:{r:12,w:{283:6,492:6,}},},"privilège":{5:{r:16,w:{1694:4,1717:4,1796:4,1811:4,}},13:{r:6,w:{240:3,257:3,}},},"privilèges":{3:{r:16,w:{34:3,48:3,79:3,108:3,116:4,}},5:{r:1052690,w:{1673:4096,1675:1048578,1679:3,1767:3,1774:3,1857:4,1905:3,}},6:{r:3,w:{6520:3,}},13:{r:1048581,w:{220:1048578,268:3,}},21:{r:3,w:{2194:3,}},},"privé":{6:{r:14,w:{7275:3,7312:4,7351:4,7520:3,}},21:{r:14,w:{5003:3,5043:4,5082:4,5254:3,}},},"privée":{6:{r:8,w:{7333:4,7370:4,}},21:{r:8,w:{5064:4,5101:4,}},},"problème":{6:{r:4,w:{8207:4,}},8:{r:3,w:{356:3,}},14:{r:4,w:{523:4,}},},"procedure_installation_gtf_windows":{2:{r:3,w:{100:3,}},},"process":{1:{r:6,w:{133:6,}},21:{r:6,w:{448:6,}},},"process_date":{21:{r:6,w:{6143:6,}},},"processus":{2:{r:3,w:{128:3,}},4:{r:3,w:{1058:3,}},5:{r:6,w:{333:3,1255:3,}},6:{r:18,w:{392:3,475:6,635:6,9327:3,}},11:{r:3,w:{810:3,}},21:{r:18,w:{2169:3,3098:3,3897:3,4102:3,5843:3,10531:3,}},},"procède":{6:{r:7,w:{973:4,4833:3,}},},"procéder":{2:{r:6,w:{189:3,699:3,}},3:{r:6,w:{173:3,213:3,}},4:{r:12,w:{1032:3,1184:3,1648:3,1718:3,}},8:{r:3,w:{281:3,}},21:{r:12,w:{701:3,813:3,1505:3,9446:3,}},},"procédez":{21:{r:3,w:{1879:3,}},},"procédure":{2:{r:12,w:{207:4,261:4,313:4,}},4:{r:4,w:{94:4,}},5:{r:6,w:{83:3,841:3,}},6:{r:4,w:{8229:4,}},15:{r:3,w:{4:3,}},21:{r:15,w:{629:3,638:3,1943:3,2041:3,2677:3,}},},"procédures":{11:{r:285212675,w:{3:268435456,10:16777219,}},21:{r:16777219,w:{10015:16777219,}},},"production":{0:{r:4,w:{264:4,}},18:{r:4,w:{263:4,}},21:{r:4,w:{264:4,}},},"produire":{9:{r:3,w:{193:3,}},21:{r:3,w:{9772:3,}},},"produits":{11:{r:8,w:{1011:4,1018:4,}},21:{r:8,w:{10731:4,10738:4,}},},"professional":{1:{r:6,w:{152:6,}},21:{r:6,w:{467:6,}},},"profil":{5:{r:6,w:{92:3,367:3,}},13:{r:3,w:{229:3,}},21:{r:6,w:{2050:3,2228:3,}},},"profils":{5:{r:6,w:{37:3,1757:3,}},21:{r:3,w:{1995:3,}},},"programdata":{4:{r:4,w:{608:4,}},},"programmation":{1:{r:6,w:{60:6,}},21:{r:6,w:{375:6,}},},"programme":{4:{r:3,w:{52:3,}},6:{r:3,w:{9369:3,}},21:{r:3,w:{5882:3,}},},"programmes":{21:{r:3,w:{737:3,}},},"projection":{6:{r:16,w:{4428:4,4537:4,4565:4,4572:4,}},7:{r:4,w:{2280:4,}},17:{r:27,w:{1491:3,1584:4,1644:4,2163:8,2169:4,2350:4,}},},"projections":{17:{r:4,w:{1745:4,}},},"projet":{4:{r:41,w:{853:4,864:4,1210:3,1422:4,1438:4,1485:4,1496:4,1513:4,1520:4,1604:3,1618:3,}},5:{r:4,w:{1799:4,}},6:{r:1188147,w:{27:3,39:3,61:1048579,77:3,87:65539,94:3,109:3,115:4,135:4096,149:4,158:4,199:4,216:5,230:5,241:3,276:3,316:3,406:3,420:3,443:3,452:3,469:6,629:6,679:3,726:3,740:3,766:3,784:3,800:3,807:4,826:3,847:3,868:4,875:4,897:4,905:4,912:4,936:4,945:4,950:4,958:4,979:4,985:4,1004:4,1010:4,1022:4,1178:4,1279:3,1300:3,1323:3,1329:3,1351:3,1434:3,1447:3,1487:3,1611:3,1756:3,1815:3,1848:3,2010:3,2133:3,2269:3,2407:3,2597:3,3029:3,3160:3,3281:3,3446:3,3522:3,3622:3,3747:3,3865:3,3964:3,4058:3,4185:3,4359:3,4954:3,7111:3,7131:3,7577:4096,7580:65538,7585:3,7595:3,7635:3,7707:5,7995:3,8600:3,8638:3,8695:3,8848:3,8879:3,8963:3,9820:6,}},7:{r:1376403,w:{93:65539,106:4,131:3,161:4,242:4,255:3,304:4,322:4,385:4,495:5,517:65539,523:4,587:4,610:4,638:4,712:4,857:1048579,879:5,901:5,921:65539,927:4,990:4,1026:3,1081:4,1101:4,1114:4,1148:4,1196:4,1214:3,1221:3,1253:4,1376:65539,1620:4,1644:4,1680:4,1745:4,1886:65539,1892:3,2004:4,}},8:{r:6,w:{132:3,474:3,}},9:{r:11,w:{116:4,133:3,164:4,}},11:{r:9,w:{780:3,951:3,978:3,}},13:{r:196652,w:{629:65538,634:3,661:65538,666:3,683:3,698:3,705:3,725:4,728:4,748:4,752:4,768:4,788:3,864:65538,}},14:{r:12,w:{313:3,925:3,963:3,1025:3,}},15:{r:13,w:{36:4,54:3,67:3,103:3,}},21:{r:2621818,w:{1270:4,1281:4,1531:3,1664:3,1677:3,1818:3,3512:3,3524:3,3558:1048579,3574:3,3586:65539,3592:3,3607:3,3632:3,3656:3,3673:4,3682:4,3692:4,3703:4,3723:4,3746:4,3757:4,3780:4,3791:4,3825:3,3856:3,3866:3,3911:3,3926:3,3948:3,4096:3,4143:3,4185:3,4198:3,4205:3,4228:3,4250:3,4271:4,4276:4,4286:4,4293:4,4346:3,4367:3,4390:3,4413:3,4516:4,4660:4,4843:3,4863:3,5319:65538,5324:3,5334:3,5370:3,5488:3,6300:6,6451:65539,6464:4,6489:3,6519:4,6592:4,6598:3,6651:4,6694:4,6733:4,6871:1048579,6894:3,6915:3,6939:65539,6945:4,7008:3,7043:3,7086:4,7117:4,7202:5,7259:4,7366:65539,7379:4,7491:4,7519:4,7567:4,7700:4,7817:65539,7823:4,7887:4,7914:4,7959:4,8011:4,8169:3,8181:65539,8249:4,8443:4,8471:4,8523:4,8565:4,8674:65539,8680:3,8775:4,8980:4,9291:3,9695:4,9712:3,9743:4,10501:3,10669:3,10697:5,10838:3,10851:3,10888:5,}},},"projets":{2:{r:6,w:{187:3,285:3,}},4:{r:31,w:{470:3,708:3,1203:3,1250:3,1326:3,1376:4,1394:4,1463:4,1467:4,}},5:{r:8,w:{1818:4,1836:4,}},6:{r:65605,w:{73:3,81:3,99:3,139:3,480:6,486:65539,503:3,519:3,536:3,561:3,578:3,586:3,593:3,640:6,734:3,1542:3,1547:3,1555:3,1594:3,7612:3,7629:3,}},8:{r:6,w:{40:3,390:3,}},13:{r:1048596,w:{255:3,616:1048578,621:3,640:3,658:3,816:3,842:3,}},15:{r:4,w:{178:4,}},17:{r:3,w:{2499:3,}},21:{r:65612,w:{856:3,1105:3,1524:3,1619:3,1635:3,1701:3,1722:3,1801:3,3570:3,3578:3,3597:3,3624:3,3956:65539,3971:3,3987:3,4004:3,4034:3,4053:3,4060:3,4107:3,4192:3,5351:3,9196:3,9496:3,10964:4,}},},"properties":{11:{r:10,w:{37:3,127:3,837:4,}},13:{r:6,w:{498:6,}},17:{r:4,w:{1202:4,}},21:{r:10,w:{10042:3,10206:3,10558:4,}},},"properties_domain":{15:{r:4,w:{160:4,}},21:{r:4,w:{10946:4,}},},"properties_post":{11:{r:4,w:{828:4,}},21:{r:4,w:{10549:4,}},},"properties_post_engine":{15:{r:4,w:{163:4,}},21:{r:4,w:{10949:4,}},},"proposer":{7:{r:3,w:{2136:3,}},21:{r:3,w:{8913:3,}},},"proposons":{7:{r:3,w:{2184:3,}},},"proposée":{21:{r:3,w:{930:3,}},},"propre":{0:{r:4,w:{300:4,}},5:{r:3,w:{322:3,}},6:{r:9,w:{782:3,7773:3,9179:3,}},7:{r:4,w:{1514:4,}},14:{r:3,w:{84:3,}},18:{r:4,w:{299:4,}},21:{r:17,w:{300:4,2158:3,4729:3,5696:3,8339:4,}},},"propres":{0:{r:4,w:{209:4,}},5:{r:9,w:{1631:3,1686:3,1759:3,}},6:{r:10,w:{4860:4,7726:3,7898:3,}},14:{r:6,w:{37:3,216:3,}},18:{r:4,w:{208:4,}},21:{r:7,w:{209:4,3453:3,}},},"propriétés":{21:{r:10,w:{3654:3,3708:4,4203:3,}},},"protocole":{2:{r:6,w:{223:3,641:3,}},6:{r:3,w:{4093:3,}},},"proxy":{21:{r:3,w:{10091:3,}},},"pré":{2:{r:16842761,w:{141:5,162:16777218,170:65538,}},6:{r:11,w:{758:3,882:4,921:4,}},15:{r:11,w:{187:4,284:7,}},21:{r:26,w:{4220:3,4470:4,4485:4,4520:4,10973:4,11070:7,}},},"pré-requis":{2:{r:16842756,w:{162:16777218,170:65538,}},},"préalable":{4:{r:3,w:{1237:3,}},5:{r:3,w:{254:3,}},6:{r:16,w:{375:3,4795:3,7300:4,7517:3,9185:3,}},21:{r:10,w:{5028:4,5251:3,5702:3,}},},"préalablement":{0:{r:4,w:{147:4,}},4:{r:3,w:{1310:3,}},6:{r:10,w:{7000:3,8954:3,9033:4,}},7:{r:20,w:{431:4,732:4,1273:4,1764:4,2374:4,}},8:{r:6,w:{290:3,329:3,}},18:{r:4,w:{146:4,}},21:{r:40,w:{147:4,1610:3,5480:3,5556:3,6771:4,7282:4,7754:4,8035:4,8588:4,9116:4,9455:3,}},},"préconisons":{2:{r:3,w:{120:3,}},},"précédemment":{4:{r:6,w:{1654:3,1692:3,}},5:{r:3,w:{1169:3,}},6:{r:3,w:{8392:3,}},7:{r:8,w:{1180:4,2068:4,}},14:{r:3,w:{706:3,}},16:{r:4,w:{159:4,}},21:{r:29,w:{1885:3,1923:3,3001:3,4528:4,7186:4,8188:4,8840:4,11427:4,}},},"précédent":{2:{r:6,w:{473:6,}},7:{r:4,w:{522:4,}},21:{r:4,w:{7822:4,}},},"préfixé":{6:{r:3,w:{5086:3,}},},"préfixés":{5:{r:3,w:{1680:3,}},},"présence":{2:{r:6,w:{490:6,}},6:{r:6,w:{8987:3,9073:3,}},8:{r:3,w:{575:3,}},21:{r:6,w:{5512:3,5596:3,}},},"présent":{4:{r:4,w:{603:4,}},6:{r:3,w:{9083:3,}},15:{r:3,w:{449:3,}},21:{r:9,w:{578:3,5606:3,11231:3,}},},"présente":{2:{r:3,w:{103:3,}},13:{r:3,w:{266:3,}},},"prévisualisation":{6:{r:26,w:{1122:4,3096:3,3228:3,5522:3,5878:3,5904:4,6352:3,6703:3,}},},"prévisualiser":{6:{r:10,w:{1128:4,5892:3,6355:3,}},21:{r:3,w:{7727:3,}},},"ps":{17:{r:4,w:{1628:4,}},},"psql":{15:{r:7,w:{258:4,445:3,}},21:{r:7,w:{11044:4,11227:3,}},},"pt":{17:{r:7,w:{2085:3,2161:4,}},},"pubié":{6:{r:3,w:{2372:3,}},},"public":{4:{r:4,w:{1731:4,}},6:{r:31,w:{7279:3,7290:4,7297:4,7518:6,7537:3,8158:3,8196:4,8212:4,}},11:{r:1060911,w:{193:4096,201:4099,221:3,253:3,293:3,314:3,335:3,345:3,751:4096,754:1048578,765:3,851:3,862:3,887:6,894:3,908:3,917:3,}},14:{r:11,w:{474:3,512:4,528:4,}},15:{r:3,w:{438:3,}},21:{r:196682,w:{5007:3,5018:4,5025:4,5252:6,5271:3,10342:4,10352:65539,10355:65539,10374:3,10405:3,10442:3,10452:3,10458:3,10478:65538,10486:3,10572:3,10583:3,10607:6,10614:3,10628:3,10637:3,11220:3,}},},"publication":{4:{r:6,w:{1575:3,1701:3,}},5:{r:8,w:{1816:4,1828:4,}},6:{r:285216796,w:{1:268435456,5:4096,9:16777219,43:3,597:3,833:3,1048:3,1237:4,1414:3,8790:3,9398:3,}},7:{r:285540415,w:{3:268435456,9:16777219,44:5,194:3,212:4,286:65539,300:4,500:5,592:65539,606:4,1083:65538,1097:4,1345:5,1626:65539,1640:4,1986:65539,2000:4,2314:4,}},21:{r:33947746,w:{1771:3,1932:3,2190:3,3494:16777219,3528:3,4064:3,4236:3,4312:3,4450:3,4650:4,5411:3,6359:16777219,6399:3,6552:3,6570:4,6633:65539,6647:4,7099:65539,7113:4,7335:3,7501:65539,7515:4,7796:3,7896:65539,7910:4,8155:3,8453:65539,8467:4,8757:65539,8771:4,}},},"publie":{5:{r:4,w:{1803:4,}},},"publier":{0:{r:7,w:{23:3,144:4,}},6:{r:4116,w:{20:3,250:3,1458:3,1477:3,8687:4098,8697:3,8708:3,}},7:{r:11,w:{253:3,533:4,1444:4,}},14:{r:4104,w:{1017:4098,1027:3,1038:3,}},18:{r:7,w:{26:3,143:4,}},21:{r:39,w:{23:3,144:4,3505:3,3834:3,4643:4,4663:4,6596:3,7728:3,7833:4,8269:4,9053:4,}},},"publique":{6:{r:4,w:{8169:4,}},14:{r:4102,w:{414:4098,485:4,}},},"publiques":{6:{r:4105,w:{8060:4,8098:4098,8120:3,}},14:{r:7,w:{378:4,436:3,}},},"publié":{6:{r:98540,w:{1084:3,1253:4,1268:4098,1379:4,1442:3,1492:3,1510:3,1578:3,1586:3,1809:3,1955:3,1963:4098,1975:3,2076:3,2089:4098,2101:3,2179:3,2220:4098,2234:3,2315:3,2358:4098,2445:3,2488:4098,2501:3,2555:3,2570:4098,2581:3,2630:3,2638:4098,2652:3,2711:3,2720:4098,2731:3,2782:3,2790:4098,2801:3,2852:3,2863:4098,2881:3,2972:3,2990:4098,3005:3,3060:3,3121:4098,3136:3,3191:3,3259:3,3340:3,3360:4098,3376:3,3413:3,3491:4098,3504:3,3570:3,3583:4098,3600:3,3693:3,3711:4098,3726:3,3814:3,3830:4098,3845:3,3909:3,3924:4098,3942:3,4008:3,4025:4098,4039:3,4121:3,4149:3,5049:3,5075:3,5442:4099,5476:4,5768:4099,5777:3,6249:4098,6258:3,6503:3,6600:4098,6609:3,6810:3,7997:3,8719:3,8730:3,}},7:{r:96,w:{158:4,237:4,375:4,382:4,390:4,402:4,432:4,504:5,689:4,733:4,1077:4,1232:4,1274:4,1473:3,1522:4,1527:4,1616:4,1732:4,1765:4,1948:4,1967:4,1979:4,2096:4,2375:4,}},11:{r:3,w:{976:3,}},13:{r:7,w:{956:4,973:3,}},14:{r:9,w:{315:3,1049:3,1060:3,}},15:{r:3,w:{101:3,}},17:{r:4,w:{1553:4,}},21:{r:1048706,w:{4434:4,4474:4,4478:4,4544:4,4550:4,4628:4,6516:4,6723:4,6730:4,6738:4,6748:4,6772:4,6790:3,7240:4,7283:4,7440:4,7476:4,7596:4,7755:4,7791:1048579,7800:3,7988:4,8036:4,8298:3,8347:4,8352:4,8439:4,8552:4,8589:4,8869:4,9117:4,10695:5,10886:5,}},},"publiés":{0:{r:4,w:{168:4,}},1:{r:6,w:{82:6,}},5:{r:4,w:{1840:4,}},6:{r:69679,w:{1035:65539,1166:4,1176:4,1277:3,1533:3,1548:3,1772:4099,1784:3,1826:3,5254:3,5464:3,5787:3,6268:3,6619:3,8746:3,}},7:{r:1048593,w:{151:3,488:1048579,944:4,1931:3,2219:4,}},13:{r:11,w:{919:3,1048:4,1065:4,}},14:{r:3,w:{1076:3,}},15:{r:3,w:{80:3,}},18:{r:4,w:{167:4,}},21:{r:37,w:{168:4,397:6,4344:3,6509:3,6962:3,7604:4,7698:4,8719:3,8978:4,10864:3,}},},"puis":{4:{r:15,w:{775:3,1154:3,1278:3,1293:3,1570:3,}},5:{r:12,w:{574:3,1248:3,1334:3,1531:3,}},6:{r:71,w:{36:3,1423:3,4853:3,5016:3,5465:3,5627:3,5647:3,5815:3,5865:3,6289:3,6333:3,6640:3,6684:3,7064:3,7145:3,7352:4,8021:3,8154:3,8225:4,8250:3,8326:3,8724:3,9294:3,}},7:{r:12,w:{123:4,1139:4,2309:4,}},9:{r:3,w:{179:3,}},11:{r:9,w:{301:3,479:3,551:3,}},14:{r:19,w:{339:3,470:3,541:4,564:3,640:3,1054:3,}},17:{r:3,w:{190:3,}},21:{r:74,w:{1173:3,1467:3,1583:3,1593:3,1766:3,2415:3,3090:3,3159:3,3354:3,3521:3,3820:3,4459:3,4877:3,5083:4,5810:3,6481:4,7396:4,7672:3,7725:3,8949:4,9052:4,9758:3,10317:3,}},},"puisqu\u0027un":{13:{r:3,w:{256:3,}},},"puisque":{7:{r:8,w:{630:4,1672:4,}},},"puisse":{2:{r:3,w:{200:3,}},4:{r:3,w:{1001:3,}},6:{r:3,w:{4957:3,}},7:{r:4,w:{962:4,}},21:{r:3,w:{6980:3,}},},"purger":{8:{r:4102,w:{270:4096,274:6,}},21:{r:6,w:{9439:6,}},},"pycron":{1:{r:6,w:{87:6,}},2:{r:6,w:{90:3,98:3,}},4:{r:73767,w:{23:5,47:65538,49:3,97:4,101:4098,113:3,121:3,127:4098,154:3,190:3,199:3,404:3,427:3,}},6:{r:9,w:{7792:3,7962:3,9334:3,}},10:{r:3,w:{32:3,}},11:{r:6,w:{577:3,586:3,}},14:{r:6,w:{103:3,280:3,}},15:{r:3,w:{87:3,}},21:{r:25,w:{402:6,591:3,795:3,1872:4,5850:3,9990:3,10871:3,}},},"pycron-0":{2:{r:3,w:{90:3,}},},"pyrcon":{4:{r:4101,w:{107:3,179:4098,}},},"python":{4:{r:6,w:{155:6,}},6:{r:9,w:{8625:3,8661:3,8665:3,}},14:{r:9,w:{950:3,987:3,991:3,}},},"périmètre":{7:{r:4,w:{2348:4,}},17:{r:3,w:{1374:3,}},21:{r:3,w:{9087:3,}},},"période":{4:{r:12,w:{663:3,754:3,762:6,}},6:{r:15,w:{8977:3,9277:3,9286:3,9315:3,9332:3,}},9:{r:3,w:{183:3,}},11:{r:3,w:{379:3,}},13:{r:4096,w:{7:4096,}},21:{r:30,w:{1060:3,1152:3,1160:6,5502:3,5793:3,5802:3,5831:3,5848:3,9762:3,}},},"périodes":{6:{r:1052681,w:{9233:4096,9237:1048579,9261:3,9271:3,}},13:{r:1048579,w:{17:1048579,}},21:{r:2097164,w:{5753:1048579,5777:3,5787:3,11504:1048579,}},},"qu":{6:{r:10,w:{8940:3,9030:4,9217:3,}},7:{r:3,w:{1552:3,}},21:{r:13,w:{5466:3,5553:3,5734:3,8374:4,}},},"qu\u0027avec":{6:{r:3,w:{4839:3,}},},"qu\u0027elle":{6:{r:9,w:{5896:3,6359:3,6710:3,}},},"qu\u0027il":{5:{r:4,w:{1838:4,}},6:{r:52,w:{563:3,1061:3,1132:4,2018:3,2141:3,2277:3,2605:3,3290:3,3530:3,3630:3,3755:3,3873:3,3972:3,4066:3,4193:3,4956:3,4968:3,}},11:{r:6,w:{306:3,677:3,}},21:{r:10,w:{4036:3,4325:3,4654:4,}},},"qu\u0027une":{6:{r:4,w:{9853:4,}},},"qu\u0027à":{6:{r:3,w:{7260:3,}},21:{r:3,w:{4988:3,}},},"qualité":{0:{r:4,w:{102:4,}},18:{r:4,w:{105:4,}},21:{r:4,w:{102:4,}},},"quand":{4:{r:4,w:{827:4,}},21:{r:4,w:{1220:4,}},},"quatrième":{17:{r:3,w:{1271:3,}},},"que":{2:{r:6,w:{198:3,293:3,}},4:{r:47,w:{160:3,166:3,234:3,593:4,999:3,1124:3,1333:3,1373:8,1432:4,1507:4,1558:3,1653:3,1697:3,}},5:{r:9,w:{265:3,420:3,586:3,}},6:{r:133,w:{301:3,349:3,971:4,998:4,1572:3,1583:3,2621:3,2941:3,3100:3,3232:3,3470:3,4160:3,4344:3,4817:3,4982:3,5081:3,5198:4,5591:3,5707:3,5838:3,6051:3,6312:3,6529:3,6663:3,6861:3,6908:4,6929:4,7399:3,7522:3,7598:3,7692:5,7884:3,8053:3,8141:3,8246:3,8329:3,8377:3,8621:3,8643:3,8983:3,9177:3,9440:3,}},7:{r:81,w:{190:3,279:3,379:4,392:4,693:4,790:3,833:4,899:5,912:5,960:4,988:4,1236:4,1304:3,1528:4,1736:4,1806:3,2100:4,2228:4,2287:4,2321:4,2331:4,}},8:{r:6,w:{124:3,240:3,}},9:{r:6,w:{214:3,247:3,}},11:{r:24,w:{175:3,383:3,432:3,521:3,588:3,628:3,668:3,736:3,}},13:{r:13,w:{717:3,948:4,1005:3,1011:3,}},14:{r:24,w:{202:3,371:3,457:3,560:3,643:3,691:3,946:3,969:3,}},15:{r:3,w:{89:3,}},17:{r:40,w:{1822:4,1840:4,1851:4,1864:4,1879:4,1895:4,1906:4,1918:4,1936:4,1954:4,}},21:{r:156,w:{777:3,792:3,923:3,995:3,1442:3,1671:3,1754:3,1884:3,1928:3,2281:3,2427:3,4774:3,5133:3,5256:3,5337:3,5508:3,5694:3,5946:3,6548:3,6622:3,6727:4,6740:4,6824:4,6913:3,6926:3,6978:3,7006:3,7244:4,7429:4,7450:4,7600:4,7712:4,7992:4,8091:3,8134:4,8556:4,8873:4,9060:3,9070:3,9283:3,9410:3,9793:3,9826:3,10139:3,10172:3,10261:3,10336:3,10873:3,}},},"quel":{6:{r:3,w:{6846:3,}},11:{r:3,w:{288:3,}},15:{r:3,w:{405:3,}},21:{r:6,w:{10367:3,11187:3,}},},"quelconque":{6:{r:3,w:{7115:3,}},7:{r:5,w:{66:5,}},21:{r:6,w:{4847:3,6419:3,}},},"quelle":{0:{r:4,w:{275:4,}},6:{r:4,w:{7182:4,}},18:{r:4,w:{274:4,}},21:{r:7,w:{275:4,4912:3,}},},"question":{12:{r:3,w:{32:3,}},21:{r:4,w:{8237:4,}},},"qui":{0:{r:10,w:{20:3,123:3,223:4,}},2:{r:3,w:{226:3,}},4:{r:3,w:{53:3,}},5:{r:6,w:{25:3,374:3,}},6:{r:71,w:{412:3,427:3,1217:4,1233:4,2414:3,2524:3,2677:3,2751:3,2821:3,2913:3,3036:3,3167:3,3453:3,4360:3,4365:3,4381:3,4513:3,4648:3,5325:3,5841:3,7788:3,7956:3,8603:3,}},7:{r:13,w:{1020:3,1906:3,2189:3,2290:4,}},8:{r:3,w:{594:3,}},13:{r:3,w:{250:3,}},14:{r:9,w:{99:3,274:3,928:3,}},15:{r:6,w:{484:3,490:3,}},17:{r:18,w:{112:3,347:3,483:3,803:3,967:3,1122:3,}},18:{r:10,w:{23:3,126:3,222:4,}},21:{r:53,w:{20:3,123:3,223:4,640:3,1983:3,2235:3,3918:3,3932:3,4507:4,7037:3,7694:4,8694:3,8974:4,8993:4,11266:3,11272:3,}},},"racine":{15:{r:3,w:{227:3,}},17:{r:3,w:{2510:3,}},21:{r:3,w:{11013:3,}},},"radio":{6:{r:8212,w:{1872:10,4139:4098,4145:4098,4181:3,4252:3,}},13:{r:7,w:{549:7,}},17:{r:5,w:{683:5,}},},"radio-":{6:{r:4098,w:{4139:4098,}},},"radiofield":{17:{r:10,w:{686:4,709:3,719:3,}},},"radios":{6:{r:3,w:{4213:3,}},},"raisons":{21:{r:3,w:{7626:3,}},},"rajoute":{4:{r:3,w:{205:3,}},},"rajouter":{5:{r:3,w:{973:3,}},6:{r:3,w:{4242:3,}},17:{r:3,w:{2451:3,}},21:{r:3,w:{2809:3,}},},"rajouté":{6:{r:3,w:{8654:3,}},14:{r:3,w:{980:3,}},},"rajoutées":{15:{r:4,w:{313:4,}},21:{r:4,w:{11099:4,}},},"rapport":{0:{r:4,w:{106:4,}},2:{r:3,w:{560:3,}},4:{r:8,w:{1317:3,1367:5,}},11:{r:3,w:{1083:3,}},13:{r:6,w:{773:3,1003:3,}},17:{r:6,w:{357:3,977:3,}},21:{r:16,w:{106:4,645:3,649:3,1716:3,10803:3,}},},"rapports":{18:{r:4,w:{109:4,}},},"raster1000k":{17:{r:3,w:{1677:3,}},21:{r:3,w:{9043:3,}},},"raster100k":{17:{r:3,w:{1680:3,}},21:{r:3,w:{9046:3,}},},"raster250k":{17:{r:3,w:{1679:3,}},21:{r:3,w:{9045:3,}},},"raster25k":{17:{r:3,w:{1682:3,}},21:{r:3,w:{9048:3,}},},"raster500k":{17:{r:3,w:{1678:3,}},21:{r:3,w:{9044:3,}},},"raster50k":{17:{r:3,w:{1681:3,}},21:{r:3,w:{9047:3,}},},"raster5k":{17:{r:3,w:{1683:3,}},21:{r:3,w:{9049:3,}},},"rattacher":{6:{r:3,w:{354:3,}},},"re":{6:{r:3,w:{1484:3,}},},"reader":{6:{r:3,w:{8734:3,}},14:{r:3,w:{1064:3,}},},"recaptcha":{6:{r:8,w:{7437:5,7454:3,}},21:{r:8,w:{5171:5,5188:3,}},},"rechargement":{6:{r:4,w:{1019:4,}},},"recharger":{6:{r:16,w:{871:4,5508:3,5884:3,6342:3,6693:3,}},21:{r:4,w:{4274:4,}},},"recherche":{5:{r:8238,w:{689:4,696:4,704:4,711:4,724:4,737:4,1194:3,1276:4098,1284:3,1297:3,1300:3,1489:3,1553:4098,1559:3,}},21:{r:42,w:{2525:4,2532:4,2540:4,2547:4,2560:4,2573:4,3026:3,3119:3,3125:3,3312:3,3376:3,3382:3,}},},"rechercher":{4:{r:3,w:{145:3,}},17:{r:3,w:{239:3,}},},"recherché":{5:{r:3,w:{1573:3,}},21:{r:3,w:{3396:3,}},},"recommandé":{4:{r:6,w:{936:3,1182:3,}},21:{r:6,w:{1338:3,1503:3,}},},"reconnus":{6:{r:3,w:{8753:3,}},14:{r:3,w:{1083:3,}},},"reconstituer":{7:{r:5,w:{908:5,}},21:{r:3,w:{6922:3,}},},"reconstituée":{7:{r:3,w:{1206:3,}},21:{r:4,w:{7212:4,}},},"redirigée":{2:{r:3,w:{647:3,}},},"redémarrer":{4:{r:3,w:{379:3,}},},"reg":{6:{r:41,w:{8450:6,8453:6,8513:6,8552:3,8555:10,8567:10,}},14:{r:41,w:{768:6,771:6,830:6,873:3,876:10,888:10,}},},"regedit":{6:{r:4,w:{8540:4,}},14:{r:4,w:{861:4,}},},"regedit-":{6:{r:4,w:{8540:4,}},14:{r:4,w:{861:4,}},},"registre":{6:{r:8222,w:{8025:3,8080:4,8427:4098,8448:3,8511:3,8529:4098,8535:3,8560:5,8572:5,}},14:{r:8225,w:{343:3,398:4,745:4098,766:3,828:3,850:4098,856:3,881:5,893:5,977:3,}},},"registry":{6:{r:3,w:{8477:3,}},14:{r:3,w:{794:3,}},},"regrouper":{9:{r:3,w:{157:3,}},21:{r:3,w:{9736:3,}},},"regroupés":{9:{r:6,w:{230:3,277:3,}},21:{r:6,w:{9809:3,9856:3,}},},"regénéré":{13:{r:4,w:{1036:4,}},},"relancer":{8:{r:3,w:{211:3,}},21:{r:3,w:{9370:3,}},},"relancé":{15:{r:3,w:{493:3,}},21:{r:3,w:{11275:3,}},},"relatifs":{21:{r:3,w:{765:3,}},},"relationnelle":{1:{r:6,w:{71:6,}},21:{r:6,w:{386:6,}},},"relative":{5:{r:4,w:{1751:4,}},16:{r:3,w:{165:3,}},21:{r:3,w:{11433:3,}},},"relatives":{11:{r:6,w:{96:3,435:3,}},},"relie":{21:{r:3,w:{3822:3,}},},"relire":{6:{r:8,w:{866:4,1008:4,}},21:{r:4,w:{4269:4,}},},"remarquer":{7:{r:9,w:{789:3,1303:3,1805:3,}},21:{r:3,w:{8090:3,}},},"remplacer":{4:{r:4,w:{1461:4,}},6:{r:3,w:{8334:3,}},13:{r:4,w:{723:4,}},14:{r:3,w:{648:3,}},21:{r:8,w:{7707:4,8987:4,}},},"remplacé":{7:{r:4,w:{2340:4,}},21:{r:3,w:{9079:3,}},},"remplacées":{6:{r:4,w:{928:4,}},},"remplacés":{6:{r:4,w:{891:4,}},},"rempli":{17:{r:4,w:{1594:4,}},},"remplir":{17:{r:13,w:{129:3,466:3,1105:3,1548:4,}},},"rendre":{4:{r:3,w:{771:3,}},6:{r:4112,w:{8059:4,8097:4098,8168:4,8855:3,9134:3,}},7:{r:20,w:{328:4,644:4,1120:4,1686:4,2028:4,}},14:{r:4106,w:{377:4,413:4098,484:4,}},21:{r:30,w:{1169:3,5657:3,6674:4,7144:4,7547:4,7939:4,8504:4,8800:4,}},},"rendu":{6:{r:3,w:{8965:3,}},21:{r:3,w:{5490:3,}},},"rendues":{6:{r:3,w:{8119:3,}},14:{r:3,w:{435:3,}},},"renommer":{6:{r:3,w:{606:3,}},21:{r:6,w:{1007:3,4073:3,}},},"renommé":{4:{r:4,w:{1522:4,}},6:{r:3,w:{7637:3,}},},"renommés":{6:{r:6,w:{7614:6,}},21:{r:6,w:{5353:6,}},},"renouv":{17:{r:3,w:{1251:3,}},},"renseignées":{17:{r:4,w:{2029:4,}},},"renseignés":{11:{r:3,w:{712:3,}},},"rentrer":{6:{r:3,w:{4346:3,}},},"renvoyées":{2:{r:3,w:{54:3,}},21:{r:3,w:{545:3,}},},"reportée":{6:{r:3,w:{1765:3,}},},"repose":{6:{r:3,w:{6858:3,}},},"reposer":{6:{r:15,w:{2072:3,2216:3,2354:3,2484:3,6869:3,}},},"représentation":{9:{r:3,w:{63:3,}},21:{r:3,w:{9642:3,}},},"représente":{13:{r:15,w:{40:3,50:3,60:3,74:3,95:3,}},21:{r:12,w:{11527:3,11537:3,11547:3,11582:3,}},},"représentent":{21:{r:3,w:{11561:3,}},},"représentée":{9:{r:3,w:{95:3,}},21:{r:3,w:{9674:3,}},},"représentés":{9:{r:3,w:{136:3,}},21:{r:3,w:{9715:3,}},},"repsectivement":{21:{r:3,w:{10495:3,}},},"require_once":{17:{r:4,w:{51:4,}},},"requis":{2:{r:16842761,w:{142:5,163:16777218,171:65538,}},6:{r:71,w:{759:3,883:4,922:4,2045:3,2176:3,2312:3,2442:3,2708:3,2779:3,2849:3,2963:3,3488:3,3690:3,3811:3,3906:3,4005:3,4118:3,4412:3,5556:3,5938:3,6394:3,6537:3,6745:3,}},13:{r:12,w:{260:3,269:3,284:6,}},15:{r:11,w:{188:4,285:7,}},21:{r:14,w:{4221:3,10974:4,11071:7,}},},"requise":{11:{r:3,w:{699:3,}},},"resauration":{15:{r:4,w:{38:4,}},},"respectant":{21:{r:3,w:{1011:3,}},},"respecte":{6:{r:3,w:{2944:3,}},},"respecter":{6:{r:6,w:{9351:3,9375:3,}},13:{r:3,w:{25:3,}},21:{r:9,w:{5867:3,5888:3,11512:3,}},},"respectivement":{11:{r:3,w:{774:3,}},},"respecté":{5:{r:4,w:{1108:4,}},21:{r:4,w:{2944:4,}},},"responsable":{5:{r:4,w:{1813:4,}},8:{r:3,w:{231:3,}},21:{r:3,w:{9401:3,}},},"ressortira":{6:{r:3,w:{7822:3,}},14:{r:3,w:{133:3,}},},"ressource":{6:{r:6,w:{6473:3,6488:3,}},7:{r:13,w:{624:4,877:5,1666:4,}},13:{r:9,w:{248:3,281:6,}},21:{r:6,w:{5339:3,6892:3,}},},"ressources":{2:{r:9,w:{114:3,340:3,575:3,}},6:{r:4130,w:{262:4096,265:6,271:3,1327:3,4293:3,4842:3,5229:4,6433:3,7600:3,7642:3,7650:3,}},7:{r:17,w:{1169:5,1187:4,2058:8,}},9:{r:3,w:{22:3,}},11:{r:3,w:{776:3,}},13:{r:6,w:{504:6,}},15:{r:4,w:{181:4,}},21:{r:40,w:{3845:6,3851:3,5375:3,7175:5,7193:5,8830:8,9601:3,10497:3,10967:4,}},},"rest":{0:{r:7,w:{122:3,269:4,}},16:{r:7,w:{155:4,174:3,}},18:{r:7,w:{125:3,268:4,}},21:{r:14,w:{122:3,269:4,11423:4,11442:3,}},},"restauration":{15:{r:69649,w:{8:3,19:5,348:4096,352:65539,365:3,466:3,}},21:{r:1114132,w:{1947:3,1960:5,10824:1048579,11134:65539,11147:3,11248:3,}},},"restaurées":{15:{r:3,w:{471:3,}},21:{r:3,w:{11253:3,}},},"reste":{16:{r:3,w:{86:3,}},21:{r:7,w:{4629:4,11354:3,}},},"restera":{3:{r:3,w:{181:3,}},},"restore":{15:{r:6,w:{358:3,428:3,}},21:{r:6,w:{11140:3,11210:3,}},},"restreindre":{5:{r:6,w:{231:3,279:3,}},},"restreint":{17:{r:8,w:{1190:8,}},},"restriction":{5:{r:4102,w:{213:4096,215:3,242:3,}},},"result_url":{6:{r:20,w:{9588:6,9600:7,9607:7,}},21:{r:20,w:{6081:6,6093:7,6100:7,}},},"retour":{2:{r:3,w:{556:3,}},6:{r:8,w:{4554:4,9898:4,}},},"retourne":{6:{r:3,w:{7494:3,}},13:{r:3,w:{251:3,}},21:{r:7,w:{3798:4,5228:3,}},},"retourner":{4:{r:3,w:{1571:3,}},6:{r:3,w:{8342:3,}},17:{r:8,w:{1287:5,1297:3,}},21:{r:3,w:{1767:3,}},},"retournez":{14:{r:3,w:{656:3,}},},"retournée":{6:{r:4,w:{7374:4,}},21:{r:7,w:{1014:3,5105:4,}},},"retrouve":{4:{r:3,w:{1547:3,}},21:{r:3,w:{1743:3,}},},"revanche":{6:{r:3,w:{1506:3,}},},"revenir":{6:{r:30,w:{1470:3,1718:3,5408:3,5431:3,5735:3,5757:3,6216:3,6238:3,6567:3,6589:3,}},},"road":{6:{r:4,w:{4767:4,}},17:{r:4,w:{1777:4,}},},"roaming":{6:{r:3,w:{7919:3,}},14:{r:3,w:{237:3,}},},"robot":{5:{r:15,w:{748:4,751:4,772:4,834:3,}},21:{r:15,w:{2584:4,2587:4,2608:4,2670:3,}},},"rose":{21:{r:4,w:{6822:4,}},},"route":{17:{r:12,w:{636:3,637:3,1034:3,1035:3,}},},"rubrique":{11:{r:3,w:{652:3,}},},"rubriques":{11:{r:3,w:{66:3,}},21:{r:3,w:{10075:3,}},},"rue":{17:{r:12,w:{638:3,639:3,1036:3,1037:3,}},},"règle":{4:{r:3,w:{944:3,}},21:{r:3,w:{1346:3,}},},"règles":{6:{r:4099,w:{128:3,131:4096,}},21:{r:3,w:{3620:3,}},},"réception":{4:{r:3,w:{1119:3,}},11:{r:3,w:{516:3,}},21:{r:3,w:{1437:3,}},},"récupère":{5:{r:3,w:{1431:3,}},17:{r:3,w:{159:3,}},21:{r:3,w:{3254:3,}},},"récupérer":{6:{r:4,w:{5227:4,}},21:{r:3,w:{3647:3,}},},"réduire":{9:{r:3,w:{291:3,}},21:{r:3,w:{9870:3,}},},"réel":{6:{r:3,w:{7933:3,}},14:{r:3,w:{251:3,}},},"référencement":{6:{r:3,w:{441:3,}},21:{r:3,w:{3946:3,}},},"références":{21:{r:4,w:{9011:4,}},},"régulière":{5:{r:9,w:{183:3,290:3,303:3,}},6:{r:18,w:{2931:3,3303:3,3657:3,3777:3,4082:3,8846:3,}},11:{r:3,w:{995:3,}},15:{r:3,w:{117:3,}},21:{r:6,w:{10715:3,10903:3,}},},"régulièrement":{11:{r:3,w:{937:3,}},21:{r:3,w:{10655:3,}},},"régénération":{13:{r:8,w:{936:4,1022:4,}},},"régénérer":{21:{r:4,w:{4608:4,}},},"réimporter":{6:{r:4,w:{8227:4,}},},"réimportez":{14:{r:4,w:{542:4,}},},"réimportez-les":{14:{r:4,w:{542:4,}},},"réinitialiser":{8:{r:3,w:{207:3,}},21:{r:7,w:{4680:4,9366:3,}},},"réinstallation":{6:{r:3,w:{434:3,}},21:{r:3,w:{3939:3,}},},"répartir":{1:{r:6,w:{128:6,}},6:{r:3,w:{1627:3,}},21:{r:6,w:{443:6,}},},"répartition":{11:{r:3,w:{804:3,}},21:{r:3,w:{10525:3,}},},"réperoire":{21:{r:4,w:{10552:4,}},},"réperoitre":{21:{r:3,w:{10636:3,}},},"réperotire":{21:{r:4,w:{10598:4,}},},"répertoire":{2:{r:30,w:{27:3,117:3,124:3,331:3,336:3,365:6,369:6,571:3,}},4:{r:54,w:{187:3,197:3,207:3,229:3,286:4,291:8,424:3,431:3,606:4,614:4,617:4,1268:6,1666:6,}},5:{r:4,w:{881:4,}},6:{r:2179202,w:{257:3,315:3,944:4,1309:3,1312:3,1318:3,1332:3,3494:4098,3507:3,3573:3,3586:4098,3603:3,3648:3,3696:3,7576:4096,7579:65538,7584:3,7592:3,7606:3,7706:5,7744:4,7758:4,7803:3,7916:3,7982:3,8050:3,8073:4,8085:4,8297:3,8312:3,8437:3,8467:3,8632:3,8650:3,8819:2097158,8822:4096,8922:3,8950:3,9026:3,9113:3,9180:3,9195:3,9208:3,}},7:{r:52,w:{46:5,181:3,185:3,473:3,768:4,987:4,1193:4,1213:3,1220:3,1280:4,1785:4,1974:4,1982:4,2385:4,}},8:{r:6,w:{488:6,}},11:{r:31,w:{186:3,575:3,584:3,769:3,831:4,872:4,878:4,916:3,1038:4,}},13:{r:3,w:{679:3,}},14:{r:46,w:{55:4,69:4,114:3,234:3,300:3,368:3,391:4,403:4,611:3,626:3,755:3,784:3,957:3,971:3,}},15:{r:25,w:{140:3,154:4,226:6,392:3,406:3,452:3,456:3,}},16:{r:3,w:{113:3,}},21:{r:2162856,w:{520:3,1573:6,1897:6,2717:4,3841:3,4376:3,4379:3,4385:3,4394:3,5318:65538,5323:3,5331:3,5345:3,5441:2097158,5449:3,5476:3,5550:3,5636:3,5697:3,5712:3,5725:3,6401:3,6539:3,6543:3,6744:4,6798:6,6850:3,7005:3,7199:5,7292:4,7767:4,8069:4,8609:4,8750:4,9128:4,10133:3,10490:3,10593:4,10758:4,10926:3,10940:4,11012:6,11174:3,11188:3,11234:3,11238:3,11381:3,}},},"répertoires":{4:{r:10,w:{236:3,401:3,1637:4,}},5:{r:6,w:{425:6,}},6:{r:9,w:{7725:3,7847:3,7897:3,}},11:{r:1052683,w:{750:4096,753:1048578,762:3,793:3,859:3,}},14:{r:9,w:{36:3,158:3,215:3,}},21:{r:65560,w:{794:3,1837:4,2286:6,10477:65538,10483:3,10514:3,10580:3,}},},"répondre":{0:{r:3,w:{87:3,}},18:{r:3,w:{90:3,}},21:{r:3,w:{87:3,}},},"réponse":{17:{r:3,w:{693:3,}},},"répété":{6:{r:3,w:{9248:3,}},21:{r:3,w:{5764:3,}},},"résultat":{0:{r:4,w:{246:4,}},6:{r:6,w:{9594:6,}},7:{r:10,w:{281:3,463:4,475:3,}},18:{r:4,w:{245:4,}},21:{r:17,w:{246:4,6087:6,6624:3,6840:4,}},},"résultats":{0:{r:4,w:{214:4,}},8:{r:3,w:{137:3,}},11:{r:6,w:{601:3,783:3,}},15:{r:3,w:{84:3,}},18:{r:4,w:{213:4,}},21:{r:21,w:{214:4,1865:4,1868:4,9296:3,10504:3,10868:3,}},},"réussite":{6:{r:3,w:{6161:3,}},},"réécrire":{6:{r:3,w:{844:3,}},21:{r:3,w:{4247:3,}},},"rôle":{5:{r:4,w:{679:4,}},21:{r:4,w:{2515:4,}},},"s":{0:{r:4,w:{252:4,}},2:{r:3,w:{583:3,}},4:{r:6,w:{1173:3,1556:3,}},5:{r:15,w:{137:3,438:3,1210:3,1368:3,1422:3,}},6:{r:6,w:{9219:3,9243:3,}},7:{r:3,w:{277:3,}},8:{r:12,w:{216:3,218:3,328:3,331:3,}},9:{r:3,w:{326:3,}},11:{r:3,w:{984:3,}},15:{r:3,w:{109:3,}},17:{r:7,w:{1438:7,}},18:{r:4,w:{251:4,}},21:{r:2097223,w:{252:4,775:3,823:4,830:4,839:1048579,1025:1048579,1494:3,1752:3,2093:3,2299:3,3054:3,3193:3,3245:3,5736:3,5759:3,6620:3,6781:3,7416:8,9905:3,10704:3,10895:3,}},},"s\u0027abonner":{6:{r:3,w:{8876:3,}},},"s\u0027affiche":{5:{r:3,w:{1288:3,}},6:{r:3,w:{1704:3,}},},"s\u0027afficher":{11:{r:3,w:{401:3,}},},"s\u0027affichera":{6:{r:9,w:{5897:3,6360:3,6711:3,}},},"s\u0027afficheront":{6:{r:3,w:{5326:3,}},},"s\u0027agit":{6:{r:3,w:{422:3,}},7:{r:5,w:{905:5,}},17:{r:3,w:{1277:3,}},21:{r:6,w:{3928:3,6919:3,}},},"s\u0027appuyer":{0:{r:4,w:{172:4,}},18:{r:4,w:{171:4,}},21:{r:4,w:{172:4,}},},"s\u0027assurer":{6:{r:15,w:{2940:3,6158:3,6528:3,7398:3,8642:3,}},7:{r:4,w:{2320:4,}},21:{r:3,w:{5132:3,}},},"s\u0027authentifier":{11:{r:3,w:{694:3,}},},"s\u0027est":{15:{r:3,w:{485:3,}},21:{r:3,w:{11267:3,}},},"s\u0027il":{2:{r:12,w:{462:6,474:6,}},4:{r:4,w:{1388:4,}},21:{r:4,w:{3684:4,}},},"sa":{6:{r:27,w:{444:3,2287:3,4916:3,4946:3,5541:3,5923:3,6379:3,6730:3,9131:3,}},7:{r:4,w:{1513:4,}},13:{r:4,w:{736:4,}},21:{r:10,w:{3870:3,5654:3,8338:4,}},},"safe":{6:{r:12,w:{7920:6,8486:6,}},14:{r:12,w:{238:6,803:6,}},},"safesoftware":{4:{r:4,w:{609:4,}},},"saisi":{6:{r:3,w:{6113:3,}},},"saisie":{0:{r:4,w:{314:4,}},6:{r:21,w:{3315:3,3789:3,4090:3,4330:3,4339:3,4687:3,6182:3,}},7:{r:12,w:{1867:5,2113:3,2346:4,}},17:{r:35,w:{305:3,361:3,513:3,548:3,586:3,691:3,744:3,981:3,1223:5,1303:3,1327:3,}},21:{r:10,w:{314:4,8655:3,8890:3,}},},"saisies":{6:{r:16,w:{887:4,932:4,4614:4,5166:4,}},},"saisir":{4:{r:4,w:{900:4,}},5:{r:6,w:{316:3,1453:3,}},6:{r:31,w:{3654:3,3774:3,4585:4,5318:3,5361:3,5615:3,5713:3,6122:3,8903:3,9349:3,}},7:{r:11,w:{1536:4,2144:3,2388:4,}},13:{r:3,w:{23:3,}},21:{r:34,w:{1317:4,2152:3,3276:3,5865:3,7615:3,8358:5,8921:3,9085:3,9131:4,11510:3,}},},"saisis":{5:{r:3,w:{817:3,}},21:{r:3,w:{2653:3,}},},"saisissant":{5:{r:3,w:{301:3,}},},"saisit":{5:{r:6,w:{641:3,1154:3,}},6:{r:10,w:{7335:4,7446:3,9905:3,}},11:{r:3,w:{295:3,}},21:{r:20,w:{2480:3,2986:3,3741:4,5066:4,5180:3,6324:3,}},},"samedi":{13:{r:3,w:{114:3,}},21:{r:3,w:{11601:3,}},},"sans":{0:{r:4,w:{231:4,}},6:{r:10,w:{191:4,4955:3,7118:3,}},7:{r:6,w:{1047:6,}},11:{r:9,w:{324:3,691:3,1072:3,}},15:{r:3,w:{207:3,}},16:{r:3,w:{24:3,}},17:{r:3,w:{274:3,}},18:{r:4,w:{230:4,}},21:{r:25,w:{231:4,4850:3,7061:6,10468:3,10792:3,10993:3,11292:3,}},},"satellite":{17:{r:4,w:{1774:4,}},},"sauvegarde":{6:{r:3,w:{776:3,}},11:{r:3,w:{812:3,}},15:{r:69690,w:{6:3,17:5,45:65539,49:4096,55:3,72:3,116:3,128:3,151:4,166:4,176:4,194:4,291:7,379:3,418:3,475:3,483:3,}},21:{r:1114183,w:{1807:3,1845:4,1945:3,1958:5,10533:3,10822:1048579,10833:65539,10839:3,10856:3,10902:3,10914:3,10937:4,10952:4,10962:4,10980:4,11077:7,11161:3,11200:3,11257:3,11265:3,}},},"sauvegarde_restauration":{15:{r:16777218,w:{1:16777218,}},},"sauvegarder":{7:{r:4,w:{2304:4,}},},"sauvegardé":{15:{r:3,w:{486:3,}},21:{r:3,w:{11268:3,}},},"savoir":{2:{r:3,w:{579:3,}},3:{r:4,w:{112:4,}},13:{r:3,w:{1071:3,}},},"sb":{17:{r:7,w:{2089:3,2193:4,}},},"sc":{4:{r:3,w:{119:3,}},17:{r:7,w:{2091:3,2209:4,}},},"scale":{17:{r:12,w:{2195:8,2211:4,}},},"scheduler":{4:{r:4,w:{272:4,}},},"schéma":{7:{r:4,w:{121:4,}},21:{r:8,w:{6479:4,7394:4,}},},"schémas":{6:{r:6,w:{5637:3,5643:3,}},},"schéma|nom":{17:{r:3,w:{825:3,}},},"script":{2:{r:3,w:{541:3,}},6:{r:8,w:{169:4,189:4,}},15:{r:6,w:{357:3,397:3,}},21:{r:14,w:{3661:4,3765:4,11139:3,11179:3,}},},"scripts":{2:{r:3,w:{70:3,}},4:{r:3,w:{64:3,}},},"scrute":{6:{r:3,w:{9071:3,}},21:{r:3,w:{5594:3,}},},"se":{0:{r:3,w:{113:3,}},2:{r:9,w:{132:3,637:3,687:3,}},3:{r:9,w:{58:3,103:3,135:3,}},4:{r:16,w:{15:3,869:4,1272:3,1546:3,1674:3,}},5:{r:21,w:{27:3,197:3,1165:3,1262:3,1304:3,1462:3,1565:3,}},6:{r:26,w:{159:4,200:4,360:3,1997:3,2256:3,2394:3,3433:3,9045:3,}},7:{r:30,w:{61:5,292:4,598:4,891:5,1089:4,1632:4,1992:4,}},15:{r:3,w:{476:3,}},16:{r:3,w:{131:3,}},18:{r:3,w:{115:3,}},21:{r:83,w:{113:3,729:3,1286:4,1577:3,1742:3,1905:3,1985:3,2138:3,2997:3,3105:3,3129:3,3285:3,3388:3,5568:3,6414:3,6639:4,6905:3,7105:4,7454:4,7507:4,7902:4,8459:4,8763:4,11258:3,11399:3,}},},"searchtable":{17:{r:3,w:{242:3,}},},"seconde":{9:{r:4,w:{139:4,}},17:{r:3,w:{811:3,}},21:{r:4,w:{9718:4,}},},"secondes":{6:{r:6,w:{9636:6,}},21:{r:6,w:{6129:6,}},},"section":{4:{r:6,w:{1025:3,1068:3,}},5:{r:6,w:{461:3,1644:3,}},6:{r:34,w:{671:3,829:3,943:4,1044:3,7024:3,7033:3,7047:3,7085:3,7091:3,7126:3,7583:3,}},7:{r:43,w:{354:4,370:4,668:4,684:4,1142:4,1212:3,1227:4,1711:4,1727:4,2075:4,2091:4,}},11:{r:27,w:{51:3,68:3,212:3,351:3,370:3,410:3,446:3,466:3,562:3,}},21:{r:113,w:{1391:3,3466:3,4135:3,4232:3,4308:3,4762:3,4808:3,4823:3,4858:3,5322:3,6702:4,6718:4,7219:4,7235:4,7575:4,7591:4,7691:4,7967:4,7983:4,8531:4,8547:4,8848:4,8864:4,8971:4,10060:3,10077:3,10099:3,10230:3,10272:3,10286:3,10304:3,10322:3,10362:3,}},},"sections":{6:{r:9,w:{752:3,6996:3,7074:3,}},21:{r:3,w:{4215:3,}},},"sein":{5:{r:3,w:{561:3,}},21:{r:3,w:{2402:3,}},},"self":{2:{r:6,w:{659:6,}},},"selon":{4:{r:3,w:{942:3,}},5:{r:6,w:{90:3,1306:3,}},6:{r:19,w:{4535:4,6518:3,8454:3,8975:6,9253:3,}},7:{r:4,w:{839:4,}},8:{r:3,w:{573:3,}},9:{r:6,w:{329:3,366:3,}},14:{r:3,w:{772:3,}},17:{r:4,w:{2011:4,}},21:{r:28,w:{1344:3,2048:3,3131:3,5500:6,5769:3,8140:4,9908:3,9945:3,}},},"semaine":{9:{r:7,w:{199:4,339:3,}},13:{r:3,w:{110:3,}},21:{r:10,w:{9778:4,9918:3,11597:3,}},},"sera":{2:{r:12,w:{373:6,460:6,}},3:{r:3,w:{186:3,}},6:{r:82,w:{1062:3,1133:4,2019:3,2142:3,2278:3,2415:3,2525:3,2606:3,2678:3,2752:3,2822:3,2914:3,3037:3,3168:3,3291:3,3454:3,3531:3,3631:3,3756:3,3874:3,3973:3,4067:3,4194:3,4382:3,4649:3,4969:3,5842:3,}},7:{r:3,w:{1042:3,}},21:{r:18,w:{3693:4,3735:4,3781:4,4326:3,7056:3,}},},"serait":{6:{r:5,w:{231:5,}},7:{r:3,w:{2134:3,}},21:{r:3,w:{8911:3,}},},"seront":{4:{r:4,w:{1479:4,}},5:{r:3,w:{210:3,}},6:{r:20,w:{4214:3,4514:3,6199:3,6498:3,6902:4,6923:4,}},7:{r:8,w:{982:4,2291:4,}},21:{r:3,w:{1713:3,}},},"server":{11:{r:4,w:{873:4,}},21:{r:4,w:{10594:4,}},},"servers":{13:{r:6,w:{384:6,}},},"serveur":{1:{r:6,w:{53:6,}},2:{r:4139,w:{214:4098,234:3,252:3,376:6,378:6,448:6,507:4,518:4,606:3,610:3,662:3,}},3:{r:3,w:{140:3,}},4:{r:73773,w:{37:5,178:4098,391:4098,396:3,413:3,416:3,420:3,445:3,536:3,656:3,779:3,981:65538,989:3,1027:4,1037:3,}},5:{r:24,w:{670:4,676:4,681:4,1140:3,1207:3,1240:3,1409:3,}},6:{r:34,w:{307:3,456:3,5197:4,5590:3,6132:3,7698:5,7843:3,8000:3,8619:3,9037:4,}},7:{r:2097197,w:{21:1048579,39:5,68:5,76:5,230:4,852:1048579,873:5,895:5,978:4,1209:3,1223:3,}},8:{r:3,w:{103:3,}},9:{r:3,w:{74:3,}},11:{r:4126,w:{173:3,437:3,439:3,640:4098,646:3,672:3,889:3,903:3,1030:4,1071:3,}},14:{r:9,w:{154:3,318:3,944:3,}},17:{r:3,w:{1163:3,}},21:{r:3145870,w:{368:6,581:3,622:3,767:3,773:3,779:3,781:6,803:3,920:3,927:3,1053:3,1176:3,2506:4,2512:4,2517:4,2972:3,3051:3,3232:3,5560:3,6375:1048579,6394:3,6421:3,6429:3,6588:4,6868:1048579,6888:3,6909:3,6996:3,7131:4,7215:4,7288:4,7331:1048579,7353:3,7435:4,7470:4,9262:3,9653:3,10123:3,10609:3,10623:3,10750:4,10791:3,}},},"serveurs":{11:{r:3,w:{77:3,}},15:{r:6,w:{431:3,435:3,}},21:{r:9,w:{10087:3,11213:3,11217:3,}},},"service":{0:{r:3,w:{130:3,}},1:{r:6,w:{89:6,}},2:{r:12,w:{435:6,445:6,}},4:{r:27,w:{105:3,111:3,153:3,157:3,162:3,381:3,950:3,1013:3,1097:3,}},5:{r:7,w:{158:3,1321:4,}},6:{r:4135,w:{4722:3,5217:4,5223:4,6425:4098,6458:4,6465:3,6491:3,6541:3,6553:4,7426:3,7791:3,7961:3,}},11:{r:6,w:{242:3,494:3,}},12:{r:3,w:{43:3,}},13:{r:9,w:{225:3,279:6,}},14:{r:6,w:{102:3,279:3,}},16:{r:9,w:{40:3,44:3,181:3,}},18:{r:3,w:{133:3,}},21:{r:49,w:{130:3,404:6,954:3,1352:3,2110:3,3146:4,5160:3,8955:4,8996:4,9013:4,10394:3,11308:3,11312:3,11449:3,}},},"services":{0:{r:4,w:{281:4,}},1:{r:6,w:{46:6,}},4:{r:9,w:{139:3,142:3,150:3,}},5:{r:3,w:{34:3,}},6:{r:12,w:{4278:3,6435:3,6515:3,7878:3,}},11:{r:3,w:{341:3,}},13:{r:1048581,w:{217:1048578,275:3,}},14:{r:3,w:{196:3,}},16:{r:285212678,w:{4:268435456,13:16777219,167:3,}},17:{r:6,w:{1380:3,1394:3,}},18:{r:4,w:{280:4,}},21:{r:16777241,w:{281:4,361:6,1992:3,4792:3,10448:3,11281:16777219,11435:3,}},},"ses":{5:{r:9,w:{33:3,171:3,1630:3,}},7:{r:11,w:{974:4,1156:4,2155:3,}},11:{r:3,w:{155:3,}},14:{r:4,w:{504:4,}},21:{r:27,w:{1991:3,2122:3,3452:3,3707:4,4279:4,6992:3,7162:4,10105:3,}},},"set":{15:{r:4,w:{305:4,}},21:{r:4,w:{11091:4,}},},"settings":{6:{r:9,w:{8492:3,8608:3,8659:3,}},14:{r:9,w:{809:3,933:3,985:3,}},},"setup":{2:{r:3,w:{326:3,}},},"seul":{4:{r:3,w:{677:3,}},6:{r:3,w:{1517:3,}},7:{r:8,w:{393:4,1237:4,}},21:{r:11,w:{1074:3,6741:4,7245:4,}},},"seule":{6:{r:3,w:{540:3,}},21:{r:7,w:{4008:3,4572:4,}},},"seules":{6:{r:3,w:{7071:3,}},},"seuls":{6:{r:3,w:{6192:3,}},},"sgbd":{6:{r:3,w:{6134:3,}},21:{r:3,w:{600:3,}},},"shape":{6:{r:16,w:{292:6,7683:10,}},7:{r:44,w:{35:5,111:4,138:3,224:4,933:4,956:4,972:4,1154:4,1370:5,1902:3,2047:4,}},21:{r:35,w:{6390:3,6469:4,6496:3,6582:4,6951:4,6974:3,6990:3,7160:4,8690:3,8819:4,}},},"shape2generic":{7:{r:4,w:{1623:4,}},21:{r:4,w:{8446:4,}},},"shp":{7:{r:14,w:{1032:6,1248:8,}},21:{r:11,w:{7031:8,7049:3,}},},"si":{2:{r:30,w:{300:3,367:12,478:6,580:3,635:3,651:3,}},4:{r:12,w:{1424:4,1457:4,1494:4,}},5:{r:7,w:{199:3,754:4,}},6:{r:108,w:{204:5,819:4,960:4,1489:3,2034:3,2165:3,2301:3,2431:3,2546:3,2697:3,2768:3,2838:3,2952:3,3051:3,3182:3,3331:3,3477:3,3546:3,3679:3,3800:3,3895:3,3994:3,4107:3,4210:3,4401:3,4459:4,4481:4,5545:3,5927:3,6383:3,6734:3,6975:3,8961:3,9079:3,}},7:{r:4,w:{233:4,}},8:{r:6,w:{178:3,359:3,}},11:{r:6,w:{685:3,695:3,}},13:{r:11,w:{968:3,990:3,1050:5,}},15:{r:8,w:{268:4,297:4,}},17:{r:12,w:{1586:8,1596:4,}},21:{r:47,w:{574:3,1628:3,1665:3,1694:3,2590:4,3039:3,3738:4,3750:4,4702:3,5486:3,5602:3,9337:3,11054:4,11083:4,}},},"siege":{5:{r:4,w:{662:4,}},21:{r:4,w:{2498:4,}},},"signe":{6:{r:4102,w:{6835:4096,6839:3,6863:3,}},},"signer":{2:{r:3,w:{660:3,}},},"signes":{6:{r:3,w:{6885:3,}},},"signifie":{6:{r:3,w:{1571:3,}},13:{r:15,w:{116:6,128:3,137:3,146:3,}},21:{r:15,w:{11603:6,11615:3,11624:3,11633:3,}},},"simple":{2:{r:3,w:{56:3,}},4:{r:4,w:{919:4,}},6:{r:65548,w:{4324:3,9497:65539,9921:3,9934:3,}},7:{r:11,w:{29:5,132:3,2131:3,}},11:{r:3,w:{262:3,}},16:{r:3,w:{35:3,}},21:{r:1114142,w:{547:3,5992:65539,6340:3,6353:3,6367:1048579,6384:3,6490:3,8908:3,10414:3,11303:3,}},},"sinon":{13:{r:7,w:{989:3,1062:4,}},21:{r:4,w:{7447:4,}},},"site":{2:{r:3,w:{18:3,}},4:{r:12,w:{1199:3,1259:3,1613:3,1659:3,}},6:{r:10,w:{4733:3,8595:4,9378:3,}},8:{r:3,w:{479:3,}},11:{r:5,w:{968:5,}},14:{r:4,w:{920:4,}},15:{r:5,w:{61:5,}},16:{r:3,w:{100:3,}},21:{r:34,w:{511:3,1520:3,1564:3,1813:3,1890:3,5310:3,5891:3,10686:5,10845:5,11368:3,}},},"situé":{5:{r:4,w:{899:4,}},6:{r:3,w:{7913:3,}},14:{r:3,w:{231:3,}},21:{r:8,w:{2735:4,7467:4,}},},"située":{21:{r:3,w:{7350:3,}},},"situés":{21:{r:1048579,w:{7328:1048579,}},},"size":{17:{r:12,w:{522:3,523:3,557:3,558:3,}},},"slider":{17:{r:3,w:{2411:3,}},},"sliderfield":{17:{r:16,w:{2404:4,2419:3,2428:3,2493:3,2504:3,}},},"smtp":{4:{r:65553,w:{38:5,982:65538,990:3,1028:4,1038:3,}},11:{r:4113,w:{641:4098,647:3,673:3,681:3,703:3,709:3,}},21:{r:3,w:{10089:3,}},},"sname":{17:{r:4,w:{1542:4,}},},"socle":{5:{r:3,w:{1688:3,}},},"software":{6:{r:9,w:{7921:3,8484:3,8487:3,}},14:{r:9,w:{239:3,801:3,804:3,}},},"soin":{6:{r:3,w:{248:3,}},21:{r:3,w:{3832:3,}},},"soit":{4:{r:10,w:{163:3,171:3,596:4,}},5:{r:12,w:{1181:3,1191:3,1476:3,1486:3,}},6:{r:15,w:{7168:4,7178:4,8652:3,9857:4,}},7:{r:3,w:{282:3,}},14:{r:3,w:{978:3,}},21:{r:24,w:{788:3,3013:3,3023:3,3299:3,3309:3,4899:3,4908:3,6625:3,}},},"solution":{0:{r:4,w:{292:4,}},18:{r:4,w:{291:4,}},21:{r:4,w:{292:4,}},},"son":{1:{r:6,w:{174:6,}},4:{r:3,w:{1198:3,}},5:{r:9,w:{169:3,1155:3,1371:3,}},6:{r:71,w:{192:4,2015:3,2274:3,4190:3,4490:4,4851:3,4913:3,4965:3,5014:3,5082:3,5813:3,6287:3,6544:3,6638:3,7123:3,7772:3,8041:3,8276:3,8593:3,8884:3,9178:3,9441:3,9481:3,}},7:{r:11,w:{2151:3,2277:4,2284:4,}},11:{r:6,w:{255:3,297:3,}},13:{r:8,w:{734:4,739:4,}},14:{r:12,w:{83:3,359:3,590:3,918:3,}},21:{r:46,w:{489:6,1519:3,2120:3,2987:3,3196:3,3770:4,4728:3,4855:3,5695:3,5947:3,5974:3,8928:3,10267:3,10407:3,}},},"sont":{0:{r:4,w:{217:4,}},2:{r:6,w:{37:3,357:3,}},3:{r:6,w:{155:3,192:3,}},4:{r:3,w:{1588:3,}},5:{r:12,w:{41:3,376:3,1540:3,1762:3,}},6:{r:114,w:{143:3,310:3,471:6,631:6,747:3,762:3,781:3,890:4,927:4,951:4,963:4,995:4,1443:3,1503:3,1534:3,1725:3,1787:3,1821:3,1957:3,3399:3,4703:3,6888:3,7643:3,7701:5,7740:4,7754:4,7893:3,7904:3,8266:3,8394:3,8403:3,8612:3,8751:3,}},7:{r:17,w:{150:3,1189:4,1554:3,1930:3,2104:4,}},8:{r:6,w:{518:3,527:3,}},9:{r:9,w:{259:3,267:3,276:3,}},11:{r:9,w:{632:3,648:3,665:3,}},13:{r:35,w:{623:3,741:4,896:3,924:3,929:3,946:4,963:4,986:3,1047:4,1067:4,}},14:{r:29,w:{51:4,65:4,211:3,222:3,580:3,708:3,717:3,937:3,1081:3,}},15:{r:4,w:{279:4,}},17:{r:3,w:{1381:3,}},18:{r:4,w:{216:4,}},21:{r:81,w:{217:4,528:3,799:3,1784:3,1809:3,1999:3,2237:3,3363:3,3667:3,4098:3,4210:3,4224:3,4467:3,4804:3,6508:3,7000:3,7195:5,8376:4,8718:3,8877:4,9838:3,9846:3,9855:3,10176:3,11065:4,}},},"sort_order":{6:{r:3,w:{5983:3,}},},"sorte":{5:{r:6,w:{1352:3,1609:3,}},6:{r:19,w:{4912:3,6156:3,7767:3,8037:3,8337:3,9850:4,}},11:{r:6,w:{802:3,992:3,}},13:{r:4,w:{765:4,}},14:{r:9,w:{78:3,355:3,651:3,}},21:{r:15,w:{3177:3,3431:3,10150:3,10523:3,10712:3,}},},"sortie":{6:{r:8208,w:{3250:4098,3264:3,3347:3,3588:4098,3605:3,3698:3,}},7:{r:1048595,w:{119:4,1340:1048579,1425:4,1610:4,1984:4,}},21:{r:1048595,w:{6477:4,7392:4,8150:1048579,8230:4,8433:4,}},},"souhaitant":{0:{r:4,w:{297:4,}},18:{r:4,w:{296:4,}},21:{r:4,w:{297:4,}},},"souhaite":{6:{r:7,w:{564:3,7347:4,}},11:{r:3,w:{308:3,}},21:{r:7,w:{4037:3,5078:4,}},},"souhaitez":{4:{r:4,w:{1509:4,}},6:{r:9,w:{8143:3,8248:3,8379:3,}},7:{r:4,w:{2230:4,}},14:{r:9,w:{459:3,562:3,693:3,}},},"souhaitons":{7:{r:3,w:{189:3,}},21:{r:3,w:{6547:3,}},},"souhaité":{6:{r:3,w:{7163:3,}},21:{r:3,w:{4895:3,}},},"souhaitée":{0:{r:4,w:{260:4,}},18:{r:4,w:{259:4,}},21:{r:4,w:{260:4,}},},"soumettent":{0:{r:4,w:{202:4,}},18:{r:4,w:{201:4,}},21:{r:4,w:{202:4,}},},"soumis":{1:{r:6,w:{141:6,}},21:{r:6,w:{456:6,}},},"source":{6:{r:45221,w:{786:3,899:4,914:4,1024:4,2004:4,2120:4,2263:5,2401:5,3408:3,3440:4,5234:3,5260:3,5271:3,5283:3,5290:3,5307:4099,5338:4098,5344:4,5347:4,5358:3,5427:3,5437:4099,5447:3,5484:3,5492:3,5499:4,5560:4098,5573:3,5596:4098,5602:4,5605:4,5622:3,5753:3,5763:4099,5805:4,5822:3,6067:4098,6092:4098,6098:4,6101:4,6119:3,6234:3,6244:4098,6296:3,6420:4098,6450:4,6453:4,6585:3,6595:4098,6647:3,7055:3,}},7:{r:62,w:{53:5,82:5,113:4,182:3,383:4,633:4,864:5,946:4,951:4,1006:4,1030:3,1367:5,1433:4,1675:4,1782:4,}},8:{r:6,w:{554:3,582:3,}},13:{r:3,w:{993:3,}},17:{r:4,w:{1707:4,}},21:{r:81,w:{3634:3,4295:4,6406:3,6435:3,6471:4,6540:3,6731:4,6879:3,6964:3,6969:3,7024:4,7047:3,7091:4,7343:3,7386:4,7445:4,7453:4,7487:4,7621:3,7658:3,7760:4,8256:4,8606:4,}},},"source-fixe":{21:{r:4,w:{7091:4,}},},"sourcedataset_shape":{7:{r:7,w:{152:3,215:4,}},21:{r:7,w:{6510:3,6573:4,}},},"sources":{6:{r:8230,w:{283:3,5112:4096,5118:4098,5125:3,5137:3,5156:3,5413:3,5510:3,5739:3,5886:3,6220:3,6344:3,6571:3,6695:3,}},7:{r:1048598,w:{197:3,208:3,548:4,847:1048579,889:5,1060:4,}},11:{r:4,w:{1026:4,}},21:{r:2097179,w:{6555:3,6566:3,6863:1048579,6903:3,7074:4,7322:1048579,7848:4,10746:4,}},},"souris":{6:{r:8,w:{4527:4,4534:4,}},},"sous":{0:{r:3,w:{127:3,}},5:{r:3,w:{1643:3,}},6:{r:51,w:{1317:3,1621:3,2587:3,2661:3,2892:3,2927:3,3017:3,3148:3,3267:3,3388:3,3511:3,3608:3,3732:3,3852:3,3951:3,4045:3,5330:3,}},7:{r:10,w:{245:4,1914:3,2119:3,}},17:{r:6,w:{2046:3,2458:3,}},18:{r:3,w:{130:3,}},21:{r:26,w:{127:3,556:3,3465:3,4384:3,4673:4,4690:4,8702:3,8896:3,}},},"sous-répertoire":{6:{r:3,w:{1317:3,}},},"sous-section":{5:{r:3,w:{1643:3,}},},"sp":{4:{r:3,w:{957:3,}},21:{r:3,w:{1359:3,}},},"sp2":{21:{r:3,w:{969:3,}},},"spathfile":{17:{r:3,w:{1179:3,}},},"sphéirque":{17:{r:4,w:{1645:4,}},},"sprojection":{17:{r:4,w:{1580:4,}},},"spécialisant":{4:{r:3,w:{710:3,}},21:{r:3,w:{1107:3,}},},"spécialisation":{21:{r:4,w:{1266:4,}},},"spécifiant":{6:{r:9,w:{6807:3,9022:3,9109:3,}},21:{r:6,w:{5546:3,5632:3,}},},"spécification":{6:{r:3,w:{8310:3,}},14:{r:3,w:{624:3,}},},"spécifie":{6:{r:9,w:{5989:3,6030:3,7205:3,}},21:{r:3,w:{4935:3,}},},"spécifier":{7:{r:8,w:{507:5,1461:3,}},21:{r:6,w:{7803:3,8286:3,}},},"spécifique":{2:{r:6,w:{118:3,250:3,}},4:{r:10,w:{669:3,837:4,1722:3,}},5:{r:3,w:{286:3,}},6:{r:7,w:{4094:3,8074:4,}},14:{r:4,w:{392:4,}},21:{r:7,w:{1066:3,1230:4,}},},"spécifiquement":{4:{r:4,w:{839:4,}},5:{r:3,w:{377:3,}},21:{r:7,w:{1232:4,2238:3,}},},"spécifiques":{3:{r:3,w:{50:3,}},5:{r:6,w:{227:3,1768:3,}},6:{r:3,w:{4420:3,}},8:{r:3,w:{599:3,}},11:{r:3,w:{569:3,}},21:{r:3,w:{2187:3,}},},"spécifié":{6:{r:3,w:{8651:3,}},14:{r:3,w:{972:3,}},},"spécifiée":{7:{r:4,w:{842:4,}},9:{r:3,w:{80:3,}},21:{r:7,w:{8143:4,9659:3,}},},"spécifiées":{4:{r:6,w:{76:3,92:3,}},},"sql":{15:{r:4,w:{169:4,}},21:{r:4,w:{10955:4,}},},"ssl":{2:{r:3,w:{259:3,}},},"ssleay32":{15:{r:4,w:{261:4,}},21:{r:4,w:{11047:4,}},},"stable":{17:{r:3,w:{246:3,}},},"stade":{3:{r:3,w:{127:3,}},4:{r:6,w:{995:3,1171:3,}},21:{r:6,w:{1492:3,7612:3,}},},"start":{4:{r:3,w:{120:3,}},},"statique":{7:{r:1048598,w:{18:1048579,55:5,122:4,866:5,1372:5,}},21:{r:1048593,w:{6372:1048579,6408:3,6480:4,6881:3,7395:4,}},},"statiques":{7:{r:1048579,w:{848:1048579,}},21:{r:1048579,w:{6864:1048579,}},},"statistics":{6:{r:3,w:{8681:3,}},13:{r:6,w:{390:6,}},14:{r:3,w:{1007:3,}},},"statistique":{9:{r:3,w:{362:3,}},21:{r:3,w:{9941:3,}},},"statistiques":{0:{r:4,w:{199:4,}},5:{r:4,w:{1829:4,}},9:{r:285212684,w:{1:268435456,3:16777219,7:3,47:3,195:3,}},18:{r:4,w:{198:4,}},21:{r:16781331,w:{199:4,2192:3,9580:4096,9582:16777219,9586:3,9626:3,9774:3,}},},"statut":{4:{r:3,w:{1335:3,}},13:{r:3,w:{792:3,}},},"stitle":{17:{r:4,w:{1536:4,}},},"stockage":{1:{r:6,w:{75:6,}},21:{r:6,w:{390:6,}},},"stockant":{6:{r:7,w:{8088:4,8468:3,}},14:{r:7,w:{404:4,785:3,}},},"stocke":{6:{r:9,w:{1321:3,1335:3,7717:3,}},14:{r:3,w:{28:3,}},21:{r:6,w:{4388:3,4397:3,}},},"stockent":{6:{r:3,w:{7868:3,}},11:{r:3,w:{773:3,}},14:{r:3,w:{186:3,}},21:{r:3,w:{10494:3,}},},"stocker":{2:{r:3,w:{280:3,}},},"stocké":{6:{r:3,w:{1306:3,}},21:{r:3,w:{4373:3,}},},"stockées":{6:{r:12,w:{5367:6,7894:3,7906:3,}},7:{r:4,w:{983:4,}},14:{r:6,w:{212:3,224:3,}},21:{r:3,w:{7001:3,}},},"stockés":{4:{r:7,w:{1231:3,1634:4,}},6:{r:8,w:{7741:4,7755:4,}},11:{r:3,w:{31:3,}},14:{r:8,w:{52:4,66:4,}},21:{r:10,w:{1552:3,1834:4,10036:3,}},},"stratégie":{4:{r:11,w:{704:3,818:4,1739:4,}},6:{r:6,w:{358:3,9040:3,}},11:{r:4099,w:{195:4099,}},21:{r:14,w:{1101:3,1211:4,1264:4,5563:3,}},},"streets":{17:{r:4,w:{1768:4,}},},"structure":{17:{r:65539,w:{18:65539,}},},"studio":{6:{r:73780,w:{1039:65539,1041:4096,1075:4096,1077:3,1100:3,1107:3,1369:4,1385:4,1402:4,1658:3,1720:3,1730:3,1797:3,5433:3,5479:4,5759:3,6240:3,6591:3,}},},"style":{6:{r:7,w:{4990:4,4996:3,}},},"subform":{6:{r:7,w:{1376:4,1427:3,}},13:{r:4,w:{959:4,}},17:{r:3,w:{73:3,}},21:{r:15,w:{4430:4,4463:3,4555:4,4676:4,}},},"subformend":{17:{r:7,w:{1291:4,1312:3,}},},"submit":{17:{r:14,w:{927:5,935:3,941:6,}},},"submitfield":{17:{r:10,w:{929:4,939:3,943:3,}},},"subscriptions":{13:{r:6,w:{396:6,}},},"suffit":{5:{r:6,w:{1330:3,1522:3,}},17:{r:4,w:{2122:4,}},21:{r:9,w:{3083:3,3155:3,3345:3,}},},"suffixant":{6:{r:3,w:{9164:3,}},21:{r:3,w:{5681:3,}},},"suffixé":{4:{r:4,w:{1525:4,}},6:{r:5,w:{218:5,}},},"suite":{2:{r:3,w:{44:3,}},8:{r:3,w:{546:3,}},21:{r:3,w:{535:3,}},},"suivant":{5:{r:9,w:{136:3,437:3,632:3,}},21:{r:9,w:{2092:3,2298:3,2476:3,}},},"suivante":{4:{r:3,w:{132:3,}},5:{r:6,w:{913:3,1006:3,}},15:{r:3,w:{149:3,}},21:{r:17,w:{2749:3,2842:3,8238:4,8992:4,10935:3,}},},"suivantes":{2:{r:3,w:{501:3,}},4:{r:7,w:{311:4,1627:3,}},5:{r:6,w:{644:3,977:3,}},15:{r:4,w:{310:4,}},21:{r:16,w:{817:3,1827:3,2483:3,2813:3,11096:4,}},},"suivants":{6:{r:3,w:{7848:3,}},14:{r:3,w:{159:3,}},15:{r:3,w:{225:3,}},21:{r:3,w:{11011:3,}},},"suivi":{8:{r:3,w:{12:3,}},21:{r:3,w:{9168:3,}},},"super":{2:{r:12,w:{415:6,428:6,}},},"supervise":{5:{r:4,w:{1833:4,}},},"supervision":{0:{r:7,w:{53:3,194:4,}},4:{r:3,w:{1569:3,}},5:{r:4,w:{1831:4,}},8:{r:288362517,w:{1:268435456,3:16777219,5:4096,10:3,70:3,86:1048579,372:1048579,415:1048579,532:3,}},18:{r:7,w:{56:3,193:4,}},21:{r:19922975,w:{53:3,194:4,1765:3,2191:3,9161:16777219,9166:3,9226:3,9245:1048579,9478:1048579,9524:1048579,}},},"supervisionstatues":{13:{r:6,w:{402:6,}},},"supplémentaire":{7:{r:5,w:{505:5,}},21:{r:1048582,w:{7792:1048579,7801:3,}},},"supplémentaires":{1:{r:12,w:{125:6,139:6,}},4:{r:3,w:{696:3,}},7:{r:1048579,w:{489:1048579,}},21:{r:15,w:{440:6,454:6,1093:3,}},},"support":{6:{r:3,w:{4337:3,}},12:{r:285216783,w:{1:268435456,4:4096,6:16777219,25:4,39:5,54:3,}},21:{r:16777226,w:{683:3,11454:16777219,11469:4,}},},"supporte":{7:{r:3,w:{1478:3,}},17:{r:4,w:{1590:4,}},21:{r:3,w:{8303:3,}},},"supportés":{7:{r:3,w:{1486:3,}},21:{r:3,w:{8311:3,}},},"suppression":{2:{r:3,w:{78:3,}},5:{r:3,w:{126:3,}},6:{r:17,w:{3107:3,3239:3,4607:4,4609:4,5135:3,}},8:{r:69654,w:{161:3,220:65538,223:4096,234:3,255:3,258:4,262:4,284:3,}},11:{r:1048585,w:{926:1048579,994:3,1065:3,}},21:{r:1048614,w:{2083:3,3871:3,9320:3,9395:3,9404:3,9425:3,9428:4,9432:4,9449:3,10644:1048579,10714:3,10785:3,}},},"supprime":{21:{r:4,w:{4636:4,}},},"supprimer":{5:{r:6,w:{406:3,621:3,}},6:{r:17,w:{1195:4,5269:3,8221:4,8321:3,9014:3,}},7:{r:16,w:{210:4,1072:4,1391:4,1507:4,}},8:{r:27,w:{47:3,298:6,303:3,404:3,411:3,447:3,459:3,465:3,}},10:{r:3,w:{44:3,}},11:{r:9,w:{936:3,1049:3,1061:3,}},14:{r:3,w:{635:3,}},17:{r:8,w:{2271:4,2280:4,}},21:{r:72,w:{2267:3,2466:3,4632:4,5539:3,6568:4,7701:4,8198:4,8332:4,8981:4,9203:3,9463:6,9468:3,9510:3,9517:3,9556:3,9568:3,9574:3,10002:3,10654:3,10769:3,10781:3,}},},"supprimez":{14:{r:4,w:{537:4,}},},"supprimé":{8:{r:3,w:{153:3,}},21:{r:3,w:{9312:3,}},},"supprimée":{8:{r:3,w:{291:3,}},21:{r:3,w:{9456:3,}},},"supprimées":{8:{r:3,w:{245:3,}},21:{r:3,w:{9415:3,}},},"supprimés":{11:{r:3,w:{1006:3,}},21:{r:3,w:{10726:3,}},},"supérieure":{1:{r:6,w:{155:6,}},6:{r:4,w:{6915:4,}},21:{r:6,w:{470:6,}},},"sur":{0:{r:14,w:{24:3,77:3,165:4,173:4,}},1:{r:6,w:{131:6,}},2:{r:15,w:{16:3,55:3,283:3,294:3,305:3,}},3:{r:4,w:{114:4,}},4:{r:38,w:{440:3,540:3,823:4,921:4,967:3,1156:3,1197:3,1257:3,1302:3,1535:3,1611:3,1657:3,}},5:{r:30,w:{130:3,243:3,314:3,328:3,432:3,477:3,838:3,1250:3,1337:3,1534:3,}},6:{r:162,w:{305:3,325:3,453:3,546:3,554:3,571:3,699:3,1630:3,1715:3,1746:3,2069:3,2213:3,2351:3,2481:3,4087:3,4516:3,4615:4,4731:3,5194:4,5241:3,5420:3,5505:3,5587:3,5634:3,5648:3,5746:3,5850:3,5881:3,5984:3,6061:3,6227:3,6318:3,6339:3,6578:3,6669:3,6690:3,6819:3,6856:3,6866:3,7122:3,7366:4,7424:3,7696:5,7841:3,7998:3,8549:3,8592:3,9035:4,9127:3,9318:3,9367:3,9924:3,}},7:{r:2097364,w:{19:1048579,37:5,74:5,101:4,125:4,228:4,302:4,315:4,332:4,349:4,363:4,424:4,437:4,608:4,648:4,664:4,677:4,725:4,772:4,850:1048579,871:5,893:5,976:4,1071:4,1099:4,1124:4,1173:4,1183:4,1207:3,1265:4,1286:4,1414:4,1605:4,1642:4,1690:4,1707:4,1720:4,1757:4,1788:4,1869:5,2002:4,2032:4,2061:4,2071:4,2084:4,2158:3,2206:3,2301:4,2310:4,2352:4,2367:4,2390:4,2399:4,}},8:{r:12,w:{334:3,410:3,462:3,477:3,}},9:{r:9,w:{72:3,317:3,351:3,}},11:{r:19,w:{171:3,553:3,794:3,965:3,1028:4,1069:3,}},12:{r:3,w:{33:3,}},13:{r:3,w:{1073:3,}},14:{r:12,w:{152:3,316:3,870:3,917:3,}},15:{r:3,w:{58:3,}},16:{r:3,w:{98:3,}},17:{r:10,w:{255:3,1161:3,1216:4,}},18:{r:14,w:{27:3,80:3,164:4,172:4,}},21:{r:3146167,w:{24:3,77:3,165:4,173:4,446:6,509:3,546:3,579:3,619:3,624:3,663:3,669:3,977:3,1216:4,1365:3,1469:3,1518:3,1562:3,1602:3,1731:3,1811:3,1888:3,2087:3,2150:3,2164:3,2293:3,2321:3,2674:3,3093:3,3162:3,3357:3,3813:3,4014:3,4027:3,4044:3,4163:3,4854:3,5097:4,5158:3,5305:3,5558:3,5650:3,5834:3,5880:3,6343:3,6373:1048579,6392:3,6427:3,6459:4,6483:4,6586:4,6649:4,6678:4,6687:4,6697:4,6711:4,6764:4,6803:4,6866:1048579,6886:3,6907:3,6994:3,7115:4,7148:4,7179:4,7189:4,7213:4,7228:4,7275:4,7295:4,7329:1048579,7351:3,7374:4,7398:4,7433:4,7456:4,7468:4,7517:4,7551:4,7560:4,7570:4,7584:4,7668:3,7747:4,7770:4,7912:4,7943:4,7952:4,7962:4,7976:4,8028:4,8073:4,8221:4,8428:4,8469:4,8507:4,8516:4,8526:4,8540:4,8581:4,8612:4,8773:4,8804:4,8833:4,8843:4,8857:4,8932:4,8945:4,9091:3,9109:4,9133:4,9142:4,9388:3,9516:3,9571:3,9651:3,9896:3,9930:3,10121:3,10515:3,10683:3,10748:4,10789:3,10842:3,11366:3,}},},"surveillance":{5:{r:3,w:{427:3,}},6:{r:1118229,w:{332:4,8824:4096,8826:1048579,8914:65538,8924:3,8927:3,8968:3,9066:3,}},7:{r:20,w:{338:4,653:4,1129:4,1696:4,2038:4,}},8:{r:9,w:{425:3,437:3,450:3,}},21:{r:1048631,w:{2288:3,3818:4,5443:1048579,5451:3,5453:3,5493:3,5589:3,6684:4,7154:4,7557:4,7949:4,8513:4,8810:4,9534:3,9546:3,9559:3,}},},"surveillances":{8:{r:1048585,w:{21:3,84:3,417:1048579,}},21:{r:1048585,w:{9177:3,9240:3,9526:1048579,}},},"surveiller":{6:{r:6,w:{9028:3,9115:3,}},21:{r:6,w:{5552:3,5638:3,}},},"surveys":{13:{r:6,w:{408:6,}},},"surveytype":{13:{r:6,w:{414:6,}},},"switcher":{17:{r:4,w:{2150:4,}},},"syntaxe":{6:{r:8,w:{9354:5,9373:3,}},13:{r:1048585,w:{9:1048579,27:3,158:3,}},21:{r:1048596,w:{1013:3,5870:5,5886:3,11496:1048579,11514:3,11645:3,}},},"synthèse":{9:{r:3,w:{42:3,}},21:{r:3,w:{9621:3,}},},"synthétique":{8:{r:3,w:{56:3,}},9:{r:3,w:{17:3,}},21:{r:6,w:{9212:3,9596:3,}},},"système":{1:{r:6,w:{64:6,}},5:{r:4,w:{1734:4,}},6:{r:4128,w:{460:3,3365:4098,3381:3,3418:3,7795:3,7953:3,7976:3,8056:3,8152:3,8434:3,8616:3,}},7:{r:4,w:{1447:4,}},14:{r:21,w:{106:3,271:3,294:3,374:3,468:3,752:3,941:3,}},17:{r:8,w:{1615:4,2167:4,}},21:{r:10,w:{379:6,8272:4,}},},"systèmes":{4:{r:3,w:{58:3,}},17:{r:4,w:{2348:4,}},},"systématiques":{6:{r:3,w:{7610:3,}},21:{r:3,w:{5349:3,}},},"sécurisé":{2:{r:6,w:{224:3,666:3,}},},"sécurité":{2:{r:3,w:{681:3,}},4:{r:4,w:{1741:4,}},5:{r:6,w:{521:3,1645:3,}},11:{r:4112,w:{89:4,197:4099,209:3,349:3,352:3,}},21:{r:15,w:{2362:3,3467:3,7628:3,10323:3,10359:3,}},},"sélecteur":{17:{r:5,w:{2474:5,}},},"sélection":{5:{r:3,w:{1360:3,}},6:{r:15,w:{5473:4,5496:4,5802:4,8382:3,}},14:{r:3,w:{696:3,}},17:{r:6,w:{2494:6,}},21:{r:1048589,w:{3185:3,7319:1048579,7340:3,7464:4,}},},"sélectionnant":{6:{r:4,w:{1151:4,}},},"sélectionne":{4:{r:3,w:{777:3,}},5:{r:6,w:{1223:3,1505:3,}},6:{r:15,w:{559:3,1372:4,1388:4,1405:4,}},21:{r:9,w:{3066:3,3328:3,4032:3,}},},"sélectionner":{4:{r:3,w:{1305:3,}},5:{r:6,w:{1243:3,1525:3,}},6:{r:60,w:{4751:3,5457:3,5481:3,5653:3,5778:3,5816:3,5859:3,6259:3,6290:3,6327:3,6471:3,6610:3,6641:3,6678:3,7058:3,7065:3,8137:3,8240:3,8357:3,8374:3,}},7:{r:27,w:{203:3,339:4,654:4,1130:4,1697:4,2220:4,2243:4,}},17:{r:9,w:{1238:3,2379:3,2413:3,}},21:{r:26,w:{1605:3,3086:3,3348:3,6561:3,7656:3,7673:3,7757:4,8950:4,}},},"sélectionnez":{14:{r:12,w:{453:3,554:3,671:3,688:3,}},},"sélectionné":{6:{r:9,w:{6463:3,6965:3,6980:3,}},8:{r:9,w:{217:3,330:3,453:3,}},21:{r:6,w:{9373:3,9562:3,}},},"sélectionnée":{6:{r:10,w:{4624:4,6999:3,7078:3,}},21:{r:3,w:{3047:3,}},},"sélectionnées":{6:{r:6,w:{6793:3,8265:3,}},14:{r:3,w:{579:3,}},},"sélectionnés":{8:{r:3,w:{308:3,}},21:{r:3,w:{9473:3,}},},"séparant":{17:{r:8,w:{1731:4,1798:4,}},},"séparation":{6:{r:4111,w:{1904:10,4884:4098,4893:3,}},13:{r:7,w:{581:7,}},},"séparer":{6:{r:4,w:{9892:4,}},},"séparés":{6:{r:6,w:{5370:3,5999:3,}},17:{r:3,w:{842:3,}},},"séquence":{7:{r:9,w:{819:3,1333:3,1835:3,}},16:{r:3,w:{123:3,}},21:{r:6,w:{8120:3,11391:3,}},},"table":{5:{r:3,w:{245:3,}},6:{r:4135,w:{5183:4,5188:4,5208:4,5567:4098,5581:3,5612:4,5672:3,6083:3,6877:3,6881:3,7014:3,7032:3,}},17:{r:12,w:{812:3,829:3,834:3,840:3,}},},"tableau":{13:{r:3,w:{263:3,}},17:{r:51,w:{123:3,611:4,619:3,886:6,894:3,1078:4,1493:3,1498:3,1503:3,1508:3,2112:4,2129:4,2326:4,2340:4,}},},"tableaux":{9:{r:6,w:{40:3,98:3,}},21:{r:6,w:{9619:3,9677:3,}},},"tables":{6:{r:9,w:{5651:3,6140:3,6149:3,}},},"table|nom":{17:{r:4,w:{1199:4,}},},"tabs":{13:{r:6,w:{510:6,}},},"tabulaire":{9:{r:3,w:{52:3,}},21:{r:3,w:{9631:3,}},},"tag":{4:{r:4096,w:{799:4096,}},},"tags":{13:{r:6,w:{420:6,}},},"taille":{9:{r:3,w:{293:3,}},11:{r:6,w:{104:3,385:3,}},17:{r:36,w:{329:3,441:4,535:3,571:4,610:4,1077:4,1209:4,1268:4,1352:3,2436:3,}},21:{r:6,w:{9872:3,10183:3,}},},"taillles":{11:{r:3,w:{166:3,}},21:{r:3,w:{10116:3,}},},"tant":{6:{r:3,w:{4159:3,}},},"technique":{12:{r:285212678,w:{2:268435456,7:16777219,55:3,}},21:{r:16777219,w:{11455:16777219,}},},"tel":{5:{r:3,w:{264:3,}},6:{r:52,w:{1060:3,1131:4,1755:3,2017:3,2140:3,2276:3,2604:3,3289:3,3529:3,3629:3,3754:3,3872:3,3971:3,4065:3,4192:3,4967:3,8052:3,}},7:{r:4,w:{1008:4,}},11:{r:3,w:{305:3,}},14:{r:3,w:{370:3,}},21:{r:11,w:{4324:3,4653:4,7026:4,}},},"telle":{6:{r:13,w:{5895:3,6358:3,6709:3,7181:4,}},21:{r:3,w:{4911:3,}},},"telles":{6:{r:3,w:{6804:3,}},},"tels":{6:{r:3,w:{8620:3,}},7:{r:3,w:{1551:3,}},11:{r:3,w:{627:3,}},14:{r:3,w:{945:3,}},21:{r:14,w:{4506:4,4773:3,8373:4,10171:3,}},},"temporaire":{7:{r:4,w:{1411:4,}},11:{r:3,w:{187:3,}},21:{r:7,w:{8218:4,10134:3,}},},"temporaires":{4:{r:11,w:{1608:3,1633:4,1638:4,}},11:{r:1052689,w:{922:4096,929:1048579,940:3,998:3,1010:4,1017:4,}},21:{r:1048604,w:{1805:3,1833:4,1838:4,10647:1048579,10658:3,10718:3,10730:4,10737:4,}},},"temps":{6:{r:9,w:{522:3,8106:3,9252:3,}},7:{r:4,w:{1496:4,}},9:{r:17,w:{27:3,107:4,125:3,131:3,147:4,}},11:{r:3,w:{745:3,}},14:{r:3,w:{422:3,}},16:{r:7,w:{135:3,143:4,}},21:{r:34,w:{3990:3,5768:3,8321:4,9606:3,9686:4,9704:3,9710:3,9726:4,11403:3,11411:4,}},},"terme":{21:{r:3,w:{9800:3,}},},"termes":{9:{r:3,w:{221:3,}},},"terminé":{5:{r:6,w:{340:3,1259:3,}},21:{r:6,w:{2176:3,3102:3,}},},"test":{2:{r:65538,w:{588:65538,}},3:{r:1048578,w:{118:1048578,}},4:{r:4106,w:{123:4098,201:4,579:4,}},6:{r:4104,w:{5663:3,8586:4098,9321:3,}},14:{r:4098,w:{911:4098,}},21:{r:1048588,w:{981:3,1017:3,1475:1048579,5837:3,}},},"tester":{6:{r:10,w:{5666:3,8095:4,9307:3,}},7:{r:3,w:{262:3,}},21:{r:6,w:{5823:3,6605:3,}},},"tests":{4:{r:65538,w:{1163:65538,}},},"texte":{4:{r:4,w:{301:4,}},5:{r:4,w:{894:4,}},6:{r:41116,w:{1916:10,1922:10,1929:10,1934:10,2872:4098,2899:3,2982:3,3274:3,3353:3,3592:4098,3615:3,3703:3,3714:4098,3718:4098,3729:3,3739:3,3817:3,3823:3,3833:4098,3838:4098,3848:3,3859:3,3912:3,3918:3,3927:4098,3935:4098,3945:3,3958:3,4011:3,4019:3,4032:4098,4052:3,4129:3,4310:3,4355:3,5164:4,5312:4099,5324:3,5352:4,7207:3,7217:3,8607:3,8647:3,8722:3,8760:3,}},7:{r:11,w:{1584:3,1951:4,2227:4,}},13:{r:28,w:{593:7,599:7,606:7,611:7,}},14:{r:9,w:{932:3,1052:3,1090:3,}},17:{r:39,w:{298:5,307:3,334:5,345:3,372:3,397:3,422:3,425:3,737:5,749:3,2461:3,}},21:{r:17,w:{2730:4,4937:3,4947:3,7479:4,8407:3,}},},"textfield":{17:{r:17,w:{300:5,314:3,321:3,410:6,}},21:{r:8,w:{7704:4,8984:4,}},},"thématique":{6:{r:3,w:{8780:3,}},21:{r:3,w:{5401:3,}},},"titre":{5:{r:4,w:{1823:4,}},6:{r:26,w:{1909:10,4991:4,4997:3,5001:3,5024:3,7195:3,}},13:{r:7,w:{586:7,}},17:{r:3,w:{2469:3,}},21:{r:3,w:{4925:3,}},},"tmp":{6:{r:6,w:{8505:3,8678:3,}},14:{r:6,w:{822:3,1004:3,}},},"token":{16:{r:8,w:{146:4,158:4,}},21:{r:8,w:{11414:4,11426:4,}},},"total":{9:{r:11,w:{108:4,126:3,148:4,}},21:{r:11,w:{9687:4,9705:3,9727:4,}},},"toujours":{5:{r:4,w:{760:4,}},7:{r:10,w:{56:10,}},16:{r:3,w:{87:3,}},17:{r:3,w:{79:3,}},21:{r:13,w:{2596:4,6409:6,11355:3,}},},"tous":{5:{r:4,w:{1851:4,}},6:{r:15,w:{463:6,623:6,4694:3,}},7:{r:3,w:{1483:3,}},8:{r:6,w:{23:3,43:3,}},9:{r:3,w:{272:3,}},13:{r:25,w:{160:3,170:3,190:3,921:3,942:4,1028:4,1039:5,}},21:{r:28,w:{4090:3,7402:4,8308:3,9179:3,9199:3,9851:3,11647:3,11657:3,11677:3,}},},"tout":{5:{r:3,w:{1626:3,}},6:{r:6,w:{1466:3,8044:3,}},8:{r:3,w:{28:3,}},14:{r:3,w:{362:3,}},17:{r:7,w:{160:3,2157:4,}},21:{r:6,w:{3448:3,9184:3,}},},"toute":{12:{r:3,w:{10:3,}},16:{r:3,w:{162:3,}},21:{r:6,w:{11430:3,11458:3,}},},"toutes":{5:{r:3,w:{206:3,}},6:{r:4,w:{4611:4,}},13:{r:6,w:{147:3,180:3,}},17:{r:4,w:{2281:4,}},21:{r:6,w:{11634:3,11667:3,}},},"traitable":{8:{r:3,w:{188:3,}},21:{r:3,w:{9347:3,}},},"traitement":{0:{r:12,w:{236:4,256:4,266:4,}},2:{r:3,w:{291:3,}},3:{r:3,w:{178:3,}},4:{r:4112,w:{706:3,834:4,1290:3,1594:4096,1684:3,1704:3,}},5:{r:10,w:{257:3,386:3,768:4,}},6:{r:135371,w:{22:3,33:3,126:3,179:4,184:4,208:5,324:3,343:3,356:3,396:3,649:4096,655:65539,662:3,695:3,711:3,1059:3,1139:4,1346:3,1365:4,1620:3,1813:3,4773:3,4869:3,4902:3,5056:3,7272:3,7326:4,7403:3,7477:3,7568:6,7781:3,7821:3,7966:3,8772:3,8835:65538,8857:3,8899:3,8934:3,9064:3,9086:3,9247:3,9411:3,9455:3,9529:6,9552:6,9574:6,9596:6,9616:6,9634:6,9714:6,9736:6,9779:6,9800:6,9856:4,9869:4,}},7:{r:2752669,w:{13:1048579,28:5,266:3,275:3,288:65539,310:4,330:4,360:4,416:65539,430:4,442:4,452:4,483:3,594:65539,616:4,646:4,674:4,717:65539,731:4,802:3,997:4,1056:3,1085:65538,1107:4,1122:4,1257:65538,1272:4,1316:3,1336:1048579,1347:5,1381:4,1628:65539,1650:4,1688:4,1717:4,1749:65539,1763:4,1818:3,1988:65539,2010:4,2030:4,2081:4,2359:65539,2373:4,}},8:{r:27,w:{192:3,215:3,289:3,327:3,344:3,494:3,558:3,589:3,592:3,}},9:{r:15,w:{26:3,169:4,170:8,}},11:{r:6,w:{785:3,987:3,}},13:{r:12,w:{848:3,870:3,904:3,1007:3,}},14:{r:6,w:{92:3,132:3,}},15:{r:15,w:{112:3,144:3,378:3,473:3,481:3,}},18:{r:12,w:{235:4,255:4,265:4,}},21:{r:2949518,w:{236:4,256:4,266:4,1103:3,1227:4,1590:3,1915:3,2247:3,2604:4,3507:3,3518:3,3618:3,3645:3,3718:4,3812:3,3881:3,3901:3,4119:65539,4126:3,4159:3,4323:3,4408:3,4428:4,5000:3,5057:4,5137:3,5211:3,5393:3,5460:3,5587:3,5609:3,5763:3,5920:3,5950:3,6022:6,6045:6,6067:6,6089:6,6109:6,6127:6,6149:6,6198:6,6220:6,6260:6,6280:6,6366:1048579,6383:3,6609:3,6618:3,6635:65539,6657:4,6676:4,6708:4,6756:65539,6770:4,6780:3,6809:4,6819:4,6826:4,7015:3,7070:3,7101:65539,7123:4,7146:4,7225:4,7267:65539,7281:4,7338:3,7503:65539,7525:4,7549:4,7581:4,7739:65539,7753:4,7898:65539,7920:4,7941:4,7973:4,8020:65539,8034:4,8103:3,8148:1048579,8186:4,8455:65539,8477:4,8537:4,8573:65539,8587:4,8759:65539,8781:4,8802:4,8854:4,9101:65539,9115:4,9351:3,9372:3,9385:3,9454:3,9605:3,9748:4,9749:8,10506:3,10707:3,10898:3,10930:3,11160:3,11255:3,11263:3,}},},"traitementdisponible":{21:{r:4,w:{8506:4,}},},"traitements":{0:{r:25,w:{27:3,55:3,79:3,146:4,167:4,206:4,216:4,}},1:{r:18,w:{80:6,81:6,114:6,}},2:{r:3,w:{205:3,}},3:{r:3,w:{191:3,}},4:{r:135192,w:{721:3,822:4,1161:4096,1167:65538,1190:3,1230:3,1581:3,1587:3,1599:65539,}},5:{r:9,w:{373:3,414:3,469:3,}},6:{r:285216777,w:{3:268435456,7:4096,11:16777219,56:3,8782:3,}},7:{r:285212675,w:{5:268435456,11:16777219,}},8:{r:21,w:{16:3,78:3,113:3,139:3,144:3,307:3,598:3,}},9:{r:24,w:{104:4,110:4,114:4,128:3,252:3,262:3,275:3,}},11:{r:3,w:{603:3,}},13:{r:28,w:{674:3,881:3,886:3,923:3,944:4,950:4,1030:4,1042:4,}},15:{r:3,w:{79:3,}},18:{r:25,w:{30:3,58:3,82:3,145:4,166:4,205:4,215:4,}},21:{r:34734227,w:{27:3,55:3,79:3,146:4,167:4,206:4,216:4,395:6,396:6,429:6,726:3,1118:3,1215:4,1479:1048579,1487:65539,1511:3,1551:3,1777:3,1783:3,1796:65539,1862:4,1936:3,2234:3,2275:3,2314:3,3496:16777219,3550:3,5403:3,6361:16777219,9172:3,9234:3,9272:3,9298:3,9303:3,9472:3,9683:4,9689:4,9693:4,9707:3,9831:3,9841:3,9854:3,10863:3,}},},"traiter":{21:{r:3,w:{7623:3,}},},"traitment":{14:{r:3,w:{284:3,}},},"traité":{7:{r:4,w:{456:4,}},8:{r:3,w:{130:3,}},9:{r:4,w:{174:4,}},21:{r:11,w:{6833:4,9289:3,9753:4,}},},"traitée":{4:{r:3,w:{1564:3,}},7:{r:16,w:{781:4,1295:4,1797:4,2408:4,}},8:{r:3,w:{186:3,}},21:{r:26,w:{1760:3,7304:4,7779:4,8082:4,8621:4,9151:4,9345:3,}},},"traités":{11:{r:3,w:{1075:3,}},13:{r:4,w:{947:4,}},21:{r:3,w:{10795:3,}},},"transformer":{6:{r:3,w:{8737:3,}},14:{r:3,w:{1067:3,}},17:{r:6,w:{418:3,1054:3,}},},"transformers":{6:{r:65570,w:{7711:65538,7721:3,7738:4,7749:4,7815:3,7833:3,7855:4,7858:8,7888:3,}},14:{r:268505122,w:{6:268435456,15:4096,22:65538,32:3,49:4,60:4,126:3,144:3,166:4,169:8,206:3,}},},"transformés":{6:{r:3,w:{8755:3,}},14:{r:3,w:{1085:3,}},},"transférer":{6:{r:3,w:{574:3,}},},"transparente":{0:{r:4,w:{286:4,}},18:{r:4,w:{285:4,}},21:{r:4,w:{286:4,}},},"travail":{5:{r:4,w:{1788:4,}},6:{r:6,w:{7776:3,8868:3,}},7:{r:20,w:{422:4,723:4,1263:4,1755:4,2365:4,}},14:{r:3,w:{87:3,}},21:{r:24,w:{6762:4,7273:4,7745:4,8026:4,8579:4,9107:4,}},},"travailler":{0:{r:4,w:{230:4,}},6:{r:65539,w:{1036:65539,}},18:{r:4,w:{229:4,}},21:{r:4,w:{230:4,}},},"travers":{9:{r:3,w:{35:3,}},21:{r:3,w:{9614:3,}},},"tre":{17:{r:4,w:{2028:4,}},},"treeviewfield":{17:{r:4,w:{2478:4,}},21:{r:8,w:{7644:4,7711:4,}},},"tri":{6:{r:3,w:{5980:3,}},},"tronquer":{9:{r:3,w:{287:3,}},21:{r:3,w:{9866:3,}},},"trouve":{7:{r:5,w:{62:5,}},21:{r:7,w:{6415:3,7455:4,}},},"trouvent":{7:{r:5,w:{892:5,}},21:{r:3,w:{6906:3,}},},"trouvé":{5:{r:3,w:{1328:3,}},21:{r:3,w:{3153:3,}},},"true":{17:{r:3,w:{717:3,}},},"trust":{4:{r:6,w:{339:3,357:3,}},5:{r:12,w:{923:3,954:3,1016:3,1065:3,}},15:{r:6,w:{329:3,342:3,}},21:{r:18,w:{2759:3,2790:3,2852:3,2901:3,11115:3,11128:3,}},},"tutoriel":{17:{r:12,w:{1417:12,}},},"txt":{2:{r:6,w:{566:6,}},4:{r:3,w:{1153:3,}},6:{r:3,w:{8609:3,}},11:{r:6,w:{550:3,1097:3,}},14:{r:3,w:{934:3,}},21:{r:3,w:{10817:3,}},},"tye":{6:{r:3,w:{2503:3,}},},"type":{2:{r:3,w:{658:3,}},4:{r:3,w:{168:3,}},5:{r:7,w:{646:4,1271:3,}},6:{r:205263,w:{1153:4,1965:4098,1969:4098,1978:3,1988:3,2078:3,2084:3,2091:4098,2096:4098,2104:3,2114:3,2181:3,2188:3,2222:4098,2228:4098,2236:3,2247:3,2317:3,2325:3,2360:4098,2367:4098,2374:3,2386:3,2447:3,2456:3,2490:4098,2496:4098,2515:3,2557:3,2566:3,2572:4098,2576:4098,2583:3,2593:3,2634:3,2640:4098,2645:4098,2654:3,2715:3,2722:4098,2726:4098,2733:3,2742:3,2786:3,2792:4098,2796:4098,2803:3,2812:3,2854:3,2859:3,2865:4098,2871:4098,2884:3,2898:3,2974:3,2981:3,2992:4098,2999:4098,3008:3,3023:3,3062:3,3070:3,3114:3,3123:4098,3130:4098,3139:3,3154:3,3193:3,3202:3,3245:4098,3253:4098,3261:3,3273:3,3342:3,3352:3,3362:4098,3370:4098,3378:3,3415:3,3424:3,3493:4098,3498:4098,3506:3,3517:3,3572:3,3578:3,3585:4098,3591:4098,3602:3,3614:3,3695:3,3702:3,3713:4098,3717:4098,3728:3,3738:3,3816:3,3822:3,3832:4098,3837:4098,3847:3,3858:3,3911:3,3917:3,3926:4098,3934:4098,3944:3,3957:3,4010:3,4018:3,4027:4098,4031:4098,4041:3,4051:3,4091:6,4123:3,4128:3,4137:4098,4143:4098,4152:3,4163:3,4179:3,4250:3,4257:4098,4309:3,4354:3,4371:3,4424:3,4589:4,4682:3,4777:3,4844:3,4873:3,4880:4098,4889:3,4922:4098,4930:3,4939:3,5029:4098,5041:3,5100:3,5106:3,5146:3,5178:4,5288:3,5311:4099,5323:3,5351:4,5455:3,5564:4098,5609:4,5691:3,5908:4,6071:4098,6105:4,6180:3,6424:4098,6445:3,6457:4,6505:3,7161:3,8497:3,8671:3,8721:3,8748:3,8759:3,9489:3,}},7:{r:1048622,w:{1430:4,1533:4,1577:3,1845:1048579,1950:4,1958:4,1969:4,1981:4,2168:4,2226:4,2235:4,2250:4,}},11:{r:6,w:{36:3,177:3,}},13:{r:17,w:{958:4,970:3,979:3,999:3,1060:4,}},14:{r:15,w:{814:3,997:3,1051:3,1078:3,1089:3,}},17:{r:73,w:{315:3,316:3,318:3,578:5,595:3,596:3,598:3,704:3,1025:4,1027:4,1045:4,1048:4,1128:3,1131:3,1135:3,1192:4,1489:3,1582:4,2164:4,2288:3,2352:4,}},21:{r:35,w:{3114:3,4893:3,5980:3,7478:4,8244:4,8253:4,8354:4,8400:3,8741:4,10041:3,}},},"type_cascade":{17:{r:10,w:{1046:4,1129:3,1139:3,}},},"types":{6:{r:11,w:{290:3,1853:3,7681:5,}},7:{r:5,w:{1857:5,}},8:{r:3,w:{567:3,}},11:{r:3,w:{1001:3,}},21:{r:14,w:{7404:4,7414:4,8645:3,10721:3,}},},"tâche":{13:{r:4,w:{34:4,}},21:{r:4,w:{11521:4,}},},"tâches":{0:{r:3,w:{12:3,}},1:{r:6,w:{94:6,}},6:{r:3,w:{9342:3,}},18:{r:3,w:{15:3,}},19:{r:268435459,w:{3:268435456,9:3,}},20:{r:268435459,w:{3:268435456,9:3,}},21:{r:12,w:{12:3,409:6,5858:3,}},22:{r:268435459,w:{3:268435456,9:3,}},},"téléchargeable":{7:{r:4,w:{465:4,}},21:{r:4,w:{6842:4,}},},"téléchargeant":{4:{r:3,w:{1656:3,}},21:{r:3,w:{1887:3,}},},"téléchargement":{2:{r:9,w:{107:3,338:3,573:3,}},4:{r:9,w:{1201:3,1261:3,1615:3,}},6:{r:13,w:{3565:3,8597:4,9592:6,}},8:{r:3,w:{481:3,}},11:{r:5,w:{970:5,}},14:{r:4,w:{922:4,}},15:{r:5,w:{63:5,}},16:{r:3,w:{102:3,}},21:{r:28,w:{1522:3,1566:3,1815:3,6085:6,10688:5,10847:5,11370:3,}},},"téléchargent":{0:{r:4,w:{212:4,}},18:{r:4,w:{211:4,}},21:{r:4,w:{212:4,}},},"télécharger":{2:{r:3,w:{14:3,}},4:{r:3,w:{1252:3,}},6:{r:3,w:{4822:3,}},7:{r:16,w:{784:4,1298:4,1800:4,2411:4,}},8:{r:3,w:{135:3,}},21:{r:32,w:{507:3,1557:3,7307:4,7782:4,8085:4,8624:4,9154:4,9294:3,10294:3,}},},"téléchargé":{4:{r:6,w:{1311:3,1693:3,}},21:{r:6,w:{1611:3,1924:3,}},},"u_scheduler":{4:{r:6,w:{333:3,354:3,}},5:{r:12,w:{917:3,951:3,1010:3,1062:3,}},15:{r:6,w:{323:3,339:3,}},21:{r:18,w:{2753:3,2787:3,2846:3,2898:3,11109:3,11125:3,}},},"un":{0:{r:21,w:{38:6,45:3,174:4,237:4,255:4,}},1:{r:6,w:{120:6,}},2:{r:23,w:{116:3,533:8,555:3,559:3,655:3,672:3,}},4:{r:120,w:{206:3,298:8,415:3,452:3,482:3,505:3,518:3,640:3,648:6,655:3,657:3,670:3,676:3,733:3,746:3,788:3,802:4,808:4,828:4,835:4,847:4,859:4,866:4,918:4,922:4,1010:3,1075:3,1233:3,1437:4,1487:4,1491:4,1516:4,1757:3,}},5:{r:2097363,w:{14:3,18:3,69:8,74:4,132:3,145:3,149:3,151:3,154:3,157:3,228:3,237:3,256:3,261:3,284:3,337:6,358:3,366:3,385:3,411:3,415:3,421:3,448:3,456:3,466:3,503:2097158,525:3,563:6,627:3,755:4,785:8,793:8,891:8,1139:6,1224:3,1239:3,1268:3,1347:6,1355:3,1408:6,1435:6,1506:3,1561:6,1594:6,1598:3,1610:3,1621:6,1639:6,1792:4,1798:4,1807:4,}},6:{r:74242,w:{13:3,21:3,26:3,32:3,93:3,123:3,297:3,409:3,415:3,454:3,468:6,507:3,628:6,648:4096,661:3,667:3,676:3,710:3,806:4,975:4,1070:3,1350:3,1550:3,1557:3,1568:3,1579:3,1588:3,1606:4098,1672:3,1684:3,1698:3,1742:3,1761:3,1802:3,1939:3,1973:3,1983:3,2099:3,2232:3,2370:3,2499:3,2579:3,2650:3,2729:3,2799:3,2879:3,2925:3,2946:3,3003:3,3134:3,3310:3,3374:3,3502:3,3598:3,3664:3,3724:3,3784:3,3843:3,3940:3,4037:3,4077:3,4085:3,4147:3,4176:3,4288:3,4306:3,4351:3,4362:3,4367:3,4468:4,4627:4,4635:4,4809:3,4830:3,4886:3,4935:3,4943:3,4949:3,4993:3,5000:3,5037:3,5047:3,5073:3,5174:4,5222:4,5452:3,5775:3,6256:3,6607:3,7002:3,7020:3,7104:3,7110:3,7170:4,7194:3,7242:3,7251:3,7254:3,7261:3,7271:3,7273:3,7277:3,7310:4,7314:4,7320:4,7325:4,7349:4,7393:3,7408:3,7414:3,7572:3,7688:5,7780:3,7908:3,7931:3,7965:3,7999:3,8072:4,8104:3,8150:3,8218:4,8269:3,8445:3,8546:3,8605:3,8692:3,8717:3,8771:3,8834:65538,8837:3,8841:3,8847:3,8850:3,8856:3,8871:3,8878:3,8918:3,8921:3,8930:3,8933:3,8937:3,8945:6,8949:6,8952:3,8962:3,8989:6,9054:3,9063:3,9068:3,9080:3,9097:3,9116:3,9194:3,9222:6,9239:3,9246:3,9292:3,9423:3,9459:3,9470:3,9897:4,}},7:{r:192,w:{27:10,33:10,64:5,105:4,130:3,136:6,140:3,160:8,307:4,357:4,472:3,502:10,613:4,671:4,925:4,931:4,935:4,954:4,1025:6,1104:4,1145:4,1162:4,1400:4,1435:4,1467:3,1494:4,1504:4,1519:4,1524:4,1576:3,1583:3,1602:4,1647:4,1714:4,1890:3,1896:3,1904:3,1918:6,2007:4,2052:4,2078:4,2263:4,2342:4,}},8:{r:33,w:{165:3,173:3,212:3,293:3,324:6,406:3,493:3,497:3,548:3,559:3,}},9:{r:3,w:{346:3,}},11:{r:36,w:{217:3,224:3,241:3,251:3,260:3,264:3,270:3,274:3,277:3,779:3,795:3,1082:3,}},13:{r:30,w:{224:3,236:3,678:3,682:3,758:4,766:4,772:3,1002:3,1031:4,}},14:{r:51,w:{91:3,226:3,249:3,283:3,317:3,390:4,420:3,466:3,486:4,534:4,583:3,763:3,867:3,930:3,1022:3,1047:3,}},15:{r:3,w:{472:3,}},16:{r:4,w:{141:4,}},17:{r:148,w:{122:3,133:3,233:3,343:3,353:3,379:6,391:3,395:3,432:3,456:3,575:10,643:10,680:10,701:3,933:3,951:10,963:3,973:3,997:6,1009:3,1013:3,1068:3,1095:3,1152:3,1155:3,1230:10,1270:3,1317:10,1357:10,1373:3,2410:3,}},18:{r:21,w:{41:6,48:3,173:4,236:4,254:4,}},21:{r:2097936,w:{38:6,45:3,174:4,237:4,255:4,435:6,586:3,648:3,842:3,868:3,891:3,979:3,1037:3,1045:6,1052:3,1054:3,1067:3,1073:3,1144:3,1186:3,1195:4,1201:4,1221:4,1228:4,1240:4,1246:4,1252:4,1276:4,1283:4,1396:3,1554:3,1676:3,1715:3,1972:3,1976:3,2027:8,2032:4,2097:3,2101:3,2103:3,2106:3,2109:3,2173:6,2219:3,2227:3,2246:3,2272:3,2276:3,2282:3,2303:3,2311:3,2344:2097158,2366:3,2404:6,2591:4,2621:8,2629:8,2727:8,2971:6,3067:3,3111:3,3172:6,3180:3,3231:6,3258:6,3329:3,3384:6,3416:6,3420:3,3432:3,3443:6,3461:6,3498:3,3506:3,3511:3,3517:3,3532:3,3615:3,3790:4,3793:4,3824:3,3865:3,3914:3,3921:3,3975:3,4095:3,4125:3,4131:3,4140:3,4334:3,4412:3,4706:3,4836:3,4842:3,4901:3,4924:3,4970:3,4979:3,4982:3,4989:3,4999:3,5001:3,5005:3,5041:4,5045:4,5051:4,5056:4,5080:4,5127:3,5142:3,5148:3,5298:3,5368:3,5392:3,5445:3,5448:3,5456:3,5459:3,5463:3,5471:6,5475:6,5478:3,5487:3,5514:6,5577:3,5586:3,5591:3,5603:3,5620:3,5639:3,5711:3,5739:6,5755:3,5762:3,5808:3,5930:3,5954:3,5963:3,6382:6,6388:6,6417:3,6463:4,6488:3,6494:6,6498:3,6518:8,6654:4,6705:4,6820:4,6849:3,6943:4,6949:4,6953:4,6972:3,7042:6,7120:4,7168:4,7222:4,7337:6,7378:4,7425:4,7473:4,7522:4,7578:4,7664:3,7798:6,7917:4,7970:4,8168:6,8207:4,8258:4,8292:3,8319:4,8329:4,8344:4,8349:4,8399:3,8406:3,8425:4,8474:4,8534:4,8678:3,8684:3,8692:3,8706:6,8778:4,8824:4,8851:4,9081:3,9324:3,9332:3,9371:3,9384:6,9458:3,9512:3,9925:3,10377:3,10393:3,10403:3,10412:3,10416:3,10422:3,10426:3,10429:3,10500:3,10516:3,10802:3,11254:3,11409:4,}},},"une":{0:{r:15,w:{16:3,116:6,120:6,}},2:{r:12,w:{248:3,276:3,550:3,678:3,}},3:{r:3,w:{175:3,}},4:{r:45,w:{71:3,74:3,490:3,662:3,703:3,817:4,831:4,1101:3,1136:3,1280:3,1441:4,1681:3,1710:3,1737:3,}},5:{r:33,w:{181:3,241:3,244:3,288:3,1144:3,1172:3,1193:3,1323:3,1445:3,1467:3,1488:3,}},6:{r:4296,w:{539:3,582:3,802:4,1066:6,1118:4,1162:4,1205:4,1224:4,1348:3,2055:3,2199:3,2337:3,2467:3,3301:3,3319:3,3655:3,3775:3,4080:3,4303:3,4313:3,4333:3,4347:3,4477:4,4631:4,4646:3,4663:3,4715:3,4727:3,4740:3,4787:3,5270:3,5281:3,5688:3,5946:3,6012:3,6025:3,6058:3,6177:3,6402:3,6753:3,6783:3,6795:3,7097:3,7114:3,7246:3,7331:4,7354:4,7440:3,8022:3,8077:4,8170:4,8688:4098,8698:3,8709:3,8811:3,8926:3,9065:3,9254:3,9284:3,9331:6,9874:4,}},7:{r:123,w:{164:4,337:4,454:4,508:5,652:4,777:4,818:6,1017:3,1128:4,1267:4,1291:4,1332:6,1409:4,1695:4,1793:4,1834:6,1863:10,1870:5,1910:3,1922:3,2018:4,2022:4,2037:4,2123:6,2132:3,2159:3,2353:4,2404:4,}},8:{r:21,w:{54:3,97:3,106:3,179:3,238:3,349:3,449:3,}},9:{r:21,w:{13:3,62:3,78:6,318:3,352:3,360:3,}},11:{r:24,w:{247:3,317:3,471:3,498:3,533:3,696:3,803:3,993:3,}},13:{r:10,w:{693:3,754:4,889:3,}},14:{r:4111,w:{340:3,395:4,1018:4098,1028:3,1039:3,}},15:{r:16,w:{33:4,115:3,202:6,467:3,}},16:{r:6,w:{129:6,}},17:{r:85,w:{142:3,269:3,309:6,515:6,550:6,588:6,656:3,774:10,793:3,844:3,1225:10,1239:3,1367:3,1733:4,1800:4,2375:3,2380:3,2414:3,2484:3,}},18:{r:15,w:{19:3,118:6,123:6,}},21:{r:1048935,w:{16:3,116:6,120:6,616:3,625:3,637:3,876:3,1059:3,1100:3,1210:4,1224:4,1263:4,1419:3,1454:3,1585:3,1912:3,2976:3,3004:3,3025:3,3148:3,3268:3,3290:3,3311:3,3802:4,4007:3,4049:3,4330:6,4410:3,4829:3,4846:3,4974:3,5062:4,5085:4,5174:3,5432:3,5452:3,5588:3,5770:3,5800:3,5847:6,6522:4,6664:4,6668:4,6683:4,6831:4,7034:3,7134:4,7138:4,7153:4,7300:4,7324:1048579,7346:3,7537:4,7541:4,7556:4,7649:3,7775:4,7804:3,7929:4,7933:4,7948:4,8078:4,8119:6,8216:4,8494:4,8498:4,8512:4,8617:4,8651:6,8698:3,8710:3,8790:4,8794:4,8809:4,8900:6,8909:3,9092:3,9147:4,9210:3,9256:3,9265:3,9338:3,9408:3,9558:3,9592:3,9641:3,9657:6,9897:3,9931:3,9939:3,10309:3,10399:3,10461:3,10524:3,10713:3,10901:3,10988:6,11249:3,11397:6,}},},"unique":{4:{r:8,w:{1405:4,1419:4,}},6:{r:6,w:{417:3,426:3,}},7:{r:9,w:{814:3,1328:3,1830:3,}},13:{r:3,w:{691:3,}},21:{r:15,w:{1646:3,1661:3,3923:3,3931:3,8115:3,}},},"uniquement":{6:{r:6,w:{1732:3,6960:3,}},21:{r:3,w:{3529:3,}},},"uniques":{11:{r:3,w:{626:3,}},21:{r:3,w:{10170:3,}},},"unité":{13:{r:3,w:{119:3,}},21:{r:3,w:{11606:3,}},},"unités":{13:{r:9,w:{130:3,139:3,150:3,}},21:{r:9,w:{11617:3,11626:3,11637:3,}},},"universel":{6:{r:3,w:{418:3,}},21:{r:3,w:{3924:3,}},},"up":{15:{r:4,w:{306:4,}},21:{r:4,w:{11092:4,}},},"upload":{11:{r:1052691,w:{757:4096,759:1048578,763:3,844:3,860:3,1040:8,}},21:{r:65559,w:{7534:4,10480:65538,10484:3,10565:3,10581:3,10760:8,}},},"upload_dir":{11:{r:3,w:{840:3,}},21:{r:3,w:{10561:3,}},},"upload_max_filesize":{11:{r:3,w:{128:3,}},21:{r:3,w:{10207:3,}},},"uploade":{6:{r:8,w:{304:3,7695:5,}},},"uploadent":{7:{r:10,w:{885:10,}},21:{r:6,w:{6899:6,}},},"uploader":{7:{r:18,w:{969:4,1051:6,1151:4,2041:4,}},21:{r:14,w:{7065:6,7157:4,8813:4,}},},"uploadera":{21:{r:4,w:{7432:4,}},},"uploadfield":{17:{r:11,w:{1146:4,1156:3,1204:4,}},},"upload|document":{17:{r:4,w:{1186:4,}},},"upload|document|spathfile|arrete|upload_dir":{17:{r:3,w:{1169:3,}},},"uploadé":{7:{r:3,w:{1037:3,}},11:{r:3,w:{108:3,}},21:{r:6,w:{7051:3,10187:3,}},},"uploadés":{11:{r:3,w:{170:3,}},21:{r:3,w:{10120:3,}},},"uploder":{21:{r:3,w:{6987:3,}},},"url":{6:{r:8218,w:{1937:10,4028:4098,4035:4098,4042:3,4055:3,4124:3,4132:3,}},13:{r:7,w:{614:7,}},16:{r:6,w:{36:3,55:3,}},21:{r:6,w:{11304:3,11323:3,}},},"use":{6:{r:3,w:{8663:3,}},14:{r:3,w:{989:3,}},},"user":{6:{r:35,w:{9662:5,9707:6,9717:6,9739:6,9751:6,9761:6,}},21:{r:36,w:{6191:6,6201:6,6212:6,6223:6,6234:6,6244:6,}},},"user_email":{6:{r:6,w:{9729:6,}},21:{r:6,w:{6213:6,}},},"userorders":{13:{r:6,w:{426:6,}},},"userprofile":{6:{r:20,w:{7735:3,7745:4,7759:4,7805:3,7917:3,7984:3,}},14:{r:20,w:{46:3,56:4,70:4,116:3,235:3,302:3,}},},"users":{13:{r:6,w:{516:6,}},},"usersubscriptions":{13:{r:6,w:{432:6,}},},"usersurveys":{13:{r:6,w:{438:6,}},},"util":{15:{r:6,w:{220:3,453:3,}},21:{r:6,w:{11006:3,11235:3,}},},"utile":{17:{r:32,w:{1821:4,1839:4,1863:4,1878:4,1894:4,1917:4,1935:4,1953:4,}},},"utilisable":{7:{r:3,w:{1044:3,}},21:{r:3,w:{7058:3,}},},"utilisant":{21:{r:3,w:{741:3,}},},"utilisateur":{2:{r:12,w:{416:6,429:6,}},3:{r:3,w:{70:3,}},4:{r:8,w:{829:4,1742:4,}},5:{r:12391,w:{15:3,133:3,161:6,238:3,285:3,325:3,338:3,353:3,690:4,716:4,756:4,786:4,794:4,806:8,826:6,1111:4096,1278:8196,1312:4,1326:6,1348:3,1367:6,1436:3,1700:4,1780:4,1793:4,1808:4,}},6:{r:67,w:{14:3,303:6,1071:3,6524:3,7262:3,7694:10,7729:3,7769:3,7804:3,7901:3,7932:3,8842:3,8872:3,9055:3,9160:3,9172:6,9197:3,9223:3,}},7:{r:26,w:{1359:10,1875:10,2139:6,}},8:{r:9,w:{116:3,166:3,294:3,}},9:{r:7,w:{33:3,162:4,}},11:{r:3,w:{275:3,}},13:{r:3,w:{237:3,}},14:{r:15,w:{40:3,80:3,115:3,219:3,250:3,}},17:{r:22,w:{457:3,1096:3,1853:8,1908:8,}},19:{r:3,w:{17:3,}},21:{r:176,w:{1222:4,1973:3,2021:4,2089:3,2113:6,2161:3,2174:3,2214:3,2526:4,2552:4,2592:4,2622:4,2630:4,2642:8,2662:6,3121:6,3137:4,3151:6,3173:3,3192:6,3259:3,3499:3,3533:3,4335:3,4990:3,5578:3,5677:3,5689:6,5714:3,5740:3,6784:6,7431:8,7459:4,8161:6,8659:6,8916:6,9275:3,9325:3,9459:3,9612:3,9741:4,10427:3,}},},"utilisateurs":{0:{r:22,w:{42:3,71:3,159:4,201:4,226:4,289:4,}},1:{r:12,w:{42:6,85:6,}},2:{r:3,w:{296:3,}},3:{r:3,w:{68:3,}},4:{r:7,w:{56:3,1750:4,}},5:{r:289751207,w:{3:268435456,5:4096,8:4096,12:16777218,39:6,45:4,47:4,63:4,67:4,87:3,100:2097158,108:6,110:3,115:3,122:3,349:131078,390:6,397:3,418:3,459:3,495:4096,499:1048579,538:3,559:3,577:3,592:3,607:6,698:4,726:4,876:4,1117:131078,1124:3,1135:3,1229:3,1246:3,1265:3,1302:6,1416:3,1578:4096,1583:65539,1592:3,1634:6,1656:3,1660:3,1676:1048578,1723:4,1789:4,1880:4,1893:3,}},6:{r:9,w:{7972:3,8113:3,9053:3,}},7:{r:12,w:{200:3,219:4,882:5,}},8:{r:16,w:{25:3,45:3,248:3,259:4,441:3,}},11:{r:8,w:{362:4,1033:4,}},14:{r:6,w:{290:3,429:3,}},18:{r:22,w:{45:3,74:3,158:4,200:4,225:4,288:4,}},21:{r:20250842,w:{42:3,71:3,159:4,201:4,226:4,289:4,357:6,400:6,1970:16777219,1997:6,2003:4,2005:4,2025:4,2045:3,2057:2097158,2065:6,2067:3,2072:3,2079:3,2188:3,2210:131078,2251:6,2258:3,2279:3,2315:3,2340:1048579,2379:3,2400:3,2418:3,2433:3,2452:6,2534:4,2562:4,2712:4,2952:131078,2967:3,3072:3,3088:3,3108:3,3127:6,3239:3,3405:65539,3414:3,3456:6,3478:3,3482:3,5576:3,6558:3,6577:4,6897:3,9181:3,9201:3,9418:3,9429:4,9550:3,10333:4,10753:4,}},},"utilisation":{6:{r:4112,w:{757:3,881:4,920:4,7385:4098,8042:3,}},8:{r:6,w:{59:6,}},9:{r:14,w:{20:6,150:8,}},14:{r:3,w:{360:3,}},16:{r:285212675,w:{2:268435456,11:16777219,}},17:{r:16,w:{1817:8,1835:8,}},21:{r:16781340,w:{4219:3,5119:4098,9215:6,9599:6,9729:8,11279:16777219,}},},"utilise":{2:{r:6,w:{221:3,275:3,}},11:{r:3,w:{678:3,}},17:{r:32,w:{1825:4,1843:4,1867:4,1882:4,1898:4,1921:4,1939:4,1957:4,}},},"utiliser":{5:{r:6,w:{32:3,1267:3,}},6:{r:13,w:{5659:3,7381:4,9452:3,9915:3,}},7:{r:4,w:{221:4,}},16:{r:6,w:{47:6,}},17:{r:3,w:{627:3,}},21:{r:23,w:{1990:3,3110:3,5112:4,6334:3,6579:4,11315:6,}},},"utilisé":{1:{r:6,w:{72:6,}},5:{r:4,w:{656:4,}},6:{r:12,w:{7949:3,8626:3,9696:6,}},8:{r:3,w:{541:3,}},9:{r:4,w:{177:4,}},11:{r:3,w:{593:3,}},14:{r:6,w:{267:3,951:3,}},17:{r:12,w:{1621:4,1637:4,2170:4,}},21:{r:28,w:{387:6,2492:4,3727:4,3768:4,6181:6,9756:4,}},},"utilisée":{17:{r:3,w:{87:3,}},},"utilisées":{17:{r:4,w:{1746:4,}},},"va":{2:{r:3,w:{670:3,}},17:{r:3,w:{804:3,}},},"valeur":{2:{r:12,w:{484:6,492:6,}},6:{r:77,w:{445:3,2152:3,2288:3,2623:3,2762:3,2832:3,2943:3,3314:3,3320:3,3642:3,3767:3,3788:3,3885:3,3984:3,4089:3,4097:3,4205:3,4232:3,4640:3,4672:3,4947:3,4978:3,5069:3,6913:4,6934:4,}},7:{r:4,w:{404:4,}},11:{r:6,w:{119:3,141:3,}},17:{r:101,w:{270:3,291:3,326:3,360:3,377:3,440:4,454:3,516:3,532:3,551:3,568:4,589:3,607:4,648:5,657:3,674:3,724:3,728:3,766:3,980:3,995:3,1076:4,1093:3,1212:4,1265:4,1349:3,2396:3,2415:3,2433:3,2437:3,2439:3,}},21:{r:12,w:{925:3,6793:3,10198:3,10220:3,}},},"valeurs":{6:{r:4178,w:{894:4,916:4,931:4,1950:3,2616:3,3395:3,5165:4,5181:4,5185:4,5205:4,5303:3,5321:3,5565:4098,5579:3,5610:4,5657:3,5857:3,6007:3,6021:3,6081:3,6325:3,6676:3,6792:3,7012:3,7030:3,}},7:{r:12,w:{551:4,706:4,740:4,}},17:{r:33,w:{126:3,164:3,172:3,613:4,621:3,791:3,889:3,897:3,1080:4,2023:4,}},21:{r:12,w:{7851:4,8005:4,8043:4,}},},"validation":{7:{r:3,w:{129:3,}},21:{r:3,w:{6487:3,}},},"valide":{4:{r:4,w:{597:4,}},21:{r:3,w:{762:3,}},},"valider":{5:{r:3,w:{307:3,}},6:{r:33,w:{1716:3,5391:3,5394:3,5421:3,5725:3,5747:3,6207:3,6228:3,6558:3,6579:3,9130:3,}},21:{r:6,w:{2143:3,5653:3,}},},"validité":{4:{r:4,w:{584:4,}},6:{r:4,w:{7359:4,}},21:{r:4,w:{5090:4,}},},"valoriser":{17:{r:3,w:{617:3,}},},"value":{6:{r:83,w:{9534:7,9557:7,9579:7,9601:7,9621:7,9641:7,9664:5,9719:6,9741:6,9763:6,9784:6,9806:6,9827:6,}},17:{r:43,w:{476:6,480:6,497:3,501:6,1115:3,1119:6,1136:6,1140:3,1267:4,}},21:{r:78,w:{6027:7,6050:7,6072:7,6094:7,6114:7,6134:7,6203:6,6225:6,6246:6,6265:6,6286:6,6307:6,}},},"variable":{2:{r:6,w:{359:6,}},3:{r:3,w:{29:3,}},6:{r:6,w:{7733:3,9169:3,}},7:{r:3,w:{1018:3,}},9:{r:6,w:{87:3,92:3,}},14:{r:3,w:{44:3,}},21:{r:12,w:{5686:3,7035:3,9666:3,9671:3,}},},"variables":{2:{r:3,w:{351:3,}},9:{r:6,w:{123:3,159:3,}},21:{r:6,w:{9702:3,9738:3,}},},"varie":{6:{r:3,w:{6788:3,}},},"vas":{4:{r:3,w:{239:3,}},},"vaut":{4:{r:8,w:{1427:4,1460:4,}},21:{r:6,w:{1668:3,1697:3,}},},"veiller":{11:{r:3,w:{934:3,}},21:{r:3,w:{10652:3,}},},"venez":{6:{r:3,w:{8331:3,}},14:{r:3,w:{645:3,}},},"veremap":{7:{r:4,w:{2178:4,}},},"veremes":{2:{r:7,w:{22:4,60:3,}},4:{r:22,w:{1016:3,1100:3,1148:3,1193:3,1265:5,1663:5,}},6:{r:3,w:{8588:3,}},8:{r:5,w:{485:5,}},11:{r:6,w:{497:3,545:3,}},12:{r:12,w:{19:3,26:4,40:5,}},14:{r:3,w:{913:3,}},15:{r:5,w:{389:5,}},16:{r:5,w:{108:5,}},21:{r:46,w:{515:4,551:3,684:3,1466:3,1514:3,1570:5,1894:5,5313:3,11171:5,11376:5,11467:3,11470:4,}},},"verrouiller":{21:{r:3,w:{3864:3,}},},"vers":{2:{r:3,w:{648:3,}},7:{r:11,w:{139:3,934:4,953:4,}},21:{r:14,w:{6497:3,6952:4,6971:3,7531:4,}},},"version":{2:{r:3,w:{249:3,}},4:{r:6,w:{561:3,949:3,}},6:{r:10,w:{779:3,8178:4,8479:3,}},11:{r:65547,w:{405:65538,411:3,418:3,456:3,}},13:{r:6,w:{822:3,890:3,}},14:{r:7,w:{494:4,796:3,}},16:{r:12,w:{71:3,75:3,78:3,94:3,}},21:{r:33,w:{952:3,1351:3,10231:3,10238:3,10250:3,10263:3,10281:3,11339:3,11343:3,11346:3,11362:3,}},},"versions":{6:{r:7,w:{8190:4,8456:3,}},8:{r:3,w:{363:3,}},13:{r:12,w:{444:6,522:6,}},14:{r:7,w:{506:4,774:3,}},16:{r:3,w:{63:3,}},21:{r:3,w:{11331:3,}},},"vert":{6:{r:3,w:{1570:3,}},7:{r:20,w:{461:4,783:4,1297:4,1799:4,2410:4,}},21:{r:24,w:{6838:4,7306:4,7781:4,8084:4,8623:4,9153:4,}},},"veut":{6:{r:3,w:{6992:3,}},},"via":{4:{r:3,w:{1616:3,}},5:{r:6,w:{255:3,287:3,}},6:{r:54,w:{744:3,1798:3,1999:3,3435:3,4079:3,4471:4,4662:3,5687:3,5976:3,6024:3,6176:3,7169:4,7179:4,7934:3,8536:3,9412:3,9919:3,}},7:{r:3,w:{1466:3,}},8:{r:6,w:{172:3,506:3,}},13:{r:3,w:{843:3,}},14:{r:6,w:{252:3,857:3,}},16:{r:3,w:{53:3,}},21:{r:33,w:{1816:3,4207:3,4900:3,4909:3,5376:3,5921:3,6338:3,8291:3,9331:3,10097:3,11321:3,}},},"vide":{5:{r:3,w:{204:3,}},6:{r:4,w:{180:4,}},11:{r:3,w:{322:3,}},17:{r:8,w:{1600:4,2341:4,}},21:{r:7,w:{3719:4,10466:3,}},},"view":{17:{r:4,w:{2181:4,}},},"virgule":{17:{r:8,w:{1734:4,1801:4,}},},"virtualform":{17:{r:4,w:{97:4,}},},"virtualformv2":{17:{r:4,w:{53:4,}},},"visibles":{6:{r:3,w:{3403:3,}},},"vision":{8:{r:6,w:{55:3,98:3,}},9:{r:3,w:{14:3,}},21:{r:9,w:{9211:3,9257:3,9593:3,}},},"visualisation":{6:{r:3,w:{1282:3,}},21:{r:15,w:{4349:3,4483:4,4500:4,4537:4,}},},"visualiser":{6:{r:12,w:{5381:3,5525:3,6706:3,7588:3,}},7:{r:23,w:{372:4,686:4,1217:3,1229:4,1729:4,2093:4,}},21:{r:47,w:{4471:4,4486:4,4521:4,4539:4,4563:4,5327:3,6720:4,7237:4,7593:4,7985:4,8549:4,8866:4,}},},"visualiseurs":{6:{r:15,w:{465:6,625:6,7619:3,}},21:{r:6,w:{4092:3,5358:3,}},},"vitis":{2:{r:7,w:{237:3,510:4,}},3:{r:3,w:{37:3,}},4:{r:6,w:{375:6,}},5:{r:7,w:{1691:3,1754:4,}},6:{r:22,w:{4284:3,5219:4,6437:3,6468:6,6492:3,6497:3,}},13:{r:84,w:{454:6,460:6,466:6,472:6,478:6,484:6,490:6,496:6,502:6,508:6,514:6,520:6,526:6,532:6,}},},"vitis_":{5:{r:3,w:{1682:3,}},},"vitis_admin":{5:{r:8,w:{1718:4,1858:4,}},13:{r:18,w:{326:6,488:6,518:6,}},},"vitis_admn":{13:{r:6,w:{476:6,}},},"vitis_user":{3:{r:3,w:{35:3,}},5:{r:4,w:{1695:4,}},13:{r:66,w:{458:6,464:6,470:6,482:6,494:6,500:6,506:6,512:6,524:6,530:6,536:6,}},},"vitissections":{13:{r:6,w:{528:6,}},},"vmap":{5:{r:3,w:{263:3,}},6:{r:8223,w:{1881:10,4271:4096,4273:4098,4285:3,4782:4,4789:3,4797:3,4807:3,4875:3,}},13:{r:7,w:{558:7,}},},"vmlib":{17:{r:4,w:{52:4,}},},"voit":{6:{r:3,w:{9175:3,}},21:{r:3,w:{5692:3,}},},"votre":{2:{r:6,w:{306:3,347:3,}},4:{r:3,w:{1121:3,}},11:{r:3,w:{518:3,}},12:{r:3,w:{31:3,}},16:{r:4,w:{137:4,}},17:{r:3,w:{1149:3,}},21:{r:18,w:{1439:3,7687:4,7722:3,8967:4,11405:4,}},},"voulez":{6:{r:3,w:{6476:3,}},},"voulue":{17:{r:4,w:{1585:4,}},},"vous":{2:{r:3,w:{652:3,}},4:{r:7,w:{1508:4,1696:3,}},5:{r:7,w:{908:3,970:4,}},6:{r:39,w:{5529:3,5911:3,5940:3,6367:3,6396:3,6475:3,6718:3,6747:3,8142:3,8247:3,8317:3,8330:3,8378:3,}},7:{r:8,w:{1529:4,2229:4,}},12:{r:3,w:{13:3,}},14:{r:18,w:{458:3,561:3,631:3,644:3,692:3,968:3,}},17:{r:6,w:{429:3,1065:3,}},21:{r:20,w:{1927:3,2744:3,2806:4,7713:4,9059:3,11461:3,}},},"voyant":{7:{r:36,w:{458:4,782:8,1296:8,1798:8,2409:8,}},21:{r:48,w:{6821:4,6835:4,7305:8,7780:8,8083:8,8622:8,9152:8,}},},"vérification":{3:{r:4,w:{202:4,}},13:{r:65545,w:{850:4,865:65538,873:3,}},},"vérifier":{4:{r:7,w:{159:3,582:4,}},5:{r:11,w:{741:4,753:4,821:3,}},6:{r:3,w:{8629:3,}},7:{r:3,w:{270:3,}},14:{r:3,w:{954:3,}},21:{r:20,w:{984:3,2577:4,2589:4,2657:3,6613:3,10246:3,}},},"wab":{8:{r:6,w:{524:3,601:3,}},},"web":{0:{r:6,w:{19:3,131:3,}},1:{r:6,w:{39:6,}},6:{r:4138,w:{4279:3,4723:3,5218:4,5224:4,6426:4098,6436:3,6459:4,6516:3,6542:3,7117:3,7189:4,7427:3,7879:3,}},10:{r:3,w:{36:3,}},11:{r:3,w:{440:3,}},13:{r:1048581,w:{218:1048578,226:3,}},14:{r:3,w:{197:3,}},16:{r:285212690,w:{5:268435456,14:16777219,39:6,57:3,168:3,182:3,}},18:{r:6,w:{22:3,134:3,}},21:{r:16777258,w:{19:3,131:3,354:6,4849:3,4919:3,5161:3,9994:3,11282:16777219,11307:6,11325:3,11436:3,11450:3,}},},"webservices":{13:{r:6,w:{534:6,}},},"wgs":{6:{r:4,w:{4576:4,}},},"wgs84":{6:{r:4,w:{4432:4,}},17:{r:4,w:{1619:4,}},},"where":{6:{r:12,w:{5692:3,6027:3,6060:3,6181:3,}},},"wiki":{6:{r:3,w:{9383:3,}},17:{r:12,w:{1427:6,1430:6,}},21:{r:3,w:{5896:3,}},},"wikipedia":{6:{r:3,w:{9381:3,}},21:{r:3,w:{5894:3,}},},"windows":{1:{r:6,w:{90:6,}},2:{r:11,w:{268:4,318:4,329:3,}},4:{r:6,w:{59:3,141:3,}},6:{r:3,w:{8476:3,}},14:{r:3,w:{793:3,}},21:{r:6,w:{405:6,}},},"withlabels":{6:{r:4,w:{4765:4,}},},"wkt":{6:{r:9,w:{4317:3,4349:3,4665:3,}},7:{r:18,w:{1924:3,1936:4,1940:4,2127:3,2337:4,}},17:{r:7,w:{2289:3,2354:4,}},21:{r:25,w:{8712:3,8724:4,8728:4,8787:4,8904:3,9076:3,9120:4,}},},"wktpolygon":{7:{r:4,w:{2224:4,}},17:{r:3,w:{1522:3,}},},"wms":{17:{r:30,w:{1652:3,1664:3,1713:4,1859:4,1870:4,1875:4,1885:4,1901:4,}},21:{r:8,w:{8956:4,8997:4,}},},"wmslayers":{17:{r:7,w:{1675:3,1887:4,}},},"wmsmap":{17:{r:3,w:{1673:3,}},21:{r:3,w:{9041:3,}},},"wmsname":{17:{r:7,w:{1662:3,1848:4,}},},"wmsservice":{17:{r:7,w:{1666:3,1872:4,}},},"wmts":{17:{r:23,w:{1696:3,1717:4,1925:4,1930:4,1943:4,1961:4,}},21:{r:3,w:{4777:3,}},},"workbench":{0:{r:4,w:{151:4,}},6:{r:3,w:{7936:3,}},7:{r:18,w:{98:4,269:3,529:4,1390:4,1563:3,}},14:{r:3,w:{254:3,}},18:{r:4,w:{150:4,}},21:{r:27,w:{151:4,6456:4,6612:3,7371:4,7829:4,8195:4,8385:4,}},},"workflow":{8:{r:4,w:{509:4,}},},"worksapce":{6:{r:12,w:{9773:6,9815:6,}},21:{r:6,w:{6295:6,}},},"workspace":{6:{r:30,w:{1310:6,1319:3,1333:3,9795:6,9804:6,9825:6,}},21:{r:30,w:{4377:6,4386:3,4395:3,6275:6,6284:6,6305:6,}},},"workspaces":{13:{r:9,w:{249:3,450:6,}},},"wow6432node":{6:{r:3,w:{8485:3,}},14:{r:3,w:{802:3,}},},"wsubform":{6:{r:7,w:{1392:4,1420:3,}},21:{r:23,w:{4438:4,4456:3,4595:4,4639:4,4670:4,4693:4,}},},"wts":{17:{r:6,w:{1409:6,}},},"www":{6:{r:9,w:{4736:4,7434:5,}},17:{r:9,w:{1452:6,1668:3,}},21:{r:8,w:{5168:5,9037:3,}},},"wxs":{17:{r:3,w:{1692:3,}},},"x":{6:{r:8,w:{4474:4,4496:4,}},7:{r:24,w:{537:4,541:4,565:4,568:4,743:4,752:4,}},21:{r:24,w:{7837:4,7841:4,7865:4,7868:4,8046:4,8055:4,}},},"xls":{11:{r:3,w:{629:3,}},21:{r:3,w:{10173:3,}},},"xmax":{17:{r:3,w:{2056:3,}},},"xmaxmaxextent":{17:{r:10,w:{1981:3,2017:4,2071:3,}},},"xmin":{17:{r:3,w:{2053:3,}},},"xminmaxextent":{17:{r:10,w:{1975:3,2015:4,2065:3,}},},"xml":{6:{r:6,w:{8271:3,8273:3,}},14:{r:6,w:{585:3,587:3,}},},"y":{4:{r:4,w:{307:4,}},6:{r:21,w:{4475:8,4498:4,4904:3,9121:3,9296:3,}},7:{r:24,w:{539:4,544:4,573:4,579:4,747:4,758:4,}},21:{r:30,w:{5644:3,5812:3,7839:4,7844:4,7873:4,7879:4,8050:4,8061:4,}},},"ymax":{17:{r:3,w:{2062:3,}},},"ymaxmaxextent":{17:{r:10,w:{1984:3,2018:4,2074:3,}},},"ymin":{17:{r:3,w:{2059:3,}},},"yminmaxextent":{17:{r:10,w:{1978:3,2016:4,2068:3,}},},"yyyy":{2:{r:3,w:{565:3,}},},"zi":{9:{r:3,w:{258:3,}},21:{r:3,w:{9837:3,}},},"zip":{2:{r:3,w:{83:3,}},4:{r:3,w:{226:3,}},6:{r:8,w:{300:3,7691:5,}},7:{r:66,w:{469:3,786:4,793:3,806:6,1164:4,1179:4,1300:4,1307:3,1320:6,1781:4,1802:4,1809:3,1822:6,2054:4,2067:4,2413:4,}},15:{r:9,w:{416:6,441:3,}},17:{r:4,w:{1187:4,}},21:{r:65,w:{6846:3,7170:4,7185:4,7309:4,7428:4,7784:4,8087:4,8094:3,8107:6,8605:4,8626:4,8826:4,8839:4,9156:4,11198:6,11223:3,}},},"zlib1":{15:{r:4,w:{264:4,}},21:{r:4,w:{11050:4,}},},"zone":{7:{r:38,w:{1864:5,1911:3,1933:4,1944:4,2116:3,2147:3,2269:4,2334:8,2394:4,}},17:{r:6,w:{1517:6,}},21:{r:48,w:{4481:4,4498:4,4535:4,8652:3,8699:3,8721:4,8732:4,8893:3,8924:3,9024:6,9073:6,9137:4,}},},"zone_inondable":{6:{r:4,w:{161:4,}},},"zone_inondable_jjmm":{6:{r:5,w:{233:5,}},},"zone_inondableswfs2kml":{6:{r:4,w:{202:4,}},},"zoom":{6:{r:12,w:{4542:4,4549:4,4551:4,}},9:{r:3,w:{349:3,}},17:{r:25,w:{1972:3,2002:4,2004:4,2036:4,2202:4,2420:3,2421:3,}},21:{r:3,w:{9928:3,}},},"|":{6:{r:6,w:{5374:3,6003:3,}},},"|identifiant":{17:{r:8,w:{1194:8,}},},"à":{0:{r:26,w:{35:3,88:3,140:4,229:4,254:4,257:4,273:4,}},1:{r:12,w:{142:6,173:6,}},2:{r:39,w:{42:3,58:3,74:3,193:3,352:3,389:6,602:3,626:3,689:3,700:3,708:3,711:3,}},3:{r:27,w:{51:3,54:3,60:3,82:3,100:3,137:3,144:3,174:3,214:3,}},4:{r:113,w:{70:3,77:3,135:3,253:4,273:4,294:4,503:3,654:3,675:3,698:3,784:3,807:4,811:4,846:4,858:4,865:4,872:4,888:4,993:3,1033:3,1128:3,1185:3,1195:3,1274:3,1298:3,1319:3,1344:3,1351:3,1368:5,1386:4,1420:4,1677:3,1719:3,}},5:{r:101,w:{29:3,42:3,55:4,159:3,192:3,233:3,236:3,283:3,297:3,323:3,330:3,357:3,365:3,371:3,479:3,887:4,1136:3,1149:3,1195:3,1238:3,1405:3,1450:3,1490:3,1567:3,1663:3,1665:3,1748:4,1752:4,1760:3,1776:3,1821:4,1896:3,}},6:{r:70025,w:{121:3,340:3,362:3,414:3,458:3,566:3,647:4096,666:3,703:3,709:3,835:3,853:4,974:4,1167:4,1211:4,1229:4,1396:4,1478:3,1649:3,1831:3,1840:3,2161:3,2297:3,2427:3,3327:3,3467:3,3649:3,3770:3,4444:4,4555:4,4642:3,4705:3,4754:3,4979:3,5021:3,5070:3,5079:3,5140:3,5214:4,5247:3,5409:3,5418:3,5451:3,5516:3,5536:3,5618:3,5620:3,5625:3,5658:3,5685:3,5736:3,5744:3,5774:3,5788:3,5861:3,5918:3,6022:3,6127:3,6174:3,6217:3,6225:3,6255:3,6269:3,6329:3,6374:3,6466:3,6522:3,6568:3,6576:3,6606:3,6620:3,6680:3,6725:3,6879:3,6916:4,6937:4,7053:3,7061:3,7109:3,7149:3,7250:3,7270:3,7319:4,7324:4,7380:4,7430:3,7473:3,7497:3,7544:3,7551:3,7602:3,7670:3,7727:3,7899:3,8038:3,8149:3,8386:3,8395:3,8514:3,8590:3,8770:3,8774:3,8833:65538,8840:3,8844:3,8877:3,8880:3,8906:3,8929:3,8932:3,8999:3,9027:3,9047:3,9062:3,9114:3,9202:3,9245:3,9279:3,9343:3,9348:3,9374:3,9451:3,9458:3,9483:3,9851:4,9879:4,9930:3,}},7:{r:112,w:{48:5,63:5,220:4,226:4,294:4,365:4,555:4,600:4,679:4,795:3,964:4,1038:3,1049:3,1052:3,1091:4,1281:4,1309:3,1634:4,1722:4,1811:3,1860:5,1954:4,1961:4,1976:4,1994:4,2086:4,2137:3,2328:4,2382:4,}},8:{r:36,w:{94:3,278:3,282:3,369:3,380:3,427:3,458:3,492:3,499:3,520:3,547:3,563:3,}},9:{r:18,w:{34:3,75:3,189:3,337:3,359:3,376:3,}},10:{r:3,w:{24:3,}},11:{r:33,w:{97:3,113:3,269:3,273:3,376:3,525:3,579:3,693:3,935:3,1048:3,1060:3,}},12:{r:3,w:{22:3,}},13:{r:64,w:{22:3,45:3,55:3,69:3,90:3,117:3,142:3,163:3,173:3,195:3,209:3,223:3,246:3,626:3,656:3,731:4,796:3,799:3,805:3,824:3,892:3,}},14:{r:24,w:{38:3,217:3,356:3,465:3,700:3,709:3,831:3,915:3,}},15:{r:27,w:{25:4,129:3,189:4,286:7,369:3,384:3,401:3,}},16:{r:16,w:{32:3,92:3,103:3,152:4,172:3,}},17:{r:104,w:{103:3,144:3,216:3,276:3,351:3,358:3,450:3,700:3,776:5,786:3,971:3,978:3,1089:3,1227:5,1241:3,1304:3,1547:4,1642:4,1726:4,1757:4,1793:4,1855:4,1910:4,2009:4,2140:4,2156:4,2203:4,2219:4,2361:4,}},18:{r:26,w:{38:3,91:3,139:4,228:4,253:4,256:4,272:4,}},21:{r:594,w:{35:3,88:3,140:4,229:4,254:4,257:4,273:4,457:6,488:6,533:3,549:3,653:3,702:3,710:3,712:3,731:3,889:3,1051:3,1072:3,1095:3,1181:3,1200:4,1204:4,1239:4,1251:4,1256:4,1275:4,1282:4,1289:4,1305:4,1446:3,1506:3,1516:3,1579:3,1598:3,1616:3,1626:3,1662:3,1853:4,1908:3,1987:3,2000:3,2013:4,2111:3,2133:3,2140:3,2159:3,2166:3,2199:3,2218:3,2226:3,2232:3,2723:4,2968:3,2981:3,3027:3,3228:3,3273:3,3313:3,3390:3,3485:3,3487:3,3613:3,3823:3,3878:3,3920:3,4020:3,4039:3,4130:3,4167:3,4238:3,4256:4,4443:4,4599:4,4841:3,4881:3,4978:3,4998:3,5050:4,5055:4,5111:4,5164:3,5207:3,5231:3,5278:3,5285:3,5297:3,5341:3,5391:3,5395:3,5455:3,5458:3,5524:3,5551:3,5570:3,5585:3,5637:3,5719:3,5761:3,5795:3,5859:3,5864:3,5887:3,5953:3,6349:3,6416:3,6578:4,6584:4,6641:4,6713:4,6982:3,7052:3,7063:3,7066:3,7107:4,7230:4,7509:4,7586:4,7622:3,7655:3,7662:3,7855:4,7904:4,7978:4,8096:3,8235:4,8461:4,8542:4,8648:3,8737:4,8744:4,8765:4,8859:4,8914:3,9067:3,9125:4,9253:3,9443:3,9447:3,9486:3,9536:3,9567:3,9613:3,9654:3,9768:3,9916:3,9938:3,9955:3,9982:3,10142:3,10192:3,10288:3,10298:3,10421:3,10425:3,10653:3,10768:3,10780:3,10915:3,10975:4,11072:7,11151:3,11166:3,11183:3,11300:3,11360:3,11371:3,11420:4,11440:3,11509:3,11532:3,11542:3,11556:3,11577:3,11604:3,11629:3,11650:3,11660:3,11682:3,11696:3,}},},"à-":{2:{r:3,w:{708:3,}},},"à-dire":{6:{r:3,w:{5079:3,}},21:{r:4,w:{1853:4,}},},"échanges":{2:{r:3,w:{231:3,}},},"échelle":{6:{r:10,w:{4478:4,9049:6,}},7:{r:4,w:{2278:4,}},17:{r:8,w:{2216:8,}},21:{r:6,w:{5572:6,}},},"échéant":{6:{r:3,w:{7525:3,}},21:{r:3,w:{5259:3,}},},"écran":{5:{r:12,w:{1151:3,1219:3,1452:3,1519:3,}},6:{r:8,w:{4597:4,4605:4,}},17:{r:20,w:{2144:8,2175:8,2207:4,}},21:{r:15,w:{2983:3,3062:3,3080:3,3275:3,3342:3,}},},"écrase":{6:{r:3,w:{1424:3,}},21:{r:7,w:{3678:4,4460:3,}},},"écrasé":{6:{r:3,w:{1523:3,}},},"écrasées":{6:{r:3,w:{7644:3,}},},"écrasés":{4:{r:4,w:{1480:4,}},6:{r:6,w:{1504:3,7674:3,}},21:{r:3,w:{1714:3,}},},"écrit":{17:{r:6,w:{27:3,2045:3,}},},"éditant":{21:{r:4,w:{4590:4,}},},"éditer":{3:{r:3,w:{71:3,}},6:{r:12,w:{5267:3,5812:3,6286:3,6637:3,}},},"éditeur":{4:{r:4,w:{299:4,}},5:{r:4,w:{892:4,}},21:{r:4,w:{2728:4,}},},"édition":{5:{r:3,w:{124:3,}},6:{r:24680,w:{1220:4,1918:10,1924:10,1931:10,1936:10,2874:4098,2901:3,2984:3,3276:3,3355:3,3594:4098,3617:3,3705:3,3720:4098,3741:3,3825:3,3840:4098,3861:3,3920:3,3937:4098,3960:3,4021:3,4034:4098,4054:3,4131:3,5132:6,}},13:{r:28,w:{595:7,601:7,608:7,613:7,}},21:{r:3,w:{2081:3,}},},"édition-":{6:{r:6,w:{3705:3,3741:3,}},},"édition-multiligne":{6:{r:6,w:{3861:3,3960:3,}},},"édition-url":{6:{r:3,w:{4054:3,}},},"édité":{6:{r:3,w:{1669:3,}},},"éditées":{6:{r:4,w:{990:4,}},},"également":{0:{r:8,w:{171:4,250:4,}},5:{r:8,w:{1743:4,1842:4,}},6:{r:15,w:{6018:3,6168:3,7227:3,7946:3,8902:3,}},7:{r:3,w:{1572:3,}},11:{r:3,w:{183:3,}},14:{r:3,w:{264:3,}},18:{r:8,w:{170:4,249:4,}},21:{r:20,w:{171:4,250:4,3861:3,4957:3,8395:3,10130:3,}},},"élément":{6:{r:12,w:{4363:3,6962:3,6977:3,6982:3,}},},"éléments":{6:{r:12,w:{4422:3,4507:3,5972:3,6958:3,}},9:{r:12,w:{208:6,216:3,249:3,}},21:{r:12,w:{9787:6,9795:3,9828:3,}},},"émise":{6:{r:3,w:{1068:3,}},21:{r:3,w:{4332:3,}},},"émises":{8:{r:3,w:{41:3,}},21:{r:3,w:{9197:3,}},},"équipe":{12:{r:6,w:{17:6,}},21:{r:6,w:{11465:6,}},},"équivalent":{17:{r:4,w:{1633:4,}},},"étant":{4:{r:4,w:{1524:4,}},7:{r:4,w:{1061:4,}},8:{r:3,w:{396:3,}},9:{r:3,w:{229:3,}},21:{r:10,w:{7075:4,9502:3,9808:3,}},},"étape":{2:{r:3,w:{309:3,}},4:{r:6,w:{501:3,1056:3,}},6:{r:6,w:{119:3,390:3,}},21:{r:9,w:{887:3,3611:3,3895:3,}},},"étapes":{2:{r:3,w:{136:3,}},4:{r:3,w:{19:3,}},11:{r:3,w:{821:3,}},21:{r:6,w:{816:3,10542:3,}},},"état":{6:{r:6,w:{1291:6,}},8:{r:6,w:{101:6,}},21:{r:12,w:{4358:6,9260:6,}},},"étendue":{6:{r:12,w:{4440:8,4491:4,}},},"étiquettes":{17:{r:3,w:{725:3,}},},"été":{4:{r:6,w:{1563:3,1707:3,}},6:{r:10,w:{529:3,7621:3,8174:4,}},7:{r:16,w:{411:4,837:4,2326:4,2339:4,}},8:{r:3,w:{244:3,}},9:{r:3,w:{242:3,}},11:{r:3,w:{1074:3,}},14:{r:4,w:{490:4,}},15:{r:4,w:{301:4,}},21:{r:43,w:{1759:3,1939:3,3995:3,4509:4,4656:4,5360:3,8138:4,9065:3,9078:3,9414:3,9821:3,10794:3,11087:4,}},},"éventuelles":{21:{r:3,w:{671:3,}},},"évitant":{11:{r:3,w:{1062:3,}},21:{r:3,w:{10782:3,}},},"ê":{17:{r:4,w:{2026:4,}},},"être":{2:{r:18,w:{53:3,408:6,476:6,600:3,}},4:{r:6,w:{1133:3,1240:3,}},5:{r:13,w:{251:3,355:3,596:3,1107:4,}},6:{r:79,w:{346:3,659:3,664:3,770:3,791:3,1397:4,1793:3,4958:3,5297:3,7228:3,7258:3,7409:3,7828:3,7837:3,7928:3,7948:3,8019:3,8028:3,8109:3,8118:3,8460:3,8521:4,9210:3,9841:4,9885:4,}},7:{r:15,w:{628:4,943:4,1490:3,1670:4,}},8:{r:18,w:{157:6,521:3,540:3,571:3,586:3,}},9:{r:9,w:{49:3,94:3,135:3,}},11:{r:15,w:{229:3,316:3,530:3,711:3,1005:3,}},14:{r:31,w:{139:3,148:3,246:3,266:3,337:3,346:3,425:3,434:3,778:3,838:4,}},15:{r:13,w:{312:4,399:3,420:3,448:3,}},17:{r:18,w:{86:6,799:3,1274:3,1302:3,2044:3,}},21:{r:96,w:{544:3,605:3,634:3,1451:3,2197:3,2216:3,2437:3,2943:4,4123:3,4128:3,4444:4,4757:3,4958:3,4986:3,5143:3,5727:3,6442:3,6961:3,8315:3,9316:6,9628:3,9673:3,9714:3,10382:3,10460:3,10725:3,11098:4,11181:3,11202:3,11230:3,}},},"êtres":{6:{r:3,w:{5998:3,}},},});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/SearchStem_Chunk0.js b/src/module_gtf/module/gtf.doc/admin/Data/SearchStem_Chunk0.js
new file mode 100755
index 0000000000000000000000000000000000000000..0082de56f1726810990c2afb2b5327e39bd2deda
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/SearchStem_Chunk0.js
@@ -0,0 +1 @@
+define({"$":{"$":[7,17,21],},"$acommun":{"$acommunes":[17],},"$acommuneesi":{"$acommuneesi":[17],},"$aextent":{"$aextent":[17],},"$afeatur":{"$afeature":[17],},"$alay":{"$alayers":[17],},"$atool":{"$atools":[17],},"$atyp":{"$atype":[17],},"$avalu":{"$avalues":[17],},"$fme_hom":{"$fme_home":[6,14],},"$iheight":{"$iheight":[17],},"$iwidth":{"$iwidth":[17],},"$oform":{"$oform":[17,21],},"$oform-":{"$oform-":[17,21],},"$properti":{"$properties":[6,11,21],},"$sidcommun":{"$sidcommune":[17],},"$sname":{"$sname":[17],},"$sproject":{"$sprojection":[17],},"$stitl":{"$stitle":[17],},"$thi":{"$this":[6,17,21],},"$this-":{"$this-":[6,17,21],},"$user":{"$user":[6,21],},"+33":{"+33":[12,21],},"+gtf_":{"+gtf_":[5,21],},"+gtf_nomdomain":{"+gtf_nomdomaine":[5,21],},"+superus":{"+superusers":[5,21],},"0":{"0":[2,4,5,6,12,13,14,15,17,21],},"0-4":{"0-4":[21],},"0-9":{"0-9":[21],},"00":{"00":[6,11,14,21],},"000":{"000":[7,21],},"00000000":{"00000000":[6,14],},"01":{"01":[11,12,21],},"02":{"02":[21],},"0hpyzqnax0fjrsej4ss266c7":{"0hpyzqnax0fjrsej4ss266c7":[17],},"1":{"1":[4,5,6,7,13,14,15,17,18,19,20,21],},"10":{"10":[3,13,17,21],},"100":{"100":[0,11,17,18,21],},"10h12":{"10h12":[13,21],},"11":{"11":[12,15,21],},"12":{"12":[13,16,21],},"127":{"127":[4,5,15,21],},"128":{"128":[4,5,15,21],},"13":{"13":[21],},"14":{"14":[17,21],},"1420898437502":{"1420898437502":[17],},"15":{"15":[13,17,21],},"1533":{"1533":[15,21],},"169":{"169":[17],},"1757812500002":{"1757812500002":[17],},"19":{"19":[7,21],},"2":{"2":[2,6,7,9,11,13,14,15,16,17,21],},"2-5":{"2-5":[13,21],},"20":{"20":[6],},"200":{"200":[7,17,21],},"2012":{"2012":[21],},"2013":{"2013":[4,21],},"2014040210410540232":{"2014040210410540232":[15,21],},"2015":{"2015":[4,6,14],},"2016":{"2016":[4,6,13,14,19,20],},"2017":{"2017":[22],},"2080078125002":{"2080078125002":[17],},"22":{"22":[13,21],},"22h15":{"22h15":[13,21],},"23":{"23":[13,21],},"27":{"27":[12,21],},"28":{"28":[17],},"3":{"3":[2,3,4,5,6,7,11,13,14,15,16,17,21],},"30":{"30":[17],},"300":{"300":[17],},"31":{"31":[13,21],},"32":{"32":[4,5,6,14,15,21],},"32b":{"32b":[4,21],},"340003":{"340003":[6],},"38":{"38":[12,21],},"3857":{"3857":[17],},"4":{"4":[2,6,7,11,12,13,14,15,16,21],},"40":{"40":[17],},"400":{"400":[17,21],},"41":{"41":[17],},"42":{"42":[13,17,21],},"43":{"43":[17,21],},"4326":{"4326":[17],},"44":{"44":[21],},"462158203125":{"462158203125":[17],},"4h42":{"4h42":[13,21],},"5":{"5":[2,4,6,13,14,15,21],},"50":{"50":[17],},"500":{"500":[7,21],},"50000":{"50000":[7,21],},"5493164062502":{"5493164062502":[17],},"5615234375":{"5615234375":[17],},"57":{"57":[17],},"59":{"59":[13,21],},"6":{"6":[6,13,14,21],},"600":{"600":[17,21],},"64":{"64":[4,6,14,21],},"65":{"65":[12,21],},"68":{"68":[12,21],},"7":{"7":[21],},"70":{"70":[21],},"700":{"700":[7,21],},"7031250000002":{"7031250000002":[17],},"75001|75002":{"75001|75002":[5],},"78125":{"78125":[17],},"8":{"8":[13,14,15,17,21],},"81":{"81":[12,21],},"813720703125":{"813720703125":[17],},"82":{"82":[21],},"84":{"84":[6],},"9":{"9":[2,6,13,14,21],},"900913":{"900913":[17],},"912841796875":{"912841796875":[17],},"93":{"93":[6],},"98":{"98":[12],},"_":{"_":[4,21],},"_admin":{"_admin":[3],},"_gtf_application_web":{"_gtf_application_web":[2],},"a":{"a":[3,4,5,6,7,8,9,10,14,17,21],},"a-b":{"a-bing":[17],},"a-bing-map":{"a-bing-maps":[17],},"a-bing-maps-kei":{"a-bing-maps-key":[17],},"aaaa":{"aaaa":[6,17],},"abonn":{"abonner":[0,11,15,18,21],"abonnement":[6,7,8,21],"abonnements":[6,8,21],},"abord":{"abord":[17],},"abréviat":{"abréviation":[13,21],},"accepté":{"acceptées":[5],},"access":{"accessible":[6,14,21],},"accompagné":{"accompagné":[17],},"accroîtr":{"accroître":[6],},"accusé":{"accusé":[4,11,21],},"accè":{"accès":[1,5,6,11,21],},"accèd":{"accède":[5],},"accéder":{"accéder":[2,3,4,6,7,10,13,21],},"actif":{"actifs":[8,21],},"action":{"actions":[8,21],},"activ":{"active":[0,4,5,6,18,21],"activation":[4,21],"activer":[4,5,11,21],},"activité":{"activité":[4,9,21],},"actuel":{"actuellement":[16,21],},"ad":{"ad":[5,21],},"adapté":{"adapté":[0,18,21],},"admin":{"admin":[3,4,6,11,13,15,21],},"admin-export":{"admin-export":[3,13],},"admin-import":{"admin-import":[3,4,13,21],},"admin_export":{"admin_export":[6],},"admin_import":{"admin_import":[4,21],},"administr":{"administration":[0,3,4,5,6,8,18,21],},"administrateur":{"administrateur":[0,2,3,4,5,6,8,9,10,11,15,18,21],"administrateurs":[9,21],},"administratif":{"administratif":[4,11],},"adress":{"adresse":[2,4,5,6,11,21],"adresses":[5,6,16,21],},"aerial":{"aerial":[6,17],},"afeatur":{"afeature":[17],},"affect":{"affectant":[6,21],},"affich":{"afficher":[2,6,7,9,14,17,21],"affiche":[5,17,21],"affichant":[6],},"affichag":{"affichage":[6,9,17,21],},"afficheen":{"afficheen":[21],},"affiché":{"affichés":[3,6,7,9,21],"affiché":[6,21],"affichées":[6],"affichée":[6],},"affilié":{"affiliés":[4,21],},"affin":{"affiner":[6],"affine":[9,21],},"afield":{"afields":[6,21],},"afin":{"afin":[2,5,17,21],},"ag":{"age":[11,21],},"agiss":{"agisse":[6,21],},"agit":{"agit":[6,21],},"aid":{"aide":[4,5,21],},"aient":{"aient":[21],},"aiid":{"aiide":[16,21],},"ailleur":{"ailleurs":[0,18,21],},"ainsi":{"ainsi":[2,4,5,6,7,8,11,13,14,15,21],},"ait":{"ait":[4,6,21],},"ajout":{"ajouter":[4,5,6,7,17,21],"ajout":[4,5,6,7,17,21],"ajoutant":[6,21],"ajoute":[13],},"ajouté":{"ajoutées":[6],"ajouté":[17],},"ajust":{"ajuster":[7],},"alert":{"alertes":[0,21],"alerte":[2],},"alia":{"alias":[5,6,7,11,21],},"alistbool":{"alistbool":[17],},"all":{"all":[5,21],},"alor":{"alors":[2,4,5,6,11,13,14,15,21],},"altern":{"alternative":[7,21],},"amélior":{"améliore":[11,21],},"an":{"ans":[17,21],},"analys":{"analyse":[9,21],},"ancienn":{"anciennes":[14],},"ancienneté":{"ancienneté":[10,11,21],},"annex":{"annexes":[13,21],},"annuair":{"annuaire":[0,4,5,18,21],},"annuel":{"annuelle":[9,21],},"anné":{"année":[9,21],},"antérieur":{"antérieure":[13],},"aobject":{"aobjects":[6,21],},"ap":{"ape":[21],},"apach":{"apache":[1,2,10,21],},"apache2":{"apache2":[11,21],},"apacheport":{"apacheport":[2],},"apacheservic":{"apacheservice":[2],},"aperçu":{"aperçu":[6,17],},"api":{"api":[0,16,17,18,21],},"api_formulair":{"api_formulaire":[17],},"appadmin":{"appadmin":[2,3],},"appar":{"apparents":[6],"apparent":[6],},"apparaiss":{"apparaissent":[6,7,21],},"apparait":{"apparait":[21],},"apparaît":{"apparaît":[5,21],},"apparaîtr":{"apparaître":[6],},"apparten":{"appartenance":[5,21],},"appartenir":{"appartenir":[5,21],},"appdata":{"appdata":[6,14],},"appel":{"appel":[0,6,16,17,18,21],"appelant":[11,21],"appelle":[21],},"applic":{"application":[0,2,5,8,10,11,15,16,18,21],"applications":[1,21],"applicable":[16,21],},"appliqu":{"appliquer":[4,21],},"apppswd":{"apppswd":[2],},"appuy":{"appuyer":[6],},"aprè":{"après":[2,3,4,5,6,7,8,11,13,15,21],},"arboresc":{"arborescences":[0,21],"arborescence":[5,7,17,21],},"arbr":{"arbre":[5,21],},"architectur":{"architecture":[1],},"archiv":{"archive":[2,16,21],},"areafield":{"areafield":[17],},"argument":{"arguments":[6],},"arrai":{"array":[17],},"arret":{"arrete":[17],},"arrièr":{"arrière":[6],},"arrêté":{"arrêté":[17],},"aspx":{"aspx":[17],},"associ":{"associer":[3,4,5,6,7,14,21],"association":[5,21],"associe":[5,6,21],},"associé":{"associé":[4,5,6,7,11,21],"associés":[6,8,21],"associées":[6,21],"associée":[16,21],},"assur":{"assurer":[0,4,6,7,11,14,15,18,21],"assurant":[1,5,6,21],"assure":[2,21],},"assurez":{"assurez":[4,14,21],},"assurez-v":{"assurez-vous":[4,21],},"asynchron":{"asynchrone":[0,18,21],},"atool":{"atools":[17],},"attendr":{"attendre":[0,2,6,18,21],},"attent":{"attention":[2,5,17,21],"attente":[3,7,8,21],},"attribu":{"attribuant":[0,18,21],"attribuer":[3,4,5,6,7,14,21],"attribue":[21],},"attribut":{"attribution":[0,3,5,6,18,21],"attribut":[4,6,21],"attributs":[6],"attributes":[21],},"attributé":{"attributé":[21],},"attribué":{"attribué":[4,21],"attribués":[5,21],},"au":{"au":[1,3,4,5,6,7,9,11,13,14,15,17,21],},"aucun":{"aucun":[6,21],"aucune":[7],},"augment":{"augmenter":[9,11,21],},"auprè":{"auprès":[21],},"auquel":{"auquel":[6],},"aura":{"aura":[6,21],},"aurez":{"aurez":[21],},"aussi":{"aussi":[17],},"auteur":{"auteur":[6,14],},"authentif":{"authentification":[11],},"authentifi":{"authentifie":[5,21],},"authentifié":{"authentifiés":[5,21],"authentifié":[6,21],},"auto":{"auto":[4,21],},"automatiqu":{"automatiquement":[2,4,6,7,15,17,21],"automatique":[4,21],},"automatis":{"automatiser":[0,18,21],},"automatqu":{"automatquement":[14],},"autoris":{"autoriser":[4,5,11,21],"autorisant":[5,21],},"autorisé":{"autorisée":[8,21],},"autr":{"autres":[3,5,6,9,21],"autre":[6,11,21],},"aux":{"aux":[0,1,4,5,6,7,8,9,11,13,14,16,18,21],},"avanc":{"avance":[4],},"avancé":{"avancées":[6],"avancée":[6,21],},"avant":{"avant":[5,6,7,11,21],},"avec":{"avec":[0,2,3,4,5,6,7,11,13,14,15,16,17,18,21],},"avertit":{"avertit":[0,18,21],},"avez":{"avez":[2],},"avoir":{"avoir":[3,5,6,7,8,9,11,13,15,21],},"ayant":{"ayant":[5,6,8,13,21],},"ayant-droit":{"ayant-droit":[6],},"b12674_betax64":{"b12674_betax64":[11,21],},"b13499":{"b13499":[21],},"b16494":{"b16494":[4],},"b16494-32b":{"b16494-32b":[4],},"ba":{"bas":[6,17,21],},"backup":{"backup":[15,21],},"baer":{"baer":[17],},"bak":{"bak":[6,21],},"balis":{"balises":[6,17,21],"balise":[6,21],},"bar":{"bar":[17],},"barr":{"barre":[3,9,21],},"base":{"base":[1,2,4,5,6,11,13,15,17,21],"bases":[6,14],},"bat":{"bat":[15,21],},"bd":{"bd":[17],},"bdd":{"bdd":[2],},"besoin":{"besoins":[0,18,21],"besoin":[5,21],},"bhyb":{"bhyb":[17],},"bien":{"bien":[0,4,6,7,13,14,18,21],},"bienvenu":{"bienvenue":[0,18,21],},"bin":{"bin":[17],},"bing":{"bing":[6,7,13,17],},"bing-kei":{"bing-key":[17],},"bing-map":{"bing-maps":[17],},"bing-maps-kei":{"bing-maps-key":[17],},"bingmapsport":{"bingmapsportal":[6],},"bit":{"bits":[4,6,14,21],},"bleu":{"bleu":[6],},"bloc":{"bloc":[4,21],},"bon":{"bon":[4,6,7,21],},"bonn":{"bonne":[6,8],},"booléen":{"booléen":[17],},"bord":{"bord":[15,21],},"bouton":{"bouton":[4,5,6,7,8,11,13,17,21],"boutons":[6,8,21],},"boît":{"boîte":[6],},"broad":{"broad":[17],},"btn_search":{"btn_search":[17],},"build":{"build":[4,11,21],"builds":[6,14],},"builder":{"builder":[8],},"bull":{"bulles":[9,21],},"buttonfield":{"buttonfield":[17],},"bâtiment":{"bâtiments":[6],},"c":{"c":[0,2,4,11,15,17,18,21],},"c\u0027est":{"c\u0027est":[0,3,6,13,15,16,18,21],},"c\u0027est-à":{"c\u0027est-à":[6,21],},"c\u0027est-à-dir":{"c\u0027est-à-dire":[6,21],},"ca":{"cas":[6,8,9,13,14,15,17,21],},"caché":{"caché":[6,13,17],},"cadastr":{"cadastre":[5],},"cadr":{"cadre":[5],},"calendarfield":{"calendarfield":[17],},"calendri":{"calendrier":[17,21],},"canton":{"cantons":[7,21],},"capabl":{"capable":[1,21],},"capacité":{"capacité":[4,21],},"captcha":{"captcha":[6,21],},"car":{"car":[7,21],},"caractèr":{"caractère":[6],"caractères":[6,7,11,14,21],},"cart":{"cartes":[0,6,17,21],"carte":[6,7,13,17,21],},"cartographiqu":{"cartographiques":[6,21],"cartographique":[6,17,21],},"cascad":{"cascade":[6,17],},"cascadelistfield":{"cascadelistfield":[17],},"cascadetextfield":{"cascadetextfield":[17],},"case":{"case":[6,14],},"cassini":{"cassini":[17],},"catalogag":{"catalogage":[6,21],},"categori":{"category":[6,21],"categories":[13],},"catgori":{"catgory":[6,21],},"catégori":{"catégorie":[6,7,21],"catégories":[6,21],},"cc":{"cc":[6],},"cci":{"cci":[6],},"ce":{"ce":[0,2,3,4,5,6,7,11,13,14,15,16,17,18,21],"ces":[2,4,6,7,8,9,11,15,17,21],},"cela":{"cela":[4,5,6,8,11,17,21],},"cell":{"celles":[6,14],"celle":[7,21],},"celle-ci":{"celle-ci":[7,21],},"celui":{"celui":[15,21],},"centr":{"centre":[6,7],},"centrag":{"centrage":[6,17],},"central":{"centrale":[6],},"centralisé":{"centralisée":[5,21],},"certain":{"certains":[4,6,17,21],"certaines":[8,17,21],},"certificat":{"certificat":[2],},"cet":{"cet":[4,7,17,21],},"cett":{"cette":[0,2,3,4,5,6,11,17,18,21],},"ceux":{"ceux":[5,6,8,21],},"cf":{"cf":[6],},"cgi":{"cgi":[17],},"cgi-bin":{"cgi-bin":[17],},"cgibin":{"cgibin":[21],},"chacun":{"chacun":[5],"chacune":[8],},"champ":{"champ":[4,5,6,7,8,11,13,17,21],"champs":[4,6,17,21],},"champcach":{"champcache":[17],},"champcalendri":{"champcalendrier":[17],},"champupload":{"champupload":[17],},"champ|nom":{"champ|nom":[17],},"changement":{"changement":[17],},"changer":{"changer":[17],},"changé":{"changés":[5,21],},"chapitr":{"chapitre":[15,21],},"chaqu":{"chaque":[4,5,6,7,8,13,14,17,21],},"charg":{"charge":[1,2,4,5,6,21],},"chargement":{"chargement":[6,7,17,21],},"chargent":{"chargent":[0,18,21],},"charger":{"charger":[4,6,7,17,21],},"chargé":{"chargé":[4,6,7,21],"chargés":[6,7,11,21],"chargées":[6,11,21],"chargée":[7],},"charriot":{"charriot":[6],},"chaîn":{"chaîne":[4,6,7,11,21],},"chemin":{"chemin":[4,6,7,11,14,15,17,21],"chemins":[6,14],},"chemion":{"chemion":[21],},"chercher":{"chercher":[7,21],},"choisi":{"choisi":[6,9,21],"choisie":[6,21],},"choisir":{"choisir":[4,6,7,8,9,13,14,17,21],},"choisiss":{"choisissant":[7,21],},"choisit":{"choisit":[6,7,9,11,21],},"choix":{"choix":[6,7,17,21],},"ci":{"ci":[6,7,9,13,16,17,21],},"ci-dess":{"ci-dessous":[6,9,13,17,21],},"ci-dessu":{"ci-dessus":[6,16,21],"ci-dessu":[21],},"circonst":{"circonstances":[6,21],},"circul":{"circulation":[17],},"class":{"classe":[6,8,9,17,21],"classes":[8],"class":[17,21],},"classiqu":{"classique":[6,17],"classiques":[6,14],},"claus":{"clause":[6],},"clef":{"clef":[14],},"clic":{"clic":[4,6,7,9,14,21],},"client":{"cliente":[0,18,21],"client":[0,1,2,4,11,16,18,21],},"cliqu":{"clique":[6,8,21],},"cliquant":{"cliquant":[5,6,7,8,9,21],},"cliquer":{"cliquer":[4,5,6,7,11,21],},"cliqué":{"cliqué":[5,6,21],},"clé":{"clés":[4,6,14,21],"clé":[4,6,7,13,14,17,21],},"cmd":{"cmd":[2],},"cn32":{"cn32":[6,14],},"cn64":{"cn64":[6,14],},"co":{"co":[21],},"cochant":{"cochant":[6],},"cocher":{"cocher":[5,6,7,21],},"cochez":{"cochez":[14],},"code":{"codes":[2,21],"code":[2,6,8,13,17,21],},"coller":{"coller":[21],},"colonn":{"colonne":[6,14],},"com":{"com":[2,4,5,6,8,12,15,16,17,21],},"comm":{"comme":[6,7,16,21],},"command":{"commande":[2,4,6,11,14,21],"commandes":[4,6],},"commenc":{"commencer":[21],},"commerci":{"commercial":[12],},"commun":{"communes":[5,7,17,21],"commune":[6,17],},"commune2":{"commune2":[17],},"comparaison":{"comparaison":[6],},"compilé":{"compilé":[2],},"complet":{"complet":[11,21],},"complémentair":{"complémentaires":[6,7,15,21],"complémentaire":[7,12,21],},"compléter":{"compléter":[7],},"complété":{"complétée":[21],},"comport":{"comporte":[2,5,6,21],"comporter":[5,21],},"compos":{"compose":[0,18,21],"composants":[0,1,2,6,11,21],"composer":[6],"composant":[6,17,21],},"composé":{"composé":[6],},"comprendr":{"comprendre":[8],},"compress":{"compresser":[7,21],"compression":[11,21],"compressibles":[11,21],},"compressé":{"compressé":[6,15,21],},"compt":{"compte":[2,3,4,5,6,11,13,14,21],},"concerné":{"concerné":[6,14],},"condit":{"conditions":[6,13,21],},"conf":{"conf":[4,5,11,21],},"configur":{"configuration":[2,3,4,5,6,8,11,15,21],"configure":[5],"configurer":[6,11,21],"configurables":[11],},"configuré":{"configuré":[3],"configurée":[7],},"connaiss":{"connaissance":[8,21],},"connaitr":{"connaitre":[21],},"connaîtr":{"connaître":[5],},"connect":{"connecte":[2,21],"connecter":[2,3,4,5,7,21],"connections":[4,5,15,21],"connection":[6,14],},"connecté":{"connecté":[6,13],},"connes":{"connesions":[6,14],},"connexion":{"connexion":[2,3,4,5,6,11,14,16,17,21],"connexions":[4,6,11,14,21],},"connu":{"connu":[5,21],},"conseillé":{"conseillé":[4,21],},"conserv":{"conserver":[6,15,21],},"conservé":{"conservée":[6],"conservés":[6,13,15,21],},"considèr":{"considèrant":[21],},"consist":{"consiste":[4,6,21],},"consol":{"console":[2],},"constat":{"constater":[7,21],},"constitué":{"constituée":[1,21],},"consult":{"consultation":[0,10,11,18,21],"consultant":[4,21],"consulter":[4,6,7,8,11,21],"consultables":[8,11],},"contact":{"contacter":[12,21],},"contactez":{"contactez":[21],},"conten":{"contenant":[4,6,7,14,17,21],},"contenir":{"contenir":[6,14],},"content":{"content":[17],},"contenu":{"contenu":[2,6,11,17,21],"contenus":[6,11,13,21],},"context":{"contexte":[6,21],},"contextuel":{"contextuel":[6,14],},"contient":{"contient":[4,6,7,14,17,21],},"continu":{"continuer":[0,18,21],},"contour":{"contours":[7],},"contourn":{"contourner":[6,14],},"contrab":{"contrab":[6,21],},"contraiement":{"contraiement":[14],},"contrair":{"contrairement":[6],},"contrôl":{"contrôle":[0,6,7,8,13,18,21],"contrôles":[6,7,13],},"contrôler":{"contrôler":[6],},"convers":{"conversion":[0,7,9,18,21],},"conversion_dept_shp2mapinfo":{"conversion_dept_shp2mapinfo":[7],},"conversion_dept_shp2mif":{"conversion_dept_shp2mif":[7],},"converti":{"converti":[6],},"convertir":{"convertir":[7,21],},"convient":{"convient":[7,21],},"convivialité":{"convivialité":[21],},"conçu":{"conçus":[0,18,21],"conçu":[21],},"coordon":{"coordonates":[17],},"coordonné":{"coordonnées":[6,7,17,21],},"copi":{"copie":[2,6],"copies":[6,21],},"copier":{"copier":[4,6,15,21],},"copié":{"copiés":[6,14,15,21],},"corp":{"corps":[6,8],},"correct":{"correctement":[2,3,7,21],"correct":[6,14],},"correspond":{"correspond":[5,6,7,17,21],"correspondent":[5,6],"correspondant":[6,7,21],},"correspondant":{"correspondantes":[1,21],},"correspondr":{"correspondre":[7,21],},"corrigé":{"corrigé":[15],},"couch":{"couches":[7,17,21],"couche":[17],},"couleur":{"couleur":[6,8,13,17,21],},"cour":{"cours":[5,6,8,11,21],},"courant":{"courant":[3,5],},"court":{"courts":[7,21],"court":[17],},"creat":{"create":[17],},"create-a":{"create-a":[17],},"create-a-b":{"create-a-bing":[17],},"create-a-bing-map":{"create-a-bing-maps":[17],},"create-a-bing-maps-kei":{"create-a-bing-maps-key":[17],},"creus":{"creuses":[11],},"critèr":{"critères":[5,21],},"cron":{"cron":[4,13,21],},"crontab":{"crontab":[6,21],},"cryptag":{"cryptage":[2],},"crypté":{"crypté":[6,14],},"création":{"création":[0,2,4,5,6,7,8,13,14,18,21],},"crée":{"crée":[4,5,6,17,21],},"créer":{"créer":[2,4,5,6,7,11,13,14,17,21],},"créé":{"créé":[2,4,5,6,7,14,16,21],"créés":[5,6,13,21],},"créée":{"créée":[4,6,7,14,21],"créées":[6,8,14,21],},"curseur":{"curseur":[6,13,17],},"custom":{"custom":[6,14],},"d":{"d":[0,1,2,4,5,6,7,8,9,10,11,15,16,17,18,21],},"d\u0027abeilhan":{"d\u0027abeilhan":[6],},"d\u0027abonn":{"d\u0027abonnement":[13,21],},"d\u0027accueil":{"d\u0027accueil":[21],},"d\u0027accè":{"d\u0027accès":[2,6,21],},"d\u0027accéder":{"d\u0027accéder":[6,21],},"d\u0027activ":{"d\u0027activer":[11,21],},"d\u0027administr":{"d\u0027administration":[3,21],},"d\u0027adminstr":{"d\u0027adminstration":[21],},"d\u0027affich":{"d\u0027afficher":[6],},"d\u0027affichag":{"d\u0027affichage":[4,6,7,17],},"d\u0027affili":{"d\u0027affiliation":[6],},"d\u0027affin":{"d\u0027affiner":[6],},"d\u0027agenc":{"d\u0027agencer":[6],},"d\u0027ajout":{"d\u0027ajout":[5,6,21],"d\u0027ajouter":[17],},"d\u0027alert":{"d\u0027alertes":[18],},"d\u0027amélior":{"d\u0027améliorer":[6],},"d\u0027ancienn":{"d\u0027anciennes":[6],},"d\u0027assist":{"d\u0027assistance":[12],},"d\u0027associ":{"d\u0027associer":[5,6,21],},"d\u0027assur":{"d\u0027assurer":[6,11,21],},"d\u0027attent":{"d\u0027attente":[4,21],},"d\u0027auteur":{"d\u0027auteur":[6],},"d\u0027autr":{"d\u0027autres":[4,6,14,21],},"d\u0027e":{"d\u0027e":[6,11,21],},"d\u0027e-":{"d\u0027e-":[6],},"d\u0027e-mail":{"d\u0027e-mail":[6,11,21],},"d\u0027email":{"d\u0027email":[6,21],},"d\u0027en":{"d\u0027en":[6],},"d\u0027enregistr":{"d\u0027enregistrer":[6,21],},"d\u0027environn":{"d\u0027environnement":[6,14],},"d\u0027envoi":{"d\u0027envoi":[6],"d\u0027envoie":[21],},"d\u0027envoy":{"d\u0027envoyer":[8],},"d\u0027erreur":{"d\u0027erreur":[8],},"d\u0027espac":{"d\u0027espace":[6],},"d\u0027exclur":{"d\u0027exclure":[21],},"d\u0027exempl":{"d\u0027exemples":[4],},"d\u0027expir":{"d\u0027expiration":[11,21],},"d\u0027exploit":{"d\u0027exploiter":[0,6,7,18,21],"d\u0027exploitation":[11,21],},"d\u0027export":{"d\u0027export":[4,21],"d\u0027exporter":[6,13,14],},"d\u0027express":{"d\u0027expression":[6],},"d\u0027extract":{"d\u0027extraction":[7,17,21],},"d\u0027exécut":{"d\u0027exécuter":[6],},"d\u0027imag":{"d\u0027image":[17],},"d\u0027import":{"d\u0027import":[6,13,21],"d\u0027importer":[6,14],},"d\u0027initialis":{"d\u0027initialisation":[4],},"d\u0027insert":{"d\u0027insertion":[17],},"d\u0027insertion|list":{"d\u0027insertion|listes":[17],},"d\u0027insertion|nom":{"d\u0027insertion|nom":[17],},"d\u0027instal":{"d\u0027installation":[2,3,4,6,11,15,20,21,22],},"d\u0027insérer":{"d\u0027insérer":[4,6],},"d\u0027intégrer":{"d\u0027intégrer":[6,17,21],},"d\u0027onglet":{"d\u0027onglets":[6],},"d\u0027origin":{"d\u0027origine":[6,14],},"d\u0027un":{"d\u0027un":[0,2,4,6,7,8,11,14,15,17,18,21],},"d\u0027une":{"d\u0027une":[0,2,6,8,13,16,17,21],},"d\u0027upload":{"d\u0027uploader":[17],},"d\u0027utilis":{"d\u0027utiliser":[6,21],"d\u0027utilisation":[6,21],},"d\u0027utilisateur":{"d\u0027utilisateur":[5],"d\u0027utilisateurs":[5,6,21],},"d\u0027échang":{"d\u0027échange":[13],},"d\u0027échec":{"d\u0027échec":[8],},"d\u0027écritur":{"d\u0027écriture":[6,11],},"d\u0027éditer":{"d\u0027éditer":[5,11,21],},"d\u0027évaluat":{"d\u0027évaluation":[2,21],},"d\u0027être":{"d\u0027être":[6],},"dan":{"dans":[0,2,3,4,5,6,7,8,9,11,13,14,15,16,17,18,21],},"data":{"data":[4,5,6,7,14,21],},"datasourc":{"datasources":[6,14],},"date":{"date":[4,6,8,9,13,17,21],"dates":[4,8,21],},"date_renouv":{"date_renouv":[17],},"db":{"db":[6,14],},"dblogin":{"dblogin":[2],},"dbpswd":{"dbpswd":[2],},"de":{"de":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],"des":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,21],},"del":{"del":[17],},"delal":{"delall":[17],},"delà":{"delà":[11],},"demand":{"demandes":[0,1,2,4,8,11,18,21],"demande":[2,3,4,6,7,8,11,21],"demander":[4,7,21],},"demandeur":{"demandeur":[6,21],},"demandé":{"demandés":[8,21],},"depart":{"departements":[7,17,21],},"departements-sourc":{"departements-source":[21],},"departements-source-fix":{"departements-source-fixe":[21],},"dept":{"depts":[7],},"depui":{"depuis":[4,5,6,7,13,21],},"dernier":{"dernier":[4,6,7,11,13,14,21],"derniers":[6],},"dernièr":{"dernière":[3,4,6,21],"dernières":[6,8,9,21],},"descript":{"description":[1,2,6,7,17,21],},"descriptif":{"descriptif":[6,21],},"desquel":{"desquelles":[5,21],},"dessin":{"dessin":[6],"dessiner":[6,7,17],"dessinant":[7],},"dessou":{"dessous":[6,9,13,17,21],},"dessu":{"dessus":[6,16,21],"dessu":[21],},"destdaraset_mapinfo":{"destdaraset_mapinfo":[7],},"destdataset_mapinfo":{"destdataset_mapinfo":[7,21],},"destin":{"destination":[6,7,21],},"destinatair":{"destinataires":[6,21],"destinataire":[6],},"destiné":{"destiné":[6,21],"destinés":[6,8],},"deux":{"deux":[4,5,6,7,8,9,11,14,15,17,21],},"deuxièm":{"deuxième":[6,17],},"devant":{"devant":[6,9,21],},"devez":{"devez":[5,17,21],},"devraient":{"devraient":[7,21],},"devriez":{"devriez":[5,21],},"devront":{"devront":[5,21],},"diagramm":{"diagramme":[16,21],},"difficulté":{"difficultés":[21],},"diffèr":{"diffère":[5,6,21],},"différent":{"différents":[4,6,8,13,21],"différent":[6,21],},"dimanch":{"dimanche":[13,21],},"dir":{"dir":[2],},"dir_export":{"dir_export":[11,21],},"dire":{"dire":[2,3,6,13,21],},"direct":{"directement":[4,5,6,7,9,11,13,21],},"directori":{"directory":[0,4,5,6,11,14,18,21],},"dispon":{"disponible":[2,4,6,7,8,11,15,16,21],"disponibles":[4,5,6,17,21],},"disponibilité":{"disponibilité":[0,6,18,21],},"dispos":{"dispose":[0,3,6,8,11,14,18,21],"disposant":[5,6,13,14,21],},"disposit":{"disposition":[0,4,6,7,14,18,21],},"disqu":{"disque":[11,21],},"distinct":{"distinct":[6],},"distingu":{"distinguer":[5,6,21],},"distribut":{"distribution":[4,21],},"div":{"div":[17],},"dll":{"dll":[15,21],},"dn":{"dn":[5,21],},"document":{"documentation":[2,5,16,17,21],"documents":[6,14],"document":[17],},"doit":{"doit":[2,4,5,6,7,8,11,13,14,15,16,17,21],},"doivent":{"doivent":[6,7,11,14,15,17,21],},"domain":{"domaine":[5,21],"domaines":[5,21],"domains":[13],},"donc":{"donc":[2,6,7,9,13,14,15,21],},"donn":{"donne":[17,21],},"donner":{"donner":[6,7,11,21],},"donnné":{"donnnées":[4],},"donné":{"données":[0,1,2,4,5,6,7,11,13,14,15,17,18,21],"donné":[6,21],"donnée":[7],},"dont":{"dont":[4,6,7,11,13,21],},"dorénav":{"dorénavant":[6,14],},"dossier":{"dossier":[5,7,21],"dossiers":[17],},"doubl":{"double":[6,14],},"doublelistfield":{"doublelistfield":[17],},"doublé":{"doublés":[6,14],},"download":{"download":[2,4,8,15,16,21],},"dpt":{"dpts":[7],"dpt":[21],},"dpt2":{"dpt2":[7],},"droit":{"droits":[0,1,2,5,6,7,11,18,21],"droite":[4,5,6,17,21],"droit":[6,7,9,21],},"dsubform":{"dsubform":[6,21],},"du":{"du":[0,1,2,3,4,5,6,7,8,9,11,13,14,15,17,18,21],},"dufichi":{"dufichier":[21],},"dupliqu":{"dupliquer":[7,21],"duplique":[21],},"duré":{"durée":[6,9,21],},"dword":{"dword":[6,14],},"dynamiqu":{"dynamique":[6],},"dè":{"dès":[6,21],},"début":{"début":[17],},"décider":{"décider":[6],},"décimal":{"décimal":[6,13],},"déclarat":{"déclaration":[4,21],},"déclare":{"déclare":[21],},"déclarer":{"déclarer":[4,21],},"déclaré":{"déclarée":[17],"déclaré":[21],},"déclenchement":{"déclenchement":[4,21],},"déclencher":{"déclencher":[8,17],},"décline":{"décline":[4],},"décompress":{"décompresser":[2,4],"décompression":[4],},"décompressé":{"décompressés":[6],"décompressées":[7,21],},"déconnect":{"déconnecter":[3],},"décrit":{"décrit":[7,21],"décrits":[21],},"décrite":{"décrite":[6],},"dédié":{"dédiés":[5,21],},"défaut":{"défaut":[4,6,7,11,13,14,17,21],},"défini":{"défini":[3,5,6,7,11,21],"définis":[5,6,11,21],"définies":[6,7,21],"définie":[6,11,21],},"définir":{"définir":[2,4,5,6,7,11,13,17,21],},"définiss":{"définissant":[4,6,7,11,21],},"définit":{"définit":[6,11,17,21],"définition":[6,7,13,21],"définitive":[8,21],},"définitiv":{"définitivement":[8,21],},"déjà":{"déjà":[2,4,6,21],},"délai":{"délais":[11,21],},"délivré":{"délivré":[4,11,21],},"démarrag":{"démarrage":[4],},"démarrer":{"démarrer":[4,21],},"démarré":{"démarré":[4],},"département":{"départements":[7,21],"département":[7,21],},"dépend":{"dépend":[5,13],},"dépendanc":{"dépendances":[7,21],},"dépendant":{"dépendants":[7],},"déplacer":{"déplacer":[11,21],},"déposé":{"déposés":[11,21],},"dépréciée":{"dépréciée":[16,21],},"dépublier":{"dépublier":[7,21],},"dépublié":{"dépublié":[7,21],},"dépôt":{"dépôts":[5,6,21],"dépôt":[6,21],},"déroul":{"déroule":[2],},"déroulant":{"déroulante":[6,9,11,13,21],},"déroulement":{"déroulement":[6,7,21],},"déroulé":{"déroulée":[2],},"désactiv":{"désactiver":[11,21],},"désactivé":{"désactivés":[6,21],},"désign":{"désigne":[1,21],},"désiré":{"désiré":[4,5,6,7,21],"désirés":[5,6,7,21],"désirée":[6,21],"désirées":[6,14],},"désormai":{"désormais":[2,4,5,6,21],},"détail":{"détail":[9,21],},"détaillé":{"détaillés":[9],"détaillées":[17,21],"détaillée":[21],},"détect":{"détecte":[6,21],},"détecter":{"détecter":[21],},"détermin":{"détermine":[6],"déterminant":[11,21],},"déterminé":{"déterminé":[21],},"développ":{"développement":[5,7,21],},"développeur":{"développeurs":[0,18,21],},"e":{"e":[0,2,5,6,14,18,21],},"e-mail":{"e-mail":[0,2,5,6,18,21],},"echel":{"echelle":[6],},"ecrir":{"ecrire":[6,21],},"edan":{"edans":[16,21],},"edigeo":{"edigeo":[6,21],},"edigeo2mapinfo_upload":{"edigeo2mapinfo_upload":[21],},"edigéo":{"edigéo":[21],},"edit":{"edition":[1,6,21],"editer":[2,7,21],},"editor":{"editor":[6,14],},"effectu":{"effectuer":[5,6,21],"effectue":[5,21],},"effectué":{"effectuée":[5,21],},"effet":{"effet":[15,21],},"egalité":{"egalité":[6],},"ell":{"elle":[6,14,17],"elles":[6,14],},"email":{"email":[6,21],},"email_notif":{"email_notifications":[6],},"emailcontext":{"emailcontexts":[13],},"emailopt":{"emailoptions":[13],},"emailtempl":{"emailtemplates":[13],},"emplac":{"emplacement":[4,6,7,11,14,21],},"empris":{"emprise":[7,21],},"empêchant":{"empêchant":[7,21],},"empêcher":{"empêcher":[21],},"en":{"en":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,21],},"enabl":{"enabled":[6,14],},"enclench":{"enclenchent":[8],},"endroit":{"endroit":[7,21],},"enfant":{"enfant":[6],"enfants":[6],},"enfin":{"enfin":[17],},"engin":{"engine":[1,6,14,21],"engines":[4,21],},"enregistr":{"enregistrements":[6],"enregistrer":[7,21],},"ensembl":{"ensemble":[5,6,7,8,10,21],},"ensuit":{"ensuite":[4,5,6,7,9,11,14,17,21],},"entend":{"entend":[4,8,21],},"entier":{"entier":[6,13,17],},"entité":{"entités":[7,21],"entité":[21],},"entr":{"entre":[2,6],},"entrant":{"entrant":[6],},"entrepris":{"entreprise":[5,21],},"entrer":{"entrer":[6,7,21],},"entré":{"entrée":[5,7,21],},"environ":{"environ":[2],},"environn":{"environnement":[6,14],},"envoy":{"envoyant":[4],"envoyer":[4,6,8,11,21],},"envoyé":{"envoyé":[4,6,8,11,21],"envoyée":[6],"envoyés":[8],"envoyées":[17],},"epsg":{"epsg":[17],},"erreur":{"erreur":[6,8,9,14,21],"erreurs":[8,21],},"es":{"es":[17,21],},"esi":{"esi":[6],},"espac":{"espace":[11,21],},"esri":{"esri":[7,21],},"est":{"est":[0,1,2,4,5,6,7,8,9,11,13,14,15,16,17,18,21],},"est-à":{"est-à":[2],},"est-à-":{"est-à-":[2],},"et":{"et":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,21],},"etat":{"etat":[8,9,21],},"ex":{"exe":[2,4,15,21],},"exact":{"exact":[21],},"excel":{"excel":[9,21],},"except":{"exception":[2],},"exclur":{"exclure":[11],},"execution_d":{"execution_date":[6,21],},"exempl":{"exemple":[4,5,6,7,8,9,13,14,15,17,21],"exemples":[4,7,13,21],},"exist":{"existe":[2,4,6,8,16,21],"existants":[4,21],"existant":[6,13,21],},"existant":{"existante":[2,4,13,21],},"explicit":{"explicite":[7,21],},"expliqué":{"expliquée":[15,21],},"exploit":{"exploite":[1,6,14,21],"exploiter":[4,5,6,14,17,21],"exploitable":[4,16,21],"exploitant":[6,21],"exploitables":[6,14],"exploitation":[7,11,21],},"exploité":{"exploité":[2,6,11,21],"exploitée":[2],"exploités":[6,8,14],},"export":{"export":[3,6,9,13,14,21],"exporter":[6,13,14],"exports":[15,21],},"exportconnectiondata_x":{"exportconnectiondata_x":[6,14],},"exportez":{"exportez":[14],},"exporté":{"exportées":[6,14],},"express":{"expression":[5,6],"expressions":[13,21],},"extens":{"extension":[6,21],"extensions":[11,21],},"extern":{"externe":[6,21],},"external_commun":{"external_commune":[17],},"external_upload":{"external_upload":[17],},"external_uploadxxxx":{"external_uploadxxxx":[17],},"external_xxxxxx":{"external_xxxxxx":[17],},"external_xxxxxxx":{"external_xxxxxxx":[17],},"extract":{"extraction":[0,7,9,17,18,21],},"extract_dept":{"extract_dept":[21],},"extraction-depart":{"extraction-departements":[7,21],},"extraction-departements-sourc":{"extraction-departements-source":[21],},"extraction-departements-source-fix":{"extraction-departements-source-fixe":[21],},"extraction_depart":{"extraction_departements":[7,21],"extraction_departement":[21],},"extraction_departements_empris":{"extraction_departements_emprise":[21],},"extraction_depts_empris":{"extraction_depts_emprise":[7],},"extrair":{"extraire":[7,21],},"extrait":{"extraites":[7,21],},"exécut":{"exécuter":[1,2,4,6,21],"exécutable":[2],"exécution":[2,4,5,6,7,8,11,15,21],"exécute":[5,6,14],},"exécutez":{"exécutez":[14],},"exécuté":{"exécutés":[0,9,18,21],"exécutée":[3],"exécuté":[6,14,15,17,21],"exécutées":[11],},"facilit":{"faciliter":[6,11,21],},"facult":{"facultative":[2],},"facultatif":{"facultatif":[6],},"fair":{"faire":[0,4,5,6,7,11,17,18,21],},"faisant":{"faisant":[6,21],},"fait":{"fait":[1,4,6,16,21],"faite":[13],},"fals":{"false":[6,14],},"faut":{"faut":[2,6,7,14,17,21],},"façon":{"façon":[4,5,6,8,13,21],"façons":[6,21],},"featur":{"feature":[6,14],},"feb":{"feb":[13,21],},"fenetr":{"fenetre":[5],},"fenêtr":{"fenêtre":[4,6,7,14,17,21],"fenêtres":[6],},"ferm":{"ferme":[17],},"fermer":{"fermer":[6],},"fermetur":{"fermeture":[17],},"fichier":{"fichiers":[0,4,6,7,10,11,14,15,17,18,21],"fichier":[4,5,6,7,8,9,11,13,14,15,17,21],},"figur":{"figure":[6],},"file":{"file":[4,6,21],},"fileselector":{"fileselector":[17],},"filter":{"filter":[6],},"filtr":{"filtre":[5,6,21],"filtres":[5,21],},"filtrag":{"filtrage":[6],},"filtrer":{"filtrer":[6],},"fin":{"fin":[0,6,8,15,17,18,21],},"final":{"final":[6,7,21],},"finalis":{"finaliser":[4,6,21],"finalise":[6,21],},"finalisé":{"finalisée":[5,21],},"finaux":{"finaux":[7,11,21],},"fine":{"fine":[8,21],},"finir":{"finir":[17],},"fix":{"fixe":[1,21],"fixes":[6,7,21],},"flottant":{"flottante":[1,21],"flottant":[6],},"flux":{"flux":[17],},"fme":{"fme":[0,1,2,4,5,6,7,8,9,11,13,14,15,17,18,19,20,21,22],},"fme-":{"fme-":[6,14],},"fme2016":{"fme2016":[4],},"fme_engin":{"fme_engine":[6,21],},"fme_mf_dir_unix":{"fme_mf_dir_unix":[7,21],},"fmeengin":{"fmeengines":[13],},"fmw":{"fmw":[6,7,11,14,21],},"fmw_file":{"fmw_file":[6,21],},"foi":{"fois":[4,5,6,7,8,11,15,17,21],},"fonction":{"fonctions":[0,4,17,18,21],"fonction":[6,10,17,21],},"fonctionn":{"fonctionnement":[1,4,6,21],"fonctionner":[2],},"fonctionnalité":{"fonctionnalités":[6,16,21],},"for":{"for":[8],},"forc":{"force":[21],},"forcer":{"forcer":[6,7,13,21],},"form":{"forme":[0,6,7,17,18,21],"form":[6,21],"formes":[21],},"format":{"format":[4,7,11,13,17,21],"formats":[6,7,11,14,21],},"formcont":{"formcontent":[17],},"formulair":{"formulaire":[0,4,5,6,7,11,13,17,21],"formulaires":[3,6,13,15,17,21],},"fortement":{"fortement":[21],},"forçant":{"forçant":[21],},"fourni":{"fournis":[2,21],"fourni":[4,11,15,21],"fournie":[6,21],},"fournir":{"fournir":[6,21],},"fournisseur":{"fournisseurs":[21],},"fournit":{"fournit":[21],},"fr":{"fr":[6,17,21],},"franc":{"france":[6],},"fréquenc":{"fréquence":[0,6,18,21],},"galeri":{"galerie":[7,21],},"gauch":{"gauche":[3,4,5,6,17,21],},"gener":{"generic":[7,21],},"generic_out_format_gener":{"generic_out_format_generic":[7,21],},"genericqueri":{"genericquerys":[13],},"geofla":{"geofla":[7,21],},"geographicalgridsystem":{"geographicalgridsystems":[17],},"geometrycollect":{"geometrycollection":[17],},"geosign":{"geosignal":[17,21],},"geosignalwm":{"geosignalwms":[21],},"gestion":{"gestion":[0,1,5,6,8,11,14,18,21],},"gestionnair":{"gestionnaire":[0,6,18,19,20,21,22],"gestionnaires":[6],},"getcategori":{"getcategory":[6,21],},"getelementbyid":{"getelementbyid":[17],},"getelementbyld":{"getelementbyld":[17],},"getelementid":{"getelementid":[17],},"getfmeengin":{"getfmeengine":[6,21],},"getgtfengin":{"getgtfengine":[6,21],},"gethtmlform":{"gethtmlform":[17],},"getus":{"getuser":[6,21],},"getworkspac":{"getworkspace":[6,21],},"gex":{"gex":[4,6,8,11,13,15,21],},"ghyb":{"ghyb":[17],},"glisser":{"glisser":[6,21],},"global":{"global":[21],},"gmap":{"gmap":[17],},"googl":{"google":[6,17,21],},"google-kei":{"google-key":[17],},"gphy":{"gphy":[17],},"gpp3":{"gpp3":[17],},"gpp3-wx":{"gpp3-wxs":[17],},"grand":{"grand":[0,18,21],},"graphicspalettefield":{"graphicspalettefield":[17],},"graphiqu":{"graphique":[0,9,11,17,18,21],"graphiquement":[6,7,21],"graphiques":[9,21],},"group":{"groupe":[3,4,5,6,7,21],"groupes":[5,6,11,21],"groups":[6,13],},"gsat":{"gsat":[17],},"gtf":{"gtf":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,21],},"gtf2016":{"gtf2016":[2],},"gtf_2015":{"gtf_2015":[11,21],},"gtf_2015-01":{"gtf_2015-01":[11,21],},"gtf_admin":{"gtf_admin":[3,5,13,21],},"gtf_author":{"gtf_author":[3,5,13],},"gtf_engin":{"gtf_engine":[6,21],},"gtf_engine_id":{"gtf_engine_id":[6],},"gtf_file":{"gtf_files":[17],},"gtf_home":{"gtf_home":[11,21],},"gtf_manuel_utilisateur":{"gtf_manuel_utilisateur":[21],},"gtf_telecharg":{"gtf_telechargement":[2],},"gtf_user":{"gtf_user":[3,5,13],},"gtf_v2":{"gtf_v2":[15,21],},"gtfengin":{"gtfengines":[13],},"gtfgroup":{"gtfgroups":[13],},"gtfmessagesend":{"gtfmessagesender":[8],},"gtfpermet":{"gtfpermet":[6],},"guid":{"guide":[20,22],},"gère":{"gère":[0,18,21],},"génère":{"génère":[6,7,14,21],},"général":{"général":[6,14,21],},"générale":{"générale":[6],"générales":[6],},"généralement":{"généralement":[17],},"générant":{"générant":[6,21],},"génération":{"génération":[0,4,11,13,18,21],},"généraux":{"généraux":[11,21],},"générer":{"générer":[4,6,7,11,16,17,21],},"génériqu":{"générique":[7,21],},"généré":{"généré":[2,4,6,7,11,13,21],"générés":[7,11,13,21],},"générée":{"générée":[6,21],},"géo":{"géo":[17],},"géométri":{"géométrie":[6],"géométries":[6,8,17],},"géoportail":{"géoportail":[21],},"gérer":{"gérer":[5,6,14,21],},"h":{"h":[13,21],},"h_":{"h_":[6],},"haut":{"haut":[6],},"hauteur":{"hauteur":[6,7,17,21],},"hebdomadair":{"hebdomadaire":[9,21],},"heur":{"heure":[4,6,9,13,21],"heures":[4,6,9,11,13,21],},"hh":{"hh":[11,13,21],},"hiddenfield":{"hiddenfield":[17],},"histogramm":{"histogramme":[9,21],},"historiqu":{"historique":[6,21],},"hkey_local_machin":{"hkey_local_machine":[6,14],},"host":{"host":[4,5,15,21],},"htm":{"htm":[11,21],},"html":{"html":[4,6,11,13,17,21],},"htmlform":{"htmlform":[17],},"http":{"http":[1,2,4,6,8,11,12,15,16,17,21],"https":[2,3,6,21],},"httpd":{"httpd":[1,11,21],},"humain":{"humain":[6,21],},"hybrid":{"hybrid":[17],},"hérite":{"hérite":[17],},"hériter":{"hériter":[5,21],},"hétérogèn":{"hétérogènes":[4,21],},"ici":{"ici":[5,21],},"id":{"id":[4,6,17,21],},"id_com":{"id_com":[6],},"id_ord":{"id_order":[21],},"identifi":{"identifiant":[4,6,7,13,17,21],"identifier":[8,21],"identifiants":[17],},"identifié":{"identifiés":[4,6,14,21],"identifié":[13],},"identiqu":{"identiques":[6,21],"identique":[6,21],},"idéal":{"idéale":[0,18,21],},"ign":{"ign":[17],},"ign-wmt":{"ign-wmts":[17],},"ignor":{"ignore":[7,21],},"ignwmtslay":{"ignwmtslayers":[17],},"ignwmtsnam":{"ignwmtsname":[17],},"ignwmtsservic":{"ignwmtsservice":[17],},"iheight":{"iheight":[17],},"il":{"il":[0,1,2,4,5,6,7,8,9,11,13,14,16,17,18,21],"ils":[6,7,8,9,21],},"illustr":{"illustre":[6,21],},"imag":{"image":[17],},"immédiat":{"immédiatement":[4,15,21],},"implémenté":{"implémenté":[5,14],"implémentée":[6],},"import":{"import":[3,4,5,6,13,14,21],"importer":[4,5,6,13,14,17,21],"importe":[4,5,21],"importants":[9,21],},"important":{"importantes":[21],},"importé":{"importés":[4,5,6,13,21],"importé":[4,5,6,11,13,15,21],"importée":[6,7],"importées":[6,14],},"imposs":{"impossible":[2,21],},"impérativ":{"impérativement":[5,15,21],},"inactif":{"inactif":[4,21],"inactifs":[8,21],},"inbox":{"inboxes":[13],},"inc":{"inc":[6,11,14,15,17,21],},"inchangé":{"inchangé":[21],},"indiqu":{"indiquer":[4,6,7,11,21],"indiquant":[4,6,11,14,21],"indique":[4,6,7,13,15,16,21],},"indiquera":{"indiquera":[6,14],},"indiqué":{"indiquée":[6],"indiqué":[13],"indiqués":[15,21],},"indispens":{"indispensable":[1,21],"indispensables":[21],},"info":{"info":[9,11,21],},"info-bul":{"info-bulles":[9,21],},"inform":{"informations":[1,2,5,6,11,14,21],"information":[6,12,21],},"informé":{"informé":[8,21],},"inférieur":{"inférieure":[6],},"ini":{"ini":[11,21],},"initi":{"initial":[6],},"initial":{"initialement":[3,6,13],"initiales":[6,14],},"initialis":{"initialisation":[2,3,21],"initialise":[17],"initialiser":[21],},"inscrir":{"inscrire":[6,21],},"inscrit":{"inscrits":[6],},"insert":{"insertion":[6,17,21],},"insert2|nom":{"insert2|nom":[17],},"insert2|pdesi|commune_esi|id_esi|id_com|":{"insert2|pdesi|commune_esi|id_esi|id_com|":[17],},"inspector":{"inspector":[7,21],},"instal":{"installation":[2,3,4,5,15,21],"installer":[2,21],"install":[2],},"install_report_dd":{"install_report_dd":[2],},"install_report_dd-mm":{"install_report_dd-mm":[2],},"install_report_dd-mm-yyyi":{"install_report_dd-mm-yyyy":[2],},"installateur":{"installateur":[2],},"installateur_gtf_application_web":{"installateur_gtf_application_web":[2],},"installeur":{"installeur":[15,21],},"installé":{"installé":[2,4,6,11,15,21],"installée":[2,6,11,21],"installés":[6,11,14,21],},"instanc":{"instance":[2,4,21],},"instruct":{"instruction":[6,21],},"insèr":{"insère":[6],},"insérant":{"insérant":[4,5,6,21],},"insérer":{"insérer":[4,6,15,21],},"inséré":{"inséré":[4,13,21],"insérée":[6],},"integerfield":{"integerfield":[17],},"interdit":{"interdits":[11],},"interfac":{"interface":[0,3,5,6,13,16,18,21],},"interface-lign":{"interface-ligne":[6],},"intern":{"interne":[5,21],},"internet":{"internet":[0,6,11,18,21],},"intégrant":{"intégrant":[0,21],},"intégrer":{"intégrer":[6,17,21],},"intégré":{"intégrés":[3,13],"intégré":[6,11,21],"intégrée":[6,7,21],},"invalid":{"invalides":[13],"invalide":[13],},"invers":{"inversement":[4,9,21],},"inversé":{"inversément":[21],},"ip":{"ip":[5,21],},"ipv4":{"ipv4":[4,15,21],},"ipv6":{"ipv6":[4,5,15,21],},"issu":{"issus":[5,6,13,21],"issues":[6,21],"issu":[7,21],},"iwidth":{"iwidth":[17],},"jan":{"jan":[13,21],},"javascript":{"javascript":[6,17],},"jeton":{"jetons":[6,21],"jeton":[6,11,16,21],},"jeu":{"jeu":[7,21],},"jeux":{"jeux":[11,21],},"jj":{"jj":[13,17,21],},"jjj":{"jjj":[13,21],},"jour":{"jour":[2,3,4,5,6,7,9,13,17,21],"jours":[11,13,21],},"journalis":{"journalisation":[11],},"journalièr":{"journalière":[9,21],},"journaux":{"journaux":[4,10,11,21],},"json":{"json":[6,13,17],},"kei":{"key":[17],},"ko":{"ko":[8,11],},"l":{"l":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,21],},"l\u0027accè":{"l\u0027accès":[5,6,11,13,21],},"l\u0027acquisit":{"l\u0027acquisition":[1,21],},"l\u0027activ":{"l\u0027active":[5],"l\u0027activer":[11,21],},"l\u0027administrateur":{"l\u0027administrateur":[2,3,4,5,6,8,11,21],},"l\u0027adress":{"l\u0027adresse":[6,11,12,15,16,21],},"l\u0027affich":{"l\u0027afficher":[17],},"l\u0027affichag":{"l\u0027affichage":[6],},"l\u0027affili":{"l\u0027affiliation":[4,21],},"l\u0027aid":{"l\u0027aide":[16,21],},"l\u0027ajout":{"l\u0027ajout":[1,6,21],},"l\u0027ancien":{"l\u0027ancien":[6],},"l\u0027api":{"l\u0027api":[0,5,13,16,18,21],},"l\u0027applic":{"l\u0027application":[2,3,5,6,8,11,15,21],},"l\u0027arboresc":{"l\u0027arborescence":[7,21],},"l\u0027arbr":{"l\u0027arbre":[5],},"l\u0027architectur":{"l\u0027architecture":[1,21],},"l\u0027archiv":{"l\u0027archive":[4],},"l\u0027ascend":{"l\u0027ascendance":[6],},"l\u0027aspect":{"l\u0027aspect":[16,21],},"l\u0027associ":{"l\u0027associe":[6,21],},"l\u0027attribut":{"l\u0027attribution":[3],"l\u0027attribut":[4,6,21],},"l\u0027auteur":{"l\u0027auteur":[6,13],},"l\u0027authentif":{"l\u0027authentification":[0,11,18,21],},"l\u0027e":{"l\u0027e":[6],},"l\u0027e-mail":{"l\u0027e-mail":[6],},"l\u0027emplac":{"l\u0027emplacement":[6,7,11,14,21],},"l\u0027enregistr":{"l\u0027enregistrement":[6],},"l\u0027ensembl":{"l\u0027ensemble":[6,15,21],},"l\u0027environn":{"l\u0027environnement":[21],},"l\u0027envoi":{"l\u0027envoi":[11],},"l\u0027exempl":{"l\u0027exemple":[6,21],},"l\u0027exercic":{"l\u0027exercice":[7],},"l\u0027exploit":{"l\u0027exploitation":[6,7,21],},"l\u0027export":{"l\u0027export":[6],},"l\u0027express":{"l\u0027expression":[5],},"l\u0027expéditeur":{"l\u0027expéditeur":[8,11],},"l\u0027extens":{"l\u0027extension":[4],},"l\u0027exécut":{"l\u0027exécution":[1,4,6,21],},"l\u0027identifi":{"l\u0027identifiant":[6,11,17,21],},"l\u0027ign":{"l\u0027ign":[21],},"l\u0027import":{"l\u0027importation":[4],"l\u0027import":[4,6,13,21],},"l\u0027initialis":{"l\u0027initialisation":[2,4],},"l\u0027insert":{"l\u0027insertion":[6,17,21],},"l\u0027instal":{"l\u0027installation":[2,4,21],"l\u0027installer":[11,21],},"l\u0027installateur":{"l\u0027installateur":[2],},"l\u0027installeur":{"l\u0027installeur":[21],},"l\u0027insérer":{"l\u0027insérer":[21],},"l\u0027interfac":{"l\u0027interface":[6,11,21],},"l\u0027interpréteur":{"l\u0027interpréteur":[6,14],},"l\u0027intégralité":{"l\u0027intégralité":[2,3,5,7],},"l\u0027intégrat":{"l\u0027intégration":[6,21],},"l\u0027intégrer":{"l\u0027intégrer":[6],},"l\u0027obtent":{"l\u0027obtention":[6,17,21],},"l\u0027on":{"l\u0027on":[2,6],},"l\u0027onglet":{"l\u0027onglet":[5,6,21],},"l\u0027option":{"l\u0027option":[6],},"l\u0027ordonnanceur":{"l\u0027ordonnanceur":[4],},"l\u0027ordr":{"l\u0027ordre":[6],},"l\u0027origin":{"l\u0027origine":[8],},"l\u0027unicité":{"l\u0027unicité":[6,21],},"l\u0027utilis":{"l\u0027utilisation":[6,21],},"l\u0027utilisateur":{"l\u0027utilisateur":[0,4,5,6,11,17,18,21],},"l\u0027échell":{"l\u0027échelle":[6],},"l\u0027écran":{"l\u0027écran":[5,6],},"l\u0027éditer":{"l\u0027éditer":[6],},"l\u0027édition":{"l\u0027édition":[6,11,21],},"l\u0027élément":{"l\u0027élément":[6],},"l\u0027état":{"l\u0027état":[11,21],},"l\u0027étendu":{"l\u0027étendue":[6],},"l\u0027évènement":{"l\u0027évènement":[17],},"la":{"la":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21],},"label":{"label":[6,13],},"label-":{"label-":[6],},"labelfield":{"labelfield":[17],},"laiss":{"laisse":[6,21],},"laisser":{"laisser":[17],},"laissé":{"laissé":[5],},"lambert":{"lambert":[6],},"lanc":{"lance":[15,21],},"lancement":{"lancement":[5,15,21],},"lancer":{"lancer":[2,6,7,13,14,21],},"lancé":{"lancé":[6,21],},"langag":{"langage":[1,17,21],},"laquel":{"laquelle":[4,6,9,11,21],},"larg":{"large":[9,21],},"largeur":{"largeur":[6,7,17,21],},"largueur":{"largueur":[17],},"lat":{"lat":[17],},"latitud":{"latitude":[17],},"layer":{"layer":[0,17,21],"layers":[17],},"ldap":{"ldap":[5,21],},"ldapprefix":{"ldapprefix":[5,21],},"ldapserv":{"ldapserver":[5,21],},"le":{"les":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,21],"le":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,21],},"lectur":{"lecture":[21],},"length_sec":{"length_sec":[6,21],},"lequel":{"lequel":[5,6,8,11,14,21],},"lesquel":{"lesquels":[6],},"leur":{"leur":[0,5,6,8,10,18,21],"leurs":[0,2,4,5,6,13,15,17,18,21],},"liant":{"liant":[6],},"libeay32":{"libeay32":[15,21],},"libellé":{"libellé":[6,7,17,21],"libellés":[6,9,21],},"libiconv":{"libiconv":[15,21],},"libiconv-2":{"libiconv-2":[15,21],},"libintl":{"libintl":[15,21],},"libintl-8":{"libintl-8":[15,21],},"libpq":{"libpq":[15,21],},"librement":{"librement":[17],},"licenc":{"licences":[1,4,21],"licence":[1,4,11,21],},"licens":{"licenses":[4],"license":[13],},"lien":{"lien":[7,17],},"lier":{"lier":[4,6,7,21],},"lieu":{"lieu":[2],},"lign":{"ligne":[4,6,13,17],"lignes":[4,5,6,15,17,21],},"limit":{"limiter":[5],},"line":{"line":[17],},"lisibilité":{"lisibilité":[6],},"list":{"liste":[4,5,6,7,8,9,11,13,14,17,21],"listes":[6,17],},"liste_moteur":{"liste_moteurs":[6],},"listeset":{"listesettings":[6,14],},"listfield":{"listfield":[17],},"listset":{"listsettings":[6,14],},"listé":{"listés":[6,7,14,21],"listées":[6,14],"listé":[8,21],},"lié":{"lié":[4,6,21],"liés":[6],},"local":{"local":[4,5,6,7,13,14,15,21],"locale":[6],"localement":[7,21],},"localhost":{"localhost":[2,21],},"localis":{"localiser":[6,14],},"localisé":{"localisé":[6,14],},"locaux":{"locaux":[5,21],},"log":{"log":[4,6,11,21],"logs":[5,8,10,11,13,21],},"log_url":{"log_url":[6,21],},"logiciel":{"logiciels":[1,4,21],"logiciel":[1,21],"logicielle":[1,21],},"login":{"login":[2,5,6,21],},"lon":{"lon":[17],},"long":{"longs":[9,21],},"longitud":{"longitude":[17],},"lor":{"lors":[4,5,6,7,21],},"lorsqu":{"lorsque":[5,6,21],"lorsqu":[17],},"lorsqu\u0027un":{"lorsqu\u0027un":[6],},"lot":{"lot":[6],},"lou":{"lou":[6,14],},"lpist":{"lpiste":[17],},"ls":{"ls":[17],},"lui":{"lui":[3,5,6,8,13,15,21],},"lui-mêm":{"lui-même":[15,21],},"lundi":{"lundis":[13,21],},"légend":{"légende":[9,21],},"m":{"m":[17],},"machin":{"machines":[1,21],"machine":[2,9,21],},"mai":{"mais":[1,2,4,5,6,8,14,15,16,17,21],},"mail":{"mail":[0,2,4,5,6,11,12,18,21],"mails":[11],},"main_pag":{"main_page":[17],},"manipul":{"manipulation":[6,14],"manipuler":[16,21],},"manièr":{"manière":[0,4,6,14,15,18,21],},"manuel":{"manuellement":[4,5,6,7,14,21],"manuel":[19],"manuelle":[21],},"map":{"maps":[6,17],"map":[6,17],},"mapinfo":{"mapinfo":[7,21],},"maps-kei":{"maps-key":[17],},"masquer":{"masquer":[6],},"max":{"max":[6,7,9,17,21],},"maximal":{"maximales":[6,11,21],"maximale":[11,17,21],},"maximum":{"maximum":[7,9,11,15,21],},"mc":{"mc":[17],},"md5":{"md5":[5,21],},"me":{"mes":[6,14],},"mensuel":{"mensuelle":[9,21],},"menu":{"menu":[6,7,14,16,21],},"mercat":{"mercator":[17],},"messag":{"message":[2,8],"messages":[8,13],},"messageclass":{"messageclasses":[13],},"messageclasstyp":{"messageclasstypes":[13],},"met":{"met":[4,6,14,21],},"metadonné":{"metadonnées":[6,21],},"mettant":{"mettant":[4],},"mettr":{"mettre":[0,3,4,5,6,7,17,18,21],},"mi":{"mis":[4,7,13,21],},"microsoft":{"microsoft":[17],},"mid":{"mid":[7,21],},"mif":{"mif":[7,21],},"min":{"min":[6,7,13,17,21],},"minimal":{"minimales":[6],"minimale":[11,21],},"minimum":{"minimum":[1,7,11,21],},"minut":{"minute":[2,9,21],"minutes":[4,13,21],},"mise":{"mise":[2,6,21],"mises":[21],},"mixt":{"mixte":[5,11,21],},"mm":{"mm":[2,11,13,17,21],},"mm-yyyi":{"mm-yyyy":[2],},"mmm":{"mmm":[13,21],},"mo":{"mo":[11,21],},"mode":{"mode":[0,3,4,5,6,7,8,9,10,11,18,21],"modes":[3,5,13,21],},"modif":{"modification":[5,6,7,8,21],"modifications":[6,21],},"modifi":{"modifier":[2,4,5,6,7,8,11,14,17,21],"modifie":[6],"modify":[17],},"modifié":{"modifiées":[6],"modifiés":[6],"modifié":[6,21],},"modul":{"module":[2,4,5,11],"modules":[5],},"modèl":{"modèle":[6,11,21],"modèles":[6,21],},"modèles-email":{"modèles-email":[6,21],},"moi":{"mois":[9,13,21],},"moin":{"moins":[5,21],},"moment":{"moment":[5,6,8,17,21],},"mon":{"mon":[5,6,7,21],},"mon_résultat_empris":{"mon_résultat_emprise":[7],},"mot":{"mot":[2,4,5,6,7,11,13,17,21],"mots":[4,5,6,21],},"moteur":{"moteur":[1,2,3,4,6,7,8,9,21],"moteurs":[1,4,5,6,8,11,21],},"moteur_gf":{"moteur_gf":[2],},"moteur_gtf":{"moteur_gtf":[4],},"motif":{"motif":[6,21],},"mous":{"mouse":[17],},"moyen":{"moyen":[6,11,21],},"ms":{"ms":[0,18,21],},"ms-activ":{"ms-active":[0,18,21],},"msc":{"msc":[4],},"multi":{"multi":[17],},"multifichi":{"multifichiers":[6,21],},"multilign":{"multiligne":[6,13],},"multipl":{"multiple":[6,17],"multiples":[6],},"mécanism":{"mécanisme":[5],},"mélanger":{"mélanger":[17],},"métadonné":{"métadonnées":[6,21],},"méthode":{"méthode":[5,6,8,21],},"métropolitain":{"métropolitaine":[6],},"même":{"même":[4,5,6,7,8,11,13,14,15,17,21],},"n":{"n":[2,7,9,13,17,21],},"n\u0027a":{"n\u0027a":[15,21],},"n\u0027affich":{"n\u0027afficher":[6],},"n\u0027apparaît":{"n\u0027apparaît":[6,14],},"n\u0027apparaîtra":{"n\u0027apparaîtra":[6],},"n\u0027en":{"n\u0027en":[5],},"n\u0027est":{"n\u0027est":[2,4,6,21],},"n\u0027exist":{"n\u0027existe":[2,6],},"n\u0027import":{"n\u0027importe":[0,15,18,21],},"n\u0027écrasent":{"n\u0027écrasent":[6],},"name":{"named":[6,14],"name":[6,17,21],},"name_cascad":{"name_cascade":[17],},"namedconnect":{"namedconnections":[6,14],},"nativ":{"natives":[6],},"navig":{"navigation":[5,6,21],},"navigateur":{"navigateur":[2,6,7,21],},"navigu":{"naviguer":[5,21],},"ne":{"ne":[1,3,4,5,6,7,11,13,14,17,21],},"nettoyag":{"nettoyage":[4,11,21],},"nettoyage_des_fichiers_temporair":{"nettoyage_des_fichiers_temporaires":[11,21],},"nfigur":{"nfiguration":[21],},"ni":{"ni":[7,21],},"niveau":{"niveau":[4,9,17,21],},"niveaux":{"niveaux":[8,21],},"no":{"no":[6,14],},"nom":{"nom":[2,4,5,6,7,11,13,17,21],"noms":[6,7,21],},"nombr":{"nombre":[0,4,6,9,11,15,18,21],},"nombre-":{"nombre-":[6],},"nomdomain":{"nomdomaine":[5,21],},"nomduserveur":{"nomduserveur":[5,21],},"nomm":{"nomme":[6,11,21],},"nommag":{"nommages":[6],"nommage":[6,21],},"nommant":{"nommant":[6,21],},"nommer":{"nommer":[2,4,6,21],},"nommerait":{"nommerait":[6],},"nommerez":{"nommerez":[7],},"nommé":{"nommé":[6,21],"nommées":[6,14],"nommée":[6,14],"nommés":[6,14],},"non":{"non":[4,6,8,11,13,17,21],},"notez":{"notez":[21],},"notif":{"notification":[6,11],"notifications":[11],},"notifié":{"notifié":[6],},"notr":{"notre":[4,7,8,11,15,16,17,21],},"nou":{"nous":[2,7,21],},"nouveau":{"nouveau":[4,5,6,7,13,14,21],},"nouveaux":{"nouveaux":[4,5,6,21],},"nouvel":{"nouvel":[4,6,14],"nouvellement":[4,5,6,14,21],"nouvelle":[6,13,21],"nouvelles":[6,14,21],},"numberfield":{"numberfield":[17],},"numberfil":{"numberfiled":[17],},"numériqu":{"numérique":[17],},"numéro":{"numéro":[4,7,8,11,13,21],},"n°":{"n°":[6],},"n°1":{"n°1":[7],},"n°19":{"n°19":[7,21],},"n°2":{"n°2":[7],},"nécessair":{"nécessaire":[2,4,6,7,11,14,17,21],"nécessaires":[6,21],},"nécessit":{"nécessite":[6,7,17,21],},"nœud":{"nœud":[5,21],},"object_id":{"object_id":[17],},"objectif":{"objectif":[7,21],},"objet":{"objet":[17],},"oblig":{"obligent":[17],},"obligatoir":{"obligatoire":[2,4,6],},"obtenir":{"obtenir":[2,5,6,8,9,21],},"obtenu":{"obtenu":[4,11,15,21],"obtenue":[6,21],},"offr":{"offre":[0,6,8,18,21],},"offrant":{"offrant":[5],},"offrir":{"offrir":[0,18,21],},"ok":{"ok":[7,8,21],},"on":{"on":[4,6,8,11,13,17,21],},"onchang":{"onchange":[17],},"onclick":{"onclick":[17],},"onglet":{"onglet":[3,4,5,6,8,21],"onglets":[6],},"ont":{"ont":[6,7,8,21],},"oorder":{"oorder":[6,21],},"open":{"open":[0,21],},"openlay":{"openlayers":[17],},"openlayers2":{"openlayers2":[21],},"openlayers2field":{"openlayers2field":[17],},"openlayersfield":{"openlayersfield":[17,21],},"opensstreetmap":{"opensstreetmap":[17],},"openstreetmap":{"openstreetmap":[17],},"option":{"options":[6,13,14,21],"option":[6,7,21],},"optionnel":{"optionnelles":[21],},"opèr":{"opère":[15,21],},"opérat":{"opérations":[2,21],"opération":[4,16,21],},"opérer":{"opérer":[11,21],},"or":{"or":[6,7,14,21],},"order":{"order":[6,21],"orders":[13],},"order_bi":{"order_by":[6],},"order_d":{"order_date":[6,21],},"order_execution_d":{"order_execution_date":[6,21],},"order_id":{"order_id":[6,21],},"order_log":{"order_log":[6,21],},"orderstatut":{"orderstatutes":[13],},"ordinateur":{"ordinateur":[6,21],},"ordr":{"ordre":[5,6,21],},"org":{"org":[6,17,21],},"organis":{"organisation":[6],"organiser":[6,21],},"organism":{"organisme":[5,6,21],"organismes":[21],},"organisé":{"organisée":[11,21],},"orthoimageri":{"orthoimagery":[17],},"orthophoto":{"orthophotos":[17],},"osm":{"osm":[6,7,13,17],},"osm-":{"osm-":[6],},"ou":{"ou":[1,2,4,5,6,8,9,11,12,13,14,15,17,21],},"oui":{"oui":[17,21],},"out":{"out":[9,21],},"outil":{"outil":[0,17,18,21],"outils":[6,7,14,17,21],},"outils-":{"outils-":[6,14],},"ouvertur":{"ouverture":[17],},"ouvr":{"ouvre":[4,21],},"ouvrir":{"ouvrir":[7,21],},"ov":{"ov":[17],},"over":{"over":[17],},"où":{"où":[2,4,13,21],},"p":{"p":[15,21],},"pa":{"pas":[1,2,3,4,5,6,7,13,14,15,17,21],},"pack":{"pack":[4,21],},"page":{"page":[6,11,21],},"palett":{"palette":[17],},"par":{"par":[0,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,21],},"parallélis":{"parallélisation":[4,21],},"paramètr":{"paramètres":[0,2,5,6,7,8,11,14,15,17,21],"paramètre":[4,6,7,9,11,14,15,17,21],},"paramétr":{"paramétrables":[6],"paramétrant":[6],"paramétrer":[6],"paramétrable":[7,21],},"paramétrag":{"paramétrage":[6,21],},"paramétré":{"paramétrée":[6],"paramétrées":[6,21],},"parcourir":{"parcourir":[4,6,7,21],},"parcouru":{"parcourus":[13],},"parent":{"parent":[6,17],},"parfait":{"parfaite":[6],"parfaitement":[6,21],},"partag":{"partage":[0,18,21],},"parti":{"partie":[1,4,5,6,11,21],},"particuli":{"particulier":[6,21],},"particulièr":{"particulièrement":[0,18,21],},"partir":{"partir":[4,5,6,7,9,15,17,21],},"pass":{"passe":[2,5,6,7,11,13,17,21],},"passant":{"passant":[9,21],},"passer":{"passer":[9,16,21],},"password":{"password":[2,17,21],},"passwordfield":{"passwordfield":[17],},"passé":{"passées":[13,21],},"pateform":{"pateforme":[12],},"patrimoin":{"patrimoine":[6,21],},"pdf":{"pdf":[2],},"penser":{"penser":[4],},"perform":{"performances":[11,21],},"period":{"periods":[13],},"permanent":{"permanentes":[4,21],},"permet":{"permet":[0,2,3,4,5,6,7,8,9,10,11,13,15,16,17,18,21],},"permett":{"permettant":[1,4,5,6,7,17,21],"permettent":[1,5,6,21],},"permettr":{"permettre":[6,13],},"permettra":{"permettra":[21],},"personn":{"personnes":[6,21],},"personnalis":{"personnalisation":[6,7,17,21],"personnaliser":[6,7,21],"personnalise":[6,11,21],},"personnalisé":{"personnalisé":[6,7,13,21],"personnalisés":[6,13,14],"personnalisée":[15,17,21],},"personnel":{"personnel":[6,14],},"peut":{"peut":[0,2,3,4,5,6,8,9,11,13,14,15,17,18,21],},"peuvent":{"peuvent":[2,4,6,8,9,11,21],},"pg_dump":{"pg_dump":[15,21],},"pg_dumpal":{"pg_dumpall":[15,21],},"pg_hba":{"pg_hba":[4,5,21],},"pg_restor":{"pg_restore":[15,21],},"phase":{"phase":[3,4],},"php":{"php":[1,2,10,11,15,17,21],},"phpinfo":{"phpinfo":[13],},"phrase":{"phrase":[15],},"physic":{"physical":[17],},"pictogramm":{"pictogramme":[6],},"place":{"place":[4,21],},"planif":{"planification":[0,18,21],},"planifié":{"planifiées":[1,21],},"plein":{"plein":[6],},"plu":{"plus":[3,5,6,7,9,13,17,21],},"plusieur":{"plusieurs":[1,4,5,6,16,17,21],},"plutôt":{"plutôt":[6],},"point":{"point":[5,6,17,21],"pointe":[7,21],"points":[17],},"poli":{"poly":[17],},"polygon":{"polygone":[6,7,21],"polygones":[17],"polygon":[17],},"port":{"port":[2,6,11,21],},"porter":{"porter":[17],},"poser":{"poser":[12],},"posit":{"position":[6],},"possibilité":{"possibilité":[5,6,7,10,14,21],},"possibl":{"possible":[5,6,7,9,11,14,16,17,21],"possibles":[6,13,17,21],},"possèd":{"possède":[5,21],},"post":{"poste":[2,5,6,7,21],},"post_max_s":{"post_max_size":[11,21],},"postgi":{"postgis":[21],},"postgr":{"postgres":[15,21],"postgre":[15,21],},"postgresql":{"postgresql":[1,2,4,5,6,7,15,21],},"postrgresql":{"postrgresql":[5],},"pour":{"pour":[0,1,2,4,5,6,7,8,9,11,12,13,14,17,18,19,20,21,22],},"pourcentag":{"pourcentage":[9,21],},"pourra":{"pourra":[11,21],},"pourrait":{"pourrait":[8],},"pourront":{"pourront":[5,21],},"pouvez":{"pouvez":[6,12,14,21],},"pouvoir":{"pouvoir":[2,4,6,8,13,14,17,21],},"premier":{"premier":[2,6,7,14,16,17,21],"premiers":[13,21],"premiere":[17],},"premièr":{"première":[4,6,17,21],},"pri":{"pris":[6,21],},"prioriti":{"priorities":[13],},"priorité":{"priorités":[8,21],},"prise":{"prise":[4,21],},"privileg":{"privileges":[3,13],},"privilèg":{"privilèges":[3,5,6,13,21],"privilège":[5,13],},"privé":{"privé":[6,21],"privée":[6,21],},"problèm":{"problème":[6,8,14],},"procedure_installation_gtf_window":{"procedure_installation_gtf_windows":[2],},"process":{"process":[1,21],},"process_d":{"process_date":[21],},"processu":{"processus":[2,4,5,6,11,21],},"procèd":{"procède":[6],},"procéder":{"procéder":[2,3,4,8,21],},"procédez":{"procédez":[21],},"procédur":{"procédure":[2,4,5,6,15,21],"procédures":[11,21],},"product":{"production":[0,18,21],},"produir":{"produire":[9,21],},"produit":{"produits":[11,21],},"profession":{"professional":[1,21],},"profil":{"profils":[5,21],"profil":[5,13,21],},"programdata":{"programdata":[4],},"programm":{"programmation":[1,21],"programme":[4,6,21],"programmes":[21],},"project":{"projection":[6,7,17],"projections":[17],},"projet":{"projets":[2,4,5,6,8,13,15,17,21],"projet":[4,5,6,7,8,9,11,13,14,15,21],},"properti":{"properties":[11,13,17,21],},"properties_domain":{"properties_domain":[15,21],},"properties_post":{"properties_post":[11,21],},"properties_post_engin":{"properties_post_engine":[15,21],},"propos":{"proposer":[7,21],},"proposon":{"proposons":[7],},"proposé":{"proposée":[21],},"propr":{"propres":[0,5,6,14,18,21],"propre":[0,5,6,7,14,18,21],},"propriété":{"propriétés":[21],},"protocol":{"protocole":[2,6],},"proxi":{"proxy":[21],},"pré":{"pré":[2,6,15,21],},"pré-requi":{"pré-requis":[2],},"préalabl":{"préalablement":[0,4,6,7,8,18,21],"préalable":[4,5,6,21],},"préconison":{"préconisons":[2],},"précédemment":{"précédemment":[4,5,6,7,14,16,21],},"précédent":{"précédent":[2,7,21],},"préfixé":{"préfixés":[5],"préfixé":[6],},"présenc":{"présence":[2,6,8,21],},"présent":{"présente":[2,13],"présent":[4,6,15,21],},"prévisualis":{"prévisualisation":[6],"prévisualiser":[6,21],},"ps":{"ps":[17],},"psql":{"psql":[15,21],},"pt":{"pt":[17],},"pubié":{"pubié":[6],},"publi":{"publie":[5],},"public":{"publication":[4,5,6,7,21],"public":[4,6,11,14,15,21],},"publier":{"publier":[0,6,7,14,18,21],},"publiqu":{"publiques":[6,14],"publique":[6,14],},"publié":{"publiés":[0,1,5,6,7,13,14,15,18,21],"publié":[6,7,11,13,14,15,17,21],},"pui":{"puis":[4,5,6,7,9,11,14,17,21],},"puisqu":{"puisque":[7],},"puisqu\u0027un":{"puisqu\u0027un":[13],},"puiss":{"puisse":[2,4,6,7,21],},"purger":{"purger":[8,21],},"pycron":{"pycron":[1,2,4,6,10,11,14,15,21],},"pycron-0":{"pycron-0":[2],},"pyrcon":{"pyrcon":[4],},"python":{"python":[4,6,14],},"périmètr":{"périmètre":[7,17,21],},"périod":{"période":[4,6,9,11,13,21],"périodes":[6,13,21],},"qu":{"qu":[6,7,21],},"qu\u0027avec":{"qu\u0027avec":[6],},"qu\u0027el":{"qu\u0027elle":[6],},"qu\u0027il":{"qu\u0027il":[5,6,11,21],},"qu\u0027un":{"qu\u0027une":[6],},"qu\u0027à":{"qu\u0027à":[6,21],},"qualité":{"qualité":[0,18,21],},"quand":{"quand":[4,21],},"quatrièm":{"quatrième":[17],},"que":{"que":[2,4,5,6,7,8,9,11,13,14,15,17,21],},"quel":{"quel":[6,11,15,21],},"quelconqu":{"quelconque":[6,7,21],},"quell":{"quelle":[0,6,18,21],},"question":{"question":[12,21],},"qui":{"qui":[0,2,4,5,6,7,8,13,14,15,17,18,21],},"racin":{"racine":[15,17,21],},"radio":{"radio":[6,13,17],"radios":[6],},"radio-":{"radio-":[6],},"radiofield":{"radiofield":[17],},"raison":{"raisons":[21],},"rajout":{"rajoute":[4],"rajouter":[5,6,17,21],},"rajouté":{"rajouté":[6,14],"rajoutées":[15,21],},"rapport":{"rapport":[0,2,4,11,13,17,21],"rapports":[18],},"raster1000k":{"raster1000k":[17,21],},"raster100k":{"raster100k":[17,21],},"raster250k":{"raster250k":[17,21],},"raster25k":{"raster25k":[17,21],},"raster500k":{"raster500k":[17,21],},"raster50k":{"raster50k":[17,21],},"raster5k":{"raster5k":[17,21],},"rattach":{"rattacher":[6],},"re":{"re":[6],},"reader":{"reader":[6,14],},"recaptcha":{"recaptcha":[6,21],},"recharg":{"recharger":[6,21],"rechargement":[6],},"recherch":{"rechercher":[4,17],"recherche":[5,21],},"recherché":{"recherché":[5,21],},"recommandé":{"recommandé":[4,21],},"reconnu":{"reconnus":[6,14],},"reconstitu":{"reconstituer":[7,21],},"reconstitué":{"reconstituée":[7,21],},"redirigé":{"redirigée":[2],},"redémarr":{"redémarrer":[4],},"reg":{"reg":[6,14],},"regedit":{"regedit":[6,14],},"regedit-":{"regedit-":[6,14],},"registr":{"registre":[6,14],},"registri":{"registry":[6,14],},"regroup":{"regrouper":[9,21],},"regroupé":{"regroupés":[9,21],},"regénéré":{"regénéré":[13],},"rel":{"relative":[5,16,21],"relatives":[11],},"relanc":{"relancer":[8,21],},"relancé":{"relancé":[15,21],},"relatif":{"relatifs":[21],},"relationnel":{"relationnelle":[1,21],},"reli":{"relie":[21],},"relir":{"relire":[6,21],},"remarqu":{"remarquer":[7,21],},"remplac":{"remplacer":[4,6,13,14,21],},"remplacé":{"remplacés":[6],"remplacées":[6],"remplacé":[7,21],},"rempli":{"rempli":[17],},"remplir":{"remplir":[17],},"rendr":{"rendre":[4,6,7,14,21],},"rendu":{"rendues":[6,14],"rendu":[6,21],},"renomm":{"renommer":[6,21],},"renommé":{"renommé":[4,6],"renommés":[6,21],},"renouv":{"renouv":[17],},"renseigné":{"renseignés":[11],"renseignées":[17],},"rentrer":{"rentrer":[6],},"renvoyé":{"renvoyées":[2,21],},"reporté":{"reportée":[6],},"repos":{"reposer":[6],"repose":[6],},"représent":{"représentation":[9,21],"représente":[13,21],"représentent":[21],},"représenté":{"représentée":[9,21],"représentés":[9,21],},"repsectiv":{"repsectivement":[21],},"requi":{"requis":[2,6,13,15,21],},"require_onc":{"require_once":[17],},"requis":{"requise":[11],},"resaur":{"resauration":[15],},"respect":{"respecte":[6],"respecter":[6,13,21],"respectant":[21],},"respectiv":{"respectivement":[11],},"respecté":{"respecté":[5,21],},"respons":{"responsable":[5,8,21],},"ressortira":{"ressortira":[6,14],},"ressourc":{"ressources":[2,6,7,9,11,13,15,21],"ressource":[6,7,13,21],},"rest":{"rest":[0,16,18,21],"reste":[16,21],},"restaur":{"restauration":[15,21],},"restauré":{"restaurées":[15,21],},"restera":{"restera":[3],},"restor":{"restore":[15,21],},"restreindr":{"restreindre":[5],},"restreint":{"restreint":[17],},"restrict":{"restriction":[5],},"result_url":{"result_url":[6,21],},"retour":{"retour":[2,6],},"retourn":{"retourner":[4,6,17,21],"retourne":[6,13,21],},"retournez":{"retournez":[14],},"retourné":{"retournée":[6,21],},"retrouv":{"retrouve":[4,21],},"revanch":{"revanche":[6],},"revenir":{"revenir":[6],},"road":{"road":[6,17],},"roam":{"roaming":[6,14],},"robot":{"robot":[5,21],},"rose":{"rose":[21],},"rout":{"route":[17],},"rubriqu":{"rubriques":[11,21],"rubrique":[11],},"rue":{"rue":[17],},"règle":{"règle":[4,21],"règles":[6,21],},"réception":{"réception":[4,11,21],},"récupèr":{"récupère":[5,17,21],},"récupérer":{"récupérer":[6,21],},"réduir":{"réduire":[9,21],},"réel":{"réel":[6,14],},"référenc":{"références":[21],},"référencement":{"référencement":[6,21],},"régulièr":{"régulière":[5,6,11,15,21],"régulièrement":[11,21],},"régénération":{"régénération":[13],},"régénérer":{"régénérer":[21],},"réimport":{"réimporter":[6],},"réimportez":{"réimportez":[14],},"réimportez-l":{"réimportez-les":[14],},"réinitialis":{"réinitialiser":[8,21],},"réinstal":{"réinstallation":[6,21],},"répartir":{"répartir":[1,6,21],},"répartit":{"répartition":[11,21],},"réperoir":{"réperoire":[21],},"réperoitr":{"réperoitre":[21],},"réperotir":{"réperotire":[21],},"répertoir":{"répertoire":[2,4,5,6,7,8,11,13,14,15,16,21],"répertoires":[4,5,6,11,14,21],},"répondr":{"répondre":[0,18,21],},"répons":{"réponse":[17],},"répété":{"répété":[6,21],},"résultat":{"résultats":[0,8,11,15,18,21],"résultat":[0,6,7,18,21],},"réussit":{"réussite":[6],},"réécrire":{"réécrire":[6,21],},"rôle":{"rôle":[5,21],},"s":{"s":[0,2,4,5,6,7,8,9,11,15,17,18,21],},"s\u0027abonn":{"s\u0027abonner":[6],},"s\u0027affich":{"s\u0027affiche":[5,6],"s\u0027afficher":[11],},"s\u0027affichera":{"s\u0027affichera":[6],},"s\u0027afficheront":{"s\u0027afficheront":[6],},"s\u0027agit":{"s\u0027agit":[6,7,17,21],},"s\u0027appuy":{"s\u0027appuyer":[0,18,21],},"s\u0027assur":{"s\u0027assurer":[6,7,21],},"s\u0027authentifi":{"s\u0027authentifier":[11],},"s\u0027est":{"s\u0027est":[15,21],},"s\u0027il":{"s\u0027il":[2,4,21],},"sa":{"sa":[6,7,13,21],},"safe":{"safe":[6,14],},"safesoftwar":{"safesoftware":[4],},"saisi":{"saisie":[0,6,7,17,21],"saisis":[5,21],"saisies":[6],"saisi":[6],},"saisir":{"saisir":[4,5,6,7,13,21],},"saisiss":{"saisissant":[5],},"saisit":{"saisit":[5,6,11,21],},"samedi":{"samedi":[13,21],},"san":{"sans":[0,6,7,11,15,16,17,18,21],},"satellit":{"satellite":[17],},"sauvegard":{"sauvegarde":[6,11,15,21],"sauvegarder":[7],},"sauvegarde_restaur":{"sauvegarde_restauration":[15],},"sauvegardé":{"sauvegardé":[15,21],},"savoir":{"savoir":[2,3,13],},"sb":{"sb":[17],},"sc":{"sc":[4,17],},"scale":{"scale":[17],},"schedul":{"scheduler":[4],},"schéma":{"schémas":[6],"schéma":[7,21],},"schéma|nom":{"schéma|nom":[17],},"script":{"scripts":[2,4],"script":[2,6,15,21],},"scrute":{"scrute":[6,21],},"se":{"se":[0,2,3,4,5,6,7,15,16,18,21],"ses":[5,7,11,14,21],},"searchtabl":{"searchtable":[17],},"second":{"secondes":[6,21],"seconde":[9,17,21],},"section":{"section":[4,5,6,7,11,21],"sections":[6,21],},"sein":{"sein":[5,21],},"self":{"self":[2],},"selon":{"selon":[4,5,6,7,8,9,14,17,21],},"semain":{"semaine":[9,13,21],},"sera":{"sera":[2,3,6,7,21],},"serait":{"serait":[6,7,21],},"seront":{"seront":[4,5,6,7,21],},"server":{"server":[11,21],"servers":[13],},"serveur":{"serveur":[1,2,3,4,5,6,7,8,9,11,14,17,21],"serveurs":[11,15,21],},"servic":{"service":[0,1,2,4,5,6,11,12,13,14,16,18,21],"services":[0,1,4,5,6,11,13,14,16,17,18,21],},"set":{"settings":[6,14],"set":[15,21],},"setup":{"setup":[2],},"seul":{"seul":[4,6,7,21],"seule":[6,21],"seuls":[6],"seules":[6],},"sgbd":{"sgbd":[6,21],},"shape":{"shape":[6,7,21],},"shape2gener":{"shape2generic":[7,21],},"shp":{"shp":[7,21],},"si":{"si":[2,4,5,6,7,8,11,13,15,17,21],},"sieg":{"siege":[5,21],},"sign":{"signe":[6],"signes":[6],},"signer":{"signer":[2],},"signifi":{"signifie":[6,13,21],},"simpl":{"simple":[2,4,6,7,11,16,21],},"sinon":{"sinon":[13,21],},"site":{"site":[2,4,6,8,11,14,15,16,21],},"situé":{"situé":[5,6,14,21],"situés":[21],"située":[21],},"size":{"size":[17],},"slider":{"slider":[17],},"sliderfield":{"sliderfield":[17],},"smtp":{"smtp":[4,11,21],},"sname":{"sname":[17],},"socl":{"socle":[5],},"softwar":{"software":[6,14],},"soin":{"soin":[6,21],},"soit":{"soit":[4,5,6,7,14,21],},"solut":{"solution":[0,18,21],},"son":{"son":[1,4,5,6,7,11,13,14,21],},"sont":{"sont":[0,2,3,4,5,6,7,8,9,11,13,14,15,17,18,21],},"sort":{"sorte":[5,6,11,13,14,21],},"sort_ord":{"sort_order":[6],},"sorti":{"sortie":[6,7,21],},"sou":{"sous":[0,5,6,7,17,18,21],},"souhait":{"souhaitant":[0,18,21],"souhaite":[6,11,21],},"souhaitez":{"souhaitez":[4,6,7,14],},"souhaiton":{"souhaitons":[7,21],},"souhaité":{"souhaitée":[0,18,21],"souhaité":[6,21],},"soumett":{"soumettent":[0,18,21],},"soumi":{"soumis":[1,21],},"sourc":{"sources":[6,7,11,21],"source":[6,7,8,13,17,21],},"source-fix":{"source-fixe":[21],},"sourcedataset_shap":{"sourcedataset_shape":[7,21],},"souri":{"souris":[6],},"sous-répertoir":{"sous-répertoire":[6],},"sous-sect":{"sous-section":[5],},"sp":{"sp":[4,21],},"sp2":{"sp2":[21],},"spathfil":{"spathfile":[17],},"sphéirqu":{"sphéirque":[17],},"sproject":{"sprojection":[17],},"spécialis":{"spécialisant":[4,21],"spécialisation":[21],},"spécifi":{"spécifie":[6,21],},"spécifiant":{"spécifiant":[6,21],},"spécific":{"spécification":[6,14],},"spécifier":{"spécifier":[7,21],},"spécifiqu":{"spécifique":[2,4,5,6,14,21],"spécifiques":[3,5,6,8,11,21],"spécifiquement":[4,5,21],},"spécifié":{"spécifiées":[4],"spécifié":[6,14],"spécifiée":[7,9,21],},"sql":{"sql":[15,21],},"ssl":{"ssl":[2],},"ssleay32":{"ssleay32":[15,21],},"stabl":{"stable":[17],},"stade":{"stade":[3,4,21],},"start":{"start":[4],},"statiqu":{"statique":[7,21],"statiques":[7,21],},"statist":{"statistics":[6,13,14],},"statistiqu":{"statistiques":[0,5,9,18,21],"statistique":[9,21],},"statut":{"statut":[4,13],},"stitl":{"stitle":[17],},"stock":{"stocke":[6,14,21],},"stockag":{"stockage":[1,21],},"stockant":{"stockant":[6,14],},"stockent":{"stockent":[6,11,14,21],},"stocker":{"stocker":[2],},"stocké":{"stockés":[4,6,11,14,21],"stocké":[6,21],"stockées":[6,7,14,21],},"stratégi":{"stratégie":[4,6,11,21],},"street":{"streets":[17],},"structur":{"structure":[17],},"studio":{"studio":[6],},"style":{"style":[6],},"subform":{"subform":[6,13,17,21],},"subformend":{"subformend":[17],},"submit":{"submit":[17],},"submitfield":{"submitfield":[17],},"subscript":{"subscriptions":[13],},"suffit":{"suffit":[5,17,21],},"suffix":{"suffixant":[6,21],},"suffixé":{"suffixé":[4,6],},"suit":{"suite":[2,8,21],},"suivant":{"suivantes":[2,4,5,15,21],"suivante":[4,5,15,21],"suivant":[5,21],"suivants":[6,14,15,21],},"suivi":{"suivi":[8,21],},"super":{"super":[2],},"supervis":{"supervision":[0,4,5,8,18,21],"supervise":[5],},"supervisionstatu":{"supervisionstatues":[13],},"supplémentair":{"supplémentaires":[1,4,7,21],"supplémentaire":[7,21],},"support":{"support":[6,12,21],"supporte":[7,17,21],},"supporté":{"supportés":[7,21],},"suppress":{"suppression":[2,5,6,8,11,21],},"supprim":{"supprimer":[5,6,7,8,10,11,14,17,21],"supprime":[21],},"supprimez":{"supprimez":[14],},"supprimé":{"supprimé":[8,21],"supprimées":[8,21],"supprimée":[8,21],"supprimés":[11,21],},"supérieur":{"supérieure":[1,6,21],},"sur":{"sur":[0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,21],},"survei":{"surveys":[13],},"surveil":{"surveillance":[5,6,7,8,21],"surveiller":[6,21],"surveillances":[8,21],},"surveytyp":{"surveytype":[13],},"switcher":{"switcher":[17],},"syntax":{"syntaxe":[6,13,21],},"synthès":{"synthèse":[9,21],},"synthétiqu":{"synthétique":[8,9,21],},"systèm":{"système":[1,5,6,7,14,17,21],"systèmes":[4,17],},"systématiqu":{"systématiques":[6,21],},"sécurisé":{"sécurisé":[2],},"sécurité":{"sécurité":[2,4,5,11,21],},"sélecteur":{"sélecteur":[17],},"sélection":{"sélection":[5,6,14,17,21],},"sélectionn":{"sélectionne":[4,5,6,21],"sélectionner":[4,5,6,7,17,21],"sélectionnant":[6],},"sélectionnez":{"sélectionnez":[14],},"sélectionné":{"sélectionnée":[6,21],"sélectionné":[6,8,21],"sélectionnées":[6,14],"sélectionnés":[8,21],},"séparant":{"séparant":[17],},"séparat":{"séparation":[6,13],},"séparer":{"séparer":[6],},"séparé":{"séparés":[6,17],},"séquenc":{"séquence":[7,16,21],},"tab":{"tabs":[13],},"tabl":{"table":[5,6,17],"tables":[6],},"tableau":{"tableau":[13,17],},"tableaux":{"tableaux":[9,21],},"table|nom":{"table|nom":[17],},"tabulair":{"tabulaire":[9,21],},"tag":{"tag":[4],"tags":[13],},"taill":{"taille":[9,11,17,21],},"tailll":{"taillles":[11,21],},"tant":{"tant":[6],},"techniqu":{"technique":[12,21],},"tel":{"tel":[5,6,7,11,14,21],"tels":[6,7,11,14,21],},"tell":{"telle":[6,21],"telles":[6],},"temp":{"temps":[6,7,9,11,14,16,21],},"temporair":{"temporaires":[4,11,21],"temporaire":[7,11,21],},"term":{"termes":[9],"terme":[21],},"terminé":{"terminé":[5,21],},"test":{"test":[2,3,4,6,14,21],"tests":[4],},"tester":{"tester":[6,7,21],},"text":{"texte":[4,5,6,7,13,14,17,21],},"textfield":{"textfield":[17,21],},"thématiqu":{"thématique":[6,21],},"titr":{"titre":[5,6,13,17,21],},"tmp":{"tmp":[6,14],},"token":{"token":[16,21],},"total":{"total":[9,21],},"tou":{"tous":[5,6,7,8,9,13,21],},"toujour":{"toujours":[5,7,16,17,21],},"tout":{"toutes":[5,6,13,17,21],"tout":[5,6,8,14,17,21],"toute":[12,16,21],},"traitabl":{"traitable":[8,21],},"traitement":{"traitements":[0,1,2,3,4,5,6,7,8,9,11,13,15,18,21],"traitement":[0,2,3,4,5,6,7,8,9,11,13,14,15,18,21],},"traitementdispon":{"traitementdisponible":[21],},"traiter":{"traiter":[21],},"traitment":{"traitment":[14],},"traité":{"traitée":[4,7,8,21],"traité":[7,8,9,21],"traités":[11,13,21],},"transform":{"transformers":[6,14],"transformer":[6,14,17],},"transformé":{"transformés":[6,14],},"transférer":{"transférer":[6],},"transparent":{"transparente":[0,18,21],},"travail":{"travailler":[0,6,18,21],"travail":[5,6,7,14,21],},"traver":{"travers":[9,21],},"tre":{"tre":[17],},"treeviewfield":{"treeviewfield":[17,21],},"tri":{"tri":[6],},"tronquer":{"tronquer":[9,21],},"trouv":{"trouve":[7,21],},"trouvent":{"trouvent":[7,21],},"trouvé":{"trouvé":[5,21],},"true":{"true":[17],},"trust":{"trust":[4,5,15,21],},"tutoriel":{"tutoriel":[17],},"txt":{"txt":[2,4,6,11,14,21],},"tye":{"tye":[6],},"type":{"type":[2,4,5,6,7,11,13,14,17,21],"types":[6,7,8,11,21],},"type_cascad":{"type_cascade":[17],},"tâche":{"tâches":[0,1,6,18,19,20,21,22],"tâche":[13,21],},"téléchargeabl":{"téléchargeable":[7,21],},"téléchargeant":{"téléchargeant":[4,21],},"téléchargement":{"téléchargement":[2,4,6,8,11,14,15,16,21],},"téléchargent":{"téléchargent":[0,18,21],},"télécharger":{"télécharger":[2,4,6,7,8,21],},"téléchargé":{"téléchargé":[4,21],},"u_schedul":{"u_scheduler":[4,5,15,21],},"un":{"une":[0,2,3,4,5,6,7,8,9,11,13,14,15,16,17,18,21],"un":[0,1,2,4,5,6,7,8,9,11,13,14,15,16,17,18,21],},"uniqu":{"unique":[4,6,7,13,21],"uniquement":[6,21],"uniques":[11,21],},"unité":{"unité":[13,21],"unités":[13,21],},"universel":{"universel":[6,21],},"up":{"up":[15,21],},"upload":{"uploade":[6],"uploadent":[7,21],"uploader":[7,21],"upload":[11,21],},"upload_dir":{"upload_dir":[11,21],},"upload_max_files":{"upload_max_filesize":[11,21],},"uploadera":{"uploadera":[21],},"uploadfield":{"uploadfield":[17],},"upload|docu":{"upload|document":[17],},"upload|document|spathfile|arrete|upload_dir":{"upload|document|spathfile|arrete|upload_dir":[17],},"uploadé":{"uploadé":[7,11,21],"uploadés":[11,21],},"uplod":{"uploder":[21],},"url":{"url":[6,13,16,21],},"us":{"use":[6,14],},"user":{"user":[6,21],"users":[13],},"user_email":{"user_email":[6,21],},"userord":{"userorders":[13],},"userprofil":{"userprofile":[6,14],},"usersubscript":{"usersubscriptions":[13],},"usersurvei":{"usersurveys":[13],},"util":{"util":[15,21],"utile":[17],},"utilis":{"utilise":[2,11,17],"utiliser":[5,6,7,16,17,21],"utilisation":[6,8,9,14,16,17,21],"utilisable":[7,21],"utilisant":[21],},"utilisateur":{"utilisateurs":[0,1,2,3,4,5,6,7,8,11,14,18,21],"utilisateur":[2,3,4,5,6,7,8,9,11,13,14,17,19,21],},"utilisé":{"utilisé":[1,5,6,8,9,11,14,17,21],"utilisée":[17],"utilisées":[17],},"va":{"va":[2,17],"vas":[4],},"valeur":{"valeur":[2,6,7,11,17,21],"valeurs":[6,7,17,21],},"valid":{"valide":[4,21],"valider":[5,6,21],"validation":[7,21],},"validité":{"validité":[4,6,21],},"valoris":{"valoriser":[17],},"valu":{"value":[6,17,21],},"vari":{"varie":[6],},"variabl":{"variables":[2,9,21],"variable":[2,3,6,7,9,14,21],},"vaut":{"vaut":[4,21],},"veiller":{"veiller":[11,21],},"venez":{"venez":[6,14],},"ver":{"vers":[2,7,21],},"verem":{"veremes":[2,4,6,8,11,12,14,15,16,21],},"veremap":{"veremap":[7],},"verrouil":{"verrouiller":[21],},"version":{"version":[2,4,6,11,13,14,16,21],"versions":[6,8,13,14,16,21],},"vert":{"vert":[6,7,21],},"veut":{"veut":[6],},"via":{"via":[4,5,6,7,8,13,14,16,21],},"vide":{"vide":[5,6,11,17,21],},"view":{"view":[17],},"virgul":{"virgule":[17],},"virtualform":{"virtualform":[17],},"virtualformv2":{"virtualformv2":[17],},"visibl":{"visibles":[6],},"vision":{"vision":[8,9,21],},"visualis":{"visualisation":[6,21],"visualiser":[6,7,21],},"visualiseur":{"visualiseurs":[6,21],},"viti":{"vitis":[2,3,4,5,6,13],},"vitis_":{"vitis_":[5],},"vitis_admin":{"vitis_admin":[5,13],},"vitis_admn":{"vitis_admn":[13],},"vitis_us":{"vitis_user":[3,5,13],},"vitissect":{"vitissections":[13],},"vmap":{"vmap":[5,6,13],},"vmlib":{"vmlib":[17],},"voit":{"voit":[6,21],},"votr":{"votre":[2,4,11,12,16,17,21],},"vou":{"vous":[2,4,5,6,7,12,14,17,21],},"voulez":{"voulez":[6],},"voulu":{"voulue":[17],},"voyant":{"voyant":[7,21],},"vérific":{"vérification":[3,13],},"vérifier":{"vérifier":[4,5,6,7,14,21],},"wab":{"wab":[8],},"web":{"web":[0,1,6,10,11,13,14,16,18,21],},"webservic":{"webservices":[13],},"wg":{"wgs":[6],},"wgs84":{"wgs84":[6,17],},"where":{"where":[6],},"wiki":{"wiki":[6,17,21],},"wikipedia":{"wikipedia":[6,21],},"window":{"windows":[1,2,4,6,14,21],},"withlabel":{"withlabels":[6],},"wkt":{"wkt":[6,7,17,21],},"wktpolygon":{"wktpolygon":[7,17],},"wm":{"wms":[17,21],},"wmslayer":{"wmslayers":[17],},"wmsmap":{"wmsmap":[17,21],},"wmsname":{"wmsname":[17],},"wmsservic":{"wmsservice":[17],},"wmt":{"wmts":[17,21],},"workbench":{"workbench":[0,6,7,14,18,21],},"workflow":{"workflow":[8],},"worksapc":{"worksapce":[6,21],},"workspac":{"workspace":[6,21],"workspaces":[13],},"wow6432nod":{"wow6432node":[6,14],},"wsubform":{"wsubform":[6,21],},"wt":{"wts":[17],},"www":{"www":[6,17,21],},"wx":{"wxs":[17],},"x":{"x":[6,7,21],},"xl":{"xls":[11,21],},"xmax":{"xmax":[17],},"xmaxmaxext":{"xmaxmaxextent":[17],},"xmin":{"xmin":[17],},"xminmaxext":{"xminmaxextent":[17],},"xml":{"xml":[6,14],},"y":{"y":[4,6,7,21],},"ymax":{"ymax":[17],},"ymaxmaxext":{"ymaxmaxextent":[17],},"ymin":{"ymin":[17],},"yminmaxext":{"yminmaxextent":[17],},"yyyi":{"yyyy":[2],},"zi":{"zi":[9,21],},"zip":{"zip":[2,4,6,7,15,17,21],},"zlib1":{"zlib1":[15,21],},"zone":{"zone":[7,17,21],},"zone_inond":{"zone_inondable":[6],},"zone_inondable_jjmm":{"zone_inondable_jjmm":[6],},"zone_inondableswfs2kml":{"zone_inondableswfs2kml":[6],},"zoom":{"zoom":[6,9,17,21],},"|":{"|":[6],},"|identifi":{"|identifiant":[17],},"à":{"à":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21],},"à-":{"à-":[2],},"à-dire":{"à-dire":[6,21],},"échang":{"échanges":[2],},"échell":{"échelle":[6,7,17,21],},"échéant":{"échéant":[6,21],},"écran":{"écran":[5,6,17,21],},"écrase":{"écrase":[6,21],},"écrasé":{"écrasés":[4,6,21],"écrasé":[6],"écrasées":[6],},"écrit":{"écrit":[17],},"éditant":{"éditant":[21],},"éditer":{"éditer":[3,6],},"éditeur":{"éditeur":[4,5,21],},"édition":{"édition":[5,6,13,21],},"édition-":{"édition-":[6],},"édition-multilign":{"édition-multiligne":[6],},"édition-url":{"édition-url":[6],},"édité":{"éditées":[6],"édité":[6],},"également":{"également":[0,5,6,7,11,14,18,21],},"élément":{"élément":[6],"éléments":[6,9,21],},"émise":{"émise":[6,21],"émises":[8,21],},"équip":{"équipe":[12,21],},"équival":{"équivalent":[17],},"étant":{"étant":[4,7,8,9,21],},"étape":{"étapes":[2,4,11,21],"étape":[2,4,6,21],},"état":{"état":[6,8,21],},"étendu":{"étendue":[6],},"étiquett":{"étiquettes":[17],},"été":{"été":[4,6,7,8,9,11,14,15,21],},"éventuel":{"éventuelles":[21],},"évitant":{"évitant":[11,21],},"ê":{"ê":[17],},"être":{"être":[2,4,5,6,7,8,9,11,14,15,17,21],"êtres":[6],},});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/SearchTopic_Chunk0.js b/src/module_gtf/module/gtf.doc/admin/Data/SearchTopic_Chunk0.js
new file mode 100755
index 0000000000000000000000000000000000000000..f540c32f664658879ad36eee729ee952b75f2cbd
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/SearchTopic_Chunk0.js
@@ -0,0 +1 @@
+define({"0":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm",a:"  GTF (Gestionnaire de Tâches pour FME) est une application 100% web qui permet de publier sur internet des traitements conçus avec FME et de les mettre à disposition d’un grand nombre d’utilisateurs. C’est un outil de partage, de planification et de supervision de traitements FME.  GTF offre des ...",t:" Bienvenue dans GTF "},"1":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm",a:"L\u0027architecture de GTF est constituée de plusieurs composants logiciels.  Composants Description GTF Client Applications web  permettant aux utilisateurs l’accès aux services GTF Apache HTTPD Logiciel serveur HTTP. PHP Langage de programmation PostgreSQL Système de gestion de base de données ...",t:"  Les composants logiciels de GTF"},"2":{i:0.0272182585067841,u:"../content/gtf_manuel_utilisateur/3_installation_de_gtf.htm",a:" Pour installer GTF, il faut télécharger l\u0027installateur sur le site http://download.veremes.com , dans le répertoire gtf/gtf2016. Les codes d\u0027accès (login et password) sont fournis par e-mail à la suite d\u0027une commande ou demande d\u0027évaluation. Ces informations peuvent être renvoyées sur simple ...",t:" Installation de GTF "},"3":{i:0.0435254486549937,u:"../content/gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm",a:"Configuration du compte administrateur Le compte administrateur, défini en phase d\u0027installation par la variable \u0027appAdmin\u0027, dispose initialement des privilèges vitis_user et vitis _admin.  La configuration du compte administrateur  permet l\u0027attribution des privilèges d\u0027administration spécifiques à ...",t:"Initialisation du compte Administrateur "},"4":{i:0.0551873229120681,u:"../content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm",a:"L\u0027installation du moteur GTF se décline en 5 étapes : Installation de Pycron Installation du moteur GTF Configuration du moteur GTF Configuration du serveur SMTP Activation de la licence  Installation de Pycron Pycron est le programme qui permet aux utilisateurs de systèmes Windows d’exécuter ...",t:"Installation du moteur GTF "},"5":{i:0.0977606819965697,u:"../content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm",a:" Un utilisateur GTF est un compte connu par l’application GTF qui peut se connecter à GTF et utiliser ses services. Deux profils d’utilisateurs GTF sont à distinguer :  « Utilisateurs PostgreSQL » : utilisateurs authentifiés par la base de données interne à GTF, PostgreSQL, créés directement dans ...",t:" Gestion des utilisateurs  "},"6":{i:0.0767382625198715,u:"../content/gtf_manuel_utilisateur/6_publication_de_traitements.htm",a:"Un utilisateur avec des droits d\u0027auteur peut publier un traitement. Après avoir généré un projet dans FME, il crée un traitement dans GTF puis l\u0027associe au projet. Le mode Publication comporte l’ensemble des formulaires permettant la création et le paramétrage des traitements GTF. Ajout de projet ...",t:" Publication de traitements"},"7":{i:0.130009755402837,u:"../content/gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm",a:" Traitement  de conversion d\u0027un fichier statique sur le serveur  Objectif Création d’un traitement simple de conversion d’un fichier Shape, disponible sur le serveur, en fichier MapInfo, avec publication du répertoire destination à créer.  Le fichier source est statique (toujours le même) et il se ...",t:" Exemples de publication de traitements"},"8":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/8_supervision.htm",a:"On entend par \u0027supervision\u0027 le suivi des demandes de traitements, des abonnements et des surveillances de tous les utilisateurs GTF. A tout moment, l’administrateur doit pouvoir consulter la liste des demandes de projets émises par tous les utilisateurs, en supprimer certaines, identifier les ...",t:"Supervision"},"9":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/statistiques.htm",a:"Le mode Statistiques permet aux administrateurs d’avoir une vision graphique et synthétique de l’utilisation des ressources de GTF, moteur, traitement, temps machine, par date et/ou utilisateur à travers des graphiques et des tableaux de synthèse. L’affichage des statistiques peut être graphique ou ...",t:"  Statistiques  "},"10":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm",a:"Journaux (logs) Consultation des fichiers de logs de l’application  Le mode Logs permet d’accéder à l’ensemble des fichiers de logs Apache, Pycron, Php, GTF et web. L’administrateur a la possibilité de supprimer les fichiers en fonction de leur ancienneté. ",t:"  Journaux (logs)"},"11":{i:0.118316020945206,u:"../content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm",a:"Configuration de l’application Le mode Configuration permet d\u0027éditer les paramètres de configuration stockés dans des fichiers de type \"properties\" et de consulter l\u0027état de l\u0027application. Paramètres généraux de configuration La section Configuration permet de consulter et modifier les paramètres ...",t:" Configuration et procédures d\u0027exploitation"},"12":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/13_support_technique.htm",a:" Pour toute information complémentaire, vous pouvez contacter l’équipe de Veremes par mail à l\u0027adresse support@veremes.com ou poser votre question sur la pateforme d\u0027assistance http://support.veremes.com/  Service commercial : +33 (0)4 68 38 65 27  Support technique : +33 (0)4 11 81 98 01  ",t:" Support technique"},"13":{i:0.0481459261614183,u:"../content/gtf_manuel_utilisateur/annexes.htm",a:" Syntaxe  des expressions CRON pour la définition des périodes d\u0027abonnement Le code à saisir doit respecter la syntaxe : mm hh jj MMM JJJ tâche Où mm représente les minutes (de 0 à 59) hh représente l’heure (de 0 à 23) jj représente le numéro du jour du mois (de 1 à 31) MMM représente l’abréviation ...",t:"  Annexes  "},"14":{i:0.0195063262498153,u:"../content/param_re_personnels.htm",a:"FME stocke les formats et Transformers personnalisés dans des répertoires propres à chaque utilisateur identifiés par la variable d\u0027environnement %userprofile%. Les Transformers personnalisés sont  stockés dans le répertoire %userprofile%\\Mes documents\\FME\\Transformers. Les formats personnalisés ...",t:"6.1.8 Gestion des Transformers et formats personnalisés "},"15":{i:0.0195063262498153,u:"../content/sauvegarde_restauration.htm",a:"   sauvegarde_restauration La procédure de sauvegarde et restauration de l\u0027application est expliquée dans le chapitre Sauvegarde et restauration de l’application .==\u003e phrase à insérer en fin de 4.5.2 , une fois le projet de resauration corrigé. 11.3.1 Sauvegarde de l\u0027application Le projet Sauvegarde ...",t:" "},"16":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/12_utilisation_des_services_web_de_gtf.htm",a:"Il est possible de manipuler GTF sans passer par l’interface gtf.client mais à l\u0027aide d\u0027une simple URL. C\u0027est l\u0027aspect \"web service\" de GTF. Ce service permet d’utiliser plusieurs fonctionnalités de l’application via des URL (adresses web).  Il existe actuellement plusieurs versions de l’API dans ...",t:"12 Utilisation des services WEB de GTF  "},"17":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/api_formulaire.htm",a:"14.1 Personnalisation des formulaires : API Formulaires 14.1.1 Structure du code des formulaires Le code est écrit en langage php, et contient les balises d’ouverture et fermeture \u003c ?php et ?\u003e en début et fin de fichier. La ligne require_once(\"vmlib/VirtualFormV2.class.inc\"); permet d’importer le ...",t:"API_formulaire"},"18":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm",a:"  GTF (Gestionnaire de Tâches pour FME) est une application 100% web qui permet de publier sur Internet des traitements conçus avec FME et de les mettre à disposition d’un grand nombre d’utilisateurs. C’est un outil de partage, de planification et de supervision de traitements FME.  GTF offre des ...",t:"1 Bienvenue dans GTF "},"19":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/gestionnaire_de_t_ches_pour.htm",a:"             Gestionnaire de Tâches pour FME 2016.1           Manuel Utilisateur              ",t:"Gestionnaire de Tâches pour FME"},"20":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/gtf_guide_installation.htm",a:"             Gestionnaire de Tâches pour FME 2016.1           Guide d\u0027installation              ",t:"Gestionnaire de Tâches pour FME"},"21":{i:0.130009755402837,u:"../content/gtf_manuel_utilisateur/gtf_manuel_utilisateur_.htm",a:"    1 Bienvenue dans GTF  GTF (Gestionnaire de Tâches pour FME) est une application 100% web qui permet de publier sur internet des traitements conçus avec FME et de les mettre à disposition d’un grand nombre d’utilisateurs. C’est un outil de partage, de planification et de supervision de ...",t:"gtf_manuel_utilisateur "},"22":{i:0.0195063262498153,u:"../content/gtf_manuel_utilisateur/page_de_garde_gtf_2017.htm",a:"             Gestionnaire de Tâches pour FME 2017           Guide d\u0027installation              ",t:"Gestionnaire de Tâches pour FME"},});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Synonyms.js b/src/module_gtf/module/gtf.doc/admin/Data/Synonyms.js
new file mode 100755
index 0000000000000000000000000000000000000000..384ca104bd9070f52e92a816e87ed920f521e282
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Synonyms.js
@@ -0,0 +1,8 @@
+var xmlSynonymsData = "";
+xmlSynonymsData += '<?xml version=\"1.0\" encoding=\"utf-8\"?>';
+xmlSynonymsData += '<MadCapSynonyms>';
+xmlSynonymsData += '    <!-- saved from url=(0016)http://localhost -->';
+xmlSynonymsData += '    <Groups />';
+xmlSynonymsData += '    <Directional />';
+xmlSynonymsData += '</MadCapSynonyms>';
+MadCap.Utilities.Xhr._FilePathToXmlStringMap.Add('Synonyms', xmlSynonymsData);
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Synonyms.xml b/src/module_gtf/module/gtf.doc/admin/Data/Synonyms.xml
new file mode 100755
index 0000000000000000000000000000000000000000..d6230b5b1a9dedbc58c41fb5e8f4d82490cbf1be
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Synonyms.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<MadCapSynonyms>
+    <!-- saved from url=(0016)http://localhost -->
+    <Groups />
+    <Directional />
+</MadCapSynonyms>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Toc.js b/src/module_gtf/module/gtf.doc/admin/Data/Toc.js
new file mode 100755
index 0000000000000000000000000000000000000000..b1e4f466c7f6beb6b9961457641b0b7a7bb76816
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Toc.js
@@ -0,0 +1 @@
+define({numchunks:1,prefix:'Toc_Chunk',chunkstart:['/content/gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm'],tree:{n:[{i:0,c:0},{i:1,c:0},{i:2,c:0,n:[{i:3,c:0,n:[{i:4,c:0,n:[{i:5,c:0},{i:6,c:0},{i:7,c:0}]},{i:8,c:0},{i:9,c:0}]},{i:10,c:0,n:[{i:11,c:0},{i:12,c:0}]},{i:13,c:0,n:[{i:14,c:0},{i:15,c:0},{i:16,c:0,n:[{i:17,c:0},{i:18,c:0},{i:19,c:0}]},{i:20,c:0},{i:21,c:0},{i:22,c:0}]}]},{i:23,c:0,n:[{i:24,c:0,n:[{i:25,c:0}]},{i:26,c:0,n:[{i:27,c:0},{i:28,c:0},{i:29,c:0},{i:30,c:0}]},{i:31,c:0}]},{i:32,c:0,n:[{i:33,c:0,n:[{i:34,c:0,n:[{i:35,c:0}]},{i:36,c:0},{i:37,c:0},{i:38,c:0},{i:39,c:0,n:[{i:40,c:0},{i:41,c:0},{i:42,c:0,n:[{i:43,c:0},{i:44,c:0},{i:45,c:0},{i:46,c:0},{i:47,c:0},{i:48,c:0},{i:49,c:0},{i:50,c:0},{i:51,c:0},{i:52,c:0},{i:53,c:0},{i:54,c:0},{i:55,c:0},{i:56,c:0},{i:57,c:0},{i:58,c:0},{i:59,c:0},{i:60,c:0},{i:61,c:0},{i:62,c:0},{i:63,c:0},{i:64,c:0},{i:65,c:0},{i:66,c:0},{i:67,c:0}]},{i:68,c:0,n:[{i:69,c:0},{i:70,c:0},{i:71,c:0},{i:72,c:0}]},{i:73,c:0}]},{i:74,c:0},{i:75,c:0},{i:76,c:0},{i:77,c:0}]},{i:78,c:0},{i:79,c:0},{i:80,c:0},{i:81,c:0,n:[{i:82,c:0},{i:83,c:0}]}]},{i:84,c:0,n:[{i:85,c:0,n:[{i:86,c:0},{i:87,c:0},{i:88,c:0}]},{i:89,c:0,n:[{i:90,c:0},{i:91,c:0},{i:92,c:0}]},{i:93,c:0,n:[{i:94,c:0},{i:95,c:0},{i:96,c:0}]},{i:97,c:0,n:[{i:98,c:0},{i:99,c:0},{i:100,c:0}]},{i:101,c:0,n:[{i:102,c:0},{i:103,c:0},{i:104,c:0}]}]},{i:105,c:0,n:[{i:106,c:0,n:[{i:107,c:0},{i:108,c:0}]},{i:109,c:0},{i:110,c:0},{i:111,c:0}]},{i:112,c:0},{i:113,c:0,n:[{i:114,c:0}]},{i:115,c:0,n:[{i:116,c:0,n:[{i:117,c:0,n:[{i:118,c:0},{i:119,c:0}]},{i:120,c:0},{i:121,c:0},{i:122,c:0},{i:123,c:0,n:[{i:124,c:0},{i:125,c:0}]}]},{i:126,c:0},{i:127,c:0}]},{i:128,c:0},{i:129,c:0,n:[{i:130,c:0},{i:131,c:0},{i:132,c:0},{i:133,c:0,n:[{i:134,c:0},{i:135,c:0},{i:136,c:0}]}]}]}});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Data/Toc_Chunk0.js b/src/module_gtf/module/gtf.doc/admin/Data/Toc_Chunk0.js
new file mode 100755
index 0000000000000000000000000000000000000000..681dc687bf0f0120ed8090718195b3e01bb7c651
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Data/Toc_Chunk0.js
@@ -0,0 +1 @@
+define({'/content/gtf_manuel_utilisateur/10_journaux__fichiers_de_logs_.htm':{i:[113,114],t:['Journaux (logs)','Consultation des fichiers de logs de l’application'],b:['','#10.1']},'/content/gtf_manuel_utilisateur/11_configuration_et_proc_dures_d_exploitation.htm':{i:[115,116,117,118,119,120,121,122,123,124,125,126,127],t:['Configuration et procédures d\u0027exploitation','Configuration de l’application','Paramètres généraux de configuration','Stratégie de sécurité','Gestion des journaux ','Version des composants','Informations PHP','Demande et activation de fichier de licence FME ','Configuration de GTF ','Configuration du serveur SMTP','Moteurs GTF','Configuration des répertoires Public et Upload','Nettoyage et suppression des fichiers temporaires'],b:['','#11.1','#11.1.1','#11.1.1..1compte_public','#11.1.1.2_Gestion_des_journaux_','#11.1.2_versions','#11.1.3_PHP','#11.1.4','#11.1.5_config_gtf','#11.1.5.1_Configuration_du_serveur_SMTP','#11.1.5.2_Configuration_des_moteurs_GTF','#11.22','#11.2']},'/content/gtf_manuel_utilisateur/13_support_technique.htm':{i:[128],t:['Support technique'],b:['']},'/content/gtf_manuel_utilisateur/1_bienvenue_dans_gtf.htm':{i:[0],t:['Bienvenue dans GTF'],b:['']},'/content/gtf_manuel_utilisateur/2_composants_logiciels_de_gtf.htm':{i:[1],t:['Les composants logiciels de GTF'],b:['']},'/content/gtf_manuel_utilisateur/3.2_initialisation_du_compte_administrateur.htm':{i:[10,11,12],t:['Initialisation du compte administrateur ','Configuration du compte Administrateur','Test de Connexion du compte administrateur '],b:['','#3.2.1_Configuration_du_compte_administrateur','#test_connexion_admin']},'/content/gtf_manuel_utilisateur/3.3_installation_du_moteur_gtf.htm':{i:[13,14,15,16,17,18,19,20,21,22],t:['Installation du moteur GTF','Installation de Pycron','Installation du Moteur GTF ','Configuration du moteur GTF','Déclaration du serveur','Déclaration d\u0027un moteur FME','Déclaration de moteur GTF','Configuration du serveur SMTP','Activation du fichier de licence GTF','Tests : Import de nouveaux traitements'],b:['','#install_pycr','#installmoteurGTF','#configmoteurGTF','#declarationServeur','#declarationMoteurFME','#DeclarationMoteurGTF','#ConfigSMTP','#Activation_fichierLicence','#3.3.6']},'/content/gtf_manuel_utilisateur/3_installation_de_gtf.htm':{i:[2,3,4,5,6,7,8,9],t:['Installation de GTF','Installation des composants pré requis et de GTF','Installation des composants pré requis','Installation de FME','Installation de Apache','Installation de PostgreSQL','Installation de GTF','Test de l\u0027installation de GTF'],b:['#3','#3.1InstalaltionPrerequis_GTF','#3.1.1Prerequis','#3.1.1.1','#3.1.1.2','#3.1.1.3','#3.1.2_Installation_de_GTF_','#3.1.3']},'/content/gtf_manuel_utilisateur/5_gestion_des_utilisateurs.htm':{i:[23,24,25,26,27,28,29,30,31],t:['Gestion des utilisateurs','Création d’utilisateurs et des groupes PostgreSQL','Création de groupes d’utilisateurs PostgreSQL','Utilisateurs et groupes d’un annuaire Active Directory','Ajout de domaines Active Directory','Import d’utilisateurs d’Active Directory','Import de groupes Active Directory','Gestion mixte des utilisateurs de domaines','Privilèges des utilisateurs'],b:['','#5.1','#5.1.1','#5.2','#5.2.1','#5.2.2','#5.2.3','#5.2.4','#5.3']},'/content/gtf_manuel_utilisateur/6_publication_de_traitements.htm':{i:[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83],t:['Publication de traitements','Ajout de projet FME','Ajout de projet FME','Règle de nommage de projets FME ','Ajout de projets par lot','Attribution de droits au traitement','Gestion des métadonnées','Gestion et personnalisation des formulaires : Travailler dans le studio','Formulaire par défaut, formulaire personnalisé et formulaire publié','Création d\u0027onglets dans un formulaire','Paramètres publiés FME et contrôles GTF','Paramètre publié de type Choix ','Paramètre publié de type Choix multiple','Paramètre publi de type Choix avec alias','Paramètre publié de type Choix avec Alias multiple','Paramètre publié de type Choix de couleur','Paramètre publié de type Curseur','Paramètre publié de type Date/Heure','Paramètre publié de type Entier','Paramètre publié de type Flottant','Paramètre publié de type Mot de passe','Paramètre publié de type Nom de fichiers multiples ','Paramètre publié de type Nom de fichier existant','Paramètre publié de type Nom de fichier en sortie','Paramètre publié de type Nom de système de coordonnées ','Paramètre publié de type Répertoire existant','Paramètre publié de type Répertoire en sortie','Paramètre publié de type Texte','Paramètre publié de type Texte multilignes','Paramètre publié de type Texte multilignes ou nombre','Paramètre publié de type URL','Contrôle GTF de type Bouton Radio','Contrôles GTF de type Carte OSM, carte Bing et carte vMap','Contrôle GTF de type Interface - Ligne de séparation','Contôles GTF de type Label','Contrôle GTF de type champ caché','Gestionnaire de données sources','Ajout de source de données de type Texte','Ajout de source de données de type Valeurs d\u0027une table locale','Ajout de source de connées de type Base de données externe ','Ajout de source de données de type Service Web ','Créer des listes en cascade','Appel externe','Répertoire projet','Gestion des Transformers et formats personnalisés','Gestion des connexions nommées','Gestion des catégories','Gestion des dépôts (répertoire de surveillance)','Gestion des périodes','Modèles d\u0027E-mail','Définition simple','Définition avancée'],b:['','#6.1','#6.1.1','#6.1.1.1','#6.1.2','#6.1.3','#6.1.4','#6.1.5','#6.1.5.1','#Onglets','#6.1.5.2','#6.1.5.2.1_Param%C3%A8tre_publi%C3%A9_de_type_Choix','#6.1.5.2.2.Param%C3%A8tre_publi%C3%A9_de_type_Choix_multiple','#6.1.5.2.3_Param%C3%A8tre_publi%C3%A9_de_type_Choix_avec_alias','#6.1.5.2.4_Param%C3%A8tre_publi%C3%A9_de_type_Choix_avec_Alias_Multiple','#6.1.5.2.5_Param%C3%A8tre_publi%C3%A9_de_type_choix_de_couleur_','#6.1.5.2.','#6.1.5.2.7','#6.1.5.2.8_Param%C3%A8tre_publi%C3%A9_de_type_Entier','#6.1.5.2.9_Param%C3%A8tre_publi%C3%A9_de_type_Flottant','#6.1.5.2.10_Param%C3%A8tre_publi%C3%A9_de_type_Mot_de_passe','#6.1.5.2.11','#6.1.5.2.12','#6.1.5.2.13','#6.1.5.2.14','#6.1.5.2.15','#6.1.5.2.16','#6.1.5.2.17','#6.1.5.2.18','#6.1.5.2.19','#6.1.5.2.20','#6.1.5.2.21','#6.1.5.2.22','#6.1.5.2.2','#6.1.5.2.23','#6.1.5.2.25','#6.1.5.3','#6.1.5.3.1','#6.1.5.3.2','#6.1.5.3.3','#6.1.5.3.4','#Liste_cascade','#6.1.6','#6.1.7','#6.1.8','#6.1.9','#6.2','#6.3','#6.4','#6.5','#6.5.1','#6.5.2']},'/content/gtf_manuel_utilisateur/7_exemples_de_publication_de_traitements.htm':{i:[84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],t:['Exemples de publication de traitements','Traitement de conversion d\u0027un fichier statique sur le serveur','Création du projet FME','Publication du traitement dans GTF','Exécution du traitement','Paramètres publiés supplémentaires','Création du projet FME','Publication du traitement dans GTF','Exécution du traitement','Conversion de fichiers chargés avec le projet FME','Création du projet FME','Publication du traitement dans GTF','Exécution du traitement','Traitement de conversion avec sortie générique ','Création du projet FME','Publication du traitement dans GTF','Exécution du traitement','Personnalisation de formulaire : exploitation du contrôle de type Carte OSM.','Création du projet FME','Publication du traitement dans GTF','Exécution du traitement'],b:['','#7.1','#7.1.1','#7.1.2','#7.1.3','#7.2','#7.2.1','#7.2.2','#7.2.3','#7.3','#7.3.1','#7.3.2','#7.3.3','#7.4','#7.4.1','#7.4.2','#7.4.3','#7.5','#7.5.1','#7.5.2','#7.5.3']},'/content/gtf_manuel_utilisateur/8_supervision.htm':{i:[105,106,107,108,109,110,111],t:['Supervision','Supervision des Demandes','Suppression des demandes','Modification de moteurs','Supervision des abonnements','Supervision des surveillances','Gestion des messages'],b:['','#8.1','#8.1.1','#8.1.2','#8.2','#8.3','#8.4']},'/content/gtf_manuel_utilisateur/annexes.htm':{i:[129,130,131,132,133,134,135,136],t:['Annexes','Syntaxe  des expressions CRON pour la définition des périodes d\u0027abonnement','Services web et Privilèges','Liste des contrôles GTF','Projets intégrés','Admin-Export','Admin-import','Vérification des formulaires'],b:['','#13.1','#13.2','#13.3','#13.4','#13.4.1','#13.4.2','#13.4.3']},'/content/gtf_manuel_utilisateur/statistiques.htm':{i:[112],t:['Statistiques'],b:['']}});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/MyWebHelp.mclog b/src/module_gtf/module/gtf.doc/admin/MyWebHelp.mclog
new file mode 100755
index 0000000000000000000000000000000000000000..38eed187da513d608de329006695ed5ec7c79597
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/MyWebHelp.mclog
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<MadCapLog Protocol="2" Description="MadBuild V11 Generated MyWebHelp.fltar" Date="2017-02-23T09:53:14.9259950+01:00">
+    <Messages>Compiling target MyWebHelp...
+Suppression du contenu déjà généré...
+Chargement des informations d'habillage...
+Collecte des informations de glossaire...
+Collecte d'informations d'indexation automatique...
+Chargement de la table des matières principale...
+Traitement de la table des matières principale...
+Génération du glossaire...
+Collecte de fichiers source...
+Traitement des fichiers source...
+L'image "Capture.png" régénérée pour medium "" : Resources\Images\Capture.png
+L'image "FLECHE.png" régénérée pour medium "" : Resources\Images\FLECHE.png
+Traitement du fichier CSS&#160;: Resources\Stylesheets\gtf_manuel_utilisateur .css...
+Génération des fichiers de sortie...
+Traitement de la rubrique : gtf_manuel_utilisateur\1 Bienvenue dans GTF.htm...
+gtf_manuel_utilisateur\1_bienvenue_dans_gtf.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\2 Composants logiciels de GTF.htm...
+gtf_manuel_utilisateur\2_composants_logiciels_de_gtf.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\3 Installation de GTF.htm...
+gtf_manuel_utilisateur\3_installation_de_gtf.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\3.2 Initialisation du compte Administrateur.htm...
+gtf_manuel_utilisateur\3.2_initialisation_du_compte_administrateur.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\3.3 Installation du moteur GTF.htm...
+gtf_manuel_utilisateur\3.3_installation_du_moteur_gtf.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\5 Gestion des utilisateurs.htm...
+gtf_manuel_utilisateur\5_gestion_des_utilisateurs.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\6 Publication de traitements.htm...
+gtf_manuel_utilisateur\6_publication_de_traitements.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\7 Exemples de publication de traitements.htm...
+gtf_manuel_utilisateur\7_exemples_de_publication_de_traitements.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\8 Supervision.htm...
+gtf_manuel_utilisateur\8_supervision.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\Statistiques.htm...
+gtf_manuel_utilisateur\statistiques.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\10 Journaux (fichiers de logs).htm...
+gtf_manuel_utilisateur\10_journaux__fichiers_de_logs_.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\11 Configuration et procédures d'exploitation.htm...
+gtf_manuel_utilisateur\11_configuration_et_proc_dures_d_exploitation.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\13 Support technique.htm...
+gtf_manuel_utilisateur\13_support_technique.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\Annexes.htm...
+gtf_manuel_utilisateur\annexes.htm généré
+Traitement de la rubrique : Paramère_personnels.htm...
+param_re_personnels.htm généré
+Traitement de la rubrique : sauvegarde_restauration.htm...
+sauvegarde_restauration.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\12 Utilisation des services WEB de GTF.htm...
+gtf_manuel_utilisateur\12_utilisation_des_services_web_de_gtf.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\API_formulaire.htm...
+gtf_manuel_utilisateur\api_formulaire.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\Bienvenue dans GTF.2016.htm...
+gtf_manuel_utilisateur\bienvenue_dans_gtf.2016.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\Gestionnaire de Tâches pour.htm...
+gtf_manuel_utilisateur\gestionnaire_de_t_ches_pour.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\GTF_guide_installation.htm...
+gtf_manuel_utilisateur\gtf_guide_installation.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\gtf_manuel_utilisateur .htm...
+gtf_manuel_utilisateur\gtf_manuel_utilisateur_.htm généré
+Traitement de la rubrique : gtf_manuel_utilisateur\Page de garde GTF 2017.htm...
+gtf_manuel_utilisateur\page_de_garde_gtf_2017.htm généré
+Génération des habillages de la sortie...
+Génération du fichier des synonymes...
+Génération du fichier d'alias...
+Traitement des liens audio en cours...
+Génération de la table des matières finale...
+Génération des ancrages de concepts et de mots clés dans les fichiers de sortie...
+Génération de l'index...
+Génération des concepts...
+Génération des rubriques modèles...
+Génération de Search.htm en cours...
+Rubrique identifiée comme 'Non accessible pour la recherche' : Search.htm...
+search.htm généré
+Résolution des liens dans les fichiers de sortie...
+Génération de la base de données de recherche...
+Écriture dans la cache d'une entrée de recherche....
+Génération de la sortie finale...
+gtf_manuel_utilisateur.htm généré
+Enregistrement de la série de résultat...
+Ignorer les avertissements du compilateur : 399
+Sortie générée dans12 seconde(s).
+
+Terminé
+Saving log to "E:\svn\produit\gtf\doc\gtf_manuel_utilisateur\Output\m_espada\MyWebHelp\MyWebHelp.mclog"
+</Messages>
+    <Warnings />
+    <Errors />
+</MadCapLog>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/MadCapAll.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/MadCapAll.js
new file mode 100755
index 0000000000000000000000000000000000000000..00d83741ccb4f3b964a41515b958d2faf2607789
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/MadCapAll.js
@@ -0,0 +1,106 @@
+/*
+* Copyright MadCap Software
+* http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+*
+ * v11.0.0.0
+*/
+var MadCap={};MadCap.CreateNamespace=function(b){var d=b.split(".");var e=MadCap;for(var a=0,c=d.length;a<c;a++){var b=d[a];if(b=="MadCap"){continue}if(typeof(e[b])!="undefined"){e=e[b];continue}e[b]={};e=e[b]}return e};if(!Object.create){Object.create=function(b){if(arguments.length>1){throw new Error("Object.create implementation only accepts the first parameter.")}function a(){}a.prototype=b;return new a()}}if(typeof String.prototype.trim!=="function"){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}MadCap.Extend=function(a,b){b.prototype=Object.create(a.prototype);b.prototype.constructor=b;b.prototype.base=a.prototype};MadCap.Exception=function(b,a){this.Number=b;this.Message=a};MadCap.IsIOS=function(){return MadCap.String.Contains(navigator.userAgent,"iphone")||MadCap.String.Contains(navigator.userAgent,"ipad")};MadCap.IsIBooks=function(){return MadCap.HasEpubReadingSystem()&&navigator.epubReadingSystem.name=="iBooks"};MadCap.HasEpubReadingSystem=function(){return"epubReadingSystem" in navigator};MadCap.IsSafari=function(){return MadCap.String.Contains(navigator.userAgent,"safari")&&!MadCap.String.Contains(navigator.userAgent,"chrome")};(function(){var a=MadCap.CreateNamespace("String");a.IsNullOrEmpty=function(b){if(b==null){return true}if(b.length==0){return true}return false};a.StartsWith=function(f,e,c){if(e==null){return false}if(f.length<e.length){return false}var d=f;var b=e;if(!c){d=d.toLowerCase();b=b.toLowerCase()}if(d.substring(0,b.length)==b){return true}else{return false}};a.EndsWith=function(f,e,c){if(e==null){return false}if(f.length<e.length){return false}var d=f;var b=e;if(!c){d=d.toLowerCase();b=b.toLowerCase()}if(d.substring(d.length-b.length)==b){return true}else{return false}};a.Contains=function(h,g,c){var d=c?h:h.toLowerCase();if($.isArray(g)){for(var e=0,f=g.length;e<f;e++){var b=c?g[e]:g[e].toLowerCase();if(d.indexOf(b)!=-1){return true}}return false}var b=c?g:g.toLowerCase();return d.indexOf(b)!=-1};a.Trim=function(b){return a.TrimRight(a.TrimLeft(b))};a.TrimLeft=function(d){var b=0;var c=d.length;for(b=0;b<c&&d.charAt(b)==" ";b++){}return d.substring(b,d.length)};a.TrimRight=function(c){var b=0;for(b=c.length-1;b>=0&&c.charAt(b)==" ";b--){}return c.substring(0,b+1)};a.ToBool=function(e,c){var b=c;if(e!=null){var d=e.toLowerCase();if(d!="true"&&d!="false"&&d!="1"&&d!="0"&&d!="yes"&&d!="no"){throw new MadCap.Exception(-1,"The string can not be converted to a boolean value.")}b=d=="true"||d=="1"||d=="yes"}return b};a.ToInt=function(d,b){var c=b;if(d!=null){c=parseInt(d)}return c};a.ToDashed=function(b){return b.replace(/([A-Z])/g,function(c){return"-"+c.toLowerCase()})};a.Compare=function(f,e){var h=f.length;var g=e.length;for(var d=0;d<h&&d<g;d++){var c=f.charCodeAt(d);var b=e.charCodeAt(d);if(c<b){return -1}else{if(c>b){return 1}}}if(h<g){return -1}else{if(h>g){return 1}else{return 0}}}})();(function(){MadCap.CreateNamespace("DEBUG");var a=MadCap.DEBUG;a.Log={};a.Log.Create=function(){var e=document.createElement("div");e.setAttribute("id","DEBUG_Log");var f=document.createElement("div");$(f).addClass("MCDebugLogHeader");f.appendChild(document.createTextNode("Log Console"));e.appendChild(f);var d=document.createElement("div");$(d).addClass("MCDebugLogBody");e.appendChild(d);var c=document.createElement("div");$(c).addClass("MCDebugLogFooter");e.appendChild(c);document.body.appendChild(e);var b=new MadCap.DragDrop(e,f)};a.Log._LoadTime=new Date();a.Log.AddLine=function(d){if(parent!=window){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"DEBUG-AddLine",[d],null);return}var f=document.getElementById("DEBUG_Log");if(f==null){return}var c=new Date();var h=c-a.Log._LoadTime;var e=document.createElement("p");$(e).addClass("MCDebugLogEntryTime");e.appendChild(document.createTextNode(h+"ms "+c.toLocaleTimeString()));var b=document.createElement("div");$(b).addClass("MCDebugLogEntry");b.appendChild(e);b.appendChild(document.createTextNode(d));var g=MadCap.Dom.GetElementsByClassName("MCDebugLogBody","div",f)[0];g.insertBefore(b,g.firstChild)}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("Dom");var a=MadCap.Dom;a.Dataset=function(c,b){return c.getAttribute("data-"+MadCap.String.ToDashed(b))};a.GetElementsByClassName=function(g,b,c){b=b||"*";c=c||document;var d=new Array();var j=c.getElementsByTagName(b);for(var e=0,h=j.length;e<h;e++){var f=j[e];if($(f).hasClass(g)){d[d.length]=f}}return d};a.GetElementsByAttribute=function(h,k,l,j){l=l||"*";j=j||document;var c=new Array();var b=j.getElementsByTagName(l);for(var g=0,e=b.length;g<e;g++){var d=b[g];var f=a.GetAttribute(d,h);if(f==k){c[c.length]=d}}return c};a.GetChildNodeByTagName=function(d,f,e){var c=null;var g=-1;for(var b=d.firstChild;b!=null;b=b.nextSibling){if(b.nodeName.toLowerCase()==f.toLowerCase()){g++;if(g==e){c=b;break}}}return c};a.GetAncestorNodeByTagName=function(d,e,f){f=f||document.body;var c=null;var b=d.parentNode;while(b!=null&&b!=f){if(b.nodeName.toLowerCase()==e.toLowerCase()){c=b;break}b=b.parentNode}return c};a.GetAttribute=function(b,e){var d=b.getAttribute(e);if(d==null){d=b.getAttribute(e.toLowerCase());if(d==null){var c=e.indexOf(":");if(c!=-1){d=b.getAttribute(e.substring(c+1,e.length))}}}return d};a.GetAttributeInt=function(e,c,b){var d=b;var f=a.GetAttribute(e,c);if(f!=null){d=parseInt(f)}return d};a.GetAttributeBool=function(e,d,c){var b=c;var f=a.GetAttribute(e,d);if(f!=null){b=MadCap.String.ToBool(f,c)}return b};a.GetScrollPosition=function(){var b=0;var c=0;if(typeof(window.pageYOffset)!="undefined"){b=window.pageXOffset;c=window.pageYOffset}else{if(typeof(document.documentElement.scrollTop)!="undefined"&&document.documentElement.scrollTop>0){b=document.documentElement.scrollLeft;c=document.documentElement.scrollTop}}return{X:b,Y:c}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("Utilities");MadCap.Utilities.Dictionary=function(f){this._Map=new Object();this._Overflows=new Array();this._Length=0;this._IgnoreCase=f==true};var a=MadCap.Utilities.Dictionary;a.prototype.GetLength=function(f){return this._Length};a.prototype.ForEach=function(j){var f=this._Map;for(var n in f){var m=f[n];var l=j(n,m);if(l!=undefined&&!l){return}}var h=this._Overflows;for(var k=0,g=h.length;k<g;k++){var o=h[k];var l=j(o.Key,o.Value);if(l!=undefined&&!l){return}}};a.prototype.GetItem=function(g){if(this._IgnoreCase){g=g.toLowerCase()}var h=null;if(typeof(this._Map[g])=="function"){var f=this.GetItemOverflowIndex(g);if(f>=0){h=this._Overflows[f].Value}}else{h=this._Map[g];if(typeof(h)=="undefined"){h=null}}return h};a.prototype.GetItemOverflowIndex=function(g){if(this._IgnoreCase){g=g.toLowerCase()}var j=this._Overflows;for(var f=0,h=j.length;f<h;f++){if(j[f].Key==g){return f}}return -1};a.prototype.Remove=function(g){if(this._IgnoreCase){g=g.toLowerCase()}if(typeof(this._Map[g])=="function"){var f=this.GetItemOverflowIndex(g);if(f>=0){this._Overflows.splice(f,1);this._Length--}}else{if(typeof(this._Map[g])!="undefined"){delete (this._Map[g]);this._Length--}}};a.prototype.Add=function(f,h){if(this._IgnoreCase){f=f.toLowerCase()}if(typeof(this._Map[f])=="function"){var g=this.GetItem(f);if(g!=null){this.Remove(f)}this._Overflows[this._Overflows.length]={Key:f,Value:h}}else{this._Map[f]=h}this._Length++};a.prototype.AddUnique=function(f,h){if(this._IgnoreCase){f=f.toLowerCase()}var g=this.GetItem(f);if(typeof(g)=="undefined"||!g){this.Add(f,h)}};MadCap.Utilities.DateTime=function(h){var g=/\/Date\(([0-9]+)\)\//i;var f=g.exec(h);if(f!=null){this.Date=new Date(parseInt(f[1]))}else{this.Date=new Date(h)}};var c=MadCap.Utilities.DateTime;c.Months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];MadCap.Utilities.TimeSpan=function(g,f){if(typeof g=="undefined"){g=new Date()}if(typeof f=="undefined"){f=new Date()}if(g>f){this.FromDate=f;this.ToDate=g}else{this.FromDate=g;this.ToDate=f}this.Ticks=this.ToDate-this.FromDate;this.Seconds=this.Ticks/1000;this.Minutes=this.Seconds/60;this.Hours=this.Minutes/60;this.Days=this.Hours/24};var b=MadCap.Utilities.TimeSpan;b.prototype.ToDurationString=function(){if(this.Minutes<1){return"Just now"}if(this.Hours<1){return parseInt(this.Minutes)+" minutes ago"}if(this.Days<1){return parseInt(this.Hours)+" hours ago"}if(this.Days<30){return parseInt(this.Days)+" days ago"}var f=c.Months[this.FromDate.getMonth()]+" "+this.FromDate.getDate();if(this.FromDate.getFullYear()!=this.ToDate.getFullYear()){f+=", "+this.FromDate.getFullYear()}return f};MadCap.Utilities.Url=function(g){var f=this;this._Segments=[];this.FullPath=null;this.Path=null;this.PlainPath=null;this.Name=null;this.Extension=null;this.NameWithExtension=null;this.Fragment=null;this.Query=null;this.IsAbsolute=false;this.IsFolder=false;this.QueryMap=new MadCap.Utilities.Dictionary(true);this.HashMap=new MadCap.Utilities.Dictionary(true);(function(){var p="";var s="";var q=g.indexOf("#");var n=g.indexOf("?");if(q!=-1){if(q>n){p=g.substring(q)}else{p=g.substring(q,n)}}if(n!=-1){if(n>q){s=g.substring(n)}else{s=g.substring(n,q)}}var t=q>-1?(n>-1?Math.min(q,n):q):n;var o=g.substring(0,t==-1?g.length:t);t=o.lastIndexOf("/");var v=o.substring(0,t+1);var m=o.substring(t+1);t=m.lastIndexOf(".");var h=m.substring(0,t);var k=m.substring(t+1);var j="";t=g.indexOf(":");if(t>=0){j=g.substring(0,t)}if(!MadCap.String.IsNullOrEmpty(g)){var r=g;if(MadCap.String.EndsWith(r,"/")){r=r.substring(0,r.length-1)}f._Segments=r.split("/")}f.FullPath=g;f.Path=v;f.PlainPath=o;f.Name=h;f.Extension=k;f.NameWithExtension=m;f.Scheme=j;f.IsAbsolute=!MadCap.String.IsNullOrEmpty(j);f.IsFolder=MadCap.String.EndsWith(o,"/");f.Fragment=p;f.Query=s;var u=f.Query;if(!MadCap.String.IsNullOrEmpty(u)){u=u.substring(1);u=u.replace(/\+/g," ");i(u,"&",f.QueryMap)}var l=f.Fragment;if(!MadCap.String.IsNullOrEmpty(l)){l=l.substring(1);i(l,"|",f.HashMap)}function i(F,x,w){var C=F.split(x);for(var A=0,y=C.length;A<y;A++){var z=C[A];var B=z.indexOf("=");var E=null;var D=null;if(B>=0){E=decodeURIComponent(z.substring(0,B));D=decodeURIComponent(z.substring(B+1))}else{E=z}w.Add(E,D)}}})()};var e=MadCap.Utilities.Url;e.StripInvalidCharacters=function(f){return f.replace(/(javascript:|data:|[<>])/gi,"")};e.prototype.AddFile=function(i){if(typeof(i)=="string"){i=new e(i)}if(i.IsAbsolute){return i}var h=i.FullPath;if(h.charAt(0)=="/"){var j=document.location;var k=j.href.lastIndexOf(j.pathname);var g=j.href.substring(0,k);return new e(g+h)}var f=this.FullPath;if(!MadCap.String.EndsWith(f,"/")){f=f+"/"}return new e(f+h)};e.prototype.CombinePath=function(l){if(typeof(l)=="string"){l=new e(l)}if(l.IsAbsolute){throw new MadCap.Exception(-1,"Cannot combine two absolute paths.")}var j=l.FullPath;var k=l.FullPath.split("/");var o=this.FullPath;var m="";if(this.Scheme=="mk"){var n=o.indexOf("::");m=o.substring(0,n+"::".length);o=o.substring(n+"::".length)}for(var h=0,f=k.length;h<f;h++){var g=k[h];if(o.length>1&&MadCap.String.EndsWith(o,"/")){o=o.substring(0,o.length-1)}if(g=="."){o+="/"}else{if(g==".."){o=o.substring(0,o.lastIndexOf("/")+1)}else{if(o!=""&&!MadCap.String.EndsWith(o,"/")){o+="/"}o+=g}}}o=m+o;return new e(o)};e.prototype.ToQuery=function(g){var f=this.PlainPath+"?"+g+this.Fragment;return new e(f)};e.prototype.ToFolder=function(){var f=this.PlainPath;if(MadCap.String.EndsWith(f,"/")){f=f.substring(0,f.length-1)}var h=f.lastIndexOf("/");var g=f.substring(0,h+1);return new e(g)};e.prototype.ToRelative=function(n){if(typeof(n)=="string"){n=new e(n)}if(this.IsAbsolute!=n.IsAbsolute){return this}var k=0;var l=n._Segments.length;for(;k<l;k++){var g=this._Segments[k];var f=n._Segments[k];if(g!=f){break}}var m="";var o=MadCap.String.EndsWith(n.FullPath,"/")?0:1;for(var h=0;h<l-k-o;h++){m+="../"}for(var h=k;h<this._Segments.length;h++){if(h>k){m+="/"}m+=this._Segments[h]}return new e(m)};e.prototype.ToExtension=function(j){var h=this.FullPath;var i=h.lastIndexOf(".");var g=h.substring(0,i);var f=g+"."+j;return new e(f)};e.prototype.ToScheme=function(f){var h=this.FullPath;pos=h.indexOf(":");if(pos<0){return this}var g=f+":"+h.substring(pos);return new e(g)};e.prototype.ToPath=function(){return new e(this.Path)};e.prototype.ToPlainPath=function(){return new e(this.PlainPath)};e.prototype.ToNoQuery=function(){return new e(this.PlainPath+this.Fragment)};MadCap.Utilities.CrossFrame={};var d=MadCap.Utilities.CrossFrame;d.MESSAGE_SEPARATOR="%%%%%";d.DATA_SEPARATOR="^^^^^";d._MessageID=0;d._MessageInfos=new Array();d._MessageHandlerFuncs=new Array();d._PostMessage=function(h,f){if(typeof h=="undefined"){return}if(h.postMessage!=null){h.postMessage(f,"*");return}var g={data:f,source:window};h.MadCap.Utilities.CrossFrame.OnMessage(g)};d.AddMessageHandler=function(h,g){var f=d._MessageHandlerFuncs.length;d._MessageHandlerFuncs[f]={HandlerFunc:h,ContextObj:g}};d.PostMessageRequest=function(n,k,l,f){d._MessageInfos[d._MessageID]=f;var h="";if(l!=null){for(var g=0,j=l.length;g<j;g++){if(g>0){h+=d.DATA_SEPARATOR}h+=l[g]}}var m="request"+d.MESSAGE_SEPARATOR+k+d.MESSAGE_SEPARATOR+h+d.MESSAGE_SEPARATOR+d._MessageID;d._PostMessage(n,m);d._MessageID++};d._PostMessageResponse=function(n,k,l,f){var h="";if(l!=null){for(var g=0,j=l.length;g<j;g++){if(g>0){h+=d.DATA_SEPARATOR}h+=l[g]}}var m="response"+d.MESSAGE_SEPARATOR+k+d.MESSAGE_SEPARATOR+h+d.MESSAGE_SEPARATOR+f;d._PostMessage(n,m);d._MessageID++};d.OnMessage=function(t){var s=t.originalEvent;var o=s.data.split(d.MESSAGE_SEPARATOR);var m=o[0];var l=o[1];var j=o[2];var f=parseInt(o[3]);var h=null;if(!MadCap.String.IsNullOrEmpty(j)){h=j.split(d.DATA_SEPARATOR);for(var p=0,g=h.length;p<g;p++){if(h[p]=="null"){h[p]=null}}}if(m=="request"){var k=false;var x=true;var v=new Array();for(var p=0,g=d._MessageHandlerFuncs.length;p<g;p++){var w=d._MessageHandlerFuncs[p];var u=w.HandlerFunc;var q=w.ContextObj;var r=null;if(q!=null){r=u.call(q,l,h,v,s.source,f)}else{r=u(l,h,v,s.source,f)}k=r.Handled;x=r.FireResponse;if(k){break}}if(!k){if(l=="DEBUG-AddLine"){var l=h[0];MadCap.DEBUG.Log.AddLine(l);k=true}else{if(l=="url"){v[v.length]=document.location.href;k=true}else{if(l=="get-title"){v[v.length]=document.title;k=true}else{if(l=="navigate"){var n=h[0];document.location.href=n;k=true}}}}}if(x){d._PostMessageResponse(s.source,l,v.length>0?v:null,f)}}else{if(m=="response"){if(d._MessageInfos[f]!=null){d._MessageInfos[f](h)}}}};if(window.postMessage!="undefined"){$(window).bind("message",d.OnMessage)}else{}MadCap.Utilities.PreventDefault=function(f){f.preventDefault?f.preventDefault():event.returnValue=false};MadCap.Utilities.AsyncForeach=function(i,g,h){i=i.slice(0);function f(){var j=i.shift();g(j,function(k){if(i.length>0){f()}else{h()}})}if(i.length>0){f()}else{h()}};MadCap.Utilities.Now=Date.now||function(){return new Date().getTime()};MadCap.Utilities.Debounce=function(h,j,g){var m,l,f,k,n;var i=function(){var o=MadCap.Utilities.Now()-k;if(o<j&&o>0){m=setTimeout(i,j-o)}else{m=null;if(!g){n=h.apply(f,l);if(!m){f=l=null}}}};return function(){f=this;l=arguments;k=MadCap.Utilities.Now();var o=g&&!m;if(!m){m=setTimeout(i,j)}if(o){n=h.apply(f,l);f=l=null}return n}};MadCap.Utilities.IsRuntimeFileType=function(f){return MadCap.Dom.Dataset(document.documentElement,"mcRuntimeFileType")==f};MadCap.Utilities.HasRuntimeFileType=function(g){var f=MadCap.Dom.Dataset(document.documentElement,"mcRuntimeFileType");return f&&f.split(";").indexOf(g)>-1};MadCap.Utilities.CreateStylesheet=function(i,j){var g=i||document,f;var h=g.createElement("style");if(j){h.setAttribute("media",j)}g.getElementsByTagName("head")[0].appendChild(h);f=g.styleSheets[g.styleSheets.length-1];return f};MadCap.Utilities.AsyncForeachParallel=function(l,j,k){var h=0;if(l.length===0){k()}var f=l.length;for(var g=0;g<f;g++){j(l[g],function(){h++;if(h===l.length){k()}})}};MadCap.Utilities.FixLink=function(h,g,i,f){if(!h.IsAbsolute){h=g.CombinePath(h);var j=h.FullPath;if(!MadCap.String.IsNullOrEmpty(i)&&i!=null&&f){h=h.ToRelative(f);j=i+h.FullPath}return j}};MadCap.Utilities.IsRTL=function(){return $("html").css("direction")==="rtl"};MadCap.Utilities.ToggleButtonState=function(f){var i=$(f);var g=i.attr("data-current-state")||"1";var h=g=="1"?2:1;MadCap.Utilities.SetButtonState(f,h)};MadCap.Utilities.SetButtonState=function(g,j){var k=$(g);var h=j==1?2:1;var i=k.attr("data-state"+j+"-class");var f=k.attr("data-state"+h+"-class");k.attr("data-current-state",j);k.removeClass(f).addClass(i);k.attr("title",k.attr("data-state"+j+"-title"))};MadCap.Utilities.LoadHandlers=Object.create(null);MadCap.Utilities.LoadScript=function(i,h,g){var f=document.createElement("script");f.src=i;f.type="text/javascript";if(f.addEventListener){$(f).error(g);$(f).load(h)}else{if(f.readyState){f.onreadystatechange=function(){if(f.readyState=="loaded"||f.readyState=="complete"){h()}}}}document.getElementsByTagName("head")[0].appendChild(f);return f};MadCap.Utilities.LoadRegisteredScript=function(m,j,i,h){var k=false;var f;$("script").each(function(n,o){var p=$(o).attr("src");if(!MadCap.String.IsNullOrEmpty(p)&&p.toLowerCase()==m.toLowerCase()){k=true;f=o}});if(k){var g=new MadCap.Utilities.Url(m).Name;var l=MadCap.Utilities.LoadHandlers[g];if(l){l(h)}j()}};MadCap.Utilities.LoadScripts=function(f,i,h,g){MadCap.Utilities.AsyncForeach(f,function(j,k){if(!MadCap.String.IsNullOrEmpty(j)){MadCap.Utilities.LoadRegisteredScript(j,k,h,g)}else{k()}},i)};MadCap.Utilities.TopicUniqueStyleSheets=Object.create(null);MadCap.Utilities.LoadStyleSheets=function(g,f){$.each(g,function(i,h){if(!MadCap.String.IsNullOrEmpty(h)){MadCap.Utilities.LoadStyleSheetUnique(h,f)}})};MadCap.Utilities.LoadStyleSheetUnique=function(i,g){var h=false;$("link").each(function(k,l){var j=$(l).attr("href");if(!MadCap.String.IsNullOrEmpty(j)&&j.toLowerCase()==i.toLowerCase()){h=true}});if(!h){var f='<link rel="stylesheet" type="text/css" href="{0}" />';cssLink=f.replace("{0}",i);if($('link[href*="'+i+'"]').length==0||!MadCap.String.Contains(i,"/Topic.css",false)){if(g){$(cssLink).insertAfter(g)}else{$("head").append(insertIndex,cssLink)}}}MadCap.Utilities.TopicUniqueStyleSheets[i]=$('link[href*="'+i+'"]')};MadCap.Utilities.RemoveTopicStylesheets=function(){$.each(MadCap.Utilities.TopicUniqueStyleSheets,function(f,g){$(g).remove()})};MadCap.Utilities.CombineRelevancy=function(h,g){var f=MadCap.Utilities.CapNumber(h,g,16,0,2);for(var j=2;j<7;j++){f=MadCap.Utilities.CapNumber(f,g,16,j,1)}f=MadCap.Utilities.CapNumber(f,g,16,7,1,7);return f};MadCap.Utilities.CalculateScore=function(g,f,h){return(Math.log(g)/Math.log(2147483647)*h)+(f*(1-h))};MadCap.Utilities.CapNumber=function(j,i,p,l,f,n){if(!n){n=Math.pow(p,f)-1}var g=Math.pow(p,l);var m=g*Math.pow(p,f);var o=~~(j%m/g);var k=~~(i%m/g);var h=Math.min(o+k,n);return j+((h-o)*g)};MadCap.Utilities.Require=function(h,i){if(!MadCap.Utilities._requireCache){MadCap.Utilities._requireCache=Object.create(null)}var f=MadCap.Utilities._requireCache;var g=h[0];var j=f[g];if(j&&j.data){i(j.data)}else{if(j&&j.callbacks){j.callbacks.push(i)}else{f[g]={callbacks:[i]};require([g],function(l){j=f[g];j.data=l;for(var k=0;k<j.callbacks.length;k++){j.callbacks[k](l)}j.callbacks=null;require.undef(g)})}}};MadCap.Utilities.GetChunkId=function(f,l,k){for(var h=0;h<f.length;h++){var g=f[h];var j=k(l,g);if(j===0){return h}else{if(j===-1){return h-1}}}return f.length-1};MadCap.Utilities.ClearRequireCache=function(){MadCap.Utilities._requireCache=null};MadCap.Utilities.StopWords=Array("a","an","the","to","of","is","for","and","or","do","be","by","he","she","on","in","at","it","not","no","are","as","but","her","his","its","non","only","than","that","then","they","this","we","were","which","with","you","into","about","after","all","also","been","can","come","from","had","has","have","me","made","many","may","more","most","near","over","some","such","their","there","these","under","use","was","when","where","against","among","became","because","between","during","each","early","found","however","include","late","later","med","other","several","through","until","who","your");MadCap.Utilities.Store=(function(){try{if(window.localStorage){return window.localStorage}}catch(h){if(console&&console.log){console.log("window.localStorage not available")}}var g="MadCap";var i=document.createElement("div");i.style.display="none";document.getElementsByTagName("head")[0].appendChild(i);if(typeof i.addBehavior=="function"){i.addBehavior("#default#userdata");i.load(g);return{getItem:function(j){return i.XMLDocument.documentElement.getAttribute(j)},setItem:function(j,k){i.XMLDocument.documentElement.setAttribute(j,k);i.save(g)},removeItem:function(j){i.removeAttribute(j);i.save(g)}}}var f="data-"+g+"-";return{getItem:function(j){var k=i.getAttribute(f+j);return k?decodeURIComponent(k):k},setItem:function(j,k){i.setAttribute(f+j,k?encodeURIComponent(k):null)},removeItem:function(j){i.removeAttribute(f+j)}}})()})();Array.prototype.Remove=function(a){if(a<0||a>this.length){throw"Index out of bounds."}this.splice(a,1)};Array.prototype.RemoveValue=function(b){for(var a=this.length-1;a>=0;a--){if(this[a]==b){this.Remove(a)}}};Array.prototype.Union=function(b){var a=[].concat(this);if(b){for(var c=0;c<b.length;c++){if(this.indexOf(b[c])===-1){a.push(b[c])}}}return a};Array.prototype.Intersect=function(b){var a=[];for(var c=0;c<b.length;c++){if(this.indexOf(b[c])!==-1){a.push(b[c])}}return a};/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.Utilities.Xhr=function(d,b,c){var e=this;this._XmlDoc=null;this._XmlHttp=null;this._Args=d;this._LoadFunc=b;this._LoadContextObj=c;this.OnreadystatechangeLocal=function(){if(e._XmlDoc.readyState==4){e._XmlDoc.onreadystatechange=a._Noop;var f=null;if(e._XmlDoc.documentElement!=null){f=e._XmlDoc}if(e._LoadContextObj==null){e._LoadFunc(f,e._Args)}else{e._LoadFunc.call(e._LoadContextObj,f,e._Args)}}};this.OnreadystatechangeRemote=function(){if(e._XmlHttp.readyState==4){e._XmlHttp.onreadystatechange=a._Noop;var f=null;if(e._XmlHttp.responseXML!=null&&e._XmlHttp.responseXML.documentElement!=null){f=e._XmlHttp.responseXML}if(e._LoadContextObj==null){e._LoadFunc(f,e._Args)}else{e._LoadFunc.call(e._LoadContextObj,f,e._Args)}}}};var a=MadCap.Utilities.Xhr;a.prototype._LoadLocal=function(b,c){if(window.ActiveXObject){this._XmlDoc=a._GetMicrosoftXmlDomObject();this._XmlDoc.async=c;if(this._LoadFunc){this._XmlDoc.onreadystatechange=this.OnreadystatechangeLocal}try{if(!this._XmlDoc.load(b)){this._XmlDoc=null}}catch(d){this._XmlDoc=null}}else{if(window.XMLHttpRequest){this._LoadRemote(b,c)}}return this._XmlDoc};a.prototype._LoadRemote=function(b,c){this._XmlHttp=a._GetXhrObject();if(this._LoadFunc){this._XmlHttp.onreadystatechange=this.OnreadystatechangeRemote}try{this._XmlHttp.open("GET",b,c);this._XmlHttp.send(null);if(!c&&(this._XmlHttp.status==0||this._XmlHttp.status==200)){this._XmlDoc=this._XmlHttp.responseXML}}catch(d){this._XmlHttp.abort();if(this._LoadFunc){if(this._LoadContextObj==null){this._LoadFunc(null,this._Args)}else{this._LoadFunc.call(this._LoadContextObj,null,this._Args)}}}return this._XmlDoc};a.prototype.Load=function(b,d){var e=null;var c=document.location.protocol;if(c=="file:"||c=="mk:"||c=="ms-its:"||c=="app:"){e=this._LoadLocal(b,d)}else{if(c=="http:"||c=="https:"){e=this._LoadRemote(b,d)}}return e};a.LoadXmlString=function(c){var b=null;if(window.ActiveXObject){b=a._GetMicrosoftXmlDomObject();b.async=false;b.loadXML(c)}else{if(DOMParser){var d=new DOMParser();b=d.parseFromString(c,"text/xml")}}return b};a.CreateXmlDocument=function(b){var c="<"+b+" />";var d=a.LoadXmlString(c);return d};a.GetOuterXml=function(d){var b=null;if(window.ActiveXObject){b=d.xml}else{if(window.XMLSerializer){var c=new XMLSerializer();b=c.serializeToString(d)}}return b};a.ImportNode=function(c,b){if(typeof(c.importNode)=="function"){return c.importNode(b,true)}return b.cloneNode(true)};a.CallWebService=function(e,d,f,b){var c=new a(b,f,null);var g=c.Load(e,d);return g};a._MicrosoftXmlDomProgIDs=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument","Microsoft.XMLDOM"];a._MicrosoftXmlHttpProgIDs=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];a._MicrosoftXmlDomProgID=null;a._MicrosoftXmlHttpProgID=null;a._FilePathToXmlStringMap=new MadCap.Utilities.Dictionary();a._LoadingFilesPathMap=new MadCap.Utilities.Dictionary();a._LoadingFromQueue=false;a.ForceUseJS=false;a.Load=function(g,e,b,h,c){function l(){a._LoadingFilesPathMap.Remove(j.FullPath);var n=a._FilePathToXmlStringMap.GetItem(j.Name);if(n!=null){a._FilePathToXmlStringMap.Remove(j.Name);m=a.LoadXmlString(n)}a._LoadingFilesPathMap.ForEach(function(q,r){var p=new MadCap.Utilities.Url(q);var o=r;if(p.Name==f&&p.FullPath!=j.FullPath){a._LoadingFilesPathMap.Remove(p.FullPath);a._LoadingFromQueue=true;a.Load(p.FullPath,o.async,o.LoadFunc,o.args,o.loadContextObj);return false}return true});if(c==null){b(m,h)}else{b.call(c,m,h)}}var m=null;if(a.ForceUseJS||(Boolean(!window.ActiveXObject)&&MadCap.String.StartsWith(document.location.protocol,"file"))){var i=new MadCap.Utilities.Url(g);var j=i.ToExtension("js");var f=j.Name;a._LoadingFilesPathMap.Add(j.FullPath,{async:e,LoadFunc:b,args:h,loadContextObj:c});var k=false;a._LoadingFilesPathMap.ForEach(function(p,q){var o=new MadCap.Utilities.Url(p);var n=q;if(o.Name==f&&o.FullPath!=j.FullPath){k=true;return false}return true});if(a._LoadingFromQueue||!k){a._LoadingFromQueue=false;MadCap.Utilities.LoadScript(j.FullPath,l,l)}}else{var d=new a(h,b,c);m=d.Load(g,e)}return m};a._Noop=function(){};a._GetMicrosoftXmlDomObject=function(){var e=null;if(a._MicrosoftXmlDomProgID==null){for(var c=0;c<a._MicrosoftXmlDomProgIDs.length;c++){var d=a._MicrosoftXmlDomProgIDs[c];try{e=new ActiveXObject(d);a._MicrosoftXmlDomProgID=d;break}catch(b){}}}else{e=new ActiveXObject(a._MicrosoftXmlDomProgID)}return e};a._GetXhrObject=function(){if(window.XMLHttpRequest){return function(){return new window.XMLHttpRequest()}}else{if(window.ActiveXObject){return function(){var e=null;if(a._MicrosoftXmlHttpProgID==null){for(var c=0;c<a._MicrosoftXmlHttpProgIDs.length;c++){var d=a._MicrosoftXmlHttpProgIDs[c];try{e=new ActiveXObject(d);a._MicrosoftXmlHttpProgID=d;break}catch(b){}}}else{e=new ActiveXObject(a._MicrosoftXmlHttpProgID)}return e}}}}()})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("TextEffects");var a=MadCap.TextEffects;a.Init=function(b){a.ExpandingControl.Load(b);a.DropDownControl.Load(b);a.TogglerControl.Load(b);a.TextPopupControl.Load(b);a.TopicPopupControl.Load(b)};a.Dispose=function(b){a.ExpandingControl.UnLoad(b);a.DropDownControl.UnLoad(b);a.TogglerControl.UnLoad(b);a.TextPopupControl.UnLoad(b);a.TopicPopupControl.UnLoad(b)};$(function(){MadCap.Utilities.LoadHandlers.MadCapTextEffects=a.Init;a.Init(document)});a.TextEffectControl=function(d,c){if(this._rootEl==null){this._rootEl=d}this._hotSpotEl=null;this._bodyEls=null;this._className=c;a.TextEffectControl.Controls[a.TextEffectControl.Controls.length]=this;var b=this;(function(){b._hotSpotEl=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl)[0];b._bodyEls=MadCap.Dom.GetElementsByClassName(b._className+"Body",null,b._rootEl);var g=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl);for(var e=g.length-1;e>=0;e--){var f=g[e].parentNode;while(f!=null){if($(f).hasClass(b._className)){if(f==b._rootEl){$(g[e]).click(function(h){b.Toggle.call(b)})}else{break}}f=f.parentNode}}})()};a.UnbindTextEffectControl=function(d,c){if(this._rootEl==null){this._rootEl=d}this._hotSpotEl=null;this._bodyEls=null;this._className=c;var b=this;(function(){b._hotSpotEl=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl)[0];var g=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl);for(var e=g.length-1;e>=0;e--){var f=g[e].parentNode;while(f!=null){if($(f).hasClass(b._className)){if(f==b._rootEl){$(g[e]).unbind()}else{break}}f=f.parentNode}}$(b._hotSpotEl).unbind()})()};a.TextEffectControl.Controls=new Array();a.TextEffectControl.FindControl=function(c){for(var b=0;b<a.TextEffectControl.Controls.length;b++){if(a.TextEffectControl.Controls[b]._rootEl==c){return a.TextEffectControl.Controls[b]}}return null};a.TextEffectControl.ExpandAll=function(b){for(var c=0,d=a.TextEffectControl.Controls.length;c<d;c++){var e=a.TextEffectControl.Controls[c];if(b=="open"){e.Open(false)}else{if(b=="close"){e.Close(false)}}}};a.TextEffectControl.prototype.Open=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}d.removeClass(this._className+"_Closed");d.addClass(this._className+"_Open");var c=null;if(d.hasClass("MCToggler")){c=$(".MCToggler_Image_Icon")}else{if(d.hasClass("MCDropDown")){c=$(".MCDropDown_Image_Icon")}else{if(d.hasClass("MCExpanding")){c=$(".MCExpanding_Image_Icon")}}}var b=d.find(c);this.ToggleAltText(b[0],d,"closed");d.attr("data-mc-state","open")};a.TextEffectControl.prototype.Close=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}d.removeClass(this._className+"_Open");d.addClass(this._className+"_Closed");var c=null;if(d.hasClass("MCToggler")){c=$(".MCToggler_Image_Icon")}else{if(d.hasClass("MCDropDown")){c=$(".MCDropDown_Image_Icon")}else{if(d.hasClass("MCExpanding")){c=$(".MCExpanding_Image_Icon")}}}var b=d.find(c);this.ToggleAltText(b[0],d,"open");d.attr("data-mc-state","closed")};a.TextEffectControl.prototype.ToggleAltText=function(g,c,d){if(g!=null){var b=$(g);var f=b.attr("data-mc-alt2");var e=b.attr("alt");if(c!=null&&c.attr("data-mc-state")==d){b.attr("alt",f);b.attr("data-mc-alt2",e)}}};a.TextEffectControl.prototype.Toggle=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}var b=d.attr("data-mc-state")||"closed";var c=null;if(b=="open"){this.Close(true)}else{if(b=="closed"){this.Open(true)}}$(d.find("a")[0]).focus()};a.TextEffectControl.prototype.ResizeSlideshow=function(f,d){if(f){var e=$(f);var c=e.closest('div[class^="mc-viewport"]');if(c){var b=0;e.children().each(function(){b=b+$(this).outerHeight()});if(d){b=c.height()+Math.max(b,e.outerHeight())}else{b=c.height()-Math.max(b,e.outerHeight())}c.animate({height:b})}}};a.ExpandingControl=function(b){a.TextEffectControl.call(this,b,"MCExpanding")};MadCap.Extend(a.TextEffectControl,a.ExpandingControl);a.ExpandingControl.Load=function(c){var d=$(".MCExpanding",c);for(var b=0,e=d.length;b<e;b++){var g=d[b];var f=new a.ExpandingControl(g);f.Init()}};a.ExpandingControl.UnLoad=function(c){var d=$(".MCExpanding",c);for(var b=0,e=d.length;b<e;b++){a.UnbindTextEffectControl(d[b])}};a.ExpandingControl.prototype.Init=function(){this.Close(false)};a.ExpandingControl.prototype.Open=function(b){this.base.Open.call(this);var c=$(this._bodyEls[0]);this.ResizeSlideshow(c,true);if(b){c.css({"white-space":"nowrap"});c.hide().animate({width:"show"},function(){$(this).css({"white-space":"normal"})})}else{c.show()}};a.ExpandingControl.prototype.Close=function(c){if(!c){$(this._bodyEls[0]).hide();this.base.Close.call(this);return}var b=this;this.ResizeSlideshow(this._bodyEls[0],false);$(this._bodyEls[0]).css({"white-space":"nowrap"}).animate({width:"hide"},function(){$(this).css({"white-space":"normal"});b.base.Close.call(b)})};a.DropDownControl=function(b){a.TextEffectControl.call(this,b,"MCDropDown")};MadCap.Extend(a.TextEffectControl,a.DropDownControl);a.DropDownControl.Load=function(e){var d=$(".MCDropDown",e);for(var c=0,f=d.length;c<f;c++){var b=d[c];var g=new a.DropDownControl(b);g.Init(false)}};a.DropDownControl.UnLoad=function(d){var c=$(".MCDropDown",d);for(var b=0,e=c.length;b<e;b++){a.UnbindTextEffectControl(c[b])}};a.DropDownControl.prototype.Init=function(){this.Close(false)};a.DropDownControl.prototype.Open=function(b){this.base.Open.call(this);var c=$(this._bodyEls[0]);if(b){c.hide().slideDown()}else{c.show()}this.ResizeSlideshow(c,true)};a.DropDownControl.prototype.Close=function(c){if(!c){$(this._bodyEls[0]).hide();this.base.Close.call(this);return}var b=this;this.ResizeSlideshow(this._bodyEls[0],false);$(this._bodyEls[0]).slideUp(function(){b.base.Close.call(b)})};a.TogglerControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=new Array();this._className="MCToggler";a.TextEffectControl.Controls[a.TextEffectControl.Controls.length]=this;var b=this;(function(){var h=MadCap.Dom.Dataset(b._rootEl,"mcTargets");var d=h.split(";");for(var f=0,g=d.length;f<g;f++){var j=d[f];var e=MadCap.Dom.GetElementsByAttribute("data-mc-target-name",j,null,document.body);b._bodyEls=b._bodyEls.concat(e)}$(b._hotSpotEl).click(function(i){b.Toggle.call(b)})})()};MadCap.Extend(a.TextEffectControl,a.TogglerControl);a.TogglerControl.Load=function(c){var e=$(".MCToggler",c);for(var b=0,d=e.length;b<d;b++){var g=e[b];var f=new a.TogglerControl(g);f.Init()}};a.TogglerControl.UnLoad=function(c){var e=$(".MCToggler",c);for(var b=0,d=e.length;b<d;b++){a.UnbindTextEffectControl(e[b])}};a.TogglerControl.prototype.Init=function(){this.Close(false)};a.TogglerControl.prototype.Open=function(b){this.base.Open.call(this);for(var c=0,d=this._bodyEls.length;c<d;c++){if(b){$(this._bodyEls[c]).css({opacity:0,display:""});$(this._bodyEls[c]).animate({opacity:1},200)}else{$(this._bodyEls[c]).css({opacity:1,display:""})}}this.ResizeSlideshow(this._bodyEls[0],true)};a.TogglerControl.prototype.Close=function(c){this.base.Close.call(this);this.ResizeSlideshow(this._bodyEls[0],false);function f(g){$(g).css("display","none")}for(var d=0,e=this._bodyEls.length;d<e;d++){var b=this;if(c){$(this._bodyEls[d]).animate({opacity:0},200,function(){f(this)})}else{f(this._bodyEls[d])}}};a.TextPopupControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=null;this._className="MCTextPopup";var b=this;(function(){b._bodyEls=$("."+b._className+"Body",b._rootEl).toArray();if(jQuery.browser.mobile){$(b._hotSpotEl).click(function(d){if($(this).attr("data-mc-state")==="closed"){b.Open()}else{b.Close()}})}else{$(b._hotSpotEl).mouseover(function(d){b.Open()});$(b._hotSpotEl).mouseleave(function(d){b.Close()})}})()};MadCap.Extend(a.TextEffectControl,a.TextPopupControl);a.TextPopupControl.Load=function(d){var b=$(".MCTextPopup",d);for(var c=0,f=b.length;c<f;c++){var g=b[c];var e=new a.TextPopupControl(g);e.Init()}};a.TextPopupControl.UnLoad=function(d){var b=$(".MCTextPopup",d);for(var c=0,e=b.length;c<e;c++){a.UnbindTextEffectControl(b[c])}};a.TextPopupControl.prototype.Init=function(){this.Close(false)};a.TextPopupControl.prototype.Open=function(){this.base.Open.call(this);var z=$(this._rootEl);var j=$(this._bodyEls[0]);var e=$(".MCTextPopupArrow",z);var s=$(window);j.css("top","0");j.css("left","0");j.css("height","auto");var h=13;var m=j.offset().top;var n=j.offset().left;var w=z.offset().top-m;var k=z.offset().left-n;var l=w+this._rootEl.offsetHeight;var v=j[0].offsetWidth;var o=j[0].offsetHeight;var B=k+(z[0].offsetWidth/2);var f=B-(v/2);var y=f+v;var r=l+h;var d=s.scrollTop();var u=s.scrollLeft();var c=-e[0].offsetWidth/2;var b=s.width();var q=d+s.height()-l;if((o+h)>q){var A=w-d;if((o+h)>A){r=l;var p=parseInt(j.css("border-top-width"));var g=parseInt(j.css("border-bottom-width"));var x=parseInt(j.css("padding-top"));var i=parseInt(j.css("padding-bottom"));j.css("height",(q-p-g-x-i)+"px");j.css("overflow","auto")}else{j.addClass("MCTextPopupBodyBottom");r=w-o-h}}else{j.removeClass("MCTextPopupBodyBottom")}j.css("top",r+"px");if(y>=b+u){c+=(y-b-u)}if(f<u){c+=(f-u)}f=Math.min(f,u+b-v);f=Math.max(f,u);var t=z.closest("body");if(MadCap.HasEpubReadingSystem()){f=z.offset().left;c=-((j[0].offsetWidth/2)-(e[0].offsetWidth/2))}j.css("left",f+"px");e.css("margin-left",c+"px");j.animate({opacity:1},200)};a.TextPopupControl.prototype.Close=function(){this.base.Close.call(this);var b=$(this._bodyEls[0]);b.css("opacity",0)};a.TopicPopupControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=null;this._className="MCTopicPopup";var b=this;(function(){b._bodyEls=$("."+b._className+"Body",b._rootEl).toArray();$(b._hotSpotEl).click(function(d){b.Open();$(document.documentElement).click(function(f){b.Close();$(document.documentElement).off("click",arguments.callee)});d.stopPropagation();MadCap.Utilities.PreventDefault(d)})})()};MadCap.Extend(a.TextEffectControl,a.TopicPopupControl);a.TopicPopupControl.Load=function(d){var g=$(".MCTopicPopup",d);for(var c=0,e=g.length;c<e;c++){var b=g[c];var f=new a.TopicPopupControl(b);f.Init()}};a.TopicPopupControl.UnLoad=function(c){var e=$(".MCTopicPopup",c);for(var b=0,d=e.length;b<d;b++){a.UnbindTextEffectControl(e[b])}};a.TopicPopupControl.prototype.Init=function(){this.Close(false)};a.TopicPopupControl.prototype.Open=function(){this.base.Open.call(this);var f=$("<div></div>");f.addClass("MCTopicPopupContainer needs-pie");var b=MadCap.Dom.GetAttribute(this._hotSpotEl,"href");var k=document.createElement("iframe");$(k).addClass("MCTopicPopupBody");k.setAttribute("src",b);k.setAttribute("name","MCPopup");f.append(k);var i=document.body;f.appendTo(i);var h=$(this._rootEl);var c=h.attr("data-mc-width");var o=h.attr("data-mc-height");if(c!=null||o!=null){f.css({top:"50%",left:"50%",width:c,height:o});var e=f.width();var g=f.height();var d=$(window);var n=d.width()-100;var m=d.height()-100;if(e>n){f.css({width:n+"px"});e=n}if(g>m){f.css({height:m+"px"});g=m}f.css({"margin-top":(-g/2)+"px","margin-left":(-e/2)+"px"})}$(k).css("height","100%");if($("html").attr("data-mc-target-type")=="EPUB"){var j=($(this._hotSpotEl).offset().top-f.offset().top)-f[0].offsetHeight/2;f.css({"margin-top":j+"px",left:$(this._hotSpotEl).offset().left,"margin-left":$(this._hotSpotEl).offset().left})}f.animate({opacity:1},200);var l=a.AddBackgroundTint("dark",i);$(l).animate({opacity:0.5},200)};a.TopicPopupControl.prototype.Close=function(){this.base.Close.call(this);var b=$(".MCTopicPopupContainer");var c=b.parent();b.remove();a.RemoveBackgroundTint();if($("#topicContent").length>0){c.css("overflow","auto")}};a.CreateLinkListTree=function(q,h,e,g,o){a.RemoveLinkListTrees();if(!g){g=""}var b=$("<ul class='responsive-link-list tree inner'></ul>");var j=$(e).attr("target");for(var f=0,c=q.length;f<c;f++){var p=q[f];var m=$("<li class='IndexEntry IndexEntryLink tree-node tree-node-leaf'></li>").appendTo(b);var l=$("<div class='IndexTerm'></div>").appendTo(m);var k=$("<span class='label'></span>").appendTo(l);var d=$("<a/>").appendTo(k);d.text(p.Title);var n=p.Link;d.attr("href",g+n);m.click(o)}b.appendTo(h)};a.CreateLinkListPopup=function(l,j,q,h,x,u){a.RemoveLinkListPopups();if(!u){u=""}var k=$("<div class='link-list-popup needs-pie'><ul></ul></div>");var r=k.children("ul");var y=$(x).attr("target");for(var v=0,g=l.length;v<g;v++){var w=l[v];var n=$("<li><a></a></li>").appendTo(r);var f=$("a",n);f.attr("target",y);if(y=="_popup"){f.click(a.TopicPopup_Click)}f.text(w.Title);var m=w.Link;f.attr("href",u+m);n.click(a.Item_Click)}k.appendTo(j);var p=k.closest(".popup-container");if(p.length==0){p=$(window)}var b=p.width();var d=p.height();var c=p.scrollTop();var t=p.scrollLeft();var s=k[0].offsetWidth;var o=k[0].offsetHeight;q=Math.min(q,c+d-o);q=Math.max(q,c);h=Math.min(h,t+b-s);h=Math.max(h,t);if((q==0&&h==0)||MadCap.IsIBooks()){h=$(x).offset().left+$(x).width();q=$(x).offset().top+$(x).height()}if(MadCap.IsIBooks()){k.css("display","inline-block");h=h-x.offsetWidth;q=q-(k[0].offsetHeight/2)}if(MadCap.Utilities.IsRTL()){var e=Math.min($(window).width()-($(x).offset().left+$(x).width()),k.width());h=h-e}k.css("top",q);k.css("left",h);k.hide().fadeIn(200);$([document,x]).click(function(i){k.remove();$([document,x]).off("click",arguments.callee)});$([document,x]).keydown(function(i){var i=i||windows.event;if(i.keyCode!=27&&i.keyCode!=13){return}if(!k.is(":focus")){return}k.remove();$([document,x]).off("keydown",arguments.callee)});k.attr("tabindex",0);k.focus()};a.Item_Click=function(d){var c=$("a",this);var b=c.attr("href");var f=c.attr("target");if(b&&!MadCap.String.IsNullOrEmpty(b)){if(f){window.open(b,f)}else{document.location.href=b}}MadCap.Utilities.PreventDefault(d)};a.RemoveLinkListTrees=function(){$(".responsive-link-list").remove()};a.RemoveLinkListPopups=function(){$(".link-list-popup").remove()};a.AddBackgroundTint=function(c,d){if(!d){d=document.body}var b=$("<div id='mc-background-tint'></div>");b.addClass(c);b.appendTo(d);return b[0]};a.RemoveBackgroundTint=function(){$("#mc-background-tint").remove()}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(a){a.fn.fitVids=function(c){var e={customSelector:null};var d=document.createElement("div"),b=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0];d.className="fit-vids-style";d.innerHTML="<style>.fluid-width-video-wrapper {width: 100%;position: relative;padding: 0;} .fluid-width-video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } </style>";b.parentNode.insertBefore(d,b);if(c){a.extend(e,c)}return this.each(function(){var f=["iframe[src*='player.vimeo.com']","iframe[src*='www.youtube.com']","iframe[src*='www.kickstarter.com']"];if(e.customSelector){f.push(e.customSelector)}var g=a(this).find(f.join(","));g.each(function(){var j=a(this);if(j.parent(".fluid-width-video-wrapper").length){return}var m=j.attr("height")&&!isNaN(parseInt(j.attr("height"),10))?parseInt(j.attr("height"),10):j.height(),l=!isNaN(parseInt(j.attr("width"),10))?parseInt(j.attr("width"),10):j.width(),h=m/l;if(!j.attr("id")){var k="fitvid"+Math.floor(Math.random()*999999);j.attr("id",k)}j.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top",h*100+"%");j.removeAttr("height").removeAttr("width")})})}})(jQuery);!function(a){var c={},b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4000,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){},slideshowClass:""};a.fn.MCSlider=function(aq){if(0==this.length){return this}if(this.length>1){return this.each(function(){a(this).MCSlider(aq)}),this}var ap={},am=this;c.el=this;var aB=a(window).width(),at=a(window).height(),ay=function(){ap.settings=a.extend({},b,aq),ap.settings.slideWidth=parseInt(ap.settings.slideWidth),ap.children=am.children(ap.settings.slideSelector),ap.children.length<ap.settings.minSlides&&(ap.settings.minSlides=ap.children.length),ap.children.length<ap.settings.maxSlides&&(ap.settings.maxSlides=ap.children.length),ap.settings.randomStart&&(ap.settings.startSlide=Math.floor(Math.random()*ap.children.length)),ap.active={index:ap.settings.startSlide},ap.carousel=ap.settings.minSlides>1||ap.settings.maxSlides>1,ap.carousel&&(ap.settings.preloadImages="all"),ap.minThreshold=ap.settings.minSlides*ap.settings.slideWidth+(ap.settings.minSlides-1)*ap.settings.slideMargin,ap.maxThreshold=ap.settings.maxSlides*ap.settings.slideWidth+(ap.settings.maxSlides-1)*ap.settings.slideMargin,ap.working=!1,ap.controls={},ap.interval=null,ap.animProp="vertical"==ap.settings.mode?"top":"left",ap.usingCSS=ap.settings.useCSS&&"fade"!=ap.settings.mode&&function(){var f=document.createElement("div"),g=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var d in g){if(void 0!==f.style[g[d]]){return ap.cssPrefix=g[d].replace("Perspective","").toLowerCase(),ap.animProp="-"+ap.cssPrefix+"-transform",!0}}return !1}(),"vertical"==ap.settings.mode&&(ap.settings.maxSlides=ap.settings.minSlides),am.data("origStyle",am.attr("style")),am.children(ap.settings.slideSelector).each(function(){a(this).data("origStyle",a(this).attr("style"))}),az()},az=function(){am.wrap('<div class="mc-wrapper"><div class="mc-viewport '+ap.settings.slideshowClass+'"></div></div>'),ap.viewport=am.parent(),ap.loader=a('<div class="mc-loading" />'),ap.viewport.prepend(ap.loader),am.css({width:"horizontal"==ap.settings.mode?100*ap.children.length+215+"%":"auto",position:"relative"}),ap.usingCSS&&ap.settings.easing?am.css("-"+ap.cssPrefix+"-transition-timing-function",ap.settings.easing):ap.settings.easing||(ap.settings.easing="swing"),ax(),ap.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),ap.viewport.parent().css({maxWidth:ak()}),ap.settings.pager||ap.viewport.parent().css({margin:"0 auto 0px"}),ap.children.css({"float":"horizontal"==ap.settings.mode?"left":"none",listStyle:"none",position:"relative"}),ap.children.css("width",al()),"horizontal"==ap.settings.mode&&ap.settings.slideMargin>0&&ap.children.css("marginRight",ap.settings.slideMargin),"vertical"==ap.settings.mode&&ap.settings.slideMargin>0&&ap.children.css("marginBottom",ap.settings.slideMargin),"fade"==ap.settings.mode&&(ap.children.css({position:"absolute",zIndex:0,display:"none"}),ap.children.eq(ap.settings.startSlide).css({zIndex:50,display:"block"})),ap.controls.el=a('<div class="mc-controls" />'),ap.settings.captions&&J(),ap.active.last=ap.settings.startSlide==ai()-1,ap.settings.video&&am.fitVids();var d=ap.children.eq(ap.settings.startSlide);"all"==ap.settings.preloadImages&&(d=ap.children),ap.settings.ticker?ap.settings.pager=!1:(ap.settings.pager&&F(),ap.settings.controls&&ad(),ap.settings.auto&&ap.settings.autoControls&&ab(),(ap.settings.controls||ap.settings.autoControls||ap.settings.pager)&&ap.viewport.after(ap.controls.el)),aw(d,av)},aw=function(h,f){var g=h.find('img:not([src=""])').length;if(0===g){return void f()}var d=0;h.find('img:not([src=""])').each(function(){$(this).one("load error",function(){++d===g&&f()}).each(function(){this.complete&&$(this).load()})})},av=function(){if(ap.settings.infiniteLoop&&"fade"!=ap.settings.mode&&!ap.settings.ticker){var g="vertical"==ap.settings.mode?ap.settings.minSlides:ap.settings.maxSlides,d=ap.children.slice(0,g).clone().addClass("mc-clone"),f=ap.children.slice(-g).clone().addClass("mc-clone");am.append(d).prepend(f)}ap.loader.remove(),G(),"vertical"==ap.settings.mode&&(ap.settings.adaptiveHeight=!0),ap.viewport.height(ao()),am.redrawSlider(),ap.settings.onSliderLoad(ap.active.index),ap.initialized=!0,ap.settings.responsive&&a(window).bind("resize",ae),ap.settings.auto&&ap.settings.autoStart&&aa(),ap.settings.ticker&&U(),ap.settings.pager&&Z(ap.settings.startSlide),ap.settings.controls&&s(),ap.settings.touchEnabled&&!ap.settings.ticker&&K()},ao=function(){var f=0,d=a();if("vertical"==ap.settings.mode||ap.settings.adaptiveHeight){if(ap.carousel){var g=1==ap.settings.moveSlides?ap.active.index:ap.active.index*ar();for(d=ap.children.eq(g),i=1;i<=ap.settings.maxSlides-1;i++){d=g+i>=ap.children.length?d.add(ap.children.eq(i-1)):d.add(ap.children.eq(g+i))}}else{d=ap.children.eq(ap.active.index)}}else{d=ap.children}return"vertical"==ap.settings.mode?(d.each(function(){f+=a(this).outerHeight()}),ap.settings.slideMargin>0&&(f+=ap.settings.slideMargin*(ap.settings.minSlides-1))):f=Math.max.apply(Math,d.map(function(){return a(this).outerHeight(!1)}).get()),f},ak=function(){var d="100%";return ap.settings.slideWidth>0&&(d="horizontal"==ap.settings.mode?ap.settings.maxSlides*ap.settings.slideWidth+(ap.settings.maxSlides-1)*ap.settings.slideMargin:ap.settings.slideWidth),d},al=function(){var d=ap.settings.slideWidth,f=ap.viewport.width();return 0==ap.settings.slideWidth||ap.settings.slideWidth>f&&!ap.carousel||"vertical"==ap.settings.mode?d=(f/ap.settings.minSlides):ap.settings.maxSlides>1&&"horizontal"==ap.settings.mode&&(f>ap.maxThreshold||f<ap.minThreshold&&(d=(f-ap.settings.slideMargin*(ap.settings.minSlides-1))/ap.settings.minSlides)),d},ax=function(){var d=1;if("horizontal"==ap.settings.mode&&ap.settings.slideWidth>0){if(ap.viewport.width()<ap.minThreshold){d=ap.settings.minSlides}else{if(ap.viewport.width()>ap.maxThreshold){d=ap.settings.maxSlides}else{var f=ap.children.first().width();d=Math.floor(ap.viewport.width()/f)}}}else{"vertical"==ap.settings.mode&&(d=ap.settings.minSlides)}return d},ai=function(){var f=0;if(ap.settings.moveSlides>0){if(ap.settings.infiniteLoop){f=ap.children.length/ar()}else{for(var g=0,d=0;g<ap.children.length;){++f,g=d+ax(),d+=ap.settings.moveSlides<=ax()?ap.settings.moveSlides:ax()}}}else{f=Math.ceil(ap.children.length/ax())}return f},ar=function(){return ap.settings.moveSlides>0&&ap.settings.moveSlides<=ax()?ap.settings.moveSlides:ax()},G=function(){if(ap.children.length>ap.settings.maxSlides&&ap.active.last&&!ap.settings.infiniteLoop){if("horizontal"==ap.settings.mode){var f=ap.children.last(),g=f.position();aA(-(g.left-(ap.viewport.width()-f.width())),"reset",0)}else{if("vertical"==ap.settings.mode){var d=ap.children.length-ap.settings.minSlides,g=ap.children.eq(d).position();aA(-g.top,"reset",0)}}}else{var g=ap.children.eq(ap.active.index*ar()).position();ap.active.index==ai()-1&&(ap.active.last=!0),void 0!=g&&("horizontal"==ap.settings.mode?aA(-g.left,"reset",0):"vertical"==ap.settings.mode&&aA(-g.top,"reset",0))}},aA=function(g,k,f,h){if(ap.usingCSS){var l="vertical"==ap.settings.mode?"translate3d(0, "+g+"px, 0)":"translate3d("+g+"px, 0, 0)";am.css("-"+ap.cssPrefix+"-transition-duration",f/1000+"s"),"slide"==k?(am.css(ap.animProp,l),am.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){am.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),ac()})):"reset"==k?am.css(ap.animProp,l):"ticker"==k&&(am.css("-"+ap.cssPrefix+"-transition-timing-function","linear"),am.css(ap.animProp,l),am.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){am.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),aA(h.resetValue,"reset",0),Q()}))}else{var d={};d[ap.animProp]=g,"slide"==k?am.animate(d,f,ap.settings.easing,function(){ac()}):"reset"==k?am.css(ap.animProp,g):"ticker"==k&&am.animate(d,speed,"linear",function(){aA(h.resetValue,"reset",0),Q()})}},aj=function(){for(var g="",d=ai(),f=0;d>f;f++){var h="";ap.settings.buildPager&&a.isFunction(ap.settings.buildPager)?(h=ap.settings.buildPager(f),ap.pagerEl.addClass("mc-custom-pager")):(h=f+1,ap.pagerEl.addClass("mc-default-pager")),g+='<div class="mc-pager-item"><a data-slide-index="'+f+'" class="mc-pager-link">'+h+"</a></div>"}ap.pagerEl.html(g)},F=function(){ap.settings.pagerCustom?ap.pagerEl=a(ap.settings.pagerCustom):(ap.pagerEl=a('<div class="mc-pager" />'),ap.settings.pagerSelector?a(ap.settings.pagerSelector).html(ap.pagerEl):ap.controls.el.addClass("mc-has-pager").append(ap.pagerEl),aj()),ap.pagerEl.delegate("a","click",an)},ad=function(){ap.controls.next=a('<a class="mc-next">'+ap.settings.nextText+"</a>"),ap.controls.prev=a('<a class="mc-prev">'+ap.settings.prevText+"</a>"),ap.controls.next.bind("click",ah),ap.controls.prev.bind("click",ag),ap.settings.nextSelector&&a(ap.settings.nextSelector).append(ap.controls.next),ap.settings.prevSelector&&a(ap.settings.prevSelector).append(ap.controls.prev),ap.settings.nextSelector||ap.settings.prevSelector||(ap.controls.directionEl=a('<div class="mc-controls-direction" />'),ap.controls.directionEl.append(ap.controls.prev).append(ap.controls.next),ap.controls.el.addClass("mc-has-controls-direction").append(ap.controls.directionEl))},ab=function(){ap.controls.start=a('<div class="mc-controls-auto-item"><a class="mc-start">'+ap.settings.startText+"</a></div>"),ap.controls.stop=a('<div class="mc-controls-auto-item"><a class="mc-stop">'+ap.settings.stopText+"</a></div>"),ap.controls.autoEl=a('<div class="mc-controls-auto" />'),ap.controls.autoEl.delegate(".mc-start","click",au),ap.controls.autoEl.delegate(".mc-stop","click",R),ap.settings.autoControlsCombine?ap.controls.autoEl.append(ap.controls.start):ap.controls.autoEl.append(ap.controls.start).append(ap.controls.stop),ap.settings.autoControlsSelector?a(ap.settings.autoControlsSelector).html(ap.controls.autoEl):ap.controls.el.addClass("mc-has-controls-auto").append(ap.controls.autoEl),af(ap.settings.autoStart?"stop":"start")},J=function(){ap.children.each(function(){var d=a(this).attr("title");void 0!=d&&(""+d).length&&a(this).append('<div class="mc-caption"><div>'+d+"</div></div>")})},ah=function(d){ap.settings.auto&&am.stopAuto(),am.goToNextSlide(),d.preventDefault()},ag=function(d){ap.settings.auto&&am.stopAuto(),am.goToPrevSlide(),d.preventDefault()},au=function(d){am.startAuto(),d.preventDefault()},R=function(d){am.stopAuto(),d.preventDefault()},an=function(g){ap.settings.auto&&am.stopAuto();var d=a(g.currentTarget),f=parseInt(d.attr("data-slide-index"));f!=ap.active.index&&am.goToSlide(f),g.preventDefault()},Z=function(f){var d=ap.children.length;return"short"==ap.settings.pagerType?(ap.settings.maxSlides>1&&(d=Math.ceil(ap.children.length/ap.settings.maxSlides)),ap.pagerEl.html(f+1+ap.settings.pagerShortSeparator+d),void 0):(ap.pagerEl.find("a").removeClass("active"),ap.pagerEl.each(function(g,h){a(h).find("a").eq(f).addClass("active")}),void 0)},ac=function(){if(ap.settings.infiniteLoop){var d="";0==ap.active.index?d=ap.children.eq(0).position():ap.active.index==ai()-1&&ap.carousel?d=ap.children.eq((ai()-1)*ar()).position():ap.active.index==ap.children.length-1&&(d=ap.children.eq(ap.children.length-1).position()),"horizontal"==ap.settings.mode?aA(-d.left,"reset",0):"vertical"==ap.settings.mode&&aA(-d.top,"reset",0)}ap.working=!1,ap.settings.onSlideAfter(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index)},af=function(d){ap.settings.autoControlsCombine?ap.controls.autoEl.html(ap.controls[d]):(ap.controls.autoEl.find("a").removeClass("active"),ap.controls.autoEl.find("a:not(.mc-"+d+")").addClass("active"))},s=function(){1==ai()?(ap.controls.prev.addClass("disabled"),ap.controls.next.addClass("disabled")):!ap.settings.infiniteLoop&&ap.settings.hideControlOnEnd&&(0==ap.active.index?(ap.controls.prev.addClass("disabled"),ap.controls.next.removeClass("disabled")):ap.active.index==ai()-1?(ap.controls.next.addClass("disabled"),ap.controls.prev.removeClass("disabled")):(ap.controls.prev.removeClass("disabled"),ap.controls.next.removeClass("disabled")))},aa=function(){ap.settings.autoDelay>0?setTimeout(am.startAuto,ap.settings.autoDelay):am.startAuto(),ap.settings.autoHover&&am.hover(function(){ap.interval&&(am.stopAuto(!0),ap.autoPaused=!0)},function(){ap.autoPaused&&(am.startAuto(!0),ap.autoPaused=null)})},U=function(){var f=0;if("next"==ap.settings.autoDirection){am.append(ap.children.clone().addClass("mc-clone"))}else{am.prepend(ap.children.clone().addClass("mc-clone"));var d=ap.children.first().position();f="horizontal"==ap.settings.mode?-d.left:-d.top}aA(f,"reset",0),ap.settings.pager=!1,ap.settings.controls=!1,ap.settings.autoControls=!1,ap.settings.tickerHover&&!ap.usingCSS&&ap.viewport.hover(function(){am.stop()},function(){var k=0;ap.children.each(function(){k+="horizontal"==ap.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)});var g=ap.settings.speed/k,h="horizontal"==ap.settings.mode?"left":"top",l=g*(k-Math.abs(parseInt(am.css(h))));Q(l)}),Q()},Q=function(g){speed=g?g:ap.settings.speed;var k={left:0,top:0},f={left:0,top:0};"next"==ap.settings.autoDirection?k=am.find(".mc-clone").first().position():f=ap.children.first().position();var h="horizontal"==ap.settings.mode?-k.left:-k.top,l="horizontal"==ap.settings.mode?-f.left:-f.top,d={resetValue:l};aA(h,"ticker",speed,d)},K=function(){ap.touch={start:{x:0,y:0},end:{x:0,y:0}},ap.viewport.bind("touchstart",j)},j=function(d){if(ap.working){d.preventDefault()}else{ap.touch.originalPos=am.position();var f=d.originalEvent;ap.touch.start.x=f.changedTouches[0].pageX,ap.touch.start.y=f.changedTouches[0].pageY,ap.viewport.bind("touchmove",e),ap.viewport.bind("touchend",t)}},e=function(f){var k=f.originalEvent,d=Math.abs(k.changedTouches[0].pageX-ap.touch.start.x),g=Math.abs(k.changedTouches[0].pageY-ap.touch.start.y);if(3*d>g&&ap.settings.preventDefaultSwipeX?f.preventDefault():3*g>d&&ap.settings.preventDefaultSwipeY&&f.preventDefault(),"fade"!=ap.settings.mode&&ap.settings.oneToOneTouch){var l=0;if("horizontal"==ap.settings.mode){var h=k.changedTouches[0].pageX-ap.touch.start.x;l=ap.touch.originalPos.left+h}else{var h=k.changedTouches[0].pageY-ap.touch.start.y;l=ap.touch.originalPos.top+h}aA(l,"reset",0)}},t=function(f){ap.viewport.unbind("touchmove",e);var h=f.originalEvent,d=0;if(ap.touch.end.x=h.changedTouches[0].pageX,ap.touch.end.y=h.changedTouches[0].pageY,"fade"==ap.settings.mode){var g=Math.abs(ap.touch.start.x-ap.touch.end.x);g>=ap.settings.swipeThreshold&&(ap.touch.start.x>ap.touch.end.x?am.goToNextSlide():am.goToPrevSlide(),am.stopAuto())}else{var g=0;"horizontal"==ap.settings.mode?(g=ap.touch.end.x-ap.touch.start.x,d=ap.touch.originalPos.left):(g=ap.touch.end.y-ap.touch.start.y,d=ap.touch.originalPos.top),!ap.settings.infiniteLoop&&(0==ap.active.index&&g>0||ap.active.last&&0>g)?aA(d,"reset",200):Math.abs(g)>=ap.settings.swipeThreshold?(0>g?am.goToNextSlide():am.goToPrevSlide(),am.stopAuto()):aA(d,"reset",200)}ap.viewport.unbind("touchend",t)},ae=function(){var f=a(window).width(),d=a(window).height();if(!(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))){(aB!=f||at!=d)&&(aB=f,at=d,am.redrawSlider())}};return am.goToSlide=function(o,k){if(!ap.working&&ap.active.index!=o){if(ap.working=!0,ap.oldIndex=ap.active.index,ap.active.index=0>o?ai()-1:o>=ai()?0:o,ap.settings.onSlideBefore(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index),"next"==k?ap.settings.onSlideNext(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index):"prev"==k&&ap.settings.onSlidePrev(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index),ap.active.last=ap.active.index>=ai()-1,ap.settings.pager&&Z(ap.active.index),ap.settings.controls&&s(),"fade"==ap.settings.mode){ap.settings.adaptiveHeight&&ap.viewport.height()!=ao()&&ap.viewport.animate({height:ao()},ap.settings.adaptiveHeightSpeed),ap.children.filter(":visible").fadeOut(ap.settings.speed).css({zIndex:0}),ap.children.eq(ap.active.index).css("zIndex",51).fadeIn(ap.settings.speed,function(){a(this).css("zIndex",50),ac()})}else{ap.settings.adaptiveHeight&&ap.viewport.height()!=ao()&&ap.viewport.animate({height:ao()},ap.settings.adaptiveHeightSpeed);var u=0,f={left:0,top:0};if(!ap.settings.infiniteLoop&&ap.carousel&&ap.active.last){if("horizontal"==ap.settings.mode){var r=ap.children.eq(ap.children.length-1);f=r.position(),u=ap.viewport.width()-r.outerWidth()}else{var h=ap.children.length-ap.settings.minSlides;f=ap.children.eq(h).position()}}else{if(ap.carousel&&ap.active.last&&"prev"==k){var p=1==ap.settings.moveSlides?ap.settings.maxSlides-ar():(ai()-1)*ar()-(ap.children.length-ap.settings.maxSlides),r=am.children(".mc-clone").eq(p);f=r.position()}else{if("next"==k&&0==ap.active.index){f=am.find("> .mc-clone").eq(ap.settings.maxSlides).position(),ap.active.last=!1}else{if(o>=0){var q=o*ar();f=ap.children.eq(q).position()}}}}if("undefined"!=typeof f){var m="horizontal"==ap.settings.mode?-(f.left-u):-f.top;aA(m,"slide",ap.settings.speed)}}}},am.goToNextSlide=function(){if(ap.settings.infiniteLoop||!ap.active.last){var d=parseInt(ap.active.index)+1;am.goToSlide(d,"next")}},am.goToPrevSlide=function(){if(ap.settings.infiniteLoop||0!=ap.active.index){var d=parseInt(ap.active.index)-1;am.goToSlide(d,"prev")}},am.startAuto=function(d){ap.interval||(ap.interval=setInterval(function(){"next"==ap.settings.autoDirection?am.goToNextSlide():am.goToPrevSlide()},ap.settings.pause),ap.settings.autoControls&&1!=d&&af("stop"))},am.stopAuto=function(d){ap.interval&&(clearInterval(ap.interval),ap.interval=null,ap.settings.autoControls&&1!=d&&af("start"))},am.getCurrentSlide=function(){return ap.active.index},am.getSlideCount=function(){return ap.children.length},am.redrawSlider=function(){ap.children.add(am.find(".mc-clone")).outerWidth(al()),ap.viewport.css("height",ao()),ap.settings.ticker||G(),ap.active.last&&(ap.active.index=ai()-1),ap.active.index>=ai()&&(ap.active.last=!0),ap.settings.pager&&!ap.settings.pagerCustom&&(aj(),Z(ap.active.index))},am.destroySlider=function(){ap.initialized&&(ap.initialized=!1,a(".mc-clone",this).remove(),ap.children.each(function(){void 0!=a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!=a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),ap.controls.el&&ap.controls.el.remove(),ap.controls.next&&ap.controls.next.remove(),ap.controls.prev&&ap.controls.prev.remove(),ap.pagerEl&&ap.pagerEl.remove(),a(".mc-caption",this).remove(),ap.controls.autoEl&&ap.controls.autoEl.remove(),clearInterval(ap.interval),ap.settings.responsive&&a(window).unbind("resize",ae))},am.reloadSlider=function(d){void 0!=d&&(aq=d),am.destroySlider(),ay()},ay(),this}}(jQuery);(function(){var a=MadCap.CreateNamespace("Slideshow");$(function(){if(MadCap.Utilities!=null&&MadCap.Utilities.LoadHandlers!=null){MadCap.Utilities.LoadHandlers.MadCapSlideshow=a.Init;a.Init(document)}});a.Init=function(b){var c;if($("html").attr("data-mc-target-type")){c=function(e,d){return e.attr("data-mc-"+d)}}else{c=function(e,d){return e.attr("madcap:"+d.replace("-",""))}}$(".MCSlider",b).each(function(q,h){var I=$(h);var l={};var u=h.className;var f=c(I,"random-start");var z=c(I,"infinite-loop");var r=c(I,"show-captions");var w=c(I,"controls");var y=c(I,"slide-width");var x=c(I,"adaptive-height");var k=c(I,"responsive");var j=c(I,"navigation");var s=true;var e=false;l.pagerCustom=null;if(j){if(j=="Thumbnails"){e=true;l.pagerCustom="#mc-pager"+(q+1).toString()}if(j=="None"){s=false}}var F=c(I,"auto-hover");var m=c(I,"auto-start");var H=c(I,"auto-controls");var d=c(I,"combine-controls");var D=c(I,"auto-direction");var E=+c(I,"auto-delay");var t=c(I,"mode");var A=+c(I,"speed");var o=+c(I,"pause");var C=+c(I,"slides-displayed");var B=c(I,"video");if(u){l.slideshowClass=u}if(f){if("true"==f.toString().toLowerCase()){l.randomStart=true}else{if("false"==f.toString().toLowerCase()){l.randomStart=false}}}if(z){if("true"==z.toString().toLowerCase()){l.infiniteLoop=true}else{if("false"==z.toString().toLowerCase()){l.infiniteLoop=false;l.hideControlOnEnd=true}}}if(r){if("true"==r.toString().toLowerCase()){l.captions=true}else{if("false"==r.toString().toLowerCase()){l.captions=false}}}if(w){if("true"==w.toString().toLowerCase()){l.controls=true}else{if("false"==w.toString().toLowerCase()){l.controls=false}}}l.pager=s;l.thumbnails=e;if(y){l.slideWidth=y}if(x){if("true"==x.toString().toLowerCase()){l.adaptiveHeight=true}else{if("false"==x.toString().toLowerCase()){l.adaptiveHeight=false}}}if(k){if("true"==k.toString().toLowerCase()){l.responsive=true}else{if("false"==k.toString().toLowerCase()){l.responsive=false}}}var p=false;if(F){if("true"==F.toString().toLowerCase()){l.autoHover=true;p=true}else{if("false"==F.toString().toLowerCase()){l.autoHover=false}}}if(m){if("true"==m.toString().toLowerCase()){l.autoStart=true;p=true}else{if("false"==m.toString().toLowerCase()){l.autoStart=false}}}if(H){if("true"==H.toString().toLowerCase()){l.autoControls=true;l.autoControlsCombine=true;p=true}else{if("false"==H.toString().toLowerCase()){l.autoControls=false;l.autoControlsCombine=false}}}if(p){l.auto=true}if(D){l.autoDirection=D}if(E){l.autoDelay=E}if(t){l.mode=t}if(A){l.speed=A}if(o){l.pause=o}if(C){l.minSlides=C;l.maxSlides=C;l.moveSlides=1;if(y){var G=y.match(/\d+/);var v=y.replace(/\d/g,"");l.slideWidth=(G/C)+v}}if(navigator.userAgent.indexOf("MSIE")!==-1){l.preloadImages="all"}l.video=true;l.useCSS=false;if(B){l.video=false}l.onSliderLoad=function(J){$(".MCSlide").css("visibility","visible")};var g;var n;if(MadCap.Utilities!=null&&MadCap.Utilities.HasRuntimeFileType("Topic")){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(O){if(O){var K=new MadCap.Utilities.Url(decodeURIComponent(O[0]));var J=new MadCap.Utilities.Url(K.Fragment.substring(1));g=J.Fragment;n=K.QueryMap.GetItem("Highlight");if(g){g=g.substring(1);g=g.replace(".","\\.");try{l.startSlide=$("[name="+g+"]").closest(".MCSlide").index();if(l.startSlide<0){l.startSlide=0}}catch(N){l.startSlide=0}}else{if(n){var M=n.replace('"',"").split(" ");for(var L=0;L<M.length;L++){if(M[L]==""){M.splice(M[L],1);L--}}$(".MCSlide",b).each(function(P,S){for(var R=0;R<M.length;R++){if(M[R]!=""){var Q=new RegExp("\\b"+M[R]+"\\b","i");var U=$(S).attr("title");if(U!=null&&U.match(Q)){l.startSlide=P;return false}var T=$(S).text();if(T!=null&&T.match(Q)){l.startSlide=P;return false}}}if(l.startSlide<0){l.startSlide=0}})}}}I.MCSlider(l)})}else{I.MCSlider(l)}})}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.FeedbackController=function(i){if(MadCap.WebHelp.FeedbackController.Shared!=null){return MadCap.WebHelp.FeedbackController.Shared}MadCap.WebHelp.FeedbackController.Shared=this;var d=false;var h=false;var f=new Array();var k=0;var b=this;var g=3000;this.Server=i;this.FeedbackServer=j(i);this.Version=-1;this.FeedbackActive=false;this.PulseServer=null;this.PulseEnabled=false;this.PulseActive=false;this.PulseUserGuid=null;function c(){for(var m=0;m<f.length;m++){f[m](b)}d=true}function j(o,n){if(o==null){return null}if(typeof n=="undefined"){n=""}var m=new MadCap.Utilities.Url(o);m=m.CombinePath(n+"Service.FeedbackExplorer/FeedbackJsonService.asmx/");return m.FullPath}function l(A,z,s,o){var D=document.createElement("script");var p=document.getElementsByTagName("head")[0];var w="MCLiveHelpScript_"+k++;var q=b.FeedbackServer+A+"?";q+="OnComplete="+z+"&ScriptID="+w+"&UniqueID="+(new Date()).getTime();if(s!=null){for(var B=0,n=s.length;B<n;B++){var x=s[B];var F=x[0];var y=encodeURIComponent(x[1]);q+=("&"+F+"="+y)}}if(document.body.currentStyle!=null){var u=2083;if(q.length>u){var v=q.length-u;var E={ExceedAmount:v};var C=new MadCap.FeedbackException(-1,"URL limit exceeded.",E);throw C}}var r=2048;var t=q.indexOf("?");var m=q.substring(t+1).length;if(m>r){var v=m-r;var E={ExceedAmount:v};var C=new MadCap.FeedbackException(-1,"Query string limit exceeded.",E);throw C}D.id=w;D.setAttribute("type","text/javascript");D.setAttribute("src",q);p.appendChild(D);return w}function e(m){window.setTimeout(function(){var n=document.getElementById(m);n.parentNode.removeChild(n)},10)}this.Init=function(m){if(d){m(this);return}if(m!=null){f.push(m)}if(h){return}h=true;b.GetVersion(function(){if(b.PulseEnabled){b.GetPulseServerActivated(function(n){b.PulseActive=n&&n.toLowerCase()==="true";c()})}else{c()}});window.setTimeout(function(){if(!d){c()}},g)};this.GetUserGuid=function(){return b.PulseEnabled?b.PulseUserGuid:MadCap.Utilities.Store.getItem("LiveHelpUserGuid")};this.LogTopic=function(n,o,m){this.LogTopicOnComplete=function(p){if(m!=null){m()}e(p);this.LogTopicOnComplete=null};this.GetVersion(function(p){if(p==1){l("LogTopic","MadCap.WebHelp.FeedbackController.Shared.LogTopicOnComplete",[["TopicID",n]])}else{l("LogTopic2","MadCap.WebHelp.FeedbackController.Shared.LogTopicOnComplete",[["TopicID",n],["CSHID",o]])}})};this.LogSearch=function(m,p,n,q,o){this.LogSearchOnComplete=function(r){e(r);this.LogSearchOnComplete=null};l("LogSearch","MadCap.WebHelp.FeedbackController.Shared.LogSearchOnComplete",[["ProjectID",m],["UserGuid",p],["ResultCount",n],["Language",q],["Query",o]])};this.AddComment=function(o,q,p,n,s,r,m){this.AddCommentOnComplete=function(t){if(m!=null){m()}e(t);this.AddCommentOnComplete=null};l("AddComment","MadCap.WebHelp.FeedbackController.Shared.AddCommentOnComplete",[["TopicID",o],["UserGuid",q],["Username",p],["Subject",n],["Comment",s],["ParentCommentID",r]])};this.GetAverageRating=function(o,m,n){this.GetAverageRatingOnComplete=function(r,q,p){if(m!=null){m(q,p,n)}e(r);this.GetAverageRatingOnComplete=null};l("GetAverageRating","MadCap.WebHelp.FeedbackController.Shared.GetAverageRatingOnComplete",[["TopicID",o]])};this.SubmitRating=function(o,p,r,m,n){this.SubmitRatingOnComplete=function(s){if(m!=null){m(n)}e(s);this.SubmitRatingOnComplete=null};var q=l("SubmitRating","MadCap.WebHelp.FeedbackController.Shared.SubmitRatingOnComplete",[["TopicID",o],["Rating",p],["Comment",r]])};this.GetTopicComments=function(o,q,p,m,n){this.GetTopicCommentsOnComplete=function(t,s){if(m!=null){m(s,n)}e(t);this.GetTopicCommentsOnComplete=null};var r=l("GetTopicComments","MadCap.WebHelp.FeedbackController.Shared.GetTopicCommentsOnComplete",[["TopicID",o],["UserGuid",q],["Username",p]])};this.GetAnonymousEnabled=function(n,m,o){this.GetAnonymousEnabledOnComplete=function(q,p){if(m!=null){m(p,o)}e(q);this.GetAnonymousEnabledOnComplete=null};l("GetAnonymousEnabled","MadCap.WebHelp.FeedbackController.Shared.GetAnonymousEnabledOnComplete",[["ProjectID",n]])};this.StartActivateUser=function(r,w,u){this.StartActivateUserOnComplete=function(F,E){if(w!=null){w(E,u)}e(F);this.StartActivateUserOnComplete=null};var D=FMCGetChildNodeByAttribute(r.documentElement,"Name","Username");var o=FMCGetAttribute(D,"Value");var s=FMCGetChildNodeByAttribute(r.documentElement,"Name","EmailAddress");var n=FMCGetAttribute(s,"Value");var y=FMCGetChildNodeByAttribute(r.documentElement,"Name","FirstName");var m=FMCGetAttribute(y,"Value");var C=FMCGetChildNodeByAttribute(r.documentElement,"Name","LastName");var x=FMCGetAttribute(C,"Value");var B=FMCGetChildNodeByAttribute(r.documentElement,"Name","Country");var A=FMCGetAttribute(B,"Value");var z=FMCGetChildNodeByAttribute(r.documentElement,"Name","PostalCode");var t=FMCGetAttribute(z,"Value");var p=FMCGetChildNodeByAttribute(r.documentElement,"Name","Gender");var v=FMCGetAttribute(p,"Value");var q="";l("StartActivateUser","MadCap.WebHelp.FeedbackController.Shared.StartActivateUserOnComplete",[["Username",o],["EmailAddress",n],["FirstName",m],["LastName",x],["Country",A],["Zip",t],["Gender",v],["UILanguageOrder",q]])};this.StartActivateUser2=function(p,m,o,q){var n=MadCap.Utilities.Xhr.GetOuterXml(p);this.StartActivateUser2OnComplete=function(s,r){if(m!=null){if(q!=null){m.call(q,r,o)}else{m(r,o)}}e(s);this.StartActivateUser2OnComplete=null};l("StartActivateUser2","MadCap.WebHelp.FeedbackController.Shared.StartActivateUser2OnComplete",[["Xml",n]])};this.UpdateUserProfile=function(p,q,m,o,r){var n=MadCap.Utilities.Xhr.GetOuterXml(q);this.UpdateUserProfileOnComplete=function(t,s){if(m!=null){if(r!=null){m.call(r,s,o)}else{m(s,o)}}e(t);this.UpdateUserProfileOnComplete=null};l("UpdateUserProfile","MadCap.WebHelp.FeedbackController.Shared.UpdateUserProfileOnComplete",[["Guid",p],["Xml",n]])};this.GetUserProfile=function(o,m,n,p){this.GetUserProfileOnComplete=function(r,q){if(m!=null){if(p!=null){m.call(p,q,n)}else{m(q,n)}}e(r);this.GetUserProfileOnComplete=null};l("GetUserProfile","MadCap.WebHelp.FeedbackController.Shared.GetUserProfileOnComplete",[["Guid",o]])};this.CheckUserStatus=function(o,m,n){this.CheckUserStatusOnComplete=function(q,p){if(m!=null){m(p,n)}e(q);this.CheckUserStatusOnComplete=null};l("CheckUserStatus","MadCap.WebHelp.FeedbackController.Shared.CheckUserStatusOnComplete",[["PendingGuid",o]])};this.GetSynonymsFile=function(n,p,m,o){this.GetSynonymsFileOnComplete=function(r,q){if(m!=null){m(q,o)}e(r)};l("GetSynonymsFile","MadCap.WebHelp.FeedbackController.Shared.GetSynonymsFileOnComplete",[["ProjectID",n],["UpdatedSince",p]])};this.GetVersion=function(m,n,o){this.GetVersionOnComplete=function(q,p){if(p==null){b.Version=1}else{if(b.Version==-1&&p>4){b.FeedbackServer=j(b.Server,"Feedback/");b.PulseServer=b.Server;b.PulseEnabled=true}b.FeedbackActive=true;b.Version=p}if(m!=null){if(o!=null){m.call(o,b.Version,n)}else{m(b.Version,n)}}if(q!=null){e(q)}this.GetVersionOnComplete=null};if(b.Version==-1){l("GetVersion","MadCap.WebHelp.FeedbackController.Shared.GetVersionOnComplete")}else{this.GetVersionOnComplete(null,b.Version)}};this.GetPulseServerActivated=function(n,m,o){this.GetPulseServerActivatedOnComplete=function(q,p){if(n!=null){if(o!=null){n.call(o,p,m)}else{n(p,m)}}if(q!=null){e(q)}this.GetPulseServerActivatedOnComplete=null};l("GetPulseServerActivated","MadCap.WebHelp.FeedbackController.Shared.GetPulseServerActivatedOnComplete")};this.GetPulseStreamID=function(n,o,m,p){this.GetPulseStreamIDOnComplete=function(r,q){if(o!=null){if(p!=null){o.call(p,q,m)}else{o(q,m)}}if(r!=null){e(r)}this.GetPulseStreamIDOnComplete=null};l("GetPulseStreamID","MadCap.WebHelp.FeedbackController.Shared.GetPulseStreamIDOnComplete",[["TopicID",n]])};this.GetTopicPathByStreamID=function(o,n,m,p){this.GetTopicPathByStreamIDOnComplete=function(q,r){if(n!=null){if(p!=null){n.call(p,r,m)}else{n(r,m)}}if(q!=null){e(q)}this.GetTopicPathByStreamIDOnComplete=null};l("GetTopicPathByStreamID","MadCap.WebHelp.FeedbackController.Shared.GetTopicPathByStreamIDOnComplete",[["StreamID",o]])};this.GetTopicPathByPageID=function(m,o,n,p){this.GetTopicPathByPageIDOnComplete=function(q,r){if(o!=null){if(p!=null){o.call(p,r,n)}else{o(r,n)}}if(q!=null){e(q)}this.GetTopicPathByPageIDOnComplete=null};l("GetTopicPathByPageID","MadCap.WebHelp.FeedbackController.Shared.GetTopicPathByPageIDOnComplete",[["PageID",m]])};this.GetPulseSearchResults=function(o,q,n,m){var p=$.Deferred();this.GetPulseSearchResultsOnComplete=function(s,r){p.resolve(r);if(s!=null){e(s)}this.GetPulseSearchResultsOnComplete=null};l("GetPulseSearchResults","MadCap.WebHelp.FeedbackController.Shared.GetPulseSearchResultsOnComplete",[["ProjectID",o],["SearchQuery",q],["PageSize",n],["PageIndex",m]]);return p.promise()}};MadCap.WebHelp.FeedbackController.Shared=null;MadCap.CreateNamespace("Feedback");MadCap.Feedback.LoginDialog=function(c,b){this._FeedbackController=c;this._TimeoutID=-1;this._Mode=b;this._UserGuid=null;this._El=null};var a=MadCap.Feedback.LoginDialog;a.prototype._Init=function(){var c=this;this._El=$(".login-dialog");$(".login-dialog-buttons .submit-button").click(function(d){c.Submit()});$(".login-dialog-buttons .cancel-button").click(function(d){c.Hide(false)});if(this._Mode=="edit"){this._UserGuid=this._FeedbackController.GetUserGuid();this._FeedbackController.GetUserProfile(this._UserGuid,function(f,d){var e=MadCap.Utilities.Xhr.LoadXmlString(f);$(e.documentElement).children("Item").each(function(h,i){var k=$(this);var g=k.attr("Name");var j=k.attr("Value");var m=$(".login-dialog input[name='"+g+"']");if(m.attr("type")=="checkbox"){var l=MadCap.String.ToBool(j,false);m.prop("checked",l)}else{m.val(j)}})},null,this)}else{if(this._Mode=="pulse"){var b=$("#pulse-login-frame");if(b.length==0){c._El.addClass("pulse");c._El.empty();c._El.append('<iframe id="pulse-login-frame" name="pulse-login-html5" style="visibility:hidden;" onload="this.style.visibility=\'visible\';"></iframe>');c._El.append('<button class="close-dialog"></button>');$(".close-dialog",c._El).click(function(d){c.Hide(true)});$("#pulse-login-frame").attr("src",c._FeedbackController.PulseServer+"Login")}}}};a.prototype._Cleanup=function(){$(".login-dialog-buttons .submit-button").off("click");$(".login-dialog-buttons .cancel-button").off("click");$(".submit-button").attr("disabled",null);$(".status-message-box").hide();$(".profile-item-wrapper.error").removeClass("error");window.clearTimeout(this._TimeoutID)};a.prototype.Show=function(){this._Init();var b=MadCap.TextEffects.AddBackgroundTint("light");$(b).animate({opacity:0.5},200);this._El.fadeIn(200)};a.prototype.Hide=function(b){this._Cleanup();MadCap.TextEffects.RemoveBackgroundTint();if(b){this._El.fadeOut()}else{this._El.hide()}$(this).trigger("closed")};a.prototype.Submit=function(){$(".status-message-box").hide();$(".profile-item-wrapper.error").removeClass("error");if(this._CheckErrors()){this._SetStatusMessage("required-fields-missing-message","error");return}var c=this._LoginItemsToXml();var b=this;if(this._Mode=="new"){this._FeedbackController.StartActivateUser2(c,function(d){b._CheckUserStatus(d)});this._SetStatusMessage("verification-email-sent-message")}else{if(this._Mode=="edit"){this._FeedbackController.UpdateUserProfile(this._UserGuid,c,function(d){if(d=="00000000-0000-0000-0000-000000000000"){b.Hide(true)}else{b._CheckUserStatus(d);b._SetStatusMessage("verification-email-sent-message")}})}}$(".submit-button").attr("disabled","disabled")};a.prototype._CheckUserStatus=function(c){var b=this;this._FeedbackController.CheckUserStatus(c,function(d){if(d=="Pending"){b._TimeoutID=setTimeout(function(){b._CheckUserStatus(c)},5000)}else{MadCap.Utilities.Store.setItem("LiveHelpUserGuid",d);b.Hide(true)}})};a.prototype._CheckErrors=function(){var e=false;var d=$(".login-dialog .profile-item-wrapper input, .login-dialog .profile-item-wrapper select");for(var c=0,f=d.length;c<f;c++){var b=d[c];var j=$(b);var g=j.val();var h=MadCap.String.ToBool(MadCap.Dom.Dataset(b,"required"),false);if(h&&MadCap.String.IsNullOrEmpty(g)){j.closest(".profile-item-wrapper").addClass("error");e=true}}return e};a.prototype._LoginItemsToXml=function(){var m=MadCap.Utilities.Xhr.CreateXmlDocument("FeedbackUserProfile");var h=m.documentElement;var b=$(".login-dialog .profile-item-wrapper input");for(var e=0,d=b.length;e<d;e++){var j=b[e];var g=$(j);var c=g.attr("name");var f=g.attr("type");var k=f=="checkbox"?j.checked:g.val();var l=m.createElement("Item");l.setAttribute("Name",c);l.setAttribute("Value",k.toString());h.appendChild(l)}return m};a.prototype._SetStatusMessage=function(b,c){var d=$(".status-message-box");if(c=="error"){d.addClass("error")}else{d.removeClass("error")}$(".message").hide();$("."+b).show();d.fadeIn()};MadCap.FeedbackException=function(c,b,d){MadCap.Exception.call(this,c,b);this.Data=d};MadCap.FeedbackException.prototype=new MadCap.Exception();MadCap.FeedbackException.prototype.constructor=MadCap.FeedbackException;MadCap.FeedbackException.prototype.base=MadCap.Exception.prototype})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.HelpSystem=function(v,m,n,c,E){var d=this;var r=v;var e=new MadCap.Utilities.Url(n).ToFolder().ToFolder().FullPath;var o=null;var l=new Array();var w=c;var k=E;var q=null;var C=[];var t=new MadCap.Utilities.Dictionary();var A=null;var G=new MadCap.Utilities.Dictionary();var b=false;var p=new MadCap.WebHelp.AliasFile(e+"Data/Alias.xml",this);var H=new MadCap.WebHelp.TocFile(this,MadCap.WebHelp.TocFile.TocType.Toc);var h=null;var s=new MadCap.WebHelp.TocFile(this,MadCap.WebHelp.TocFile.TocType.BrowseSequence);var u=new MadCap.Utilities.Dictionary();this.TargetType=null;this.DefaultStartTopic=null;this.InPreviewMode=null;this.LiveHelpOutputId=null;this.LiveHelpServer=null;this.LiveHelpEnabled=false;this.IsWebHelpPlus=false;this.ContentFolder=null;this.UseCustomTopicFileExtension=false;this.CustomTopicFileExtension=null;this.GlossaryUrl=null;this.SearchFilterSetUrl=null;this.SyncTOC=null;this.DefaultSkin=null;this.IsAutoMerged=false;this.LanguageUrl=null;this.BreakpointsUrl=null;this.PreventExternalUrls=false;this.IsResponsive=false;this.SearchUrl=null;(function(){})();this.Load=function(J){MadCap.Utilities.Xhr.Load(n,true,function(Y){var Q=0;function M(){Q++;if(Q==l.length){J()}}function Z(ac,aa){if(l.length>0){for(var ab=0;ab<l.length;ab++){l[ab].Load(ac)}}else{aa()}}b=Y!=null;if(!b){J();return}this.TargetType=Y.documentElement.getAttribute("TargetType");this.DefaultStartTopic=Y.documentElement.getAttribute("DefaultUrl");this.InPreviewMode=MadCap.Dom.GetAttributeBool(Y.documentElement,"InPreviewMode",false);this.LiveHelpOutputId=Y.documentElement.getAttribute("LiveHelpOutputId");this.LiveHelpServer=Y.documentElement.getAttribute("LiveHelpServer");this.LiveHelpEnabled=this.LiveHelpOutputId!=null;this.MoveContentToRoot=MadCap.Dom.GetAttributeBool(Y.documentElement,"MoveOutputContentToRoot",false);this.PreventExternalUrls=MadCap.Dom.GetAttributeBool(Y.documentElement,"PreventExternalUrls",false);this.IsResponsive=MadCap.Dom.GetAttributeBool(Y.documentElement,"EnableResponsiveOutput",false);this.ResultsPerPage=MadCap.Dom.GetAttributeInt(Y.documentElement,"ResultsPerPage",20);var O=MadCap.Dom.GetAttributeBool(Y.documentElement,"ServerEnabled",false);this.IsWebHelpPlus=(this.TargetType=="WebHelpPlus"||O)&&MadCap.String.StartsWith(document.location.protocol,"http",false);var W=MadCap.Dom.GetAttributeBool(Y.documentElement,"MakeFileLowerCase",false);var K="";if(!this.MoveContentToRoot){K="Content/"}if(W){K=K.toLowerCase()}this.ContentFolder=K;this.UseCustomTopicFileExtension=MadCap.Dom.GetAttributeBool(Y.documentElement,"UseCustomTopicFileExtension",false);this.CustomTopicFileExtension=MadCap.Dom.GetAttribute(Y.documentElement,"CustomTopicFileExtension");this.GlossaryUrl=F(Y,"Glossary");this.TocUrl=F(Y,"Toc");this.SearchUrl=F(Y,"SearchUrl");this.BrowseSequencesUrl=F(Y,"BrowseSequence");this.IndexUrl=F(Y,"Index");this.SearchFilterSetUrl=F(Y,"SearchFilterSet");this.LanguageUrl=e+"Data/Language.js";this.BreakpointsUrl=e+"Data/Breakpoints.js";this.HasBrowseSequences=Y.documentElement.getAttribute("BrowseSequence")!=null;this.HasToc=Y.documentElement.getAttribute("Toc")!=null;I.call(this,Y);this.DefaultSkin=this.GetSkin($(Y.documentElement).attr("SkinName"));this.SyncTOC=this.DefaultSkin!=null&&MadCap.String.ToBool(this.DefaultSkin.AutoSyncTOC,false);this.DisplayCommunitySearchResults=this.DefaultSkin==null||MadCap.String.ToBool(this.DefaultSkin.DisplayCommunitySearchResults,true);this.CommunitySearchResultsCount=3;if(this.DefaultSkin!=null){this.CommunitySearchResultsCount=MadCap.String.ToInt(this.DefaultSkin.CommunitySearchResultsCount,3)}var R=Y.getElementsByTagName("Subsystems");if(R.length>0&&R[0].getElementsByTagName("Url").length>0){var X=Y.getElementsByTagName("Subsystems")[0].getElementsByTagName("Url");for(var P=0;P<X.length;P++){var T=X[P];if(!T){continue}var L=T.getAttribute("Source");var N=L.substring(0,L.lastIndexOf("/")+1);var V=T.getAttribute("TocPath");var S=T.getAttribute("BrowseSequencePath");var U=new MadCap.WebHelp.HelpSystem(this,e+N,e+N+"Data/HelpSystem.xml",V,S);l.push(U)}}this.LoadBreakpoints(function(){d.LoadLanguage(function(){if(!d.IsAutoMerged&&d.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(d.GetPath()+"Service/Service.asmx/GetSubsystems",true,function(ab,aa){$.each(ab.documentElement.childNodes,function(ac,ad){if(ad.nodeName=="Subsystems"){$.each(ad.childNodes,function(ah,ai){if(ai.nodeName=="Url"){var ag=ai.getAttribute("Source");var ae=ag.substring(0,ag.lastIndexOf("/")+1);if(ae){var af=new MadCap.WebHelp.HelpSystem(d,e+ae,e+ae+"Data/HelpSystem.xml",null,null);af.IsAutoMerged=true;l.push(af)}}})}});Z(M,J)})}else{Z(M,J)}})})},null,this)};this.GetExists=function(){return b};this.GetMasterHelpsystem=function(){var J=this;for(var K=J.GetParentSubsystem();K!=null;K=K.GetParentSubsystem()){J=K}return J};this.GetParentSubsystem=function(){return r};this.GetPath=function(){return e};this.GetAbsolutePath=function(){if(o==null){var J=new MadCap.Utilities.Url(e);o=J.IsAbsolute?J.FullPath:new MadCap.Utilities.Url(document.location.href).Path}return o};this.GetContentPath=function(){return e+this.ContentFolder};this.GetSkin=function(J){return u.GetItem(J)};this.GetTocPath=function(J){return J=="toc"?w:k};this.GetFullTocPath=function(J,L){var M=this.GetHelpSystem(L);if(M==null){return null}var K=new Object();K.tocPath=this.GetTocPath(J);M.ComputeTocPath(J,K);return K.tocPath};this.GetTopicPath=function(J){var P=this.GetPath();var M=!this.IsRoot;var O=this.GetMasterHelpsystem();if(M&&!masterHelpsystem.MoveContentToRoot){P="../"+P}if(MadCap.Utilities.HasRuntimeFileType("Search")){var N=new MadCap.Utilities.Url(document.location.href);var L=N.ToFolder().CombinePath(P+"Data/").CombinePath(J);var K=L.ToRelative(N);J=K}else{P+="Data/";J=new MadCap.Utilities.Url(P).CombinePath(J);if(!M&&!O.MoveContentToRoot){J=J.ToRelative(O.ContentFolder)}}return J};this.ComputeTocPath=function(J,K){if(r){var L=this.GetTocPath(J);if(!MadCap.String.IsNullOrEmpty(L)){K.tocPath=K.tocPath?L+"|"+K.tocPath:L}r.ComputeTocPath(J,K)}};this.GetHelpSystem=function(K){var L=null;for(var J=0;J<l.length;J++){L=l[J].GetHelpSystem(K);if(L!=null){return L}}if(MadCap.String.StartsWith(K,e,false)){return this}return null};this.GetSubsystem=function(J){return l[J]};this.GetMergedAliasIDs=function(J){p.Load(function(){function P(R){for(var Q=0,S=R.length;Q<S;Q++){O[O.length]=R[Q]}M++;if(M==N+1){J(O)}}var O=new Array();var N=l.length;var M=0;var L=p.GetIDs();P(L);for(var K=0;K<N;K++){l[K].GetMergedAliasIDs(P)}})};this.GetMergedAliasNames=function(J){p.Load(function(){function O(R){for(var Q=0,S=R.length;Q<S;Q++){K[K.length]=R[Q]}M++;if(M==N+1){J(K)}}var K=new Array();var N=l.length;var M=0;var P=p.GetNames();O(P);for(var L=0,N=l.length;L<N;L++){l[L].GetMergedAliasNames(O)}})};this.LookupCSHID=function(K,J){p.Load(function(){function L(R){if(Q){return}N++;if(R.Found){Q=true;J(R);return}if(N==O){J(P)}}var P=p.LookupID(K);if(P.Found){P.Topic=d.GetPath()+P.Topic;J(P);return}if(l.length==0){J(P);return}var Q=false;var N=0;for(var M=0,O=l.length;M<O;M++){l[M].LookupCSHID(K,L)}})};this.GetTocFile=function(){return H};this.GetBrowseSequenceFile=function(){return s};this.IsMerged=function(){return(l.length>0)};this.IsRoot=function(){return r==null};this.IsTabletLayout=function(K){if(this.IsResponsive&&this.Breakpoints){var J=this.Breakpoints.mediums.Tablet;var L=this.Breakpoints.prop;if(L=="max-width"){if(!K){K=window.innerWidth}return K<=J}else{return window.matchMedia("("+L+": "+J+"px)").matches}}return false};this.LoadLanguage=function(L,J){var K=this;require([this.LanguageUrl],function(M){K.Language=M;L.call(J,M)})};this.LoadBreakpoints=function(L,J){if(this.IsResponsive&&this.IsRoot()){var K=this;require([this.BreakpointsUrl],function(M){K.Breakpoints=M;L.call(J,M)})}else{L.call(J,null)}};this.LoadConcepts=function(){var J=$.Deferred();require([e+"Data/Concepts.js"],function(K){A=K;J.resolve(A)});return J.promise()};this.LoadAllConcepts=function(J){function O(){L++;if(L==M+1){J()}}var L=0;var M=l.length;this.LoadConcepts().then(O);for(var K=0;K<M;K++){var N=l[K];if(!N.GetExists()){O();continue}N.LoadAllConcepts(O)}};this.GetConceptsLinks=function(K){var Q=$.Deferred();var P=[];if(this.IsWebHelpPlus){function J(Y,V){var T=Y.documentElement.getElementsByTagName("Url");var S=T.length;for(var W=0;W<S;W++){var X=T[W];var Z=X.getAttribute("Title");var U=X.getAttribute("Source");U=e+((U.charAt(0)=="/")?U.substring(1,U.length):U);P[P.length]={Title:Z,Link:U}}Q.resolve(P)}MadCap.Utilities.Xhr.CallWebService(e+"Service/Service.asmx/GetTopicsForConcepts?Concepts="+K,true,J)}else{function N(S){P=P.Union(S)}K=K.replace("\\;","%%%%%");if(K==""){Q.resolve(P)}else{var M=K.split(";");var R=[];R.push(this.GetConceptsLinksLocal(M).then(N));for(var O=0;O<l.length;O++){var L=l[O];if(L.GetExists()){R.push(L.GetConceptsLinks(K).then(N))}}$.when.apply(this,R).done(function(){Q.resolve(P)})}}return Q.promise()};this.GetConceptsLinksLocal=function(O){var K=[];var N=[];for(var L=0;L<O.length;L++){var M=O[L];M=M.replace("%%%%%",";");N.push(this.GetConceptLinks(M).then(function(P){K=K.concat(P)}))}var J=$.Deferred();$.when.apply(this,N).done(function(){J.resolve(K)});return J.promise()};this.LoadTopicChunk=function(K){var J=$.Deferred();MadCap.Utilities.Require([e+"Data/SearchTopic_Chunk"+K+".js"],function(L){J.resolve(L)});return J.promise()};this.GetSearchChunkIds=function(K){var J=$.Deferred();MadCap.Utilities.Require([e+"Data/Search.js"],function(N){var L=N.t;var O=[];for(var M=0;M<K.length;M++){O.push(MadCap.Utilities.GetChunkId(L,K[M],function(Q,P){if(Q<P){return -1}else{if(Q===P){return 0}else{return 1}}}))}J.resolve(O)});return J.promise()};this.GetConceptLinks=function(L){var K=$.Deferred();var J=this;this.LoadConcepts().done(function(){var M=[];var N=A[L];if(!N){K.resolve(M)}else{J.GetSearchChunkIds(N).then(function(R){var Q=[];for(var P=0;P<R.length;P++){var O=R[P];Q.push(J.LoadTopicChunk(O).then(function(U){for(var T=0;T<N.length;T++){var S=U[N[T]];if(S){S.Url=J.GetTopicPath(S.u);M.push(S)}}}))}$.when.apply(this,Q).done(function(){K.resolve(M)})})}});return K.promise()};this.LoadToc=function(L,M,J){var K=this;var N=K[L];if(typeof N!=="undefined"){M.call(J,N)}else{this.GetToc(L,function(O){M.call(J,O)})}};this.GetToc=function(M,J){var K=this;var L=this[M+"Url"];require([L],function(R){if(typeof R=="undefined"){J(R);return}K[M]=R;R.type=M;R.helpSystem=K;R.chunks=[];R.entries=[];R.nodes={};var O=new MadCap.Utilities.Url(L).ToFolder();for(var U=0;U<R.numchunks;U++){R.chunks[U]={path:O.AddFile(R.prefix+U+".js").FullPath,loaded:false}}var Q=R.tree;var V={};R.automerge=R.tree;while(Q!=null){Q.toc=R;Q.childrenLoaded=false;R.nodes[Q.i]=Q;if(typeof Q.m!=="undefined"){V[Q.m]=Q}if(typeof Q.a!=="undefined"){R.automerge=Q}if(typeof Q.n!=="undefined"){for(var T=0;T<Q.n.length;T++){Q.n[T].parent=Q;if(T<Q.n.length-1){Q.n[T].next=Q.n[T+1]}if(T>0){Q.n[T].previous=Q.n[T-1]}}}Q=B(Q)}var P=[];var S=false;for(var T=0;T<l.length;T++){var N=l[T];if(N.GetExists()){if(!N.IsAutoMerged){N.MergeNode=V[T]}else{S=true}if(N.IsAutoMerged||typeof N.MergeNode!=="undefined"){P.push(N)}}else{f(V[T])}}if(!S&&R.automerge.a=="replace"){f(R.automerge)}if(P.length==0){J(R);return}MadCap.Utilities.AsyncForeach(P,function(W,X){i(R,W,X)},function(){J(R)})})};function f(N){var L=N.parent;var M=N.previous;var K=N.next;if(M){M.next=K;N.previous=null}if(K){K.previous=M;N.next=null}if(L){var J=N.parent.n.indexOf(N);L.n.splice(J,1);N.parent=null}}function B(K){var J=null;if(typeof K.n!="undefined"){J=K.n[0]}else{if(typeof K.next!="undefined"){J=K.next}else{J=K;while(typeof J.parent!="undefined"){if(typeof J.parent.next!="undefined"){J=J.parent.next;break}else{J=J.parent}}if(typeof J.parent=="undefined"){J=null}}}return J}function j(K){var J=null;if(typeof K.previous!="undefined"){J=K.previous;while(typeof J.n!=="undefined"&&J.n.length>0){J=J.n[J.n.length-1]}}else{if(typeof K.parent!="undefined"){J=K.parent}}return J}function y(P,O){var N="";var M=-1;var L=null;if(P.n&&P.n.length>0){N=P.toc.entries[P.i].title;if(O){N=encodeURIComponent(N)}M=0}else{M=P.parent.n.indexOf(P)+1}if(N.length>0){N+="|"}N+=("_____"+M);for(var J=P.parent;J&&typeof J.i!=="undefined";J=J.parent){if(N==null){N=""}if(N.length>0){N="|"+N}var K=J.toc.entries[J.i].title;if(O){K=encodeURIComponent(K)}N=K+N}return N}function i(K,L,J){L.GetToc(K.type,function(P){if(typeof P=="undefined"){J();return}var O=L.IsAutoMerged?K.automerge:L.MergeNode;var W=P.tree;if(typeof W.n!=="undefined"){var N=O.r==1||(L.IsAutoMerged&&O.a=="replace");var U=N||(L.IsAutoMerged&&(O.a=="before-head"||O.a=="after-head"));var Q=N||(L.IsAutoMerged&&(O.a=="before-head"||O.a=="after-tail"));var V=Q?O.parent:O;if(typeof V.n=="undefined"){V.n=[]}var R=Q?V.n.indexOf(O)+(U?0:1):U?0:V.n.length;var M=W.n.length;for(var S=0;S<M;S++){W.n[S].parent=V;V.n.splice(R+S,0,W.n[S])}if(N){V.n.splice(R+M,1)}if(R>0){V.n[R].previous=V.n[R-1];V.n[R-1].next=V.n[R]}var T=R+M-(N?1:0)-1;if(T>=0&&T+1<V.n.length){V.n[T].next=V.n[T+1];V.n[T+1].previous=V.n[T]}if(L.IsAutoMerged){K.automerge=V.n[R+M-1];K.automerge.a="after-tail"}}J()})}this.LoadTocChunk=function(L,J,K){require([L.chunks[J].path],function(M){if(!L.chunks[J].loaded){for(var O in M){for(var N=0;N<M[O].i.length;N++){L.entries[M[O].i[N]]={link:O,title:M[O].t[N],bookmark:M[O].b[N]}}}L.chunks[J].loaded=true}if(K){K(M)}})};this.GetTocEntryHref=function(W,O,S){var N=W.toc;var R=N.entries[W.i];var V=R.link+R.bookmark;var L=null;if(typeof W.m=="undefined"&&V!="___"){var K=null;var Q=new MadCap.Utilities.Url(V);var J=N.helpSystem;var P=J.GetPath();var U=J.GetMasterHelpsystem().GetContentPath();var M=typeof W.f!="undefined";if(!Q.IsAbsolute){if(!MadCap.String.IsNullOrEmpty(P)){Q=new MadCap.Utilities.Url(P).CombinePath(V);K=Q.ToRelative(U)}else{K=Q.ToRelative("/"+U)}}else{K=Q}if(M||!S){if(K.IsAbsolute){L=K.FullPath}else{L=U+K.FullPath}}else{L="#"+K.FullPath}}if(L!=null&&O){var T=y(W,true);L+=encodeURIComponent("?"+O+"Path="+T)}return L};this.FindTocNode=function(L,J,K){d.FindNode("Toc",L,J,K)};this.FindBrowseSequenceNode=function(L,J,K){d.FindNode("BrowseSequences",L,J,K)};this.FindNode=function(J,L,K,M){d.LoadToc(J,function(S){var O=new MadCap.Utilities.Url(d.GetMasterHelpsystem().GetContentPath());var P=K;var R=0;var N;if(!K.IsAbsolute){var P=!MadCap.String.IsNullOrEmpty(O.FullPath)?O.CombinePath(K):K;P=P.ToRelative(d.GetPath());P=new MadCap.Utilities.Url("/"+P.FullPath)}for(var Q=1;Q<S.chunkstart.length;Q++){if(S.chunkstart[Q]<=P.PlainPath){R++}}d.LoadTocChunk(S,R,function(T){var V=T[P.PlainPath];if(typeof V!=="undefined"){var W=null;if(!N){N=S.nodes[V.i[0]]}if(L){for(var U=0;U<V.i.length;U++){if(y(S.nodes[V.i[U]],false)==L){W=V.i[U];break}}}else{for(var U=0;U<V.i.length;U++){if(V.b[U].toLowerCase()==P.Fragment.toLowerCase()){W=V.i[U];break}}}if(W!=null){M(S.nodes[W]);return}}if(l.length>0){MadCap.Utilities.AsyncForeach(l,function(X,Y){X.FindNode(J,L,K,function(Z){if(typeof Z!=="undefined"){M(Z);return}Y()})},function(){M(N)})}else{M(N)}})})};this.LoadGlossary=function(L,J){var K=this;this.GetGlossary(function(M){K.Glossary=M;L.call(J,M)})};this.GetGlossary=function(J){require([this.GlossaryUrl],function(K){function M(){O++;if(O==P){J(K)}}if(typeof K=="undefined"){J(K);return}var O=0;var P=0;K.chunks=[];var N=new MadCap.Utilities.Url(d.GlossaryUrl).ToFolder();for(var R=0;R<K.numchunks;R++){K.chunks.push(N.AddFile(K.prefix+R+".js").FullPath)}for(var L=0;L<l.length;L++){var Q=l[L];if(!Q.GetExists()){continue}P++}if(P==0){J(K);return}for(var L=0;L<l.length;L++){var Q=l[L];if(!Q.GetExists()){continue}a(K,Q,M)}})};this.LoadIndex=function(L,J){if(typeof this.Index!=="undefined"){L.call(J,this.Index);return}var K=this;this.GetIndex(function(M){K.Index=M;L.call(J,M)})};this.GetIndex=function(J){require([this.IndexUrl],function(L){function K(){O++;if(O==P){J(L)}}if(typeof L=="undefined"){J(L);return}var O=0;var P=0;L.chunks=[];var N=new MadCap.Utilities.Url(d.IndexUrl).ToFolder().ToRelative(document.location.href);for(var R=0;R<L.numchunks;R++){L.chunks.push(N.AddFile(L.prefix+R+".js").FullPath)}for(var M=0;M<l.length;M++){var Q=l[M];if(!Q.GetExists()){continue}P++}if(P==0){J(L);return}for(var M=0;M<l.length;M++){var Q=l[M];if(!Q.GetExists()){continue}D(L,Q,K)}})};this.LoadRootIndexEntry=function(J,K){if(J.loaded){if(K){K(J)}return}this.LoadIndex(function(L){var M=typeof J.c=="number"?[J.c]:J.c;MadCap.Utilities.AsyncForeach(M,function(P,O){var N=L.chunks[P];require([N],function(Q){var S=Q[J.t];var R=new MadCap.Utilities.Url(N).ToFolder().ToFolder().FullPath;if(MadCap.String.EndsWith(R,"/")){R=R.slice(0,-1)}d.SetIndexEntryRoot(S,R);d.MergeIndexEntries(J,S);O()})},function(){d.LoadIndexEntry(J);if(K){K(J)}})})};this.SetIndexEntryRoot=function(K,J){if(K.l){$.each(K.l,function(L,M){M.root=J})}if(K.e){$.each(K.e,function(L,M){d.SetIndexEntryRoot(M,J)})}};this.LoadIndexEntry=function(K){if(K.l){var J=[];$.each(K.l,function(M,L){var N={Title:L.t,Link:d.GetIndexLinkPath(L)};J[J.length]=N});K.linkList=d.SortLinkList(J)}if(K.e){$.each(K.e,function(L,M){d.LoadIndexEntry(M)})}K.loaded=true};this.GetIndexLinkPath=function(K){var M=K.root+K.u;if(MadCap.String.StartsWith(M,"/")){M=M.substring(1)}var J=new MadCap.Utilities.Url(d.GetMasterHelpsystem().GetAbsolutePath());var L=new MadCap.Utilities.Url(document.location.href);if(J.Path.toLowerCase()==L.Path.toLowerCase()){M=J.AddFile(M).ToRelative(J.Path+d.GetMasterHelpsystem().GetContentPath()).FullPath}return M};this.MergeIndexEntries=function(K,J){if(J.l){if(typeof K.l=="undefined"){K.l=J.l}else{K.l=K.l.concat(J.l)}}if(J.r){if(typeof K.r=="undefined"){K.r=J.r}else{if(K.r=="SeeAlso"||J.r=="SeeAlso"){K.r="SeeAlso"}}if(typeof K.f=="undefined"){K.f=J.f}else{var M=K.f.split(";");var L=J.f.split(";");$.each(L,function(O,N){if($.inArray(M,N)){M.push(N)}});M.sort(function(Q,O){var P=Q.toLowerCase();var N=O.toLowerCase();return P<N?-1:P>N?1:0});K.f=M.join("; ")}}if(J.e){if(typeof K.e=="undefined"){K.e={}}$.each(J.e,function(N,O){if(typeof K.e[N]!=="undefined"){d.MergeIndexEntries(K.e[N],O)}else{K.e[N]=O}})}};this.FindIndexEntry=function(K,J){d.LoadIndex(function(L){if(!L.entries){L.entries={};$.each(L.terms,function(P,Q){L.entries[Q.t]=Q})}var N=K.split(":");var O=N.length;var M=L.entries[N[0]];if(M){d.LoadRootIndexEntry(M,function(Q){var R=Q;for(var P=1;P<O;P++){R=R.e[N[P]];if(!R){break}}if(J){J(Q,R)}})}else{if(J){J()}}})};this.SortLinkList=function(J){J.sort(function(L,K){var N=L.Title.toLowerCase();var M=K.Title.toLowerCase();return N<M?-1:N>M?1:0});return J};this.GetSearchDBs=function(J){var L=new Array();var K=this;require([e+"Data/Search.js"],function(Q){function N(S){if(S!=null){for(var R=0;R<S.length;R++){L[L.length]=S[R]}}O++;if(O==P){J(L)}}var O=0;var P=l.length;var M=new MadCap.WebHelp.Search.SearchDB(K);L[L.length]=M;M.Load(Q,function(){var R=Q.pm;if(R||P==0){J(L)}else{for(var S=0;S<P;S++){var T=l[S];if(!T.GetExists()){N(null);continue}T.GetSearchDBs(N)}}})})};this.GetConcepts=function(){return A};this.GetSearchFilters=function(){return q.map};this.ParseSearchFilterDoc=function(P){filterMap=Object.create(null);if(P!=null){var O=P.getElementsByTagName("SearchFilter");for(var L=0;L<O.length;L++){var M=O[L];var K=M.getAttribute("Name");var J=M.getAttribute("Order");var N=M.getAttribute("Concepts");if(!N){continue}filterMap[K]={c:N,o:J,group:0,}}}return filterMap};this.LoadSearchFiltersLocal=function(){var J=$.Deferred();require([this.SearchFilterSetUrl],function(L){var K=null;if(L){K={map:L,count:1}}J.resolve(K)});return J.promise()};this.LoadSearchFilters=function(){var L=$.Deferred();if(!this.IsWebHelpPlus){function K(V){if(V){if(!J){J=V;for(var S in V.map){V.map[S].group=0}}else{J.count+=V.count;for(var S in V.map){if(!J.map[S]){J.map[S]=V.map[S];J.map[S].group+=V.count}else{var U=J.map[S];var T=V.map[S];var R=U.c.split(";");var Q=T.c.split(";");U.c=R.Union(Q).join(";");if(MadCap.String.IsNullOrEmpty(U.cm)){U.cm=T.cm}}}}}}var J;var O=[];O.push(this.LoadSearchFiltersLocal().then(K));for(var N=0;N<l.length;N++){var P=l[N];if(P.GetExists()){O.push(P.LoadSearchFilters().then(K))}}$.when.apply(this,O).done(function(){q=J;L.resolve(J)})}else{var M=this;MadCap.Utilities.Xhr.CallWebService(e+"Service/Service.asmx/GetSearchFilters",true,function(R,Q){var S=M.ParseSearchFilterDoc(R);L.resolve({map:S})})}return L.promise()};this.AdvanceTopic=function(J,O,N,K,L){var M=null;d.FindNode(J,N,K,function(Q){if(Q){function P(S,R){S=R=="next"?B(S):j(S);if(S&&typeof S.i!=="undefined"){d.LoadTocChunk(S.toc,S.c,function(T){var V=S.toc.entries[S.i];var U=d.GetTocEntryHref(S,J,true);if(U){if(MadCap.String.StartsWith(U,"#")){U=U.substring(1)}L(U)}else{P(S,R)}})}}P(Q,O)}})};this.SetBrowseSequencePath=function(K,J){var L=$(".current-topic-index-button");if(K!=null){this.FindBrowseSequenceNode(K,J,function(M){if(M&&M.parent){L.removeClass("disabled");$(".sequence-index").text(M.parent.n.indexOf(M)+1);$(".sequence-total").text(M.parent.n.length)}else{L.addClass("disabled")}})}else{L.addClass("disabled")}};function F(M,K){var L=M.documentElement.getAttribute(K);if(L==null){return null}var J=new MadCap.Utilities.Url(e);if(!J.IsAbsolute){return e+L}return J.AddFile(L).ToRelative(document.location.href).FullPath}function I(Y){var Z=$("CatapultSkin",Y.documentElement);for(var U=0,P=Z.length;U<P;U++){var V=Z[U];var Q=$(V);var S=Q.attr("Name");var X={};for(var T=0,N=V.attributes.length;T<N;T++){var W=V.attributes[T];X[W.name]=W.value}var O=Q.children();for(var T=0,N=O.length;T<N;T++){var J=O[T];var L=J.nodeName;var M={};X[L]=M;for(var R=0,K=J.attributes.length;R<K;R++){var W=J.attributes[R];M[W.name]=W.value}}u.Add(S,X)}}function x(L,M){if(L.nodeName.toLowerCase()=="madcap:glossarychunkref"){var O=$(L);var J=O.attr("src");if(!MadCap.String.IsNullOrEmpty(J)){var K=new MadCap.Utilities.Url(M).CombinePath("../../Data/").CombinePath(J);O.attr("src","../"+K.FullPath)}}else{var N=L.getElementsByTagName("a")[0];var J=$(N).attr("href");if(!MadCap.String.IsNullOrEmpty(J)){var K=new MadCap.Utilities.Url(M).CombinePath("../../Content/").CombinePath(J);$(N).attr("href","../"+K.FullPath)}}}function g(N){for(var L=0;L<N.childNodes.length;L++){var J=N.childNodes[L];if(J.nodeName=="Entries"){for(var K=0;K<J.childNodes.length;K++){g(J.childNodes[K])}}else{if(J.nodeName=="Links"){for(var K=0;K<J.childNodes.length;K++){if(J.childNodes[K].nodeType==1){var M=MadCap.Dom.GetAttribute(J.childNodes[K],"Link");M=e+((M.charAt(0)=="/")?M.substring(1,M.length):M);J.childNodes[K].setAttribute("Link",M)}}}}}}function z(K,J){if(!J){return}for(var L=0;L<J.length;L++){K[K.length]=J[L]}}function a(K,L,J){L.GetGlossary(function(Q){if(typeof Q=="undefined"){J();return}K.chunks=K.chunks.concat(Q.chunks);for(var P=0,N=0;P<K.terms.length&&N<Q.terms.length;){var O=K.terms[P];var M=Q.terms[N];var T=O.t;var R=M.t;if(T.toLowerCase()==R.toLowerCase()){P++;N++}else{if(T.toLowerCase()>R.toLowerCase()){M.c+=K.numchunks;K.terms.splice(P,0,M);N++}else{P++}}}for(;N<Q.terms.length;N++){var S=Q.terms[N];S.c+=K.numchunks;K.terms.push(S)}K.numchunks=K.chunks.length;J()})}function D(L,K,J){K.GetIndex(function(R){if(typeof R=="undefined"){J();return}L.chunks=L.chunks.concat(R.chunks);for(var P=0,O=0;P<L.terms.length&&O<R.terms.length;){var T=L.terms[P];var S=R.terms[O];var N=T.s||T.t;var M=S.s||S.t;if(N==M&&T.t==S.t){if(typeof T.c=="number"){T.c=[T.c]}var Q=S.c;if(typeof S.c=="number"){Q=[S.c]}$.each(Q,function(W,V){T.c.push(V+L.numchunks)});T.$=(T.$===1&&S.$===1)?1:0;P++;O++}else{if(N.toLowerCase()>M.toLowerCase()||(N.toLowerCase()==M.toLowerCase()&&T.t.toLowerCase()>S.t.toLowerCase())){S.c+=L.numchunks;L.terms.splice(P,0,S);O++}else{P++}}}for(;O<R.terms.length;O++){var U=R.terms[O];U.c+=L.numchunks;L.terms.push(U)}L.numchunks=L.chunks.length;J()})}};(function(){var a=null;MadCap.WebHelp.HelpSystem.GetHelpSystem=function(){return a};MadCap.WebHelp.HelpSystem.LoadHelpSystem=function(c,b){a=new MadCap.WebHelp.HelpSystem(null,null,c,null,null);a.Load(function(){b(a)})}})();MadCap.WebHelp.TocFile=function(r,l){var b=this;var h=r;var e=l;var c=false;var i=null;var n=new Array();var j=null;var o=null;var a=new Array();(function(){})();this.Init=function(t){if(c){if(t!=null){t()}return}if(t!=null){n.push(t)}var v=null;if(l==MadCap.WebHelp.TocFile.TocType.Toc){v="Toc.xml"}else{if(l==MadCap.WebHelp.TocFile.TocType.BrowseSequence){v="BrowseSequences.xml"}}this.LoadToc(h.GetPath()+"Data/"+v,u);function u(w){c=true;i=w.documentElement;g()}};this.LoadToc=function(u,t){if(e==MadCap.WebHelp.TocFile.TocType.Toc&&h.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(h.GetPath()+"Service/Service.asmx/GetToc",true,w,null)}else{if(e==MadCap.WebHelp.TocFile.TocType.BrowseSequence&&h.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(h.GetPath()+"Service/Service.asmx/GetBrowseSequences",true,w,null)}else{var v=(u.indexOf("/")==-1)?h.GetPath()+"Data/"+u:u;MadCap.Utilities.Xhr.Load(v,false,w,null,null)}}function w(y,x){if(!y||!y.documentElement){if(t!=null){t(y)}return}if(t!=null){t(y)}}};this.LoadChunk=function(u,v,t){var w=(v.indexOf("/")==-1)?h.GetPath()+"Data/"+v:v;MadCap.Utilities.Xhr.Load(v,true,x,null,null);function x(E,z){if(!E||!E.documentElement){if(t!=null){t(u)}return}u.removeAttribute("Chunk");var y=E.documentElement;for(var B=0,D=y.childNodes.length;B<D;B++){var A=y.childNodes[B];if(A.nodeType!=1){continue}var C=null;if(typeof(E.importNode)=="function"){C=E.importNode(A,true)}else{C=A.cloneNode(true)}u.appendChild(C)}if(t!=null){t(u)}}};this.LoadMerge=function(y,t){var x=MadCap.Dom.GetAttributeInt(y,"MergeHint",-1);if(x==-1){t(y,false,null,null);return}y.removeAttribute("MergeHint");var A=k(y);var u=A.GetSubsystem(x);var v=MadCap.Dom.GetAttributeBool(y,"ReplaceMergeNode",false);if(!v){y.setAttribute("ownerHelpSystemIndex",a.length)}a[a.length]=u;var z=u.GetPath()+"Data/"+(e==MadCap.WebHelp.TocFile.TocType.Toc?"Toc.xml":"BrowseSequences.xml");var B=MadCap.Utilities.Xhr.Load(z,true,w);function w(N,K){if(!N||!N.documentElement){if(t!=null){t(y,false,null,null)}return}var G=N.documentElement;var J=null;var H=true;var D=null;var E=null;var L=y.ownerDocument;for(var I=0,F=G.childNodes.length;I<F;I++){var C=G.childNodes[I];if(C.nodeType!=1){continue}var M=null;if(typeof(L.importNode)=="function"){M=L.importNode(C,true)}else{M=C.cloneNode(true)}if(v){M.setAttribute("ownerHelpSystemIndex",a.length-1);if(H){H=false;y.parentNode.replaceChild(M,y);D=M;E=D}else{J.parentNode.insertBefore(M,J.nextSibling);E=M}J=M}else{y.appendChild(M)}}if(t!=null){t(y,v,D,E)}}};this.AdvanceTopic=function(x,w,u,v){this.GetTocNode(w,u,t);function t(y){if(y==null){v(null);return}var z=null;q(x,y,A);function A(E){var B=null;if(E!=null){B=MadCap.Dom.GetAttribute(E,"Link");B=B.substring("/".length);var H=new MadCap.Utilities.Url(B);var G=null;if(e==MadCap.WebHelp.TocFile.TocType.Toc){G="TocPath"}else{if(e==MadCap.WebHelp.TocFile.TocType.BrowseSequence){G="BrowseSequencePath"}}var D=m(E,false);var C=H.ToQuery(G+"="+encodeURIComponent(D));B=C.FullPath;var F=k(E);B=F.GetPath()+B;v(B)}else{v(B)}}}};this.GetRootNode=function(u){this.Init(t);function t(){u(i)}};this.GetTocNode=function(v,t,x){this.Init(w);function w(){j=v;o=t;var F=(v=="")?new Array(0):v.split("|");var B=-1;if(F.length>0){var z=F[F.length-1];if(MadCap.String.StartsWith(z,"_____")){B=parseInt(z.substring("_____".length));F.splice(F.length-1,1)}}var H=i;for(var D=0,A=F.length;D<A;D++){if(y(H)){return}if(u(H)){return}H=d(H,decodeURIComponent(F[D]))}if(H==null){x(null);return}if(y(H)){return}if(u(H)){return}if(B>=0){if(B==0){C=H}else{C=$(H).children("TocEntry")[B-1]}}else{var E=k(H);var G=t.ToRelative(new MadCap.Utilities.Url(E.GetPath()));var C=s(H,G.FullPath.toLowerCase(),true);if(!C){C=s(H,G.PlainPath.toLowerCase(),false)}}j=null;o=null;x(C)}function y(z){var A=MadCap.Dom.GetAttribute(z,"Chunk");if(A!=null){b.LoadChunk(z,A,function(B){b.GetTocNode(j,o,x)});return true}return false}function u(z){var A=$(z).attr("MergeHint")||-1;if(A>=0){b.LoadMerge(z,function(B){b.GetTocNode(j,o,x)});return true}return false}};this.GetEntrySequenceIndex=function(u,t,w){this.GetTocNode(u,t,v);function v(y){var x=-1;if(y!=null){x=f(y)}w(x)}};this.GetIndexTotalForEntry=function(u,t,w){this.GetTocNode(u,t,v);function v(y){var z=-1;if(y!=null){var x=y;while(x.parentNode!=i){x=x.parentNode}z=MadCap.Dom.GetAttributeInt(x,"DescendantCount",-1)}w(z)}};function g(){for(var t=0,u=n.length;t<u;t++){n[t]()}}function d(u,w){var t=null;for(var v=0;v<u.childNodes.length;v++){if(u.childNodes[v].nodeName=="TocEntry"&&MadCap.Dom.GetAttribute(u.childNodes[v],"Title")==w){t=u.childNodes[v];break}}return t}function s(v,t,x){var y=null;var B=MadCap.Dom.GetAttribute(v,"Link");if(B!=null){B=B.substring("/".length);B=B.replace(/%20/g," ");B=B.toLowerCase()}if(B==t){y=v}else{for(var w=0;w<v.childNodes.length;w++){var z=v.childNodes[w];if(z.nodeType!=1){continue}var A=MadCap.Dom.GetAttribute(z,"Link");if(A==null){continue}A=A.substring("/".length);A=A.replace(/%20/g," ");A=A.toLowerCase();if(!x){var C=A.indexOf("#");if(C!=-1){A=A.substring(0,C)}var u=A.indexOf("?");if(u!=-1){A=A.substring(0,u)}}if(A==t){y=z;break}}}return y}function q(w,t,x){if(w=="previous"){v(t)}else{if(w=="next"){z(t)}}function A(F){var B=null;if(F!=null){var E=MadCap.Dom.GetAttribute(F,"Link");if(E==null){q(w,F,x);return}var C=new MadCap.Utilities.Url(E);var D=C.Extension.toLowerCase();var G=h.GetMasterHelpsystem();if(G.UseCustomTopicFileExtension){if(D!=G.CustomTopicFileExtension){q(w,F,x);return}}else{if(D!="htm"&&D!="html"){q(w,F,x);return}}B=F}x(B)}function v(E){function F(H){var G=p(H,"TocEntry");if(G==null){D=H}else{D=G;if(y(G,F)){return}if(u(G,C)){return}}A(D)}function C(H,I,J,G){if(I){F(G)}else{F(H)}}var D=null;for(var B=E.previousSibling;B!=null;B=B.previousSibling){if(B.nodeName=="TocEntry"){D=B;break}}if(D!=null){if(y(D,F)){return}if(u(D,C)){return}F(D);return}else{if(E.parentNode.nodeType==1){D=E.parentNode}}A(D)}function z(D){function E(H){var G=$(H).children("TocEntry")[0];for(var F=H;F!=null&&G==null;F=F.parentNode){G=$(F).next("TocEntry")[0]}A(G)}function C(G,H,I,F){if(H){A(I);return}E(G)}var B=null;if(y(D,E)){return}if(u(D,C)){return}E(D)}function y(C,B){var D=MadCap.Dom.GetAttribute(C,"Chunk");if(D!=null){b.LoadChunk(C,D,B);return true}return false}function u(C,B){var D=$(C).attr("MergeHint")||-1;if(D>=0){b.LoadMerge(C,B);return true}return false}}function p(t,w){var v=$(t).children(w+":last")[0];if(v!=null){var u=p(v,w);if(u!=null){return u}return v}return null}function k(u){var w=null;var t=u;while(true){if(t==t.ownerDocument.documentElement){w=h;break}var v=MadCap.Dom.GetAttributeInt(t,"ownerHelpSystemIndex",-1);if(v>=0){w=a[v];break}t=t.parentNode}return w}function m(u){var x="";var w=-1;var v=$(u).children("TocEntry")[0];if(v!=null){x=encodeURIComponent(MadCap.Dom.GetAttribute(u,"Title"));w=0}else{w=$(u).index()+1}if(x.length>0){x+="|"}x+=("_____"+w);for(var t=u.parentNode;t!=null&&t.parentNode.nodeType==1;t=t.parentNode){if(x==null){x=""}if(x.length>0){x="|"+x}x=encodeURIComponent(MadCap.Dom.GetAttribute(t,"Title"))+x}return x}function f(w){if(w.parentNode==w.ownerDocument.documentElement){return 0}var v=0;var z=MadCap.Dom.GetAttribute(w,"Link");if(z!=null){v++}for(var t=w.previousSibling;t!=null;t=t.previousSibling){if(t.nodeType!=1){continue}var y=MadCap.Dom.GetAttributeInt(t,"DescendantCount",0);v+=y;var z=MadCap.Dom.GetAttribute(t,"Link");if(z!=null){var u=new MadCap.Utilities.Url(z);var x=u.Extension.toLowerCase();if(x=="htm"||x=="html"){v++}}}return v+f(w.parentNode)}};MadCap.WebHelp.TocFile.TocType={Toc:0,BrowseSequence:1};MadCap.WebHelp.AliasFile=function(h,a,e){var d=null;var f=a;var i=null;var g=null;(function(){})();this.Load=function(j){MadCap.Utilities.Xhr.Load(h,true,function k(l){if(l){d=l.documentElement}j()})};this.GetIDs=function(){var j=new Array();c();g.ForEach(function(k,l){j[j.length]=k;return true});return j};this.GetNames=function(){var j=new Array();c();i.ForEach(function(k,l){j[j.length]=k;return true});return j};this.LookupID=function(o){var l=false;var j=null;var m=null;if(o){if(typeof(o)=="string"&&o.indexOf(".")!=-1){var k=o.indexOf("|");if(k!=-1){j=o.substring(0,k);m=o.substring(k+1)}else{j=o}l=true}else{var n=b(o);if(n!=null){l=true;j=n.Topic;m=n.Skin}}}else{l=true}if(j){j=f.ContentFolder+j}return{Found:l,Topic:j,Skin:m}};function b(k){var j=null;c();if(i!=null){if(typeof(k)=="string"){j=i.GetItem(k);if(j==null){j=g.GetItem(k)}}else{if(typeof(k)=="number"){j=g.GetItem(k.toString())}}}return j}function c(){if(i==null){if(d){i=new MadCap.Utilities.Dictionary();g=new MadCap.Utilities.Dictionary();var p=d.getElementsByTagName("Map");for(var m=0;m<p.length;m++){var k=p[m].getAttribute("Link");var o=p[m].getAttribute("Skin");var l={Topic:k,Skin:o};var j=p[m].getAttribute("Name");if(j!=null){i.Add(j,l)}var n=p[m].getAttribute("ResolvedId");if(n!=null){g.Add(n,l)}}}}}};MadCap.WebHelp.IndexEntry=function(g,f){var e=MadCap.Dom.GetChildNodeByTagName(g,"Links",0).childNodes;var d=e.length;var b=0;this.Term=MadCap.Dom.GetAttribute(g,"Term");this.IndexLinks=new Array();this.Level=f;this.GeneratedReferenceType=MadCap.Dom.GetAttribute(g,"GeneratedReferenceType");for(var c=0;c<d;c++){var a=e[c];if(a.nodeType!=1){continue}this.IndexLinks[b]=new MadCap.WebHelp.IndexLink(a);b++}};MadCap.WebHelp.IndexLink=function(a){this.Title=MadCap.Dom.GetAttribute(a,"Title");this.Link=MadCap.Dom.GetAttribute(a,"Link")};/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Default")){return}var I=MadCap.Utilities.HasRuntimeFileType("TriPane");var a=I||MadCap.Utilities.IsRuntimeFileType("Default");var j=null;var af="search-";var C=null;function ac(aJ){MadCap.DEBUG.Log.AddLine(window.name+"onload");MadCap.DEBUG.Log.AddLine(window.name+"hash: "+document.location.hash);MadCap.DEBUG.Log.AddLine(window.name+"search: "+document.location.search);if($.browser.msie&&$.browser.version<=9){var aG=$("#search-field");if(aG.css("direction")=="rtl"){aG.css({"border-top-left-radius":aG.css("border-top-right-radius"),"border-top-right-radius":aG.css("border-top-left-radius"),"border-bottom-left-radius":aG.css("border-bottom-right-radius"),"border-bottom-right-radius":aG.css("border-bottom-left-radius")})}var aK=$("#contentBody");if(aK.css("direction")=="rtl"){aK.css({"border-top-left-radius":aK.css("border-top-right-radius"),"border-top-right-radius":aK.css("border-top-left-radius")})}}$("input, textarea").placeholder();$(".tabs .tabs-nav li").click(s);$("ul.navigation ul li").mouseenter(p);$("#home").click(z);$(".search-submit").click(function(aL){Z(aL)});$("#search-field, #search-field-sidebar, .search-field").keypress(function(aL){if(aL.which!=13){return}Z(aL);aL.preventDefault()});$(".search-filter").click(function(aM){var aN=$(this);var aL=$(".search-filter-content",this);if(aN.hasClass("open")){h(0,0,aL,aN)}else{$(this).addClass("open");if(window.PIE){$(".search-submit-wrapper").each(function(){PIE.detach(this);PIE.attach(this)})}aL.fadeIn(200);aL.css("max-height",$(window).height()-aL.offset().top)}});if(!$.browser.mobile){$(".search-filter").mouseenter(function(aL){clearTimeout(C)});$(".search-filter").mouseleave(function(aM){var aL=$(this);var aN=$(".search-filter-content",this);h(200,500,aN,aL)})}$("#navigationResizeBar").mousedown(ad);$("#show-hide-navigation").click(B);P(parseInt($("#navigation").css("width")));var aI=$("title");aI.attr("data-title",document.title);$("#topic").load(function(){ai(0);MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-title",null,function(aM){var aL=aI.attr("data-title");var aN=aL;if(!MadCap.String.IsNullOrEmpty(aL)){aN+=" - "}document.title=aN+aM[0]});MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-topic-id",null,function(aL){aE=aL[0];if(aE!=null){au()}})});if(I){$(".print-button").click(function(aL){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"print")});$(".expand-all-button").click(function(aM){var aL=$(this);if(aL.hasClass("expand-all-button")){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"expand-all")}else{if(aL.hasClass("collapse-all-button")){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"collapse-all")}}MadCap.Utilities.ToggleButtonState(this)});$(".remove-highlight-button").click(function(aL){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"remove-highlight")})}$(".previous-topic-button").click(function(aL){V()});$(".next-topic-button").click(function(aL){x()});$(".side-menu-button").click(function(aL){aL.preventDefault();$(".off-canvas").toggleClass("active")});j=$(document).find(".tab")[0];var aH=$(document.documentElement).attr("data-mc-path-to-help-system");var aF="Data/HelpSystem.xml";if(aH){aF=aH+aF}MadCap.WebHelp.HelpSystem.LoadHelpSystem(aF,function(aL){an=aL;i=new MadCap.WebHelp.SearchPane(an,$("#searchPane"));if(an.LiveHelpEnabled){aa=new MadCap.WebHelp.FeedbackController(an.LiveHelpServer);aa.Init(function(){if(aa.PulseActive){$(document.documentElement).addClass("pulse-active");P(parseInt($("#navigation").css("width")))}if(aa.FeedbackActive){$(document.documentElement).addClass("feedback-active");o()}})}if(I&&!MadCap.String.IsNullOrEmpty(an.DefaultSkin.Tabs)){w()}ak();if(document.location.hash.length>1){ao()}else{D(an.DefaultStartTopic)}if(I){R(an.DefaultSkin)}if(!an.IsResponsive){$("html").addClass("web")}else{if(an.IsTabletLayout()){z()}}an.LoadSearchFilters().then(function(aP){var aM=aP?aP.map:null;var aT=[];var aX=false;if(aM){for(var aQ in aM){var aN=aM[aQ];if(!MadCap.String.IsNullOrEmpty(aN.c)){aT.push(aQ);aX|=aN.o!=-1}}}if(aT.length==0){if(window.PIE){$(".search-submit-wrapper").each(function(){PIE.attach(this)})}$("#SearchTab").closest("div").empty();return}$(".search-filter-wrapper").show();if(window.PIE){$(".search-filter, .search-submit-wrapper").each(function(){PIE.attach(this)})}aT.sort(function(aY,a1){var a0=aM[aY];var aZ=aM[a1];if(aX&&a0.group!=aZ.group){return a0.group-aZ.group}else{if(a0.o==-1||aZ.o==-1||a0.o==aZ.o){return aY.localeCompare(a1)}else{return a0.o-aZ.o}}});if(I&&$(".search-bar").css("display")=="none"){$("#SearchTab").closest(".tab").remove();return}var aS=$("#search ul");for(var aR=0,aO=aT.length;aR<aO;aR++){$(".search-filter-content ul").append($("<li></li>").text(aT[aR]));var aV=$("<li/>");aV.addClass("SearchFilterEntry tree-node tree-node-leaf");var aW=$('<div class="SearchFilter" />');var aU=$('<span class="label" />');aU.text(aT[aR]);aW.append(aU);aV.append(aW);aS.append(aV)}$(".search-filter-content li").click(function(a3){var aY=$(a3.target);var a1=aY.text().trim();var aZ=aY.closest(".search-bar").children(".search-field");var a2=aZ.val();var a0=aY.closest(".search-filter");var a4=aY.closest(".search-filter-content");Y(a1);f(a1,a0);h(0,0,a4,a0);aq(a2,a1)});$(".SearchFilter").click(function(a2){var aY=$(a2.target).closest(".SearchFilterEntry");var a1=$("#search-field-sidebar").val();$(".SearchFilterEntry.tree-node-selected").removeClass("tree-node-selected");if(aY.hasClass("SearchFilterEntry")){aY.addClass("tree-node-selected");var a0=aY.find(".SearchFilter").text().trim();var aZ=$("#search-field-sidebar");if(!aZ.attr("data-placeholder")){aZ.attr("data-placeholder",aZ.attr("placeholder"))}aZ.attr("placeholder",aZ.attr("data-placeholder")+" "+a0);Y(a0,this);aq(a1,a0)}})});ax(aJ)})}function h(aH,aI,aF,aG){if(C){clearTimeout(C)}C=setTimeout(function(){$(aF).fadeOut(aH,function(){$(aG).removeClass("open")})},aI)}function J(aF){$(".search-field").val(aF);$("#search-field-sidebar").val(aF)}function Y(aG){$(".search-filter").data("filter",aG);if(!I){var aF=$(".search-field");if(!aF.attr("data-placeholder")){aF.attr("data-placeholder",aF.attr("placeholder"))}aF.attr("placeholder",aF.attr("data-placeholder")+" "+aG)}else{$(".search-filter > span").text(aG)}}function f(aI,aH){var aJ=$(".search-filter-content",aH);var aF=aJ.children()[0];var aG=$(aF).children()[0];aI!==$(aG).text()?$(".search-filter").addClass("selected"):$(".search-filter").removeClass("selected")}var b=window.innerWidth;var ax=MadCap.Utilities.Debounce(function(){var aH=window.innerWidth;if(an.IsResponsive){var aK=an.IsTabletLayout();var aG=an.IsTabletLayout(b);if(!aK){$("#navigation").removeAttr("role");$("body").removeClass("active");$("html").addClass("web");if(aG){z()}if(j){var aI=$(j);if(!aI.hasClass("active")){var aF=aI.find("li");var aJ=$(aF[0]);aJ.removeClass("tabs-nav-inactive");aJ.addClass("tabs-nav-active");aI.addClass("active")}}else{if(!j&&$(document).find(".tab.active").length==0){j=$($(document).find(".tab")[0]);G("Toc",j)}}}else{if($("#navigation").attr("role")!=="undefined"){$("#navigation").attr("role","complementary")}if(!aG){var aI=$(".tab.active");j=aI.length&&aI.find("li").text()!="SearchTab"?$(".tab.active"):j;$(".tab .tabs-nav-active").removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");$(".tab.active").removeClass("active")}$("html").removeClass("web")}if((aK&&!aG)||(!aK&&aG)){aA()}}P(parseInt($("#navigation").css("width")));b=aH},50);function aA(){var aH=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aM=$("#navigation");var aL=$("#contentBody");var aG=$("#navigationResizeBar");var aI=!aM.attr("style")||!aL.attr("style");var aK=!aM.attr("data-mc-last-width")||!aL.attr("data-mc-last-width");if(aI&&aK){return}if(!an.IsTabletLayout()){var aJ=aM.attr("data-mc-last-width");if(aJ){aM.css("width",aJ);var aF=aL.attr("data-mc-last-width");if(aF){aL.css(aH,aF)}}}else{var aJ=aM.css("width");if(aJ){aM.attr("data-mc-last-width",aJ);aM.removeAttr("style");var aF=aL.css(aH);if(aF){aL.attr("data-mc-last-width",aF)}aL.removeAttr("style")}}}function u(aF){MadCap.DEBUG.Log.AddLine(window.name+"onhashchange: "+document.location.hash);if(document.location.hash.length>1){ao()}else{D(an.DefaultStartTopic)}}function o(){$(".star-buttons").click(O);M();$(".buttons").on("click",".login-button",function(aF){L=new MadCap.Feedback.LoginDialog(aa,aa.PulseEnabled?"pulse":"new");if(!aa.PulseEnabled){$(L).bind("closed",function(){M()})}L.Show()});$(".buttons").on("click",".edit-user-profile-button",function(aF){if(aa.PulseEnabled){document.location.hash="pulse-#!streams/"+aa.PulseUserGuid+"/settings"}else{L=new MadCap.Feedback.LoginDialog(aa,"edit");$(L).bind("closed",function(){M()});L.Show()}})}function Z(aH){var aG=av(aH);if(!MadCap.String.IsNullOrEmpty(aG.Query)){var aF=af+aG.ToString();if(I){document.location.hash=aF}else{document.location=an.SearchUrl+"#"+aF}}}function av(aL){var aO=$(aL.target).closest(".search-bar-container");var aM=$("input",aO).first();var aG=$(".search-filter",aO);var aP=aM.val();if(aP){aP=MadCap.Utilities.Url.StripInvalidCharacters(aP)}var aN;var aJ=aO.attr("id");if(I&&aJ&&aJ.indexOf("sidebar")!=-1){aN=$(".SearchFilterEntry.tree-node-selected").text()}else{aN=aG.data("filter")}if(!aN){var aI=document.location.hash;var aK=aI.lastIndexOf("?f=");if(aK!==-1){var aF=aI.substr(aK+3);if(aF){aN=aF}}}aN=aN?aN.trim():aN;var aH=E(aN,aO);return new MadCap.WebHelp.Search.SearchQuery(aP,aH,null)}function E(aG,aH){var aF=$.trim($(".search-filter li",aH).first().text());if(aG&&aG!=aF){return MadCap.Utilities.Url.StripInvalidCharacters(aG)}return null}function aB(aG){var aF=MadCap.WebHelp.Search.SearchQuery.Parse(aG);if(!I&&!MadCap.Utilities.HasRuntimeFileType("Search")){document.location=an.SearchUrl+"#"+af+aF.ToString()}else{J(aF.Query);if(!MadCap.String.IsNullOrEmpty(aF.Filter)){Y(aF.Filter);f(aF.Filter,document)}k(aF.Query,aF.Filter,aF.PageIndex)}}function aq(aG,aF){if($("#searchPane").is(":visible")&&!MadCap.String.IsNullOrEmpty(aG)){at(new MadCap.WebHelp.Search.SearchQuery(aG,E(aF),null))}}function k(aI,aG,aM,aL,aJ,aK,aH){if(typeof aL=="undefined"){aL=true}if(typeof aJ=="undefined"){aJ=an.DisplayCommunitySearchResults}if(typeof aK=="undefined"){aK=an.CommunitySearchResultsCount}if(typeof aH=="undefined"){aH=0}if(!aM){aM=1}$("#resultList").remove();ag("search");var aF={};if(aL){aF.searchContent=true;aF.content={filterName:aG}}if(aJ){aF.searchCommunity=true;aF.community={pageSize:aK,pageIndex:aH}}i.Search(aI,aF).then(function(aN){K(aI,aN.includedTerms,aN.content,aN.community,aM)});$("body").removeClass("active")}function r(aM,aH){if($("pagination")){$("#pagination").remove()}var aJ=aH.length;if(aJ>0){var aP=$("<div id='pagination'></div>");var aL=Math.ceil(aJ/an.ResultsPerPage);var aN=10;var aO=5;var aQ=Math.max(Math.min(aM-aO,aL-aN+1),1);var aK=Math.min(aQ+aN-1,aL);if(aM>1){aF=$("<a>Previous</a>");aP.append(aF);aF.on("click",{value:aM-1},A)}for(var aG=aQ;aG<=aK;aG++){var aI="<a id='selected'>"+aG+"</a>";if(aG!=aM){aI="<a>"+aG+"</a>"}var aF=$(aI);aP.append(aF);aF.on("click",{value:aG},A)}if(aM<aL){aF=$("<a>Next</a>");aP.append(aF);aF.on("click",{value:aM+1},A)}$("#searchPane").append(aP)}}function A(aH){aH.preventDefault();var aG="#"+af;if(document.location.hash.indexOf(aG)==0){var aF=MadCap.WebHelp.Search.SearchQuery.Parse(document.location.hash.substring(aG.length));aF.PageIndex=aH.data.value;at(aF)}}function at(aI,aG,aF){var aH=aI.ToString();aH=MadCap.Utilities.Url.StripInvalidCharacters(aH);document.location.hash="#"+af+aH}function K(aY,aZ,aV,aL,aN){var aK=$("#results-heading")[0];var aJ=(aV!=null?aV.length:0);var aR=aJ+(aL!=null?aL.TotalRecords:0);var aP=I?"#":"";$(".query",aK).text('"'+decodeURIComponent(aY)+'"');$(".total-results",aK).text(aR);if(aN<1||aN>Math.ceil(aR/an.ResultsPerPage)){$("#pagination").remove();return}var aT=document.createElement("ul");aT.setAttribute("id","resultList");if(aV==null){aT.setAttribute("class","communitySearch")}var aG=an.ResultsPerPage;if(aL!=null&&aL.Activities.length>0){U(aT,aY,aL);aG-=1}if(aV!=null&&aG>0){var aU=(aN-1)*an.ResultsPerPage;var a0=aU+aG>aV.length?aV.length:aU+aG;for(var aX=aU;aX<a0;aX++){var aQ=aV[aX];var a2=aQ.Title;var aO=aQ.Link;var aF=aQ.AbstractText;var aS=document.createElement("li");aT.appendChild(aS);var aM=document.createElement("h3");$(aM).addClass("title");aS.appendChild(aM);var a1=document.createElement("a");a1.setAttribute("href",aP+aO+"?Highlight="+aY);a1.appendChild(document.createTextNode(a2));d(a1,aZ);aM.appendChild(a1);if(aF!=null){var aW=document.createElement("div");$(aW).addClass("description");aW.appendChild(document.createTextNode(aF));d(aW,aZ);aS.appendChild(aW)}var aH=document.createElement("div");$(aH).addClass("url");aS.appendChild(aH);var aI=document.createElement("cite");aI.appendChild(document.createTextNode(aO));aH.appendChild(aI)}}$(aT).appendTo($("#searchPane"));if(an.LiveHelpEnabled){aa.LogSearch(an.LiveHelpOutputId,null,aJ,null,aY)}if(aR>an.ResultsPerPage){r(aN,aV)}else{$("#pagination").remove()}if(MadCap.IsIOS()){$(".off-canvas-wrap").scrollTop(1)}$("#contentBodyInner, .off-canvas-wrap").scrollTop(0);$("#resultList a").first().focus()}function d(aF,aH){var aI=$(aF);if(aH){for(var aG=0;aG<aH.length;aG++){aI.highlight(aH[aG],null,"b")}}}function U(aQ,aX,aI){var aP=document.createElement("li");aP.setAttribute("id","community-results");aQ.appendChild(aP);var aK=document.createElement("h3");aK.setAttribute("class","title");var aT=document.createElement("a");aT.setAttribute("href","#communitysearch-"+aX);aT.appendChild(document.createTextNode("Community Results"));aK.appendChild(aT);var aH=document.createElement("span");aH.appendChild(document.createTextNode(" ("+aI.TotalRecords+")"));aK.appendChild(aH);var aM=document.createElement("ul");aM.setAttribute("id","communityResultList");aP.appendChild(aK);aP.appendChild(aM);var aF=new Date();var aG=new Date(aF.getUTCFullYear(),aF.getUTCMonth(),aF.getUTCDate(),aF.getUTCHours(),aF.getUTCMinutes(),aF.getUTCSeconds());for(var aW=0;aW<aI.Activities.length;aW++){var a0=aI.Activities[aW];var aL=document.createElement("li");aM.appendChild(aL);var aR=document.createElement("a");aR.setAttribute("class","activityText");aR.setAttribute("href","#pulse-#!streams/"+a0.FeedId+"/activities/"+a0.Id);aR.appendChild(document.createTextNode(a0.Text));var aY=document.createElement("div");aY.setAttribute("class","activityInfo");var aJ=document.createElement("a");aJ.setAttribute("class","activityCreator");aJ.setAttribute("href","#pulse-#!streams/"+a0.CreatedBy+"/activities");aJ.appendChild(document.createTextNode(a0.CreatedByDisplayName));var aV=document.createElement("span");aV.appendChild(document.createTextNode(" to "));var aN=a0.FeedUrl!=null?"#"+a0.FeedUrl:"#pulse-#!streams/"+a0.FeedId+"/activities";var aO=document.createElement("a");aO.setAttribute("class","activityFeed");aO.setAttribute("href",aN);aO.appendChild(document.createTextNode(a0.FeedName));var aZ=new MadCap.Utilities.DateTime(a0.PostedUtc);var aS=new MadCap.Utilities.TimeSpan(aZ.Date,aG);var aU=document.createElement("span");aU.setAttribute("class","activityTime");aU.appendChild(document.createTextNode(aS.ToDurationString()));aY.appendChild(aJ);aY.appendChild(aV);aY.appendChild(aO);aY.appendChild(aU);aL.appendChild(aR);aL.appendChild(aY)}}function ad(aG){MadCap.DEBUG.Log.AddLine("nav resizeBar : mousedown");if($(aG.target).attr("id")=="show-hide-navigation"){return}if($(this).hasClass("nav-closed")){return}var aF=document.createElement("div");aF.setAttribute("id","mousemove-sheet");document.body.appendChild(aF);$(document).mousemove(m);$(document).mouseup(n);$(document).bind("selectstart",al);aG.preventDefault()}function al(aF){return false}function m(aH){MadCap.DEBUG.Log.AddLine("nav resizeBar : mousemove : "+aH.pageX);var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aG=aH.pageX;if(aF=="right"){aG=window.innerWidth-aH.pageX}e(aG)}function n(aG){MadCap.DEBUG.Log.AddLine("nav resizeBar : mouseup");$(document).off("mousemove",m);$(document).off("mouseup",n);$(document).off("selectstart",al);var aF=$("#mousemove-sheet")[0];window.setTimeout(function(){aF.parentNode.removeChild(aF)},1)}function e(aG){var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";if(aF=="left"){if(aG<175||aG>(window.innerWidth*0.85)){return}}else{if(aF=="right"){if(aG<(window.innerWidth*0.15)||aG>(window.innerWidth-175)){return}}}P(aG);$("#navigationResizeBar").css(aF,aG+"px");$("#navigation").css("width",aG+"px");$("#contentBody").css(aF,(aG+5)+"px")}function P(aI){var aH=$(".tabs-nav li");if(ay()===0){return}$.each(aH,function(aK,aL){var aJ=$(aL);if(aJ.hasClass("tab-collapsed")){aJ.removeClass("tab-collapsed")}});if(aI<ay()+4){for(var aG=aH.length-1;aG>=0;aG--){var aF=$(aH[aG]);aF.addClass("tab-collapsed");if(aI>ay()+18){break}}}}function ay(){var aG=0;var aF=$(".tabs-nav li");aF.each(function(aI,aH){var aJ=$(aH);if(aJ.is(":visible")){aG+=parseInt(aJ.css("width"))}});return aG}function z(){var aG=$(document).find(".tab");for(var aF=0;aF<aG.length;aF++){var aH=$(aG[aF]);aH.show();aH.removeClass("active")}$("#search-sidebar").removeClass("index").removeClass("glossary");$(".tabs-nav-active").removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");$(".responsive-link-list").remove()}function p(aI){var aL=$(aI.currentTarget).closest("li");var aK=aL.children("ul").first();if(aK.length){var aH=aK.width();var aG=$("html").attr("dir")=="rtl";var aJ=aG?aL.offset().left:$(window).width()-aL.offset().left-aL.width();var aF=aG?"openRight":"openLeft";aK.toggleClass(aF,aH>aJ)}}function B(aF){var aG=$("#navigation");if(!aG.hasClass("nav-closed")){l("hide")}else{l("show")}}function l(aI){var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aK=$("#navigation");var aG=$("#navigationResizeBar");var aJ=$("#contentBody");if(aI=="show"){aG.css(aF,aG.attr("data-mc-last-width"));var aH=aJ.attr("data-mc-last-width");if(aH==aJ.css("left")){aH=aK.innerWidth()+aG.innerWidth()+1;aJ.attr("data-mc-last-width",aH+"px")}else{aJ.css(aF,aH)}aK.removeClass("nav-closed");aG.removeClass("nav-closed");aJ.removeClass("nav-closed");if(an.IsResponsive){aA()}}else{if(aI=="hide"){aJ.attr("data-mc-last-width",aJ.css(aF));aJ.removeAttr("style");aG.attr("data-mc-last-width",aG.css(aF));aG.css(aF,0);aK.attr("data-mc-last-width",aK.css("width"));aK.addClass("nav-closed");aG.addClass("nav-closed");aJ.addClass("nav-closed")}}}function ao(){if(document.location.hash.length==0){return}var aI=MadCap.Utilities.Url.StripInvalidCharacters(document.location.hash);if(MadCap.String.IsNullOrEmpty(aI)){document.location.hash="";return}var aG=aI.substring(1);var aJ=decodeURIComponent(aG);aJ=MadCap.Utilities.Url.StripInvalidCharacters(aJ);if(MadCap.String.Contains(aJ,"cshid=")||MadCap.String.Contains(aJ,"searchQuery=")||MadCap.String.Contains(aJ,"skinName=")){aw();return}else{if(MadCap.String.StartsWith(aG,af)){aB(aG.substring(af.length));return}else{if(MadCap.String.StartsWith(aJ,"communitysearch-")){var aH=aJ.substring("communitysearch-".length);J(aH);k(aH,null,1,false,true,-1,0);return}else{if(MadCap.String.StartsWith(aJ,"pulse-")){var aF=aJ.substring("pulse-".length);t(aF);return}}}}ab(aJ)}function ab(aH){var aJ=new MadCap.Utilities.Url(aH);if(aJ.IsAbsolute){if(an.PreventExternalUrls){aH=an.DefaultStartTopic}else{var aI=aJ.Query.indexOf("?");var aG=aJ.Query.lastIndexOf("?");var aF="";if(aI!=aG){aF=aJ.Query.substr(aI,aG)}if(aJ.FullPath.indexOf("http://")!=0){aH=an.ContentFolder+aJ.ToNoQuery().FullPath+(MadCap.String.IsNullOrEmpty(aF)?"":aF)}else{aH=aJ.ToNoQuery().FullPath+(MadCap.String.IsNullOrEmpty(aF)?"":aF)}}}else{aH=an.ContentFolder+aJ.ToNoQuery().FullPath}D(aH)}function D(aQ){if(!a){return}var aG=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));if(!I){var aP=new MadCap.Utilities.Url(aG.PlainPath);if(!aP.IsFolder){aP=aP.ToFolder()}var aF=aP.CombinePath(aQ);var aH=MadCap.Utilities.Url.StripInvalidCharacters(aF.FullPath);document.location=aH}else{$(document.documentElement).addClass("has-topic");ag("topic");try{frames.topic.location.replace(aQ)}catch(aJ){document.getElementById("topic").src=aQ}var aM=null,aO=null,aL=null;if(!MadCap.String.IsNullOrEmpty(aG.Fragment)&&aG.Fragment.length>1){aO=aG.QueryMap.GetItem("TocPath");if(aO!=null){aM="Toc"}else{aL=aG.QueryMap.GetItem("BrowseSequencesPath");if(aL!=null){aM="BrowseSequences"}}if(aG.HashMap.GetItem("cshid")==null){var aK=aG.Query.indexOf("?");var aI=aG.Query.lastIndexOf("?");var aN="";if(aK!=aI){aN=aG.Query.substr(aK,aI)}aG=new MadCap.Utilities.Url(aG.Fragment.substr(1));if(!MadCap.String.IsNullOrEmpty(aN)){aG.Query=aN}}}else{aG=new MadCap.Utilities.Url(an.DefaultStartTopic).ToRelative(an.GetContentPath())}an.SetBrowseSequencePath(aL,aG);if(an.SyncTOC){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"sync-toc",[aM,aM=="Toc"?aO:aL,aG.FullPath],null)}}}function t(aF){$(document.documentElement).removeClass("has-topic");ag("pulse");var aG=aF.substring(aF.indexOf("#"));MadCap.Utilities.CrossFrame.PostMessageRequest(frames["community-frame-html5"],"pulse-hash-changed",[aG]);aa.Init(function(){if(aa.PulseActive){frames.pulse.location.replace(aa.PulseServer+aG)}})}function aw(){var aL=document.location.hash.substring(1);var aM=new MadCap.Utilities.Dictionary();var aI=aL.split("&");$(aI).each(function(aO,aP){var aN=aI[aO].split("=");aM.Add(aN[0].toLowerCase(),aN[1])});var aH=aM.GetItem("searchQuery".toLowerCase());if(aH!=null){J(decodeURIComponent(aH));var aG=MadCap.String.ToBool(aM.GetItem("firstPick".toLowerCase()),false);if(aG){i.Search(aH,{searchContent:true}).then(function(aN){var aO=aN.content;if(aO.length>=1){ab(aO[0].Link)}})}else{aB(aH)}}else{var aK=aM.GetItem("cshid");if(aK!=null){ar=aK;an.LookupCSHID(aK,function(aO){if(aO.Found){D(aO.Topic)}else{D(an.DefaultStartTopic)}var aN=aM.GetItem("skinName".toLowerCase())||aO.Skin;if(aN!=null){var aP=an.GetSkin(aN);c(aP)}});return}else{D(an.DefaultStartTopic)}}var aF=aM.GetItem("skinName".toLowerCase());if(aF!=null){var aJ=an.GetSkin(aF);c(aJ)}}function aj(){if(document.location.hash.indexOf("#pulse-")!=0){return""}return document.location.hash.substring("#pulse-".length)}function c(aQ){R(aQ);if(MadCap.String.IsNullOrEmpty(aQ.Tabs)){$("#navigation").remove();$("#navigationResizeBar").remove();$(document.documentElement).removeClass("left-layout").removeClass("right-layout")}else{if(aQ.WebHelpOptions!=null&&aQ.WebHelpOptions.HideNavigationOnStartup!=null&&(MadCap.String.ToBool(aQ.WebHelpOptions.HideNavigationOnStartup,false))){l("hide")}if(aQ.NavigationPanePosition!=null&&aQ.NavigationPanePosition=="Right"){$(document.documentElement).removeClass("left-layout").addClass("right-layout")}if(aQ.NavigationPaneWidth!=null){var aP=MadCap.String.ToInt(aQ.NavigationPaneWidth,300);e(aP)}var aM=aQ.Tabs.split(",");var aK=["TOC","Index","Glossary","BrowseSequences","Community"];var aI=$(".tabs");for(var aJ=0,aG=aK.length;aJ<aG;aJ++){var aH=aK[aJ];if($.inArray(aH,aM)>=0){continue}if(aH=="TOC"){aH="Toc"}var aO=$("#"+aH+"Tab");if(aO.length==0){continue}var aF=aI.children(".tabs-nav").children("li").index(aO);var aN=aI.children(".tabs-panels").children(":eq("+aF+")");aO.remove();aN.remove()}var aL=aQ.DefaultTab;if(aL=="TOC"){aL="Toc"}G(aL,aI);T(aL)}if(aQ.Toolbar!=null&&MadCap.String.IsNullOrEmpty(aQ.Toolbar.Buttons)){$(".buttons").remove()}if(aQ.DisplaySearchBar=="false"){$(".search-bar").hide()}}function ag(aF){$("#topic").css("display",aF=="topic"?"block":"none");$("#topicContent").css("display",aF=="topic"?"block":"none");$("#pulse").css("display",aF=="pulse"?"block":"none");$("#searchPane").css("display",aF=="search"?"block":"none")}var q=null;function s(aL){var aF=$(this).attr("id");var aH=aF.substring(0,aF.length-"Tab".length);q=aH;G(aH,$(this).closest(".tabs"));if(an.IsTabletLayout()&&an.IsResponsive){var aJ=$(document).find(".tab");for(var aI=0;aI<aJ.length;aI++){var aK=$(aJ[aI]);if(!aK.hasClass("active")){aK.hide()}else{aK.show()}}var aG=$("#search-sidebar");var aM=aH.toLowerCase();aG.removeClass("index").removeClass("glossary");if(aM=="index"||aM=="glossary"){aG.addClass(aM)}}T(aH)}function G(aH,aK){var aG=$(".tabs-nav-active",aK);var aI=$("#"+aH+"Tab");var aJ=aG.closest(".tab");var aF=aI.closest(".tab");aG.removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");if(aJ!=null){aJ.removeClass("active")}aI.removeClass("tabs-nav-inactive");aI.addClass("tabs-nav-active");if(aF!=null){aF.addClass("active")}if(an.IsResponsive&&aH!="Search"){j=$(".tab.active")}else{j=null}}function ak(){var aF=$("ul[data-mc-toc]");aF.each(function(){var aG=new MadCap.WebHelp.TocPane("Toc",an,this,false);aG.Init()})}function w(){var aF=an.DefaultSkin.DefaultTab;if(aF=="TOC"){T("Toc")}else{T(aF)}}function T(aF){var aG=null;if(aF=="Toc"){aG=aD()}else{if(aF=="Index"){aG=W()}else{if(aF=="Glossary"){aG=F()}else{if(aF=="BrowseSequences"){aG=g()}else{if(aF=="Community"){aG=aC()}}}}}if(aG||(aG&&an.IsResponsive&&!an.IsTabletLayout())){G(aF,aG)}}function aD(){if(S!=null){return}var aG=$("#toc");if(!aG.length){return}aG.addClass("loading");var aF=$('<ul class="tree" />');aG.append(aF);S=new MadCap.WebHelp.TocPane("Toc",an,aF[0],true);S.Init(function(){aG.removeClass("loading")});return aG.parent()}function W(){if(ah!=null){return}var aF=$("#index");aF.addClass("loading");ah=new MadCap.WebHelp.IndexPane(an);ah.Init($("#index .index-wrapper")[0],function(){aF.removeClass("loading")});return aF.parent()}function F(){if(N!=null){return}var aF=$("#glossary");aF.addClass("loading");N=new MadCap.WebHelp.GlossaryPane(an);N.Init(aF[0],function(){aF.removeClass("loading")});return aF.parent()}function g(){if(az!=null){return}var aG=$("#browseSequences");if(!aG.length){return}aG.addClass("loading");var aF=$('<ul class="tree" />');aG.append(aF);az=new MadCap.WebHelp.TocPane("BrowseSequences",an,aF[0],true);az.Init(function(){aG.removeClass("loading")});return aG.parent()}function aC(){if(H){return}H=true;var aF=$("#community-frame-html5");aa.Init(function(){if(aa.PulseActive){aF.attr("src",aa.PulseServer+"streams/my")}});return $pane.parent()}function R(aS){var aT=MadCap.String.ToBool(aS.UseBrowserDefaultSize,false);if(aT){return}var aI=MadCap.String.ToInt(aS.Top,0);var aQ=MadCap.String.ToInt(aS.Left,0);var aR=MadCap.String.ToInt(aS.Bottom,0);var aG=MadCap.String.ToInt(aS.Right,0);var aJ=MadCap.String.ToInt(aS.Width,800);var aK=MadCap.String.ToInt(aS.Height,600);var aF=aS.Anchors;if(aF){var aM=(aF.indexOf("Top")>-1)?true:false;var aH=(aF.indexOf("Left")>-1)?true:false;var aP=(aF.indexOf("Bottom")>-1)?true:false;var aL=(aF.indexOf("Right")>-1)?true:false;var aN=(aF.indexOf("Width")>-1)?true:false;var aO=(aF.indexOf("Height")>-1)?true:false}if(aH&&aL){aJ=screen.availWidth-(aQ+aG)}else{if(!aH&&aL){aQ=screen.availWidth-(aJ+aG)}else{if(aN){aQ=(screen.availWidth/2)-(aJ/2)}}}if(aM&&aP){aK=screen.availHeight-(aI+aR)}else{if(!aM&&aP){aI=screen.availHeight-(aK+aR)}else{if(aO){aI=(screen.availHeight/2)-(aK/2)}}}if(window==top){window.resizeTo(aJ,aK);window.moveTo(aQ,aI)}}function au(){$(".star-buttons").addClass("loading");aa.GetAverageRating(aE,function(aG,aF){$(".star-buttons").removeClass("loading");ai(aG)})}function ai(aJ){var aF=$(".star-buttons");var aM=$(".star-button",aF);var aL=aM.length;var aK=Math.ceil(aJ*aL/100);aM.css("opacity",0);for(var aH=0;aH<aL;aH++){var aI=aM[aH];var aG=$(aI);window.setTimeout((function(aO,aN){return function(){if(aO<=aK-1){MadCap.Utilities.SetButtonState(aN[0],2)}else{MadCap.Utilities.SetButtonState(aN[0],1)}aN.animate({opacity:1})}})(aH,aG),aH*50)}}function O(aI){var aF=$(aI.target);if(aI.target.tagName=="IMG"){aF=aF.closest(".star-button")}if(aF.hasClass("star-button")){var aH=$(".star-button",this).length;var aG=(aF.index()+1)*100/aH;aa.SubmitRating(aE,aG,null,function(){au()})}}function v(aF){ae(aF,function(aG){if(aG){document.location.hash=aG}})}function V(){v("previous")}function x(){v("next")}function ae(aG,aF){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-topic-url",null,function(aM){var aJ=new MadCap.Utilities.Url(decodeURIComponent(aM[0]));var aI=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));var aK=aI.QueryMap.GetItem("TocPath");var aL=aI.QueryMap.GetItem("BrowseSequencesPath");aI=aI.ToPlainPath();if(!aI.IsFolder){aI=aI.ToFolder()}var aH=aI.CombinePath(an.GetMasterHelpsystem().GetContentPath());aJ=aJ.ToRelative(aH);if(aL!=null){an.AdvanceTopic("BrowseSequences",aG,aL,aJ,aF)}else{an.AdvanceTopic("Toc",aG,aK,aJ,aF)}})}function y(){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-bs-path",null,function(aM){function aJ(aN){var aO=$(".current-topic-index-button");if(aN==-1){aO.addClass("disabled");return}aO.removeClass("disabled");$(".sequence-index").text(aN);aG.GetIndexTotalForEntry(aI,aF,function(aP){$(".sequence-total").text(aP)})}var aI=aM[0];var aF=new MadCap.Utilities.Url(decodeURIComponenet(aM[1]));var aL=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));aL=new MadCap.Utilities.Url(aL.PlainPath);var aH=MadCap.String.EndsWith(aL.FullPath,"/")?aL:aL.ToFolder();aF=aF.ToRelative(aH);if(aI!=null){var aK=an.GetFullTocPath("browsesequences",aF.FullPath);if(aK){aI=aI?aK+"|"+aI:aK}}if(MadCap.String.IsNullOrEmpty(aI)||MadCap.String.StartsWith(aI,"_____")){aJ(-1);return}var aG=an.GetBrowseSequenceFile();aG.GetEntrySequenceIndex(aI,aF,aJ)})}function M(){Q=aa.GetUserGuid();var aF=$(".login-button");if(aF.length==0){aF=$(".edit-user-profile-button")}MadCap.Utilities.SetButtonState(aF[0],Q==null?1:2)}function ap(){if(L!=null){L.Hide(true)}}function am(aM){var aO=$("#topicContent");if(aO.length==0){var aJ=$("#topic").parent();aJ.append("<div id='topicContent'></div>");aO=$("#topicContent")}else{aO.empty()}aO.append(aM[2]);var aN=$(aM[1]);var aK=[],aP=[],aT=[];var aV=new MadCap.Utilities.Url(aM[0]);var aQ=new MadCap.Utilities.Url(document.location.href);var aG=aQ.ToFolder().ToRelative(aV);$.each(aN,function(aX,aY){if(!MadCap.String.IsNullOrEmpty(aY.localName)){var aW=aY.localName.toLowerCase();if(aW=="script"){var aZ=new MadCap.Utilities.Url($(aY).attr("src"));if(!aZ.IsAbsolute){aZ=aZ.ToRelative(aG)}aK.push(aZ.FullPath)}else{if(aW=="link"){aT.push(aY)}}}});var aI=aV.ToFolder().ToRelative(aQ.PlainPath);X(aT,aI,"href");$.each(aT,function(aX,aY){if($(aY).attr("mc-topic-css")){var aW=$(aY).attr("href");aW=aW.replace(".css","-topic.css");aP.push(aW)}else{aP.push($(aY).attr("href"))}});MadCap.Utilities.LoadStyleSheets(aP,$('link[href*="Styles.css"]')[0]);MadCap.Utilities.LoadScripts(aK,function(){},function(){},aO);var aR=new MadCap.Utilities.Url(document.location.href);aG=aV.ToFolder().ToRelative(aR.PlainPath);var aF=aO.find('a[href][href!="javascript:void(0);"]');aF=aF.not('[class*="MCPopupThumbnailLink"]').not('[class*="MCTopicPopup"]');var aL=aO.find('[class*="MCTopicPopup"]');var aS=aO.find('a[class="MCPopupThumbnailLink"]');var aU=aO.find("img[src]");var aH=aO.find("area[href]");X(aF,aG,"href","#");X(aL,aG,"href");X(aU,aG,"src");X(aS,aG,"href");X(aH,aG,"href","#");$(".MCWebHelpFramesetLink",aO).hide()}function X(aF,aG,aH,aI){$.each(aF,function(aL,aM){var aK=$(aM);var aJ=new MadCap.Utilities.Url(aK.attr(aH));if(!aJ.IsAbsolute){var aN=MadCap.Utilities.FixLink(aJ,aG,aI,an.ContentFolder);aK.attr(aH,aN)}})}MadCap.Utilities.CrossFrame.AddMessageHandler(function(aN,aK,aY,aZ,aF){var aT={Handled:false,FireResponse:true};if(aN=="get-href"){aY[aY.length]=document.location.href;aT.Handled=true;aT.FireResponse=true}if(aN=="get-return-url"){var aJ=new MadCap.Utilities.Url(document.location.href);var aX=null;if(aJ.Fragment.length>1){var aW=new MadCap.Utilities.Url(aJ.Fragment.substring(1));aX=aJ.QueryMap.GetItem("returnUrl")}aY[aY.length]=aX;aT.Handled=true;aT.FireResponse=true}else{if(aN=="navigate"){var aS=aK[0];if(aS){document.location.hash=MadCap.Utilities.Url.StripInvalidCharacters(aS)}aT.Handled=true;aT.FireResponse=true}else{if(aN=="navigate-topic"){var aS=aK[0];var aW=new MadCap.Utilities.Url(aS);if(aW.IsAbsolute){var aI=new MadCap.Utilities.Url(document.location.href);aI=new MadCap.Utilities.Url(aI.PlainPath);var aR=MadCap.String.EndsWith(aI.FullPath,"/")?aI:aI.ToFolder();var aO=aR.CombinePath(an.ContentFolder);aW=aW.ToRelative(aO)}if(aW.FullPath){var aP=MadCap.Utilities.Url.StripInvalidCharacters(aW.FullPath);if(document.location.hash.substring(1)==aP){document.location.hash=null}document.location.hash=aP}aT.Handled=true}else{if(aN=="navigate-home"){var aJ=new MadCap.Utilities.Url(document.location.href);document.location.href=aJ.PlainPath;aT.Handled=true}else{if(aN=="navigate-pulse"){var aS=aK[0];if(document.location.hash.length>1&&aS){var aV=aS.toLowerCase();if(aV==="feedback/account/register"||aS.toLowerCase()==="forgotpassword"){var aJ=new MadCap.Utilities.Url(document.location.hash.substring(1));var aX=aJ.QueryMap.GetItem("returnUrl");if(aX!=null){aX=escape(aX)}else{aX=document.location.hash.substring(1)}aS+="?returnUrl="+aX}}if(aS){document.location.hash="pulse-"+MadCap.Utilities.Url.StripInvalidCharacters(aS)}aT.Handled=true}else{if(aN=="navigate-previous"){V();aT.Handled=true}else{if(aN=="navigate-next"){x();aT.Handled=true}else{if(aN=="login-user"||aN=="login-pulse"){if(Q==null){var aQ=aN=="login-pulse"?"pulse":"new";L=new MadCap.Feedback.LoginDialog(aa,aQ);if(aQ=="new"){$(L).bind("closed",function(){M();aY[aY.length]=Q;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)})}L.Show();aT.Handled=true;aT.FireResponse=false}else{aY[aY.length]=Q;aT.Handled=true;aT.FireResponse=true}}else{if(aN=="get-csh-id"){aY[aY.length]=ar;aT.Handled=true;aT.FireResponse=true}else{if(aN=="get-user-guid"){aY[aY.length]=Q;aT.Handled=true;aT.FireResponse=true}else{if(aN=="get-topic-path-by-stream-id"){var aL=aK[0];aa.GetTopicPathByStreamID(aL,function(a1){aY[aY.length]=a1;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)},null,null);aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-topic-path-by-page-id"){var aH=aK[0];aa.GetTopicPathByPageID(aH,function(a1){aY[aY.length]=a1;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)},null,null);aT.Handled=true;aT.FireResponse=false}else{if(aN=="hash-changed"){var aP=aK[0];aP=aP.substring(1);history.pushState(null,null,document.location.pathname+document.location.hash+"$"+aP);aT.Handled=true;aT.FireResponse=false}else{if(aN=="forward-ajax-open-success"){var a0=aK[0];var aU=parseInt(aK[1]);var aM=aK[2];ag("pulse");MadCap.Utilities.CrossFrame.PostMessageRequest(frames.pulse,"ajax-open-success",[a0,aU,aM]);aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-pulse-hash"){var aG="";if(document.location.hash.indexOf("#pulse-")==0){aG=document.location.hash.substring("#pulse-".length)}aY[aY.length]=aG;aT.Handled=true;aT.FireResponse=true}else{if(aN=="login-complete"||aN=="logout-complete"){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.pulse,"reload");MadCap.Utilities.CrossFrame.PostMessageRequest(frames["community-frame-html5"],"reload");MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"reload-pulse");ap();M();aT.Handled=true;aT.FireResponse=false}else{if(aN=="close-login-dialog"){ap();aT.Handled=true;aT.FireResponse=false}else{if(aN=="set-pulse-login-id"){if(aa!=null){aa.PulseUserGuid=aK[0]}M();aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-parent-window-width"){aY[aY.length]=window.innerWidth;aT.Handled=true;aT.FireResponse=true}else{if(aN=="set-topic-content"){am(aK);aT.Handled=true;aT.FireResponse=false}}}}}}}}}}}}}}}}}}}}return aT},null);$(ac);$(window).resize(ax);$(window).hashchange(u);var S=null;var ah=null;var i=null;var N=null;var az=null;var H=null;var an=null;var aa=null;var aE=null;var Q=null;var ar=null;var L=null})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Default")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");var b=window.external&&window.external.attached&&window.external.attached();MadCap.WebHelp.TocPane=function(e,i,g,d){var f=this;this._Init=false;this._RuntimeFileType=e;this._RootUl=g;this._CanSync=d;this._HelpSystem=i;this._TocFile=this._RuntimeFileType=="Toc"?this._HelpSystem.GetTocFile():this._HelpSystem.GetBrowseSequenceFile();this._LoadedNodes=[];var h=null;var c=null;MadCap.Utilities.CrossFrame.AddMessageHandler(this.OnMessage,this);this._Initializing=false;this._InitOnCompleteFuncs=new Array();this.TreeNode_Expand=function(r){var s=r.target;var v=$(s).closest("li")[0];if(v==null){return}var u=$(v);var n=u.hasClass(f._TreeNodeLeafClass);if(!n){u.toggleClass(f._TreeNodeExpandedClass).toggleClass(f._TreeNodeCollapsedClass)}var k=u.find("> div img");var t=k.attr("data-mc-alt2");var q=k.attr("alt");if(t!=""){k.attr("alt",t);k.attr("data-mc-alt2",q)}if(f._IncludeIndicator){var w=u.find("> div a");if(w[0]!=null){var j=w.attr("href");if(!MadCap.String.IsNullOrEmpty(j)){f._SelectNode(v)}if(w[0]!=s){var p=w.attr("target");if(!MadCap.String.IsNullOrEmpty(j)){if(p!=null){window.open(j,p)}else{document.location.href=j}}}}}var m=f._LoadedNodes[u.attr("data-mc-id")];if(typeof m.n=="undefined"||m.n.length==0){m.childrenLoaded=true}if(!m.childrenLoaded){var l=$("a",u).first();var o=$("<ul/>");o.addClass(f._SubMenuClass);if(b){o.attr("data-mc-style","Navigation Panel Item")}f.LoadTocChildren(m,o,function(){u.append(o);if(f._DeferExpandEvent){setTimeout(function(){l.trigger(f._ExpandEvent)},100)}});if(f._DeferExpandEvent){r.stopImmediatePropagation();return false}}if(n){$("body").removeClass("active")}}};var a=MadCap.WebHelp.TocPane;a.prototype.OnMessage=function(i,f,h){var g={Handled:false,FireResponse:true};if(i=="sync-toc"){var c=f[0];var e=f[1];var d=new MadCap.Utilities.Url(f[2]);if(this._CanSync&&(c==null||c==this._RuntimeFileType)){this.SyncTOC(e,d);g.Handled=true}}return g};a.prototype.Init=function(c){if(this._Init){if(c!=null){c()}return}if(c!=null){this._InitOnCompleteFuncs.push(c)}if(this._Initializing){return}this._Initializing=true;var e=$(this._RootUl);this._SubMenuClass=e.attr("data-mc-css-sub-menu")||"tree inner";this._TreeNodeClass=e.attr("data-mc-css-tree-node")||"tree-node";this._TreeNodeCollapsedClass=e.attr("data-mc-css-tree-node-collapsed")||"tree-node-collapsed";this._TreeNodeExpandedClass=e.attr("data-mc-css-tree-node-expanded")||"tree-node-expanded";this._TreeNodeLeafClass=e.attr("data-mc-css-tree-node-leaf")||"tree-node-leaf";this._TreeNodeSelectedClass=e.attr("data-mc-css-tree-node-leaf")||"tree-node-selected";this._IncludeBack=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-back",false);this._IncludeParentLink=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-parent-link",false);this._IncludeIcon=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-icon",true);this._IncludeIndicator=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-indicator",true);this._DeferExpandEvent=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-defer-expand-event",false);this._ExpandEvent=e.attr("data-mc-expand-event")||"click";this._BackLink=e.attr("data-mc-back-link")||"Back";var d=this;e.attr("data-mc-chunk","Data/"+this._RuntimeFileType+".xml");this.CreateToc(this._RootUl,function(){d._Init=true;for(var f=0;f<d._InitOnCompleteFuncs.length;f++){d._InitOnCompleteFuncs[f]()}})};a.prototype.CreateToc=function(e,c){var f=true;if(this._RuntimeFileType=="Toc"){f=this._HelpSystem.HasToc}else{f=this._HelpSystem.HasBrowseSequences}if(!f){if(c!=null){c()}return}var d=this;d._HelpSystem.LoadToc(this._RuntimeFileType,function(i,h){var g=$(e);if(b){g.attr("data-mc-style","Navigation Panel Item")}d.LoadTocChildren(i.tree,g,function(){this._Init=true;if(c!=null){c()}})},null)};a.prototype.LoadTocChildren=function(h,f,d){var e=typeof h.n!=="undefined"?h.n.length:0;var k=0;if(e==0){h.childrenLoaded=true}if(h.childrenLoaded){if(d){d()}return}if(h.parent){if(this._IncludeBack){var l=$('<li class="back"/>');l.addClass(this._TreeNodeClass);var g=$('<a href="#" />');g.text(this._BackLink);l.append(g);f.append(l)}if(this._IncludeParentLink&&this._HelpSystem.GetTocEntryHref(h)!=null){var l=$("<li/>");l.addClass(this._TreeNodeClass);f.append(l);this.LoadTocNode(h,l,null)}}for(var j=0;j<e;j++){var c=h.n[j];var l=$("<li/>");l.addClass(this._TreeNodeClass);l.addClass(this._TreeNodeCollapsedClass);f.append(l);this.LoadTocNode(c,l,function(){k++;if(k==e){h.childrenLoaded=true;if(d!=null){d()}}})}};a.prototype.LoadTocNode=function(f,e,c){var d=this;var g=f.toc;this._HelpSystem.LoadTocChunk(g,f.c,function(q){var r=g.entries[f.i];var l=typeof f.f!="undefined";var j=typeof f.n=="undefined"||f.n.length==0;var n=d._CanSync&&!l?d._RuntimeFileType:null;var i=d._HelpSystem.GetTocEntryHref(f,n,d._CanSync);var k=$("<a/>");if(l){k.attr("target",f.f)}if(i!=null){k.attr("href",i)}else{k.attr("href","javascript:void(0);")}k.text(r.title);if(typeof f.s!="undefined"){e.addClass(f.s)}if(j){e.removeClass(d._TreeNodeCollapsedClass);e.addClass(d._TreeNodeLeafClass)}if(d._IncludeIcon){var s="default";var m=d._HelpSystem.Language;for(className in m){if(e.hasClass(className)){s=className;break}}var h=$("<img/>");h.attr("src","Skins/Default/Stylesheets/Images/transparent.gif");h.addClass("toc-icon");if(d._IncludeIndicator){h.attr("alt",m[s]["MarkAsNewIconAlternateText"])}else{if(e.hasClass(d._TreeNodeLeafClass)){h.attr("alt",m[s]["TopicIconAlternateText"])}else{h.attr("alt",m[s]["ClosedBookIconAlternateText"]);h.attr("data-mc-alt2",m[s]["OpenBookIconAlternateText"])}}if(h.prop("src")!=""){k.prepend(h)}}if(d._IncludeIndicator){var p=$("<div/>");if(typeof f.w!=="undefined"&&f.w==1){p.append("<span class='new-indicator'></span>")}var o=$('<span class="label" />');o.append(k);p.append(o);k=p}k.on(d._ExpandEvent,d.TreeNode_Expand);f.el=e;e.append(k);e.attr("data-mc-id",d._LoadedNodes.length);d._LoadedNodes.push(f);if(c!=null){c()}})};a.prototype.SyncTOC=function(e,d){var c=this;var f=$("."+this._TreeNodeSelectedClass+" a",this._RootUl);if(f.length>0){var g=f[0];if(g.href===document.location.href){return}}this.Init(function(){function j(l){if(typeof l!=="undefined"&&l!=null){var k=[];var m=l;while(typeof m!=="undefined"&&!m.childrenLoaded){k.unshift(m);m=m.parent}MadCap.Utilities.AsyncForeach(k,function(q,p){var o=$(q.el);var n=$("<ul/>");n.addClass(c._SubMenuClass);c.LoadTocChildren(q,n,function(){o.append(n);p()})},function(){var n=l.el[0];c._UnhideNode(n);c._SelectNode(n)})}}function h(k){c._HelpSystem.FindNode(c._RuntimeFileType,e,k,function(m){if(!m){if(!MadCap.String.IsNullOrEmpty(k.Fragment)||!MadCap.String.IsNullOrEmpty(k.Query)){var l=new MadCap.Utilities.Url(k.PlainPath);c._HelpSystem.FindNode(c._RuntimeFileType,e,l,j)}}else{j(m)}})}var i=d.HashMap.GetItem("cshid");if(i!=null){c._HelpSystem.LookupCSHID(i,function(l){var k=l.Found?new MadCap.Utilities.Url(l.Topic).ToRelative(c._HelpSystem.GetContentPath()):new MadCap.Utilities.Url(c._HelpSystem.DefaultStartTopic);h(k)})}else{h(d)}})};a.prototype._UnhideNode=function(c){var e=MadCap.Dom.GetAncestorNodeByTagName(c,"li",this._RootUl);while(e!=null){var d=$(e);d.removeClass(this._TreeNodeCollapsedClass);d.addClass(this._TreeNodeExpandedClass);e=MadCap.Dom.GetAncestorNodeByTagName(e,"li",this._RootUl)}};a.prototype.NavigateTopic=function(f){var g=$("."+this._TreeNodeSelectedClass,this._RootUl)[0];if(g==null){g=$("."+this._TreeNodeClass,this._RootUl)[0]}if(this.NeedsCreateToc(g)){var e=this;this.CreateToc(g,function(){e.NavigateTopic(f)});return}var c=f=="previous"?this._GetPrevious(g):this._GetNext(g);if(c==null){return}this._SelectNode(c);var d=$("> div a",c)[0];if(d!=null){document.location.href=$(d).attr("href")}this._UnhideNode(c)};a.prototype._SelectNode=function(d){var c=$(d);$("."+this._TreeNodeSelectedClass,this._RootUl).removeClass(this._TreeNodeSelectedClass);c.addClass(this._TreeNodeSelectedClass);c.scrollintoview()};a.prototype._GetNext=function(e){var d=$(e);var f="."+this._TreeNodeClass;if(d.find(f).length>0){return d.find(f)[0]}if(d.next(f).length>0){return d.next(f)[0]}var c=d;while(true){var g=$(c.parent().closest(f,this._RootUl));if(g.length==0){break}if(g.next(f).length>0){return g.next(f)[0]}c=g}return null};a.prototype._GetPrevious=function(e){var d=$(e);var f="."+this._TreeNodeClass;var c=d.prev(f);if(c.length==0){if(d.parent().closest(f,this._RootUl).length>0){return d.parent().closest(f,this._RootUl)[0]}else{return null}}if(c.find(f).length>0){return c.find(f).last()[0]}return c[0]}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("TriPane")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.IndexPane=function(c){var b=this;this._Init=false;this._ContainerEl=null;this._HelpSystem=c;this._EntryHeight=-1;this._IndexEntryCount=0;this._IndexEntries=Object.create(null);this._IndexDivs=new Array();this._XmlDoc=null;this._Chunks=null;this._AlphaMap=new MadCap.Utilities.Dictionary();this._LiCached=null;this._SeePrefix=null;this._SeeAlsoPrefix=null;this.GetPath=function(d,e){return MadCap.String.IsNullOrEmpty(d)?new MadCap.Utilities.Url(e).ToRelative("/Content/").FullPath:"../"+new MadCap.Utilities.Url(d+e).FullPath};this.LoadRootEntry=function(e,d){var g=$(e);var f=g.data("entry");b._HelpSystem.LoadRootIndexEntry(f,function(i){if(i.e&&!i.childrenLoaded){var h=$("<ul/>");h.addClass("tree inner");b.LoadEntries(h,i.e);g.append(h)}i.childrenLoaded=true;g.data("entry",i);if(d){d(i,g)}})};this.LoadEntries=function(g,d){var f=this;if(!$.isArray(d)){var e=[];$.each(d,function(h,i){if(!i.t){i.t=h}e.push(i)});e.sort(function(i,h){var k=(i.s||i.t).toLowerCase();var j=(h.s||h.t).toLowerCase();return k<j?-1:k>j?1:0});d=e}$.each(d,function(q,v){var r=$("<li/>");r.addClass("IndexEntry tree-node tree-node-collapsed");var l=v.t;var o=v.r=="See";var h=v.r=="SeeAlso";var j=$("<div/>");j.addClass("IndexTerm");var t=$("<span/>").addClass("label");j.append(t);var u=true;if(o){l=f._SeePrefix+": "+v.f;j.addClass("see");v.seeAlsoLinks=[v.f]}else{if(h){l=f._SeeAlsoPrefix+": ";v.seeAlsoLinks=[];seeAlsoLinks=v.f.split("; ");if(seeAlsoLinks.length>1){var k=$("<a/>").text(l);t.append(k);for(var n=0;n<seeAlsoLinks.length;n++){var s=seeAlsoLinks[n];var p=$("<a/>").addClass("seeAlsoLink").text(s);t.append(p);v.seeAlsoLinks.push(s);if(n<seeAlsoLinks.length-1){t.append("; ")}}u=false}else{l+=v.f;v.seeAlsoLinks.push(v.f)}j.addClass("see-also")}}if(u){var k=$("<a/>").text(l);t.append(k)}r.append(j);v.isRoot=typeof v.$!=="undefined";if(v.e){var m=$("<ul/>");m.addClass("tree inner");f.LoadEntries(m,v.e);r.append(m)}else{if(v.$===1||!v.isRoot){r.removeClass("tree-node-collapsed");r.addClass("tree-node-leaf")}}g.append(r);v.el=r[0];r.data("entry",v);if(!o&&!h){if(typeof f._IndexEntries[l]=="undefined"){f._IndexEntries[l]=[v]}else{f._IndexEntries[l].push(v)}}})};this.FindEntry=function(e,d){b._HelpSystem.FindIndexEntry(e,function(f,g){if(!g){return}b.LoadRootEntry(f.el,function(){if(d){d(g)}})})};this.SelectEntry=function(i,m,j,k,n){$(".tree-node-selected",b._ContainerEl).removeClass("tree-node-selected");j.addClass("tree-node-selected");if(!m){return}MadCap.TextEffects.RemoveLinkListTrees();var l=i.pageY-k.offset().top;var d=i.pageX-k.offset().left;var f=!this._HelpSystem.IsTabletLayout()||!this._HelpSystem.IsResponsive;if(m.r&&!n){var h=$(".seeAlsoLink",j).index(i.target);var g=m.seeAlsoLinks[0];if(h>=0){g=m.seeAlsoLinks[h]}g=g.replace(", ",":");this.FindEntry(g,function(e){j=$(e.el);$container=f?$(b._ContainerEl).parent():$("#navigation");b._UnhideNode(j[0]);b.SelectEntry(i,e,j,k,true);$container.animate({scrollTop:$container.scrollTop()+j.offset().top-$container.offset().top})});return}else{if(m.linkList&&m.linkList.length>1&&!n){if(f){MadCap.TextEffects.CreateLinkListPopup(m.linkList,b._ContainerEl,l,d,this,"#")}else{MadCap.TextEffects.CreateLinkListTree(m.linkList,j,this,"#",function(o){b.TreeNode_Click(o);MadCap.TextEffects.Item_Click.call(this,[o])})}MadCap.Utilities.PreventDefault(i);i.stopPropagation()}else{if(m.linkList&&m.linkList.length==1){document.location.href="#"+m.linkList[0].Link}}}if(j.hasClass("tree-node-expanded")&&!n){j.removeClass("tree-node-expanded");j.addClass("tree-node-collapsed")}else{if(j.hasClass("tree-node-collapsed")){j.removeClass("tree-node-collapsed");j.addClass("tree-node-expanded")}}};this.TreeNode_Click=function(h){var d=MadCap.Dom.GetAncestorNodeByTagName(h.target,"li");if(d==null){return}if($(h.target).closest(".link-list-popup").length>0){return}var g=$(this);var i=$(d);MadCap.Utilities.PreventDefault(h);var f=i.data("entry");if(!i.hasClass("IndexEntryLink")&&(!f||f.isRoot)){b.LoadRootEntry(d,function(e,j){b.SelectEntry(h,e,j,g)})}else{b.SelectEntry(h,f,i,g)}};this.Search=function(){var d=this.value.toLowerCase();b._Terms.each(function(){var e=$(this);var f=e.parent().parent();var g=e.text().toLowerCase().indexOf(d)!=-1;f.css("display",g?"block":"none");e.removeHighlight("highlightIndex");if(g){e.highlight(d,"highlightIndex")}})}};var a=MadCap.WebHelp.IndexPane;a.prototype.Init=function(e,b){if(this._Init){if(b!=null){b()}return}var d=this;d._ContainerEl=e;var c=$(this._ContainerEl.parentNode);this._SeePrefix=c.attr("data-see-prefix")||"See";this._SeeAlsoPrefix=c.attr("data-see-also-prefix")||"See Also";d._HelpSystem.LoadIndex(function(h,g){var f=$("<ul/>");f.addClass("tree");d.LoadEntries(f,h.terms);var j=$(d._ContainerEl);j.click(d.TreeNode_Click);j.append(f);var i=$("#search-index");i.bind("keyup",d.Search);$("#responsive-search-index").bind("keyup",d.Search);d._Terms=$(".IndexEntry a",this._ContainerEl);d._Init=true;if(b!=null){b()}},null)};a.prototype._UnhideNode=function(c){var b=MadCap.Dom.GetAncestorNodeByTagName(c,"li",this._ContainerEl);while(b!=null){var d=$(b);d.removeClass("tree-node-collapsed");d.addClass("tree-node-expanded");b=MadCap.Dom.GetAncestorNodeByTagName(b,"li",this._ContainerEl)}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("TriPane")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.GlossaryPane=function(c){var b=this;this._Init=false;this._ContainerEl=null;this._HelpSystem=c;MadCap.Utilities.CrossFrame.AddMessageHandler(this.OnMessage,this);this.TreeNode_Click=function(j){var d=MadCap.Dom.GetAncestorNodeByTagName(j.target,"li");if(d==null){return}var l=$(d);var i=$("a",l);var h=i.text();var k=l.attr("data-chunk");var f=b._HelpSystem.Glossary.chunks[k];var g=new MadCap.Utilities.Url(f).ToFolder().ToFolder();MadCap.Utilities.PreventDefault(j);require([f],function(n){var o=n[h];$(".tree-node-selected",b._ContainerEl).removeClass("tree-node-selected");l.addClass("tree-node-selected");var e=$(".GlossaryPageTerm",d);if(!MadCap.String.IsNullOrEmpty(o.d)&&!e.hasClass("MCDropDownHead")){e.addClass("MCDropDownHead MCDropDownHotSpot");var s=$("<div/>");s.addClass("GlossaryPageDefinition MCDropDownBody");s.append(o.d);l.addClass("MCDropDown");l.append(e);l.append(s);var p=new MadCap.TextEffects.DropDownControl(l[0]);p.Init(false);p.Open(true)}if(!MadCap.String.IsNullOrEmpty(o.l)){var m=i.attr("href");if(MadCap.String.IsNullOrEmpty(m)){var q=g.CombinePath(o.l).ToRelative(b._HelpSystem.GetContentPath()).FullPath;m=encodeURI(q);i.attr("href",m)}document.location.href="#"+m}else{if(l.hasClass("tree-node-expanded")){l.removeClass("tree-node-expanded");l.addClass("tree-node-collapsed")}else{if(l.hasClass("tree-node-collapsed")){l.removeClass("tree-node-collapsed");l.addClass("tree-node-expanded");if($("li",l.parent()).last()[0]==l[0]){var r=$(b._ContainerEl);r.animate({scrollTop:r[0].scrollHeight},500)}}}}})};this.Search=function(){var d=this.value.toLowerCase();b._Terms.each(function(){var e=$(this);var f=e.parent().parent();var g=e.text().toLowerCase().indexOf(d)!=-1;f.css("display",g?"block":"none");e.removeHighlight("highlightGlossary");if(g){e.highlight(d,"highlightGlossary")}})}};var a=MadCap.WebHelp.GlossaryPane;a.prototype.OnMessage=function(e,b,d){var c={Handled:false,FireResponse:true};return c};a.prototype.Init=function(d,b){if(this._Init){if(b!=null){b()}return}var c=this;c._ContainerEl=d;c._HelpSystem.LoadGlossary(function(f,k){var h=$("<ul/>");h.addClass("tree");for(var g=0;g<f.terms.length;g++){var m=f.terms[g];var l=$("<li/>");l.addClass("GlossaryPageEntry tree-node tree-node-collapsed");l.attr("data-chunk",m.c);var e=$("<div/>");e.addClass("GlossaryPageTerm");e.append('<span class="label"><a>'+m.t+"</a></span>");l.append(e);h.append(l)}var n=$(c._ContainerEl);n.click(c.TreeNode_Click);n.append(h);var j=$("#search-glossary");j.bind("keyup",c.Search);$("#responsive-search-glossary").bind("keyup",c.Search);c._Terms=$(".GlossaryPageTerm a",c._ContainerEl);c._Init=true;if(b!=null){b()}},null)};a.prototype._SelectNode=function(b){$(".tree-node-selected",this._ContainerEl).removeClass("tree-node-selected");$(b).addClass("tree-node-selected")}})();(function(){var b=(function(){var j={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},g={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},k="[^aeiou]",m="[aeiouy]",d=k+"[^aeiouy]*",i=m+"[aeiou]*",h="^("+d+")?"+i+d,e="^("+d+")?"+i+d+"("+i+")?$",f="^("+d+")?"+i+d+i+d,l="^("+d+")?"+m;return function(s){s=s.toLowerCase();var n,u,t,v,q,p,o,c=s;if(s.length<3){return s.toLowerCase()}t=s.substr(0,1);if(t=="y"){s=t.toUpperCase()+s.substr(1)}v=/^(.+?)(ss|i)es$/;q=/^(.+?)([^s])s$/;if(v.test(s)){s=s.replace(v,"$1$2")}else{if(q.test(s)){s=s.replace(q,"$1$2")}}v=/^(.+?)eed$/;q=/^(.+?)(ed|ing)$/;if(v.test(s)){var r=v.exec(s);v=new RegExp(h);if(v.test(r[1])){v=/.$/;s=s.replace(v,"")}}else{if(q.test(s)){var r=q.exec(s);n=r[1];q=new RegExp(l);if(q.test(n)){s=n;q=/(at|bl|iz)$/;p=new RegExp("([^aeiouylsz])\\1$");o=new RegExp("^"+d+m+"[^aeiouwxy]$");if(q.test(s)){s=s+"e"}else{if(p.test(s)){v=/.$/;s=s.replace(v,"")}else{if(o.test(s)){s=s+"e"}}}}}}v=/^(.+?)y$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(l);if(v.test(n)){s=n+"i"}}v=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;if(v.test(s)){var r=v.exec(s);n=r[1];u=r[2];v=new RegExp(h);if(v.test(n)){s=n+j[u]}}v=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;if(v.test(s)){var r=v.exec(s);n=r[1];u=r[2];v=new RegExp(h);if(v.test(n)){s=n+g[u]}}v=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;q=/^(.+?)(s|t)(ion)$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(f);if(v.test(n)){s=n}}else{if(q.test(s)){var r=q.exec(s);n=r[1]+r[2];q=new RegExp(f);if(q.test(n)){s=n}}}v=/^(.+?)e$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(f);q=new RegExp(e);p=new RegExp("^"+d+m+"[^aeiouwxy]$");if(v.test(n)||(q.test(n)&&!(p.test(n)))){s=n}}v=/ll$/;q=new RegExp(f);if(v.test(s)&&q.test(s)){v=/.$/;s=s.replace(v,"")}if(t=="y"){s=t.toLowerCase()+s.substr(1)}return s.toLowerCase()}})();var a=MadCap.CreateNamespace("WebHelp.Search");a.Stemmer=b})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){var a=MadCap.CreateNamespace("WebHelp.Search");a.Tokenizer=function(){var i="";var f=-1;var c=new Array();this.Tokenize=function(n){var m=null;i=n;f=-1;for(var l=0;m=k();l++){c[l]=m}return c};function h(l){if(!l){return false}else{if(l=='"'){return false}else{if(l=="+"){return false}else{if(l=="^"){return false}else{if(l=="|"){return false}else{if(l=="&"){return false}else{if(l=="("){return false}else{if(l==")"){return false}else{if(d(l)){return false}else{return true}}}}}}}}}}function d(l){if(!l){return false}else{if(l==" "){return true}else{if(l.charCodeAt(0)==12288){return true}else{return false}}}}function e(){return i.charAt(f+1)}function g(){f++}function j(){var l="";for(;;){var m=e();if(!m){return(l=="")?null:l}if(m=="\\"){g();if(!e()){return null}g();continue}if(m=='"'){g();break}else{g();l+=m}}return l}function k(){var p=e();var m=null;var l="";if(!p){m=null}else{if(d(p)){for(p=e();d(p);p=e()){g();l+=p}m=new a.Token(l,a.Token.WhiteSpace)}else{if(p=="("){g();m=new a.Token(p,a.Token.LeftParen)}else{if(p==")"){g();m=new a.Token(p,a.Token.RightParen)}else{if(p=="^"||p=="!"){g();m=new a.Token(p,a.Token.Not)}else{if(p=="+"||p=="&"){g();m=new a.Token(p,a.Token.And)}else{if(p=="|"){g();m=new a.Token(p,a.Token.Or)}else{if(p=='"'){g();var o=j();if(MadCap.String.Contains(o,a.Tokenizer.Connectors)){o=o.replace(a.Tokenizer.ConnectorRegex," ");o=$.trim(o)}m=new a.Token(o,(o==null)?a.Token.Error:a.Token.Phrase)}else{for(p=e();h(p);p=e()){g();l+=p}if(l=="and"||l=="AND"){m=new a.Token(l,a.Token.And)}else{if(l=="or"||l=="OR"){m=new a.Token(l,a.Token.Or)}else{if(l=="not"||l=="NOT"){m=new a.Token(l,a.Token.Not)}else{var n=a.Token.Word;if(MadCap.WebHelp.SearchPane.SearchDBs[0].SearchType=="NGram"){n=a.Token.Phrase}if(MadCap.String.Contains(l,a.Tokenizer.Connectors)){l=l.replace(a.Tokenizer.ConnectorRegex," ");l=$.trim(l);m=new a.Token(l,a.Token.Phrase)}else{m=new a.Token(l,n)}}}}}}}}}}}}return m}};a.Tokenizer.Connectors=[".",",","/",":",";","\\\\","*","<",">","!","@","\\[","\\]","(",")","{","}"];a.Tokenizer.ConnectorRegex=new RegExp("["+a.Tokenizer.Connectors.join("")+"]","g");a.Token=function(c,e){var d=c;var f=e;this.GetTokenText=function(){return d};this.GetType=function(){return f}};var b=a.Token;b.Eof=0;b.Error=1;b.WhiteSpace=2;b.Phrase=3;b.Word=4;b.RightParen=5;b.LeftParen=6;b.Not=7;b.And=8;b.Or=9;b.ImplicitAnd=10;a.Parser=function(g){var i=this;var k=g;var d=-1;var h=new a.Tokenizer();var c=h.Tokenize(k);this.ParseExpression=function(){var n=j();f();if(e()==a.Token.Eof){return n}else{if(e()==a.Token.And||e()==a.Token.Or||e()==a.Token.Not){l();var m=new a.Node(c[d],n,this.ParseExpression());return m}else{if(e()==a.Token.Word||e()==a.Token.Phrase||e()==a.Token.Not||e()==a.Token.LeftParen){var m=new a.Node(new a.Token(n.GetToken().GetTokenText()+" "+c[d+1].GetTokenText(),a.Token.ImplicitAnd),n,this.ParseExpression());return m}else{if(e()==a.Token.RightParen){return n}}}}throw gInvalidTokenLabel};function l(){d++}function j(){f();if(e()==a.Token.Word){l();return new a.Node(c[d],null,null)}else{if(e()==a.Token.Phrase){l();return new a.Node(c[d],null,null)}else{if(e()==a.Token.LeftParen){l();var m=c[d];var n=new a.Node(m,i.ParseExpression(),null);if(e()!=a.Token.RightParen){throw"Missing right paren ')'."}l();return n}}}throw gInvalidTokenLabel}function e(){if(c[d+1]==null){return a.Token.Eof}else{return c[d+1].GetType()}}function f(){for(;e()==a.Token.WhiteSpace;){l()}}};a.Node=function(e,f,d){var c=e;var h=f;var g=d;this.Evaluate=function(k,i){var j=this;var l=c.GetType();if(l==a.Token.Word||l==a.Token.Phrase){this.EvaluatePhrase(k).then(i)}else{if(l==a.Token.And||l==a.Token.ImplicitAnd||l==a.Token.Or||l==a.Token.Not){h.Evaluate(k,function(m){g.Evaluate(k,function(n){if(c.GetType()==a.Token.And||c.GetType()==a.Token.ImplicitAnd){i(a.IntersectResults(m,n))}else{if(c.GetType()==a.Token.Or){i(a.UnionResults(m,n))}else{if(c.GetType()==a.Token.Not){i(a.SubtractResults(m,n))}}}})})}else{if(l==a.Token.LeftParen){if(h){h.Evaluate(k,i)}else{i(null)}}else{i(null)}}}};this.EvaluatePhrase=function(n){var q=this;var r=$.Deferred();var i=c.GetTokenText();var k=c.GetType()==a.Token.Phrase;var p=[];var o=Object.create(null);o.results=Object.create(null);o.terms=[];o.ignore=MadCap.Utilities.StopWords.indexOf(i)>-1;if(!o.ignore){o.terms.push(i);for(var m=0;m<MadCap.WebHelp.SearchPane.SearchDBs.length;m++){var l=MadCap.WebHelp.SearchPane.SearchDBs[m];p.push(l.LookupPhrase(i,k,n).then(function(j,s){if(s){dbIndex=MadCap.WebHelp.SearchPane.SearchDBs.indexOf(j);o.results[dbIndex]={data:s}}}))}}$.when.apply(this,p).done(function(){r.resolve(o)});return r.promise()};this.GetToken=function(){return c}};a.LoadResultData=function(h){var k=[];var i=0;var d=h.results;for(var f in d){var e=MadCap.WebHelp.SearchPane.SearchDBs[f];var g=d[f];k.push(e.LoadTopics(g).then(function(m){i+=m.count}))}var l=MadCap.WebHelp.SearchPane.SearchDBs[0].RelevanceWeight;var j=$.Deferred();var c=[];$.when.apply(this,k).done(function(){for(var r in d){var n=MadCap.WebHelp.SearchPane.SearchDBs[r];var p=d[r];for(var o in p.data){var t=p.data[o];var q=n.HelpSystem.GetTopicPath(t.u).FullPath;var m=t.i*p.count/i;var s=MadCap.Utilities.CalculateScore(t.r,m,l);c.push(new a.SearchResult(s,t.t,q,t.a))}}j.resolve(c,h.terms)});return j.promise()};a.SplitPhrase=function(f){var e=null;var c=MadCap.WebHelp.SearchPane.SearchDBs[0];if(c.SearchType=="NGram"){e=new Array(Math.max(0,f.length-(c.NGramSize+1)));for(var d=0;d<f.length-c.NGramSize+1;d++){e[d]=f.substring(d,d+c.NGramSize)}}else{e=f.split(" ")}return e};a.FilterResults=function(e,d,j,c){if((e.ignore&&d.ignore)||d.ignore){return e}else{if(e.ignore){return d}}var i=Object.create(null);i.results=Object.create(null);var k=i.results;for(var h in e.results){k[h]=Object.create(null);k[h].data=Object.create(null);var g=e.results[h].data;var f=d.results[h];if(f){f=f.data}j(g,f,k[h].data)}i.terms=c(e.terms,d.terms);return i};a.UnionResults=function(d,c){return a.FilterResults(d,c,function(f,j,e){for(var h in f){e[h]=f[h]}if(j){for(var h in j){var i=f[h];var g=j[h];if(i){e[h]={r:MadCap.Utilities.CombineRelevancy(i.r,g.r)}}else{e[h]=g}}}},function(f,e){return f.Union(e)})};a.IntersectResults=function(d,c){return a.FilterResults(d,c,function(f,i,e){if(i){for(var h in f){var g=i[h];if(g){e[h]={r:MadCap.Utilities.CombineRelevancy(f[h].r,g.r)}}}}},function(f,e){return f.Union(e)})};a.SubtractResults=function(d,c){if(d.ignore||c.ignore){return d}return a.FilterResults(d,c,function(f,i,e){if(i){for(var h in f){var g=i[h];if(!g){e[h]=f[h]}}}},function(f,e){return f})}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.SearchPane=function(f,e){this._Init=false;this._Container=e;this._HelpSystem=f;this._FeedbackController=null;this._Parser=null;this._Filters=null;this._Set=null;this._FilteredSet=null;this._Highlight="";this._DownloadedSynonymXmlDocRootNode=null};var c=MadCap.WebHelp.SearchPane;c.SearchDBs=new Array();c.prototype.Init=function(e){if(this._Init){if(e){e.call(this)}return}var h=this;if(this._HelpSystem.LiveHelpEnabled){this._FeedbackController=new MadCap.WebHelp.FeedbackController(this._HelpSystem.LiveHelpServer);this._FeedbackController.Init(function(){if(h._FeedbackController.FeedbackActive){h._FeedbackController.GetSynonymsFile(h._HelpSystem.LiveHelpOutputId,null,function(k,i){var j=MadCap.Utilities.Xhr.LoadXmlString(k);if(j!=null){h._DownloadedSynonymXmlDocRootNode=j.documentElement}g()},null)}else{g()}})}else{g()}function g(){if(!h._HelpSystem.IsWebHelpPlus){h._HelpSystem.GetSearchDBs(f)}else{f(null)}}function f(i){c.SearchDBs=i;h._Filters=new b.Filters(h._HelpSystem);h._Filters.Load(function(){h._Init=true;if(e){e.call(h)}})}};c.prototype.Search=function(g,f){if(MadCap.String.IsNullOrEmpty(MadCap.String.Trim(g))){return}this._Container.addClass("loading");var e=$.Deferred();this.Init(function(){var j={};var h=[];if(f.searchContent){var i=f.content?f.content.filterName:null;var k=!this._HelpSystem.IsWebHelpPlus?this.DoSearch(g,i):this.DoSearchWebHelpPlus(g,i);h.push(k.then(function(m,n){j.content=m;j.includedTerms=n}))}if(f.searchCommunity){if(this._FeedbackController&&this._FeedbackController.PulseActive){var l=this._FeedbackController.GetPulseSearchResults(this._HelpSystem.LiveHelpOutputId,g,f.community.pageSize,f.community.pageIndex);h.push(l.then(function(m){j.community=m}))}}$.when.apply(this,h).done($.proxy(function(){this._Container.removeClass("loading");e.resolve(j)},this))});return e.promise()};c.prototype.DoSearch=function(j,h){var f=$.Deferred();this._Parser=new b.Parser(j);var e=null;try{e=this._Parser.ParseExpression()}catch(i){alert("Ensure that the search string is properly formatted.");e=null}if(!e){return f.resolve()}if(this._DownloadedSynonymXmlDocRootNode!=null&&c.SearchDBs[0].DownloadedSynonymFile==null){c.SearchDBs[0].DownloadedSynonymFile=new b.SynonymFile(this._DownloadedSynonymXmlDocRootNode)}var g=this;e.Evaluate(h,function(k){b.LoadResultData(k).then(function(l,m){g._Set=l;if(g._Set){g._Set.sort(function(o,n){return n.Score-o.Score})}MadCap.Utilities.ClearRequireCache();f.resolve(g._Set,m)})});return f.promise()};c.prototype.DoSearchWebHelpPlus=function(m,k){var h=this;var g=$.Deferred();function f(A,v){var y=[];var p=A.getElementsByTagName("Result");var s=p.length;var u=new MadCap.Utilities.Url(document.location.pathname);if(!h._HelpSystem.SearchUrl){if(!MadCap.String.EndsWith(document.location.pathname,"/")){u=u.ToFolder()}u=u.CombinePath(h._HelpSystem.ContentFolder)}for(var q=0;q<s;q++){var z=p[q];var o=MadCap.Dom.GetAttributeInt(z,"Rank",-1);var x=z.getAttribute("Title");var w=z.getAttribute("Link");var t=new MadCap.Utilities.Url(w).ToRelative(u);var n=z.getAttribute("AbstractText");if(MadCap.String.IsNullOrEmpty(x)){x=z.getAttribute("Filename")}var r=new b.SearchResult(o,x,t.FullPath,unescape(n));y.push(r)}g.resolve(y)}MadCap.Utilities.Xhr.CallWebService(h._HelpSystem.GetPath()+"Service/Service.asmx/GetSearchResults?SearchString="+encodeURIComponent(m)+"&FilterName="+encodeURIComponent(k),true,f,null);var l=m.split(" ");var e=true;this._Highlight="?Highlight=";for(var j=0;j<l.length;j++){if(!e){this._Highlight+="||"}else{e=false}this._Highlight+=l[j]}return g.promise()};var b=MadCap.CreateNamespace("WebHelp.Search");MadCap.WebHelp.Search.SearchDB=function(e){this.RelevanceWeight=0;this.TopicChunkMap=null;this.StemChunkMap=null;this.PhraseChunkMap=null;this.HelpSystem=e;this.SearchType=null;this.NGramSize=0;this.SynonymFile=null;this.DownloadedSynonymFile=null;this.LoadChunkCompleteFuncs=new MadCap.Utilities.Dictionary()};var a=b.SearchDB;a.prototype.Load=function(f,e){MadCap.Utilities.Xhr.Load(this.HelpSystem.GetPath()+"Data/Synonyms.xml",true,function(g){if(g!=null){this.SynonymFile=new b.SynonymFile(g.documentElement)}this._LoadSearchDB(f,e)},null,this)};a.prototype.GetTermPhrases=function(h,f,i){var o=this;var k=new MadCap.Utilities.Dictionary();var g=b.Stemmer(h);var l=new MadCap.Utilities.Dictionary();k.Add(g,true);if(!f){if(this.SynonymFile!=null){this.SynonymFile.AddSynonymStems(h,g,k)}if(this.DownloadedSynonymFile!=null){this.DownloadedSynonymFile.AddSynonymStems(h,g,k)}}var e=Object.create(null);var j=[];k.ForEach(function(r,s){if(o.SearchType=="NGram"){for(var q=0;q<r.length-o.NGramSize+1;q++){var p=r.substring(q,q+o.NGramSize);j.push(p)}}else{j.push(r)}});var n=[];$.each(j,function(p,q){n.push(o.LoadStem(q).then(function(s){for(var r in s){if(!f||r==h.toLowerCase()){var t=s[r];if(i){t=i.Intersect(t)}l.Add(r,t)}}}))});var m=$.Deferred();$.when.apply(this,n).done(function(){m.resolve(h,l)});return m.promise()};a.prototype.LookupPhrase=function(m,k,e){var o=this;var w=$.Deferred();var f=b.SplitPhrase(m);var h=null;var n=[];var l=new MadCap.Utilities.Dictionary();if(m){m=m.trim()}if(!m||MadCap.Utilities.StopWords.indexOf(m)>-1){w.resolve(o,null);return w.promise()}var j;if(e){j=[];var r=this.HelpSystem.GetMasterHelpsystem().GetSearchFilters();if(r){var u=r[e];if(u){var g=u.c;var v=g.split(";");var t=this.HelpSystem.GetConcepts();for(var q=0;q<v.length;q++){var s=v[q];j=j.Union(t[s])}}}}for(var q=0;q<f.length;q++){var p=f[q];n.push(this.GetTermPhrases(p,k,j).then(function(i,x){l.Add(i,x)}))}$.when.apply(o,n).done(function(){var A;l.ForEach(function(C,B){var D=[];B.ForEach(function(E,F){D=D.Union(F)});if(!A){A=D}else{A=A.Intersect(D)}});var x=Object.create(null);var z=[];l.ForEach(function(C,B){x[C]=Object.create(null);B.ForEach(function(D,F){var E=F.Intersect(A);$.each(E,function(G,H){z.push(o.LoadPhrase(D,H).then(function(I,K){var J=x[C][I];if(K){if(!J){x[C][I]=K}else{J.r=MadCap.Utilities.CombineRelevancy(J.r,K.r);$.extend(true,J.w,K.w)}}}))})})});var y=Object.create(null);var i=Object.create(null);$.when.apply(this,z).done(function(){$.each(A,function(G,J){var L=0;if(!k){L=x[f[0]][J].r}else{var K=x[f[0]][J].w;for(var C in K){var D=K[C];for(var I=1;I<f.length;I++){var H=parseInt(C);var F=f[I];var E=x[F][J].w;var B=E[H+I];if(B){D=Math.max(D,B)}else{D=0;break}}L=MadCap.Utilities.CombineRelevancy(L,D)}}if(L>0){i[J]={r:L}}});w.resolve(o,i)})});return w.promise()};a.prototype.LoadTopics=function(h){var e=[];var i=h.data;for(var g in i){e.push(this.LoadTopic(g).then(function(j,k){$.extend(i[j],k)}))}h.count=e.length;var f=$.Deferred();$.when.apply(this,e).done(function(){f.resolve(h)});return f.promise()};a.prototype._LoadSearchDB=function(f,e){this.TopicChunkMap=f.t;this.StemChunkMap=f.s;this.PhraseChunkMap=f.p;this.RelevanceWeight=f.r;this.SearchType=f.st;this.NGramSize=f.n;if(e){e()}};a.prototype.LookupPhraseChunkId=function(e,j){var f=this.PhraseChunkMap.length;for(var g=0;g<f;g++){var h=this.PhraseChunkMap[g][0];var k=MadCap.String.Compare(e,h);if(k==0){if(j<this.PhraseChunkMap[g][1]){return g-1}else{if(j==this.PhraseChunkMap[g][1]){return g}}}else{if(k==-1){return g-1}}}return f-1};a.prototype.LoadTopic=function(g){var f=$.Deferred();var e=MadCap.Utilities.GetChunkId(this.TopicChunkMap,g,function(i,h){if(i<h){return -1}else{if(i==h){return 0}else{return 1}}});if(e==-1){f.resolve()}else{MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchTopic_Chunk"+e],function(h){f.resolve(g,h[g])})}return f.promise()};a.prototype.LoadStem=function(h){var f=$.Deferred();var e=MadCap.Utilities.GetChunkId(this.StemChunkMap,h,function(j,i){return MadCap.String.Compare(j,i)});if(e==-1){f.resolve()}else{var g=h;MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchStem_Chunk"+e],function(i){f.resolve(i[g])})}return f.promise()};a.prototype.LoadPhrase=function(e,h){var g=$.Deferred();var f=this.LookupPhraseChunkId(e,h);MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchPhrase_Chunk"+f],function(j){var i;if(j[e]){i=j[e][h]}g.resolve(h,i)});return g.promise()};b.SearchQuery=function(g,f,e){function h(m,o){var l=false;if(MadCap.IsSafari()){m=encodeURIComponent(m)}for(var k=0;k<o.length;k++){var j=o[k][0];var n=o[k][1];if(!MadCap.String.IsNullOrEmpty(n)){m+=(l?"&":"?")+j+"="+encodeURIComponent(n);l=true}}return m}this.Query=g;this.Filter=f;this.PageIndex=e;this.ToString=function(){return h(this.Query,[[b.SearchQuery._filter,this.Filter],[b.SearchQuery._pageIndex,this.PageIndex]])}};b.SearchQuery._filter="f";b.SearchQuery._pageIndex="p";b.SearchQuery.Parse=function(i){var g=new MadCap.Utilities.Url(i);var h=g.PlainPath;if(!MadCap.String.IsNullOrEmpty(h)){h=decodeURIComponent(h)}var f=g.QueryMap.GetItem(b.SearchQuery._filter);if(f){f=decodeURIComponent(f)}var e=g.QueryMap.GetItem(b.SearchQuery._pageIndex);if(e!=null){e=parseInt(e)}return new b.SearchQuery(h,f,e)};b.SearchResult=function(h,g,f,e){this.Score=h;this.Title=g;this.Link=f;this.AbstractText=e};b.Filters=function(f){var e=f;this.Load=function(g){e.LoadSearchFilters().then(function(){e.LoadAllConcepts(function(){g()})},null,null)}};b.SynonymFile=function(e){this.WordToStem=new MadCap.Utilities.Dictionary();this.Directionals=new MadCap.Utilities.Dictionary();this.DirectionalStems=new MadCap.Utilities.Dictionary();this.DirectionalStemSources=new MadCap.Utilities.Dictionary();this.Groups=new MadCap.Utilities.Dictionary();this.GroupStems=new MadCap.Utilities.Dictionary();this.GroupStemSources=new MadCap.Utilities.Dictionary();this.LoadSynonymFile(e)};var d=b.SynonymFile;d.prototype.LoadSynonymFile=function(E){var D=MadCap.Dom.GetChildNodeByTagName(E,"Groups",0);var l=MadCap.Dom.GetChildNodeByTagName(E,"Directional",0);if(l!=null){var o=l.childNodes.length;for(var A=0;A<o;A++){var n=l.childNodes[A];if(n.nodeName=="DirectionalSynonym"){var y=MadCap.Dom.GetAttribute(n,"From");var m=MadCap.Dom.GetAttribute(n,"To");var r=MadCap.Dom.GetAttributeBool(n,"Stem",false);var g=MadCap.Dom.GetAttribute(n,"FromStem");var p=MadCap.Dom.GetAttribute(n,"ToStem");if(r){if(g==null){g=b.Stemmer(y)}}if(p==null){p=b.Stemmer(m)}if(y!=null&&m!=null){if(r){this.DirectionalStemSources.Add(y,p);this.DirectionalStems.Add(g,p);this.WordToStem.Add(y,g);this.WordToStem.Add(m,p)}else{this.Directionals.Add(y,p);this.WordToStem.Add(m,p)}}}}}if(D!=null){var o=D.childNodes.length;for(var A=0;A<o;A++){var n=D.childNodes[A];if(n.nodeName=="SynonymGroup"){var v=new Array();var w=new Array();var r=MadCap.Dom.GetAttributeBool(n,"Stem",false);var t=n.childNodes.length;for(var z=0;z<t;z++){var C=n.childNodes[z];if(C.nodeType!=1){continue}v.push(C.firstChild.nodeValue)}for(var z=0;z<t;z++){var C=n.childNodes[z];if(C.nodeType!=1){continue}var F=MadCap.Dom.GetAttribute(C,"Stem");if(F==null){F=b.Stemmer(C.firstChild.nodeValue)}this.WordToStem.Add(C.firstChild.nodeValue,F);w.push(F)}var u=v.length;for(var z=0;z<u;z++){var B=v[z];var f=w[z];for(var x=0;x<u;x++){var e=v[x];if(r){var s=this.GroupStemSources.GetItem(B);if(s==null){s=new MadCap.Utilities.Dictionary();this.GroupStemSources.Add(B,s)}s.Add(e,f)}else{var s=this.GroupStemSources.GetItem(B);if(s==null){s=new MadCap.Utilities.Dictionary();this.Groups.Add(B,s)}s.Add(e,f)}}}var q=w.length;for(var z=0;z<q;z++){var f=w[z];for(var x=0;x<q;x++){var h=w[x];var s=this.GroupStems.GetItem(f);if(s==null){s=new MadCap.Utilities.Dictionary();this.GroupStems.Add(f,s)}s.Add(h,f)}}}}}};d.prototype.AddSynonymStems=function(e,i,g){var f=this.Directionals.GetItem(e);if(f!=null){g.AddUnique(f)}f=this.DirectionalStems.GetItem(i);if(f!=null){g.AddUnique(f)}var h=this.Groups.GetItem(e);if(h!=null){h.ForEach(function(j,k){g.AddUnique(j);return true})}h=this.GroupStems.GetItem(i);if(h!=null){h.ForEach(function(j,k){g.AddUnique(j);return true})}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Topic")){return}MadCap.CreateNamespace("Topic");var C=MadCap.Topic;var e=MadCap.TextEffects;C.Expand=function(G){var H=new e.ExpandingControl(G.parentNode);H.Toggle()};C.DropDown=function(G){var H=new e.DropDownControl(G.parentNode.parentNode);H.Toggle()};C.Toggle=function(G){var H=new e.TogglerControl(G);H.Toggle()};C.ThumbPopup_Click=function(G){var H=C.ShowThumbnailPopup(G,this,"click");if(G.preventDefault){G.preventDefault()}};C.ThumbPopup_Hover=function(G){var H=C.ShowThumbnailPopup(G,this,"mouseleave")};C.ShowThumbnailPopup=function(ai,aj,ae){var ad=10;var Y=1;var U=10;var K=$(aj).children("img")[0];var X=parseInt(MadCap.Dom.Dataset(K,"mcWidth"));var R=parseInt(MadCap.Dom.Dataset(K,"mcHeight"));var G=R/X;var ag=document.documentElement.clientWidth-((ad+Y+U)*2);var ac=document.documentElement.clientHeight-((ad+Y+U)*2);if(R>ac){R=ac;X=R/G}if(X>ag){X=ag;R=X*G}var M=new MadCap.Utilities.Url(document.location.href);var ah=$(K).offset().top;var al=$(K).offset().left;var ao=MadCap.Dom.GetAttribute(aj,"href");var ab=MadCap.Dom.GetAttribute(aj,"data-mc-popup-alt");var W=R+((Y+U)*2);var T=X+((Y+U)*2);var S=(ah+(K.offsetHeight/2))-(W/2);var O=(al+(K.offsetWidth/2))-(T/2);var N=MadCap.Dom.GetScrollPosition();var Z=N.Y;var I=Z+document.documentElement.clientHeight;var ak=N.X;var H=ak+document.documentElement.clientWidth;var P=Z+ad;var aa=ak+ad;var Q=I-ad;var J=H-ad;if(S<P){S=P}if(O<aa){O=aa}if(S+W>Q){S=Q-W}if(O+T>J){O=J-T}var L=$("<div></div>");L.addClass("MCPopupContainer");var af=document.createElement("img");$(af).addClass("MCPopupFullImage");af.setAttribute("src",ao);af.setAttribute("alt",ab);af.setAttribute("tabindex","0");L.bind(ae,function(){MadCap.DEBUG.Log.AddLine(ae);L.animate({top:an,left:V},200,function(){L.remove()});$(af).animate({width:K.offsetWidth,height:K.offsetHeight},200);$(am).animate({opacity:0},200,function(){MadCap.TextEffects.RemoveBackgroundTint()})});L.bind("keydown",function(ap){var ap=ap||window.event;if(ap.keyCode!=27&&ap.keyCode!=13){return}L.remove();MadCap.TextEffects.RemoveBackgroundTint()});L.append(af);document.body.appendChild(L[0]);var an=ah-(Y+U);var V=al-(Y+U);if(MadCap.IsIBooks()){$idealContainer=$(aj).parentsUntil("body").last();X=$idealContainer[0].offsetWidth*0.9;R=X*G;O=$idealContainer.offset().left;L.css({top:an,left:V}).animate({top:S,left:O,width:X,height:R},200)}else{L.css({top:an,left:V}).animate({top:S,left:O},200)}$(af).css({width:K.offsetWidth,height:K.offsetHeight}).animate({width:X,height:R},200);var am=MadCap.TextEffects.AddBackgroundTint(null,document.body);$(am).animate({opacity:0.5},200);af.focus()};C.HelpControl_Click=function(H){var G=this;C.GetHelpControlLinks(this,function(O){var J=new MadCap.Utilities.Url(document.location.href);for(var K=O.length-1;K>=0;K--){var I=O[K];I.Title="t" in I?I.t:"Title" in I?I.Title:null;var L="Url" in I?I.Url:"Link" in I?I.Link:null;if(L!=null&&typeof L!="string"){if(L.FullPath==J.FullPath){O.Remove(K)}L=L.ToRelative(J);I.Link=L.FullPath}}if(!$(G).hasClass("MCHelpControl-Related")){O.sort(function(Q,P){return Q.Title.localeCompare(P.Title)})}var M=new MadCap.Utilities.Dictionary();for(var K=O.length-1;K>=0;K--){var N=O[K];var L=N.Link;if(M.GetItem(L)){O.Remove(K);continue}M.Add(N.Link,true)}e.CreateLinkListPopup(O,document.body,H.pageY,H.pageX,G)},null);H.preventDefault();H.stopPropagation()};C.GetHelpControlLinks=function(M,Q){var P=new Array();var I=$(M);if(v&&!v.InPreviewMode){if(k()){var L=I.attr("data-mc-keywords");if(L!=null){if(L==""){Q(P)}var O=L.split(";");MadCap.Utilities.AsyncForeach(O,function(R,S){v.FindIndexEntry(R,function(T,U){if(U!=null&&U.linkList){P=P.concat(U.linkList)}S()})},function(){Q(v.SortLinkList(P))});return}else{var K=I.attr("data-mc-concepts");if(K!=null){v.GetConceptsLinks(K).then(Q);return}}}}var H=I.attr("data-mc-topics");if(H!=null){topicPairs=H.split("||");if(topicPairs==""){Q(P)}for(var N=0,J=topicPairs.length;N<J;N++){var G=topicPairs[N].split("|");P[P.length]={Title:G[0],Link:G[1]}}}Q(P)};C.Hyperlink_Onclick=function(K){var J=$(this);if(J.hasClass("MCTopicPopup")||J.hasClass("MCPopupThumbnailLink")||J.hasClass("MCHelpControl")||J.hasClass("reply-comment-button")){return}var G=MadCap.Dom.GetAttribute(this,"href");if(G==null||MadCap.String.StartsWith(G,"http:")||MadCap.String.StartsWith(G,"https:")){return}var I=MadCap.Dom.GetAttribute(this,"target");if(I!=null){return}if(k()){var H=new MadCap.Utilities.Url(document.location.href);if(MadCap.String.StartsWith(G,"#")){H=new MadCap.Utilities.Url(H.PlainPath+G)}else{if(MadCap.String.Contains(G,"javascript")){return}else{H=H.ToFolder().CombinePath(G)}}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-topic",[H.FullPath],null);K.preventDefault()}};C.ScrollToBookmark=function(I){var G=$("#"+I);if(G.length==0){G=$("[name = '"+I+"']")}if(G.length>0){if(u(G[0],false)){var H=G.offset().top;$("html, body").animate({scrollTop:H})}}};$(function(G){MadCap.Utilities.LoadHandlers.MadCapTopic=C.Init;E(G)});function l(G){g()}function g(){var G=$(".feedback-comments-wrapper");if(v&&v.IsResponsive&&parent!=window){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-parent-window-width",null,function(I){var H=parseInt(I[0]);if(v.IsTabletLayout(H)){if(!G.hasClass("responsive")){G.addClass("responsive")}}else{if(G.hasClass("responsive")){G.removeClass("responsive")}}})}else{if(G.hasClass("responsive")){G.removeClass("responsive")}}}function E(G){$(window).resize(l);$(window).hashchange(F);C.Init(document)}C.Init=function(J){v=MadCap.WebHelp.HelpSystem.GetHelpSystem();$("input, textarea",J).placeholder();if(document.location.hash.length>0){var I=new MadCap.Utilities.Url(document.location.hash.substring(1));y(I.ToNoQuery().FullPath)}if(k()||b()){$(".MCWebHelpFramesetLink",J).hide()}$(J).on("click","a, area",MadCap.Topic.Hyperlink_Onclick);$(".MCPopupThumbnailPopup",J).click(MadCap.Topic.ThumbPopup_Click);$(".MCPopupThumbnailHover",J).mouseover(MadCap.Topic.ThumbPopup_Hover);$("a.MCHelpControl",J).click(MadCap.Topic.HelpControl_Click);$(".print-button",J).click(function(P){window.print()});$(".expand-all-button",J).click(function(Q){var P=$(this);if(P.hasClass("expand-all-button")){MadCap.TextEffects.TextEffectControl.ExpandAll("open")}else{if(P.hasClass("collapse-all-button")){MadCap.TextEffects.TextEffectControl.ExpandAll("close")}}MadCap.Utilities.ToggleButtonState(this)});$(".remove-highlight-button",J).click(function(P){r()});$(".previous-topic-button",J).click(function(P){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-previous")});$(".next-topic-button",J).click(function(P){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-next")});if(MadCap.String.Contains(navigator.userAgent,"iphone",false)){window.scrollTo(0,1)}if(MadCap.IsIOS()){var H=$("<div id='ios-wrapper'></div>").appendTo(document.body);var N=H[0];for(var M=document.body.childNodes.length-2;M>=0;M--){var K=document.body.childNodes[M];N.insertBefore(K,N.firstChild)}}w();var O=parent;if(b()){O=parent.parent}if(v==null){var L=$(document.documentElement).attr("data-mc-path-to-help-system");if(!L){return}var G=new MadCap.Utilities.Url(document.location.href).CombinePath(L).ToFolder().CombinePath("Data/HelpSystem.xml");v=new MadCap.WebHelp.HelpSystem(null,null,G.FullPath,null,null);v.Load(A)}else{A()}};function A(){z();if(v&&v.LiveHelpEnabled){q=new MadCap.WebHelp.FeedbackController(v.LiveHelpServer);q.Init(function(){if(q.FeedbackActive){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-csh-id",null,function(G){var H=G!=null?G[0]:null;if(c!=null){q.LogTopic(c,H,function(){var I=$(".feedback-comments-wrapper");if(!b()){if(!q.PulseEnabled){I.removeClass("hidden");t=$("#new-comment-form").attr("data-comment-length-exceeded-message")||"The maximum comment length was exceeded by {n} characters.";q.GetAnonymousEnabled(v.LiveHelpOutputId,function(K){B=K;if(K){$(document.documentElement).addClass("feedback-anonymous-enabled")}});var J=MadCap.Utilities.Store.getItem("LiveHelpUsername");$(".username").val(J);$(".comment-submit").click(p);$(".feedback-comments-wrapper .comments").on("click",".reply-comment-button",m);a()}else{if(q.PulseActive){o(function(K){if(K){var L=q.PulseServer+K;j(L)}else{q.GetPulseStreamID(c,function(M){if(M=="00000000-0000-0000-0000-000000000000"){return}var N=q.PulseServer+"streams/"+M+"/activities?frame=stream";j(N)})}})}}}})}})}});g()}}function F(H){var G=new MadCap.Utilities.Url(document.location.href);if(!MadCap.String.IsNullOrEmpty(G.Fragment)){var I=G.Fragment.substring(1);I=MadCap.Utilities.Url.StripInvalidCharacters(I);C.ScrollToBookmark(I)}}function y(G){G=MadCap.Utilities.Url.StripInvalidCharacters(G);var H=$("[name='"+G+"']");if(H.length>0){u(H[0],false)}}function k(){return window.name=="topic"&&!MadCap.Utilities.HasRuntimeFileType("Default")}function b(){return window.name=="MCPopup"&&!MadCap.Utilities.HasRuntimeFileType("Default")}function z(){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(J){if(J){var H=new MadCap.Utilities.Url(decodeURIComponent(J[0]));var G=new MadCap.Utilities.Url(H.Fragment.substring(1));var I=H.QueryMap.GetItem("BrowseSequencesPath");v.SetBrowseSequencePath(I,G)}})}function p(J){var G=$(this).closest(".comment-form-wrapper");var I=null;var N=G.children(".username-field").val();var H=G.children(".subject-field").val();var M=G.find(".body-field").val();var K=null;var L=G.parent();if(L.hasClass("comment")){K=L.attr("data-mc-comment-id")}x(N,H,M,K)}function x(L,H,K,J){if(B){MadCap.Utilities.Store.setItem("LiveHelpUsername",L);try{q.AddComment(c,null,L,H,K,J,a)}catch(G){var I=t.replace(/{n}/g,G.Data.ExceedAmount);alert(I)}}else{MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"login-user",null,function(P){var O=P[0];if(O!=null){try{q.AddComment(c,O,L,H,K,J,a)}catch(M){var N=t.replace(/{n}/g,M.Data.ExceedAmount);alert(N)}}})}}function m(H){H.preventDefault();var I=$(this).closest(".comment");if(I.children(".comment-form-wrapper")[0]!=null){return}var G=$("#new-comment-form").clone();G.attr("id",null);G.children(".comment-submit").click(p);I.children(".buttons").after(G);G.hide().slideDown()}function a(){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-user-guid",null,function(H){var G=H[0];q.GetTopicComments(c,G,null,function(I){var K=MadCap.Utilities.Xhr.LoadXmlString(I);var J=$(".comments");J.children().not(".mc-template").remove();s(K.documentElement,J)})})}function s(R,O){var Q=$(R).children("Comment");var G=$(".comments .comment.mc-template");for(var N=0,J=Q.length;N<J;N++){var S=$(Q[N]);var M=S.attr("User");var P=S.attr("DateUTC")||S.attr("Date");var K=S.attr("Subject");var I=S.attr("CommentID");var H=S.children("Body").text();var L=G.clone();L.removeClass("mc-template");L.attr("data-mc-comment-id",I);$(".username",L).text(M);$(".timestamp",L).text(P);$(".subject",L).text(K);$(".body",L).text(H);$(O).append(L);s(S.children("Comments")[0],L)}}function o(G){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(K){var H=null;if(K){var J=new MadCap.Utilities.Url(decodeURIComponent(K[0]));var I=new MadCap.Utilities.Url(J.Fragment.substring(1));H=J.QueryMap.GetItem("PulsePath")}G(H)})}function j(I){var G=$(".feedback-comments-wrapper");G.empty();var H=$("<iframe name='topiccomments-html5' class='pulse-frame pulse-loading' title='Topic Comments' frameborder='0'></iframe>");H.appendTo(G);if(!($.browser.msie&&parseInt($.browser.version,10)===7)){H.attr("onload","this.className='pulse-frame';")}H.attr("src",I);G.removeClass("hidden")}function r(){for(var G=1;G<=10;G++){$("body").removeHighlight("SearchHighlight"+G)}}function w(){function G(H){if(typeof H.nextElementSibling=="undefined"){return H.nextSibling==null||H.nextSibling.nodeType==1?H.nextSibling:G(H.nextSibling)}else{return H.nextElementSibling}}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(P){if(P){var I=new MadCap.Utilities.Url(decodeURIComponent(P[0]));var L=I.QueryMap.GetItem("Highlight");if(MadCap.String.IsNullOrEmpty(L)){return}var M=L.match(/"[^"]*"/g);if(M!=null){for(var N=0;N<M.length;N++){L=L.replace(M[N],"")}}var Q=L.replace('"',"").split(" ");for(var O=0;O<Q.length;O++){if(Q[O]==""){Q.splice(Q[O],1);O--}}if(M!=null){for(var N=0;N<M.length;N++){Q.push(M[N].replace(/"/g,""))}}for(var O=0;O<Q.length;O++){if($.inArray(Q[O].toLowerCase(),MadCap.Utilities.StopWords)!=-1){Q.splice(O,1);O--}}for(var R=0;R<Q.length;R++){var J=Array("*[class*='MCExpandingBody']","*[class*='MCDropDownHotSpot']","*[data-mc-target-name]");for(var T=0;T<J.length;T++){var H=$(J[T]);for(var K=0;K<H.length;K++){var S=G(H[K].parentElement);if((H[K].textContent!=null&&H[K].textContent.toLowerCase().indexOf(Q[R].toLowerCase())>=0)||(S!=null&&S.textContent!=null&&S.textContent.toLowerCase().indexOf(Q[R].toLowerCase())>=0)){u(T!=2?H[K]:H[K].firstChild)}}}$("body").highlight(Q[R],"SearchHighlight SearchHighlight"+(R+1))}}})}function i(J,H,G,I){if(J==""){return}h(document.body,J,H,G,I);if(f&&f.offsetTop>document.documentElement.clientHeight){document.documentElement.scrollTop=f.offsetTop}}function d(J){for(var I=J.childNodes.length-1;I>=1;I--){var G=J.childNodes[I];var H=G.previousSibling;if(G.nodeType==3&&H.nodeType==3){H.nodeValue=H.nodeValue+G.nodeValue;J.removeChild(G)}}for(var I=0;I<J.childNodes.length;I++){d(J.childNodes[I])}}function h(S,J,K,Q,P){var V=null;if(P=="NGram"){V=new RegExp(J,"g"+(Q?"":"i"))}else{var H=J.replace(/([*^$+?.()[\]{}|\\])/g,"\\$1");V=new RegExp("(^|\\s|[.,;!#$/:?'\"()[\\]{}|=+*_\\-\\\\])"+H+"($|\\s|[.,;!#$/:?'\"()[\\]{}|=+*_\\-\\\\])","g"+(Q?"":"i"))}for(var N=S.childNodes.length-1;N>=0;N--){var I=S.childNodes[N];h(I,J,K,Q,P);if(I.nodeType!=3||I.parentNode.nodeName=="SCRIPT"){continue}var M=I;var U=M.nodeValue;for(var O=V.exec(U);O!=null;O=V.exec(U)){var R=O.index+(P=="NGram"?0:O[1].length);var G=R+J.length;var T=document.createElement("span");T.className="highlight";T.style.fontWeight="bold";T.style.backgroundColor=K.split(",")[0];T.style.color=K.split(",")[1];var L=document.createElement("span");L.className="SearchHighlight"+(D+1);L.appendChild(document.createTextNode(U.substring(R,G)));T.appendChild(L);M.nodeValue=U.substring(0,R);M.parentNode.insertBefore(T,M.nextSibling);M.parentNode.insertBefore(document.createTextNode(U.substring(G,U.length)),T.nextSibling);M=M.nextSibling.nextSibling;U=M.nodeValue;if(f==null||T.offsetTop<f.offsetTop){f=T}u(T)}}}function u(I,G){if(typeof G=="undefined"){G=true}var O=false;for(var N=I.parentNode;N.nodeName!="BODY";N=N.parentNode){var R=$(N);if(R.hasClass("MCExpanding")){var L=e.TextEffectControl.FindControl(R[0]);if(L==null){L=new MadCap.Topic.ExpandingControl(N)}L.Open(G);O=true}else{if(R.hasClass("MCDropDown")){var L=e.TextEffectControl.FindControl(R[0]);if(L==null){L=new MadCap.Topic.DropDownControl(N)}L.Open(G);O=true}else{var M=$(N).attr("data-mc-target-name");if(M!=null){var Q=MadCap.Dom.GetElementsByClassName("MCToggler",null,document.body);for(var K=0,H=Q.length;K<H;K++){var P=$(Q[K]).attr("data-mc-targets").split(";");var S=false;for(var J=0;J<P.length;J++){if(P[J]==M){S=true;break}}if(!S){continue}var L=e.TextEffectControl.FindControl(Q[K]);if(L==null){L=new MadCap.Topic.TogglerControl(Q[K])}L.Open(G);O=true;break}}}}}return O}MadCap.Utilities.CrossFrame.AddMessageHandler(function(L,H,K){var J={Handled:false,FireResponse:true};if(L=="print"){window.focus();window.print();J.Handled=true}else{if(L=="expand-all"){MadCap.TextEffects.TextEffectControl.ExpandAll("open");J.Handled=true}else{if(L=="collapse-all"){MadCap.TextEffects.TextEffectControl.ExpandAll("close");J.Handled=true}else{if(L=="get-topic-id"){K[K.length]=c;J.Handled=true}else{if(L=="get-topic-url"){K[K.length]=document.location.href;J.Handled=true}else{if(L=="remove-highlight"){r();J.Handled=true}else{if(L=="get-bs-path"){var G=new MadCap.Utilities.Url(document.location.href);var I=G.QueryMap.GetItem("BrowseSequencePath");if(I==null){I=MadCap.Dom.Dataset(document.documentElement,"mcBrowseSequencePath")}K[K.length]=I;K[K.length]=G.FullPath;J.Handled=true}else{if(L=="reload-pulse"){MadCap.Utilities.CrossFrame.PostMessageRequest(frames["topiccomments-html5"],"reload");J.Handled=true}else{if(L=="logout-complete"){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"logout-complete");J.Handled=true}else{if(L=="set-pulse-login-id"){if(q!=null){q.PulseUserGuid=H[0]}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"set-pulse-login-id",H);J.Handled=true}}}}}}}}}}return J},null);var n=new Array("#ffff66,#000000","#a0ffff,#000000","#99ff99,#000000","#ff9999,#000000","#ff66ff,#000000","#880000,#ffffff","#00aa00,#ffffff","#886800,#ffffff","#004699,#ffffff","#990099,#ffffff");var D=0;var f=null;var v=null;var q=null;var B=false;var c=MadCap.Dom.Dataset(document.documentElement,"mcLiveHelp");var t=null})();
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/custom.modernizr.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/custom.modernizr.js
new file mode 100755
index 0000000000000000000000000000000000000000..e5afa6ca3c2624ca9e253f5626ae46355ada74e3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/custom.modernizr.js
@@ -0,0 +1,4 @@
+/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load
+ */
+;window.Modernizr=function(a,b,c){function y(a){j.cssText=a}function z(a,b){return y(m.join(a+";")+(b||""))}function A(a,b){return typeof a===b}function B(a,b){return!!~(""+a).indexOf(b)}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:A(f,"function")?f.bind(d||b):f}return!1}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={svg:"http://www.w3.org/2000/svg"},o={},p={},q={},r=[],s=r.slice,t,u=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},v=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return u("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},w={}.hasOwnProperty,x;!A(w,"undefined")&&!A(w.call,"undefined")?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(s.call(arguments)))};return e}),o.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},o.svg=function(){return!!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==n.svg},o.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")))};for(var D in o)x(o,D)&&(t=D.toLowerCase(),e[t]=o[D](),r.push((e[t]?"":"no-")+t));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)x(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},y(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.mq=v,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))},Modernizr.addTest("ie8compat",function(){return!window.addEventListener&&document.documentMode&&document.documentMode===7});
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/foundation.5.5.0_custom.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/foundation.5.5.0_custom.js
new file mode 100755
index 0000000000000000000000000000000000000000..188cc0cd4e85098d0fc6de72f8602f4d1903c7fe
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/foundation.5.5.0_custom.js
@@ -0,0 +1,690 @@
+/*
+ * Foundation Responsive Library
+ * http://foundation.zurb.com
+ * Copyright 2014, ZURB
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+*/
+
+(function ($, window, document, undefined) {
+  'use strict';
+
+  var header_helpers = function (class_array) {
+    var i = class_array.length;
+    var head = $('head');
+
+    while (i--) {
+      if(head.has('.' + class_array[i]).length === 0) {
+        head.append('<meta class="' + class_array[i] + '" />');
+      }
+    }
+  };
+
+  header_helpers([
+    'foundation-mq-small',
+    'foundation-mq-small-only',
+    'foundation-mq-medium',
+    'foundation-mq-medium-only',
+    'foundation-mq-large',
+    'foundation-mq-large-only',
+    'foundation-mq-xlarge',
+    'foundation-mq-xlarge-only',
+    'foundation-mq-xxlarge',
+    'foundation-data-attribute-namespace']);
+
+  // Enable FastClick if present
+
+  $(function() {
+    if (typeof FastClick !== 'undefined') {
+      // Don't attach to body if undefined
+      if (typeof document.body !== 'undefined') {
+        FastClick.attach(document.body);
+      }
+    }
+  });
+
+  // private Fast Selector wrapper,
+  // returns jQuery object. Only use where
+  // getElementById is not available.
+  var S = function (selector, context) {
+    if (typeof selector === 'string') {
+      if (context) {
+        var cont;
+        if (context.jquery) {
+          cont = context[0];
+          if (!cont) return context;
+        } else {
+          cont = context;
+        }
+        return $(cont.querySelectorAll(selector));
+      }
+
+      return $(document.querySelectorAll(selector));
+    }
+
+    return $(selector, context);
+  };
+
+  // Namespace functions.
+
+  var attr_name = function (init) {
+    var arr = [];
+    if (!init) arr.push('data');
+    if (this.namespace.length > 0) arr.push(this.namespace);
+    arr.push(this.name);
+
+    return arr.join('-');
+  };
+
+  var add_namespace = function (str) {
+    var parts = str.split('-'),
+        i = parts.length,
+        arr = [];
+
+    while (i--) {
+      if (i !== 0) {
+        arr.push(parts[i]);
+      } else {
+        if (this.namespace.length > 0) {
+          arr.push(this.namespace, parts[i]);
+        } else {
+          arr.push(parts[i]);
+        }
+      }
+    }
+
+    return arr.reverse().join('-');
+  };
+
+  // Event binding and data-options updating.
+
+  var bindings = function (method, options) {
+    var self = this,
+        should_bind_events = !S(this).data(this.attr_name(true));
+
+    if (S(this.scope).is('[' + this.attr_name() +']')) {
+      S(this.scope).data(this.attr_name(true) + '-init', $.extend({}, this.settings, (options || method), this.data_options(S(this.scope))));
+
+      if (should_bind_events) {
+        this.events(this.scope);
+      }
+
+    } else {
+      S('[' + this.attr_name() +']', this.scope).each(function () {
+        var should_bind_events = !S(this).data(self.attr_name(true) + '-init');
+        S(this).data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options(S(this))));
+
+        if (should_bind_events) {
+          self.events(this);
+        }
+      });
+    }
+    // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.
+    if (typeof method === 'string') {
+      return this[method].call(this, options);
+    }
+
+  };
+
+  var single_image_loaded = function (image, callback) {
+    function loaded () {
+      callback(image[0]);
+    }
+
+    function bindLoad () {
+      this.one('load', loaded);
+
+      if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
+        var src = this.attr( 'src' ),
+            param = src.match( /\?/ ) ? '&' : '?';
+
+        param += 'random=' + (new Date()).getTime();
+        this.attr('src', src + param);
+      }
+    }
+
+    if (!image.attr('src')) {
+      loaded();
+      return;
+    }
+
+    if (image[0].complete || image[0].readyState === 4) {
+      loaded();
+    } else {
+      bindLoad.call(image);
+    }
+  };
+
+  /*
+    https://github.com/paulirish/matchMedia.js
+  */
+
+  window.matchMedia = window.matchMedia || (function( doc ) {
+
+    'use strict';
+
+    var bool,
+        docElem = doc.documentElement,
+        refNode = docElem.firstElementChild || docElem.firstChild,
+        // fakeBody required for <FF4 when executed in <head>
+        fakeBody = doc.createElement( 'body' ),
+        div = doc.createElement( 'div' );
+
+    div.id = 'mq-test-1';
+    div.style.cssText = 'position:absolute;top:-100em';
+    fakeBody.style.background = 'none';
+    fakeBody.appendChild(div);
+
+    return function (q) {
+
+      div.innerHTML = '&shy;<style media="' + q + '"> #mq-test-1 { width: 42px; }</style>';
+
+      docElem.insertBefore( fakeBody, refNode );
+      bool = div.offsetWidth === 42;
+      docElem.removeChild( fakeBody );
+
+      return {
+        matches: bool,
+        media: q
+      };
+
+    };
+
+  }( document ));
+
+  /*
+   * jquery.requestAnimationFrame
+   * https://github.com/gnarf37/jquery-requestAnimationFrame
+   * Requires jQuery 1.8+
+   *
+   * Copyright (c) 2012 Corey Frang
+   * Licensed under the MIT license.
+   */
+
+  (function($) {
+
+  // requestAnimationFrame polyfill adapted from Erik Möller
+  // fixes from Paul Irish and Tino Zijdel
+  // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+  // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
+
+  var animating,
+      lastTime = 0,
+      vendors = ['webkit', 'moz'],
+      requestAnimationFrame = window.requestAnimationFrame,
+      cancelAnimationFrame = window.cancelAnimationFrame,
+      jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
+
+  for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
+    requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];
+    cancelAnimationFrame = cancelAnimationFrame ||
+      window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||
+      window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];
+  }
+
+  function raf() {
+    if (animating) {
+      requestAnimationFrame(raf);
+
+      if (jqueryFxAvailable) {
+        jQuery.fx.tick();
+      }
+    }
+  }
+
+  if (requestAnimationFrame) {
+    // use rAF
+    window.requestAnimationFrame = requestAnimationFrame;
+    window.cancelAnimationFrame = cancelAnimationFrame;
+
+    if (jqueryFxAvailable) {
+      jQuery.fx.timer = function (timer) {
+        if (timer() && jQuery.timers.push(timer) && !animating) {
+          animating = true;
+          raf();
+        }
+      };
+
+      jQuery.fx.stop = function () {
+        animating = false;
+      };
+    }
+  } else {
+    // polyfill
+    window.requestAnimationFrame = function (callback) {
+      var currTime = new Date().getTime(),
+        timeToCall = Math.max(0, 16 - (currTime - lastTime)),
+        id = window.setTimeout(function () {
+          callback(currTime + timeToCall);
+        }, timeToCall);
+      lastTime = currTime + timeToCall;
+      return id;
+    };
+
+    window.cancelAnimationFrame = function (id) {
+      clearTimeout(id);
+    };
+
+  }
+
+  }( jQuery ));
+
+
+  function removeQuotes (string) {
+    if (typeof string === 'string' || string instanceof String) {
+      string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, '');
+    }
+
+    return string;
+  }
+
+  window.Foundation = {
+    name : 'Foundation',
+
+    version : '5.5.0',
+
+    media_queries : {
+      'small'       : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'small-only'  : S('.foundation-mq-small-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'medium'      : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'medium-only' : S('.foundation-mq-medium-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'large'       : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'large-only'  : S('.foundation-mq-large-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'xlarge'      : S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'xlarge-only' : S('.foundation-mq-xlarge-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
+      'xxlarge'     : S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '')
+    },
+
+    stylesheet : $('<style></style>').appendTo('head')[0].sheet,
+
+    global: {
+      namespace: undefined
+    },
+
+    init : function (scope, libraries, method, options, response) {
+      var args = [scope, method, options, response],
+          responses = [];
+
+      // check RTL
+      this.rtl = /rtl/i.test(S('html').attr('dir'));
+
+      // set foundation global scope
+      this.scope = scope || this.scope;
+
+      this.set_namespace();
+
+      if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {
+        if (this.libs.hasOwnProperty(libraries)) {
+          responses.push(this.init_lib(libraries, args));
+        }
+      } else {
+        for (var lib in this.libs) {
+          responses.push(this.init_lib(lib, libraries));
+        }
+      }
+
+      S(window).load(function(){
+        S(window)
+          .trigger('resize.fndtn.clearing')
+          .trigger('resize.fndtn.dropdown')
+          .trigger('resize.fndtn.equalizer')
+          .trigger('resize.fndtn.interchange')
+          .trigger('resize.fndtn.joyride')
+          .trigger('resize.fndtn.magellan')
+          .trigger('resize.fndtn.topbar')
+          .trigger('resize.fndtn.slider');
+      });
+
+      return scope;
+    },
+
+    init_lib : function (lib, args) {
+      if (this.libs.hasOwnProperty(lib)) {
+        this.patch(this.libs[lib]);
+
+        if (args && args.hasOwnProperty(lib)) {
+            if (typeof this.libs[lib].settings !== 'undefined') {
+              $.extend(true, this.libs[lib].settings, args[lib]);
+            }
+            else if (typeof this.libs[lib].defaults !== 'undefined') {
+              $.extend(true, this.libs[lib].defaults, args[lib]);
+            }
+          return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
+        }
+
+        args = args instanceof Array ? args : new Array(args);
+        return this.libs[lib].init.apply(this.libs[lib], args);
+      }
+
+      return function () {};
+    },
+
+    patch : function (lib) {
+      lib.scope = this.scope;
+      lib.namespace = this.global.namespace;
+      lib.rtl = this.rtl;
+      lib['data_options'] = this.utils.data_options;
+      lib['attr_name'] = attr_name;
+      lib['add_namespace'] = add_namespace;
+      lib['bindings'] = bindings;
+      lib['S'] = this.utils.S;
+    },
+
+    inherit : function (scope, methods) {
+      var methods_arr = methods.split(' '),
+          i = methods_arr.length;
+
+      while (i--) {
+        if (this.utils.hasOwnProperty(methods_arr[i])) {
+          scope[methods_arr[i]] = this.utils[methods_arr[i]];
+        }
+      }
+    },
+
+    set_namespace: function () {
+
+      // Description:
+      //    Don't bother reading the namespace out of the meta tag
+      //    if the namespace has been set globally in javascript
+      //
+      // Example:
+      //    Foundation.global.namespace = 'my-namespace';
+      // or make it an empty string:
+      //    Foundation.global.namespace = '';
+      //
+      //
+
+      // If the namespace has not been set (is undefined), try to read it out of the meta element.
+      // Otherwise use the globally defined namespace, even if it's empty ('')
+      var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;
+
+      // Finally, if the namsepace is either undefined or false, set it to an empty string.
+      // Otherwise use the namespace value.
+      this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;
+    },
+
+    libs : {},
+
+    // methods that can be inherited in libraries
+    utils : {
+
+      // Description:
+      //    Fast Selector wrapper returns jQuery object. Only use where getElementById
+      //    is not available.
+      //
+      // Arguments:
+      //    Selector (String): CSS selector describing the element(s) to be
+      //    returned as a jQuery object.
+      //
+      //    Scope (String): CSS selector describing the area to be searched. Default
+      //    is document.
+      //
+      // Returns:
+      //    Element (jQuery Object): jQuery object containing elements matching the
+      //    selector within the scope.
+      S : S,
+
+      // Description:
+      //    Executes a function a max of once every n milliseconds
+      //
+      // Arguments:
+      //    Func (Function): Function to be throttled.
+      //
+      //    Delay (Integer): Function execution threshold in milliseconds.
+      //
+      // Returns:
+      //    Lazy_function (Function): Function with throttling applied.
+      throttle : function (func, delay) {
+        var timer = null;
+
+        return function () {
+          var context = this, args = arguments;
+
+          if (timer == null) {
+            timer = setTimeout(function () {
+              func.apply(context, args);
+              timer = null;
+            }, delay);
+          }
+        };
+      },
+
+      // Description:
+      //    Executes a function when it stops being invoked for n seconds
+      //    Modified version of _.debounce() http://underscorejs.org
+      //
+      // Arguments:
+      //    Func (Function): Function to be debounced.
+      //
+      //    Delay (Integer): Function execution threshold in milliseconds.
+      //
+      //    Immediate (Bool): Whether the function should be called at the beginning
+      //    of the delay instead of the end. Default is false.
+      //
+      // Returns:
+      //    Lazy_function (Function): Function with debouncing applied.
+      debounce : function (func, delay, immediate) {
+        var timeout, result;
+        return function () {
+          var context = this, args = arguments;
+          var later = function () {
+            timeout = null;
+            if (!immediate) result = func.apply(context, args);
+          };
+          var callNow = immediate && !timeout;
+          clearTimeout(timeout);
+          timeout = setTimeout(later, delay);
+          if (callNow) result = func.apply(context, args);
+          return result;
+        };
+      },
+
+      // Description:
+      //    Parses data-options attribute
+      //
+      // Arguments:
+      //    El (jQuery Object): Element to be parsed.
+      //
+      // Returns:
+      //    Options (Javascript Object): Contents of the element's data-options
+      //    attribute.
+      data_options : function (el, data_attr_name) {
+        data_attr_name = data_attr_name || 'options';
+        var opts = {}, ii, p, opts_arr,
+            data_options = function (el) {
+              var namespace = Foundation.global.namespace;
+
+              if (namespace.length > 0) {
+                return el.data(namespace + '-' + data_attr_name);
+              }
+
+              return el.data(data_attr_name);
+            };
+
+        var cached_options = data_options(el);
+
+        if (typeof cached_options === 'object') {
+          return cached_options;
+        }
+
+        opts_arr = (cached_options || ':').split(';');
+        ii = opts_arr.length;
+
+        function isNumber (o) {
+          return ! isNaN (o-0) && o !== null && o !== '' && o !== false && o !== true;
+        }
+
+        function trim (str) {
+          if (typeof str === 'string') return $.trim(str);
+          return str;
+        }
+
+        while (ii--) {
+          p = opts_arr[ii].split(':');
+          p = [p[0], p.slice(1).join(':')];
+
+          if (/true/i.test(p[1])) p[1] = true;
+          if (/false/i.test(p[1])) p[1] = false;
+          if (isNumber(p[1])) {
+            if (p[1].indexOf('.') === -1) {
+              p[1] = parseInt(p[1], 10);
+            } else {
+              p[1] = parseFloat(p[1]);
+            }
+          }
+
+          if (p.length === 2 && p[0].length > 0) {
+            opts[trim(p[0])] = trim(p[1]);
+          }
+        }
+
+        return opts;
+      },
+
+      // Description:
+      //    Adds JS-recognizable media queries
+      //
+      // Arguments:
+      //    Media (String): Key string for the media query to be stored as in
+      //    Foundation.media_queries
+      //
+      //    Class (String): Class name for the generated <meta> tag
+      register_media : function (media, media_class) {
+        if(Foundation.media_queries[media] === undefined) {
+          $('head').append('<meta class="' + media_class + '"/>');
+          Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));
+        }
+      },
+
+      // Description:
+      //    Add custom CSS within a JS-defined media query
+      //
+      // Arguments:
+      //    Rule (String): CSS rule to be appended to the document.
+      //
+      //    Media (String): Optional media query string for the CSS rule to be
+      //    nested under.
+      add_custom_rule : function (rule, media) {
+        if (media === undefined && Foundation.stylesheet) {
+          Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);
+        } else {
+          var query = Foundation.media_queries[media];
+
+          if (query !== undefined) {
+            Foundation.stylesheet.insertRule('@media ' +
+              Foundation.media_queries[media] + '{ ' + rule + ' }');
+          }
+        }
+      },
+
+      // Description:
+      //    Performs a callback function when an image is fully loaded
+      //
+      // Arguments:
+      //    Image (jQuery Object): Image(s) to check if loaded.
+      //
+      //    Callback (Function): Function to execute when image is fully loaded.
+      image_loaded : function (images, callback) {
+        var self = this,
+            unloaded = images.length;
+
+        if (unloaded === 0) {
+          callback(images);
+        }
+
+        images.each(function () {
+          single_image_loaded(self.S(this), function () {
+            unloaded -= 1;
+            if (unloaded === 0) {
+              callback(images);
+            }
+          });
+        });
+      },
+
+      // Description:
+      //    Returns a random, alphanumeric string
+      //
+      // Arguments:
+      //    Length (Integer): Length of string to be generated. Defaults to random
+      //    integer.
+      //
+      // Returns:
+      //    Rand (String): Pseudo-random, alphanumeric string.
+      random_str : function () {
+        if (!this.fidx) this.fidx = 0;
+        this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
+
+        return this.prefix + (this.fidx++).toString(36);
+      },
+
+      // Description:
+      //    Helper for window.matchMedia
+      //
+      // Arguments:
+      //    mq (String): Media query
+      //
+      // Returns:
+      //    (Boolean): Whether the media query passes or not
+      match : function (mq) {
+        return window.matchMedia(mq).matches;
+      },
+
+      // Description:
+      //    Helpers for checking Foundation default media queries with JS
+      //
+      // Returns:
+      //    (Boolean): Whether the media query passes or not
+
+      is_small_up : function () {
+        return this.match(Foundation.media_queries.small);
+      },
+
+      is_medium_up : function () {
+        return this.match(Foundation.media_queries.medium);
+      },
+
+      is_large_up : function () {
+        return this.match(Foundation.media_queries.large);
+      },
+
+      is_xlarge_up : function () {
+        return this.match(Foundation.media_queries.xlarge);
+      },
+
+      is_xxlarge_up : function () {
+        return this.match(Foundation.media_queries.xxlarge);
+      },
+
+      is_small_only : function () {
+        return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_medium_only : function () {
+        return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_large_only : function () {
+        return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_xlarge_only : function () {
+        return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_xxlarge_only : function () {
+        return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();
+      }
+    }
+  };
+
+  $.fn.foundation = function () {
+    var args = Array.prototype.slice.call(arguments, 0);
+
+    return this.each(function () {
+      Foundation.init.apply(Foundation, [this].concat(args));
+      return this;
+    });
+  };
+
+}(jQuery, window, window.document));
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/foundation.offcanvas.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/foundation.offcanvas.js
new file mode 100755
index 0000000000000000000000000000000000000000..8ce25d8ce6aa11ef2fe8dab9b70468a7eac3b9e1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/foundation.offcanvas.js
@@ -0,0 +1,152 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.offcanvas = {
+    name : 'offcanvas',
+
+    version : '5.5.0',
+
+    settings : {
+      open_method: 'move',
+      close_on_click: false
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = self.S,
+          move_class = '',
+          right_postfix = '',
+          left_postfix = '';
+
+      if (this.settings.open_method === 'move') {
+        move_class = 'move-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+      } else if (this.settings.open_method === 'overlap_single') {
+        move_class = 'offcanvas-overlap-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+      } else if (this.settings.open_method === 'overlap') {
+        move_class = 'offcanvas-overlap';
+      }
+
+      S(this.scope).off('.offcanvas')
+        .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + right_postfix);
+          if (self.settings.open_method !== 'overlap'){
+            S('.left-submenu').removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if(settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')){
+            self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + right_postfix);
+          }else if(S(this).parent().hasClass('has-submenu')){
+            e.preventDefault();
+            S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
+          }else if(parent.hasClass('back')){
+            e.preventDefault();
+            parent.parent().removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + left_postfix);
+          if (self.settings.open_method !== 'overlap'){
+            S('.right-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if(settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')){
+            self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + left_postfix);
+          }else if(S(this).parent().hasClass('has-submenu')){
+            e.preventDefault();
+            S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
+          }else if(parent.hasClass('back')){
+            e.preventDefault();
+            parent.parent().removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          S('.right-submenu').removeClass(move_class + left_postfix);
+          if (right_postfix){
+            self.click_remove_class(e, move_class + right_postfix);
+            S('.left-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (right_postfix) {
+            self.click_remove_class(e, move_class + right_postfix);
+            $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
+        });
+    },
+
+    toggle: function(class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      if ($off_canvas.is('.' + class_name)) {
+        this.hide(class_name, $off_canvas);
+      } else {
+        this.show(class_name, $off_canvas);
+      }
+    },
+
+    show: function(class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('open').trigger('open.fndtn.offcanvas');
+      $off_canvas.addClass(class_name);
+    },
+
+    hide: function(class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('close').trigger('close.fndtn.offcanvas');
+      $off_canvas.removeClass(class_name);
+    },
+
+    click_toggle_class: function(e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.toggle(class_name, $off_canvas);
+    },
+
+    click_remove_class: function(e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.hide(class_name, $off_canvas);
+    },
+
+    get_settings: function(e) {
+      var offcanvas  = this.S(e.target).closest('[' + this.attr_name() + ']');
+      return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
+    },
+
+    get_wrapper: function(e) {
+      var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
+
+      if ($off_canvas.length === 0) {
+        $off_canvas = this.S('.off-canvas-wrap');
+      }
+      return $off_canvas;
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/jquery.min.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/jquery.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..38837795279c5eb281e98ce6017998b993026518
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/jquery.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/plugins.min.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/plugins.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..72403d9d8312bfddc62be0ebba2c8215ae615275
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/plugins.min.js
@@ -0,0 +1,63 @@
+/* Array.indexOf polyfill 
+*  https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf
+*/
+if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (e) { "use strict"; if (this == null) { throw new TypeError } var t = Object(this); var n = t.length >>> 0; if (n === 0) { return -1 } var r = 0; if (arguments.length > 1) { r = Number(arguments[1]); if (r != r) { r = 0 } else if (r != 0 && r != Infinity && r != -Infinity) { r = (r > 0 || -1) * Math.floor(Math.abs(r)) } } if (r >= n) { return -1 } var i = r >= 0 ? r : Math.max(n - Math.abs(r), 0); for (; i < n; i++) { if (i in t && t[i] === e) { return i } } return -1 } }
+
+/*
+* jQuery hashchange event - v1.3 - 7/21/2010
+* http://benalman.com/projects/jquery-hashchange-plugin/
+* 
+* Copyright (c) 2010 "Cowboy" Ben Alman
+* Dual licensed under the MIT and GPL licenses.
+* http://benalman.com/about/license/
+*/
+(function ($, e, b) { var c = "hashchange", h = document, f, g = $.event.special, i = h.documentMode, d = "on" + c in e && (i === b || i > 7); function a(j) { j = j || location.href; return "#" + j.replace(/^[^#]*#?(.*)$/, "$1") } $.fn[c] = function (j) { return j ? this.bind(c, j) : this.trigger(c) }; $.fn[c].delay = 50; g[c] = $.extend(g[c], { setup: function () { if (d) { return false } $(f.start) }, teardown: function () { if (d) { return false } $(f.stop) } }); f = (function () { var j = {}, p, m = a(), k = function (q) { return q }, l = k, o = k; j.start = function () { p || n() }; j.stop = function () { p && clearTimeout(p); p = b }; function n() { var r = a(), q = o(m); if (r !== m) { l(m = r, q); $(e).trigger(c) } else { if (q !== m) { location.href = location.href.replace(/#.*/, "") + q } } p = setTimeout(n, $.fn[c].delay) } $.browser.msie && !d && (function () { var q, r; j.start = function () { if (!q) { r = $.fn[c].src; r = r && r + a(); q = $('<iframe tabindex="-1" title="empty"/>').hide().one("load", function () { r || l(a()); n() }).attr("src", r || "javascript:0").insertAfter("body")[0].contentWindow; h.onpropertychange = function () { try { if (event.propertyName === "title") { q.document.title = h.title } } catch (s) { } } } }; j.stop = k; o = function () { return a(q.location.href) }; l = function (v, s) { var u = q.document, t = $.fn[c].domain; if (v !== s) { u.title = h.title; u.open(); t && u.write('<script>document.domain="' + t + '"<\/script>'); u.close(); q.location.hash = v } } })(); return j })() })(jQuery, this);
+
+/*! http://mths.be/placeholder v1.8.7 by @mathias */
+(function (f, h, c) { var a = 'placeholder' in h.createElement('input'), d = 'placeholder' in h.createElement('textarea'), i = c.fn, j; if (a && d) { j = i.placeholder = function () { return this }; j.input = j.textarea = true } else { j = i.placeholder = function () { return this.filter((a ? 'textarea' : ':input') + '[placeholder]').not('.placeholder').bind('focus.placeholder', b).bind('blur.placeholder', e).trigger('blur.placeholder').end() }; j.input = a; j.textarea = d; c(function () { c(h).delegate('form', 'submit.placeholder', function () { var k = c('.placeholder', this).each(b); setTimeout(function () { k.each(e) }, 10) }) }); c(f).bind('unload.placeholder', function () { c('.placeholder').val('') }) } function g(l) { var k = {}, m = /^jQuery\d+$/; c.each(l.attributes, function (o, n) { if (n.specified && !m.test(n.name)) { k[n.name] = n.value } }); return k } function b() { var k = c(this); if (k.val() === k.attr('placeholder') && k.hasClass('placeholder')) { if (k.data('placeholder-password')) { k.hide().next().show().focus().attr('id', k.removeAttr('id').data('placeholder-id')) } else { k.val('').removeClass('placeholder') } } } function e() { var o, n = c(this), k = n, m = this.id; if (n.val() === '') { if (n.is(':password')) { if (!n.data('placeholder-textinput')) { try { o = n.clone().attr({ type: 'text' }) } catch (l) { o = c('<input>').attr(c.extend(g(this), { type: 'text' })) } o.removeAttr('name').data('placeholder-password', true).data('placeholder-id', m).bind('focus.placeholder', b); n.data('placeholder-textinput', o).data('placeholder-id', m).before(o) } n = n.removeAttr('id').hide().prev().attr('id', m).show() } n.addClass('placeholder').val(n.attr('placeholder')) } else { n.removeClass('placeholder') } } } (this, document, jQuery));
+
+/*
+* jQuery scrollintoview() plugin and :scrollable selector filter
+*
+* Version 1.8 (14 Jul 2011)
+* Requires jQuery 1.4 or newer
+*
+* Copyright (c) 2011 Robert Koritnik
+* Licensed under the terms of the MIT license
+* http://www.opensource.org/licenses/mit-license.php
+*/
+(function (f) { var c = { vertical: { x: false, y: true }, horizontal: { x: true, y: false }, both: { x: true, y: true }, x: { x: true, y: false }, y: { x: false, y: true} }; var b = { duration: "fast", direction: "both" }; var e = /^(?:html)$/i; var g = function (k, j) { j = j || (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(k, null) : k.currentStyle); var i = document.defaultView && document.defaultView.getComputedStyle ? true : false; var h = { top: (parseFloat(i ? j.borderTopWidth : f.css(k, "borderTopWidth")) || 0), left: (parseFloat(i ? j.borderLeftWidth : f.css(k, "borderLeftWidth")) || 0), bottom: (parseFloat(i ? j.borderBottomWidth : f.css(k, "borderBottomWidth")) || 0), right: (parseFloat(i ? j.borderRightWidth : f.css(k, "borderRightWidth")) || 0) }; return { top: h.top, left: h.left, bottom: h.bottom, right: h.right, vertical: h.top + h.bottom, horizontal: h.left + h.right} }; var d = function (h) { var j = f(window); var i = e.test(h[0].nodeName); return { border: i ? { top: 0, left: 0, bottom: 0, right: 0} : g(h[0]), scroll: { top: (i ? j : h).scrollTop(), left: (i ? j : h).scrollLeft() }, scrollbar: { right: i ? 0 : h.innerWidth() - h[0].clientWidth, bottom: i ? 0 : h.innerHeight() - h[0].clientHeight }, rect: (function () { var k = h[0].getBoundingClientRect(); return { top: i ? 0 : k.top, left: i ? 0 : k.left, bottom: i ? h[0].clientHeight : k.bottom, right: i ? h[0].clientWidth : k.right} })()} }; f.fn.extend({ scrollintoview: function (j) { j = f.extend({}, b, j); j.direction = c[typeof (j.direction) === "string" && j.direction.toLowerCase()] || c.both; var n = ""; if (j.direction.x === true) { n = "horizontal" } if (j.direction.y === true) { n = n ? "both" : "vertical" } var l = this.eq(0); var i = l.closest(":scrollable(" + n + ")"); if (i.length > 0) { i = i.eq(0); var m = { e: d(l), s: d(i) }; var h = { top: m.e.rect.top - (m.s.rect.top + m.s.border.top), bottom: m.s.rect.bottom - m.s.border.bottom - m.s.scrollbar.bottom - m.e.rect.bottom, left: m.e.rect.left - (m.s.rect.left + m.s.border.left), right: m.s.rect.right - m.s.border.right - m.s.scrollbar.right - m.e.rect.right }; var k = {}; if (j.direction.y === true) { if (h.top < 0) { k.scrollTop = m.s.scroll.top + h.top } else { if (h.top > 0 && h.bottom < 0) { k.scrollTop = m.s.scroll.top + Math.min(h.top, -h.bottom) } } } if (j.direction.x === true) { if (h.left < 0) { k.scrollLeft = m.s.scroll.left + h.left } else { if (h.left > 0 && h.right < 0) { k.scrollLeft = m.s.scroll.left + Math.min(h.left, -h.right) } } } if (!f.isEmptyObject(k)) { if (e.test(i[0].nodeName)) { i = f("html,body") } i.animate(k, j.duration).eq(0).queue(function (o) { f.isFunction(j.complete) && j.complete.call(i[0]); o() }) } else { f.isFunction(j.complete) && j.complete.call(i[0]) } } return this } }); var a = { auto: true, scroll: true, visible: false, hidden: false }; f.extend(f.expr[":"], { scrollable: function (k, i, n, h) { var m = c[typeof (n[3]) === "string" && n[3].toLowerCase()] || c.both; var l = (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(k, null) : k.currentStyle); var o = { x: a[l.overflowX.toLowerCase()] || false, y: a[l.overflowY.toLowerCase()] || false, isRoot: e.test(k.nodeName) }; if (!o.x && !o.y && !o.isRoot) { return false } var j = { height: { scroll: k.scrollHeight, client: k.clientHeight }, width: { scroll: k.scrollWidth, client: k.clientWidth }, scrollableX: function () { return (o.x || o.isRoot) && this.width.scroll > this.width.client }, scrollableY: function () { return (o.y || o.isRoot) && this.height.scroll > this.height.client } }; return m.y && j.scrollableY() || m.x && j.scrollableX() } }) })(jQuery);
+
+/**
+ * jQuery.browser.mobile (http://detectmobilebrowser.com/)
+ *
+ * jQuery.browser.mobile will be true if the browser is a mobile device
+ *
+ **/
+(function (a) { (jQuery.browser = jQuery.browser || {}).mobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)) })(navigator.userAgent || navigator.vendor || window.opera);
+
+/*
+* Foundation Responsive Library
+* http://foundation.zurb.com
+* Copyright 2014, ZURB
+* Free to use under the MIT license.
+* http://www.opensource.org/licenses/mit-license.php
+*
+* Foundation Zurb - Off Canvas layout jQuery
+*/
+(function (e, t, n) { var r = n("#topMenu"), i = "click.fndtn"; if (r.length > 0) r.css("margin-top", r.height() * -1); var s = n("#sidebarButton"); if (s.length > 0) { n("#sidebarButton").on(i, function (e) { e.preventDefault(); n("body").toggleClass("active") }) } var o = n("#menuButton"); if (o.length > 0) { n("#menuButton").on(i, function (e) { e.preventDefault(); n("body").toggleClass("active-menu") }) } var u = n("#switchPanels"); if (u.length > 0) { n("#switchPanels dd").on(i, function (e) { e.preventDefault(); var t = n(this).children("a").attr("href"), r = n(t).index(); n(this).toggleClass("active").siblings().removeClass("active"); n(t).parent().css("left", r * -100 + "%") }) } n("#nav li a").on(i, function (e) { e.preventDefault(); var t = n(this).attr("href"), r = n(t); n("html, body").animate({ scrollTop: r.offset().top }, 300) }) })(this, document, jQuery)
+
+/*
+highlight v4
+
+Highlights arbitrary terms.
+
+<http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
+
+MIT license.
+
+Johann Burkard
+<http://johannburkard.de>
+<mailto:jb@eaio.com>
+*/
+jQuery.fn.highlight = function (e, t, n) { function d(e, o, h) { if (this.skip = 0, 3 == e.nodeType) { if (e.data.length != h(e.data).length || o.length != h(o).length) return !1; var l = h(o), r = h(e.data); if (!/MCHelpControl/.test(e.parentNode.className) && (/\s/.test(o) || new RegExp("\\s*" + l + "\\s*").test(r))) { var s = h(e.data).indexOf(h(o)); if (s >= 0) { var c = document.createElement(n); t && (c.className = t); var p = e.splitText(s), u = (p.splitText(h(o).length), p.cloneNode(!0)); c.appendChild(u), p.parentNode.replaceChild(c, p), this.skip = 1 } else this.skip = 0 } } else if (1 == e.nodeType && e.childNodes && !/(script|style)/i.test(e.tagName)) for (var N = 0; N < e.childNodes.length; ++N) N += d(e.childNodes[N], o, i) ? this.skip : d(e.childNodes[N], o, a) ? this.skip : this.skip; return !0 } n || (n = "span"); var i = function (e) { return e.toUpperCase() }, a = function (e) { return e.toLowerCase() }, o = function (e) { return e }; return this.length && e && e.length ? this.each(function () { 1 == this.childNodes.length && "undefined" == typeof this.recoveryData && (this.recoveryData = this.firstChild.data), d(this, e, i) || d(this, e, a) || d(this, e, o) }) : this }, jQuery.fn.removeHighlight = function (e, t) { function n(e) { for (var t = 0; t < e.childNodes.length; t++) if (e.childNodes[t].nodeType == Node.TEXT_NODE) { for (var n = new Array, d = e.childNodes[t].nextSibling; null != d && d.nodeType == Node.TEXT_NODE;) e.childNodes[t].data += d.data, n.push(d), d = d.nextSibling; n.forEach(function (t) { e.removeChild(t) }) } } function d() { var e = document.createElement("p"); e.appendChild(document.createTextNode("")), e.appendChild(document.createTextNode("this-")), e.appendChild(document.createTextNode("を終了しますa")), e.appendChild(document.createTextNode("♋uü")), e.appendChild(document.createTextNode("is-a")), e.appendChild(document.createTextNode("nother-testス")), e.appendChild(document.createTextNode("¤xyz")), e.appendChild(document.createTextNode("xyz¤Ø")), document.getElementsByTagName("head")[0].appendChild(e), e.normalize(); var t = 1 != e.childNodes.length || e.childNodes[0].length != "this-を終了しますa♋uüis-another-testス¤xyzxyz¤Ø".length; return document.getElementsByTagName("head")[0].removeChild(e), t } function i(e) { for (var t = e.childNodes.length > 1, n = 0; n < e.childNodes.length; n++) e.childNodes[n].nodeType == Node.ELEMENT_NODE && (t = !1); return t } return t || (t = "span"), this.find(t + "." + e).each(function () { var e = this, t = e.parentNode; if (null != t && null != t.firstChild) { var a = e.firstChild.cloneNode(); if (t.replaceChild(a, e), d()) n(t); else { var o = t.firstChild.wholeText; t.normalize(), "undefined" != typeof t.recoveryData ? 1 == t.childNodes.length && t.childNodes[0].wholeText != t.recoveryData ? t.innerText = t.recoveryData : i(t) && (t.innerText = t.recoveryData) : t.childNodes[0].data && void 0 != o && o.length > t.childNodes[0].data.length && (t.innerText = o) } } }).end() };
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/require.config.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/require.config.js
new file mode 100755
index 0000000000000000000000000000000000000000..c2cabbf1f698b8298d895beb12f9811abc9f513d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/require.config.js
@@ -0,0 +1,3 @@
+require.config({
+    urlArgs: 't=636233568036978678'
+});
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/require.min.js b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/require.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..63e277b37da4145083d7f0b63dcaa2aa47644ea9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Resources/Scripts/require.min.js
@@ -0,0 +1,143 @@
+/*
+ RequireJS 2.1.11 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
+ Available via the MIT or new BSD license.
+ see: http://github.com/jrburke/requirejs for details
+*/
+var requirejs, require, define;
+(function (ca) {
+    function G(b) { return "[object Function]" === M.call(b) } function H(b) { return "[object Array]" === M.call(b) } function v(b, c) { if (b) { var d; for (d = 0; d < b.length && (!b[d] || !c(b[d], d, b)) ; d += 1); } } function U(b, c) { if (b) { var d; for (d = b.length - 1; -1 < d && (!b[d] || !c(b[d], d, b)) ; d -= 1); } } function s(b, c) { return ga.call(b, c) } function j(b, c) { return s(b, c) && b[c] } function B(b, c) { for (var d in b) if (s(b, d) && c(b[d], d)) break } function V(b, c, d, g) {
+        c && B(c, function (c, h) {
+            if (d || !s(b, h)) g && "object" === typeof c && c && !H(c) && !G(c) && !(c instanceof
+            RegExp) ? (b[h] || (b[h] = {}), V(b[h], c, d, g)) : b[h] = c
+        }); return b
+    } function t(b, c) { return function () { return c.apply(b, arguments) } } function da(b) { throw b; } function ea(b) { if (!b) return b; var c = ca; v(b.split("."), function (b) { c = c[b] }); return c } function C(b, c, d, g) { c = Error(c + "\nhttp://requirejs.org/docs/errors.html#" + b); c.requireType = b; c.requireModules = g; d && (c.originalError = d); return c } function ha(b) {
+        function c(a, e, b) {
+            var f, n, c, d, g, h, i, I = e && e.split("/"); n = I; var m = l.map, k = m && m["*"]; if (a && "." === a.charAt(0)) if (e) {
+                n =
+                I.slice(0, I.length - 1); a = a.split("/"); e = a.length - 1; l.nodeIdCompat && R.test(a[e]) && (a[e] = a[e].replace(R, "")); n = a = n.concat(a); d = n.length; for (e = 0; e < d; e++) if (c = n[e], "." === c) n.splice(e, 1), e -= 1; else if (".." === c) if (1 === e && (".." === n[2] || ".." === n[0])) break; else 0 < e && (n.splice(e - 1, 2), e -= 2); a = a.join("/")
+            } else 0 === a.indexOf("./") && (a = a.substring(2)); if (b && m && (I || k)) {
+                n = a.split("/"); e = n.length; a: for (; 0 < e; e -= 1) {
+                    d = n.slice(0, e).join("/"); if (I) for (c = I.length; 0 < c; c -= 1) if (b = j(m, I.slice(0, c).join("/"))) if (b = j(b, d)) {
+                        f = b;
+                        g = e; break a
+                    } !h && (k && j(k, d)) && (h = j(k, d), i = e)
+                } !f && h && (f = h, g = i); f && (n.splice(0, g, f), a = n.join("/"))
+            } return (f = j(l.pkgs, a)) ? f : a
+        } function d(a) { z && v(document.getElementsByTagName("script"), function (e) { if (e.getAttribute("data-requiremodule") === a && e.getAttribute("data-requirecontext") === i.contextName) return e.parentNode.removeChild(e), !0 }) } function g(a) { var e = j(l.paths, a); if (e && H(e) && 1 < e.length) return e.shift(), i.require.undef(a), i.require([a]), !0 } function u(a) {
+            var e; return [e, a];
+        } function m(a, e, b, f) { var n, d, g = null, h = e ? e.name : null, l = a, m = !0, k = ""; a || (m = !1, a = "_@r" + (M += 1)); a = u(a); g = a[0]; a = a[1]; g && (g = c(g, h, f), d = j(p, g)); a && (g ? k = d && d.normalize ? d.normalize(a, function (a) { return c(a, h, f) }) : c(a, h, f) : (k = c(a, h, f), a = u(k), g = a[0], k = a[1], b = !0, n = i.nameToUrl(k))); b = g && !d && !b ? "_unnormalized" + (Q += 1) : ""; return { prefix: g, name: k, parentMap: e, unnormalized: !!b, url: n, originalName: l, isDefine: m, id: (g ? g + "!" + k : k) + b } } function q(a) {
+            var e = a.id, b = j(k, e); b || (b = k[e] = new i.Module(a));
+            return b
+        } function r(a, e, b) { var f = a.id, n = j(k, f); if (s(p, f) && (!n || n.defineEmitComplete)) "defined" === e && b(p[f]); else if (n = q(a), n.error && "error" === e) b(n.error); else n.on(e, b) } function w(a, e) { var b = a.requireModules, f = !1; if (e) e(a); else if (v(b, function (e) { if (e = j(k, e)) e.error = a, e.events.error && (f = !0, e.emit("error", a)) }), !f) h.onError(a) } function x() { S.length && (ia.apply(A, [A.length, 0].concat(S)), S = []) } function y(a) { delete k[a]; delete W[a] } function F(a, e, b) {
+            var f = a.map.id; a.error ? a.emit("error", a.error) : (e[f] =
+            !0, v(a.depMaps, function (f, c) { var d = f.id, g = j(k, d); g && (!a.depMatched[c] && !b[d]) && (j(e, d) ? (a.defineDep(c, p[d]), a.check()) : F(g, e, b)) }), b[f] = !0)
+        } function D() {
+            var a, e, b = (a = 1E3 * l.waitSeconds) && i.startTime + a < (new Date).getTime(), f = [], c = [], h = !1, k = !0; if (!X) {
+                X = !0; B(W, function (a) { var i = a.map, m = i.id; if (a.enabled && (i.isDefine || c.push(a), !a.error)) if (!a.inited && b) g(m) ? h = e = !0 : (f.push(m), d(m)); else if (!a.inited && (a.fetched && i.isDefine) && (h = !0, !i.prefix)) return k = !1 }); if (b && f.length) return a = C("timeout", "Load timeout for modules: " +
+                f, null, f), a.contextName = i.contextName, w(a); k && v(c, function (a) { F(a, {}, {}) }); if ((!b || e) && h) if ((z || fa) && !Y) Y = setTimeout(function () { Y = 0; D() }, 50); X = !1
+            }
+        } function E(a) { s(p, a[0]) || q(m(a[0], null, !0)).init(a[1], a[2]) } function K(a) { var a = a.currentTarget || a.srcElement, e = i.onScriptLoad; a.detachEvent && !Z ? a.detachEvent("onreadystatechange", e) : a.removeEventListener("load", e, !1); e = i.onScriptError; (!a.detachEvent || Z) && a.removeEventListener("error", e, !1); return { node: a, id: a && a.getAttribute("data-requiremodule") } } function L() {
+            var a;
+            for (x() ; A.length;) { a = A.shift(); if (null === a[0]) return w(C("mismatch", "Mismatched anonymous define() module: " + a[a.length - 1])); E(a) }
+        } var X, $, i, N, Y, l = { waitSeconds: 7, baseUrl: "./", paths: {}, bundles: {}, pkgs: {}, shim: {}, config: {} }, k = {}, W = {}, aa = {}, A = [], p = {}, T = {}, ba = {}, M = 1, Q = 1; N = {
+            require: function (a) { return a.require ? a.require : a.require = i.makeRequire(a.map) }, exports: function (a) { a.usingExports = !0; if (a.map.isDefine) return a.exports ? p[a.map.id] = a.exports : a.exports = p[a.map.id] = {} }, module: function (a) {
+                return a.module ?
+                a.module : a.module = { id: a.map.id, uri: a.map.url, config: function () { return j(l.config, a.map.id) || {} }, exports: a.exports || (a.exports = {}) }
+            }
+        }; $ = function (a) { this.events = j(aa, a.id) || {}; this.map = a; this.shim = j(l.shim, a.id); this.depExports = []; this.depMaps = []; this.depMatched = []; this.pluginMaps = {}; this.depCount = 0 }; $.prototype = {
+            init: function (a, e, b, f) {
+                f = f || {}; if (!this.inited) {
+                    this.factory = e; if (b) this.on("error", b); else this.events.error && (b = t(this, function (a) { this.emit("error", a) })); this.depMaps = a && a.slice(0); this.errback =
+                    b; this.inited = !0; this.ignore = f.ignore; f.enabled || this.enabled ? this.enable() : this.check()
+                }
+            }, defineDep: function (a, e) { this.depMatched[a] || (this.depMatched[a] = !0, this.depCount -= 1, this.depExports[a] = e) }, fetch: function () { if (!this.fetched) { this.fetched = !0; i.startTime = (new Date).getTime(); var a = this.map; if (this.shim) i.makeRequire(this.map, { enableBuildCallback: !0 })(this.shim.deps || [], t(this, function () { return a.prefix ? this.callPlugin() : this.load() })); else return a.prefix ? this.callPlugin() : this.load() } }, load: function () {
+                var a =
+                this.map.url; T[a] || (T[a] = !0, i.load(this.map.id, a))
+            }, check: function () {
+                if (this.enabled && !this.enabling) {
+                    var a, e, b = this.map.id; e = this.depExports; var f = this.exports, c = this.factory; if (this.inited) if (this.error) this.emit("error", this.error); else {
+                        if (!this.defining) {
+                            this.defining = !0; if (1 > this.depCount && !this.defined) {
+                                if (G(c)) {
+                                    if (this.events.error && this.map.isDefine || h.onError !== da) try { f = i.execCb(b, c, e, f) } catch (d) { a = d } else f = i.execCb(b, c, e, f); this.map.isDefine && void 0 === f && ((e = this.module) ? f = e.exports : this.usingExports &&
+                                    (f = this.exports)); if (a) return a.requireMap = this.map, a.requireModules = this.map.isDefine ? [this.map.id] : null, a.requireType = this.map.isDefine ? "define" : "require", w(this.error = a)
+                                } else f = c; this.exports = f; if (this.map.isDefine && !this.ignore && (p[b] = f, h.onResourceLoad)) h.onResourceLoad(i, this.map, this.depMaps); y(b); this.defined = !0
+                            } this.defining = !1; this.defined && !this.defineEmitted && (this.defineEmitted = !0, this.emit("defined", this.exports), this.defineEmitComplete = !0)
+                        }
+                    } else this.fetch()
+                }
+            }, callPlugin: function () {
+                var a =
+                this.map, b = a.id, d = m(a.prefix); this.depMaps.push(d); r(d, "defined", t(this, function (f) {
+                    var d, g; g = j(ba, this.map.id); var J = this.map.name, u = this.map.parentMap ? this.map.parentMap.name : null, p = i.makeRequire(a.parentMap, { enableBuildCallback: !0 }); if (this.map.unnormalized) {
+                        if (f.normalize && (J = f.normalize(J, function (a) { return c(a, u, !0) }) || ""), f = m(a.prefix + "!" + J, this.map.parentMap), r(f, "defined", t(this, function (a) { this.init([], function () { return a }, null, { enabled: !0, ignore: !0 }) })), g = j(k, f.id)) {
+                            this.depMaps.push(f);
+                            if (this.events.error) g.on("error", t(this, function (a) { this.emit("error", a) })); g.enable()
+                        }
+                    } else g ? (this.map.url = i.nameToUrl(g), this.load()) : (d = t(this, function (a) { this.init([], function () { return a }, null, { enabled: !0 }) }), d.error = t(this, function (a) { this.inited = !0; this.error = a; a.requireModules = [b]; B(k, function (a) { 0 === a.map.id.indexOf(b + "_unnormalized") && y(a.map.id) }); w(a) }), d.fromText = t(this, function (f, c) {
+                        var g = a.name, J = m(g), k = O; c && (f = c); k && (O = !1); q(J); s(l.config, b) && (l.config[g] = l.config[b]); try { h.exec(f) } catch (j) {
+                            return w(C("fromtexteval",
+                            "fromText eval for " + b + " failed: " + j, j, [b]))
+                        } k && (O = !0); this.depMaps.push(J); i.completeLoad(g); p([g], d)
+                    }), f.load(a.name, p, d, l))
+                })); i.enable(d, this); this.pluginMaps[d.id] = d
+            }, enable: function () {
+                W[this.map.id] = this; this.enabling = this.enabled = !0; v(this.depMaps, t(this, function (a, b) {
+                    var c, f; if ("string" === typeof a) {
+                        a = m(a, this.map.isDefine ? this.map : this.map.parentMap, !1, !this.skipMap); this.depMaps[b] = a; if (c = j(N, a.id)) { this.depExports[b] = c(this); return } this.depCount += 1; r(a, "defined", t(this, function (a) {
+                            this.defineDep(b,
+                            a); this.check()
+                        })); this.errback && r(a, "error", t(this, this.errback))
+                    } c = a.id; f = k[c]; !s(N, c) && (f && !f.enabled) && i.enable(a, this)
+                })); B(this.pluginMaps, t(this, function (a) { var b = j(k, a.id); b && !b.enabled && i.enable(a, this) })); this.enabling = !1; this.check()
+            }, on: function (a, b) { var c = this.events[a]; c || (c = this.events[a] = []); c.push(b) }, emit: function (a, b) { v(this.events[a], function (a) { a(b) }); "error" === a && delete this.events[a] }
+        }; i = {
+            config: l, contextName: b, registry: k, defined: p, urlFetched: T, defQueue: A, Module: $, makeModuleMap: m,
+            nextTick: h.nextTick, onError: w, configure: function (a) {
+                a.baseUrl && "/" !== a.baseUrl.charAt(a.baseUrl.length - 1) && (a.baseUrl += "/"); var b = l.shim, c = { paths: !0, bundles: !0, config: !0, map: !0 }; B(a, function (a, b) { c[b] ? (l[b] || (l[b] = {}), V(l[b], a, !0, !0)) : l[b] = a }); a.bundles && B(a.bundles, function (a, b) { v(a, function (a) { a !== b && (ba[a] = b) }) }); a.shim && (B(a.shim, function (a, c) { H(a) && (a = { deps: a }); if ((a.exports || a.init) && !a.exportsFn) a.exportsFn = i.makeShimExports(a); b[c] = a }), l.shim = b); a.packages && v(a.packages, function (a) {
+                    var b,
+                    a = "string" === typeof a ? { name: a } : a; b = a.name; a.location && (l.paths[b] = a.location); l.pkgs[b] = a.name + "/" + (a.main || "main").replace(ja, "").replace(R, "")
+                }); B(k, function (a, b) { !a.inited && !a.map.unnormalized && (a.map = m(b)) }); if (a.deps || a.callback) i.require(a.deps || [], a.callback)
+            }, makeShimExports: function (a) { return function () { var b; a.init && (b = a.init.apply(ca, arguments)); return b || a.exports && ea(a.exports) } }, makeRequire: function (a, e) {
+                function g(f, c, d) {
+                    var j, l; e.enableBuildCallback && (c && G(c)) && (c.__requireJsBuild =
+                    !0); if ("string" === typeof f) { if (G(c)) return w(C("requireargs", "Invalid require call"), d); if (a && s(N, f)) return N[f](k[a.id]); if (h.get) return h.get(i, f, a, g); j = m(f, a, !1, !0); j = j.id; return !s(p, j) ? w(C("notloaded", 'Module name "' + j + '" has not been loaded yet for context: ' + b + (a ? "" : ". Use require([])"))) : p[j] } L(); i.nextTick(function () { L(); l = q(m(null, a)); l.skipMap = e.skipMap; l.init(f, c, d, { enabled: !0 }); D() }); return g
+                } e = e || {}; V(g, {
+                    isBrowser: z, toUrl: function (b) {
+                        var e, d = b.lastIndexOf("."), g = b.split("/")[0]; if (-1 !==
+                        d && (!("." === g || ".." === g) || 1 < d)) e = b.substring(d, b.length), b = b.substring(0, d); return i.nameToUrl(c(b, a && a.id, !0), e, !0)
+                    }, defined: function (b) { return s(p, m(b, a, !1, !0).id) }, specified: function (b) { b = m(b, a, !1, !0).id; return s(p, b) || s(k, b) }
+                }); a || (g.undef = function (b) { x(); var c = m(b, a, !0), e = j(k, b); d(b); delete p[b]; delete T[c.url]; delete aa[b]; U(A, function (a, c) { a[0] === b && A.splice(c, 1) }); e && (e.events.defined && (aa[b] = e.events), y(b)) }); return g
+            }, enable: function (a) { j(k, a.id) && q(a).enable() }, completeLoad: function (a) {
+                var b,
+                c, f = j(l.shim, a) || {}, d = f.exports; for (x() ; A.length;) { c = A.shift(); if (null === c[0]) { c[0] = a; if (b) break; b = !0 } else c[0] === a && (b = !0); E(c) } c = j(k, a); if (!b && !s(p, a) && c && !c.inited) { if (l.enforceDefine && (!d || !ea(d))) return g(a) ? void 0 : w(C("nodefine", "No define call for " + a, null, [a])); E([a, f.deps || [], f.exportsFn]) } D()
+            }, nameToUrl: function (a, b, c) {
+                var f, d, g; (f = j(l.pkgs, a)) && (a = f); if (f = j(ba, a)) return i.nameToUrl(f, b, c); if (h.jsExtRegExp.test(a)) f = a + (b || ""); else {
+                    f = l.paths; a = a.split("/"); for (d = a.length; 0 < d; d -= 1) if (g = a.slice(0,
+                    d).join("/"), g = j(f, g)) { H(g) && (g = g[0]); a.splice(0, d, g); break } f = a.join("/"); f += b || (/^data\:|\?/.test(f) || c ? "" : ".js"); f = ("/" === f.charAt(0) || f.match(/^[\w\+\.\-]+:/) ? "" : l.baseUrl) + f
+                } return l.urlArgs ? f + ((-1 === f.indexOf("?") ? "?" : "&") + l.urlArgs) : f
+            }, load: function (a, b) { h.load(i, a, b) }, execCb: function (a, b, c, d) { return b.apply(d, c) }, onScriptLoad: function (a) { if ("load" === a.type || ka.test((a.currentTarget || a.srcElement).readyState)) P = null, a = K(a), i.completeLoad(a.id) }, onScriptError: function (a) {
+                var b = K(a); if (!g(b.id)) return w(C("scripterror",
+                "Script error for: " + b.id, a, [b.id]))
+            }
+        }; i.require = i.makeRequire(); return i
+    } var h, x, y, D, K, E, P, L, q, Q, la = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, ma = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, R = /\.js$/, ja = /^\.\//; x = Object.prototype; var M = x.toString, ga = x.hasOwnProperty, ia = Array.prototype.splice, z = !!("undefined" !== typeof window && "undefined" !== typeof navigator && window.document), fa = !z && "undefined" !== typeof importScripts, ka = z && "PLAYSTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/,
+    Z = "undefined" !== typeof opera && "[object Opera]" === opera.toString(), F = {}, r = {}, S = [], O = !1; if ("undefined" === typeof define) {
+        if ("undefined" !== typeof requirejs) { if (G(requirejs)) return; r = requirejs; requirejs = void 0 } "undefined" !== typeof require && !G(require) && (r = require, require = void 0); h = requirejs = function (b, c, d, g) { var u, m = "_"; !H(b) && "string" !== typeof b && (u = b, H(c) ? (b = c, c = d, d = g) : b = []); u && u.context && (m = u.context); (g = j(F, m)) || (g = F[m] = h.s.newContext(m)); u && g.configure(u); return g.require(b, c, d) }; h.config = function (b) { return h(b) };
+        h.nextTick = "undefined" !== typeof setTimeout ? function (b) { setTimeout(b, 4) } : function (b) { b() }; require || (require = h); h.version = "2.1.11"; h.jsExtRegExp = /^\/|:|\?|\.js$/; h.isBrowser = z; x = h.s = { contexts: F, newContext: ha }; h({}); v(["toUrl", "undef", "defined", "specified"], function (b) { h[b] = function () { var c = F._; return c.require[b].apply(c, arguments) } }); if (z && (y = x.head = document.getElementsByTagName("head")[0], D = document.getElementsByTagName("base")[0])) y = x.head = D.parentNode; h.onError = da; h.createNode = function (b) {
+            var c =
+            b.xhtml ? document.createElementNS("http://www.w3.org/1999/xhtml", "html:script") : document.createElement("script"); c.type = b.scriptType || "text/javascript"; c.charset = "utf-8"; c.async = !0; return c
+        }; h.load = function (b, c, d) {
+            var g = b && b.config || {}; if (z) return g = h.createNode(g, c, d), g.setAttribute("data-requirecontext", b.contextName), g.setAttribute("data-requiremodule", c), g.attachEvent && !(g.attachEvent.toString && 0 > g.attachEvent.toString().indexOf("[native code")) && !Z ? (O = !0, g.attachEvent("onreadystatechange", b.onScriptLoad)) :
+            (g.addEventListener("load", b.onScriptLoad, !1), g.addEventListener("error", b.onScriptError, !1)), g.src = d, L = g, D ? y.insertBefore(g, D) : y.appendChild(g), L = null, g; if (fa) try { importScripts(d), b.completeLoad(c) } catch (j) { b.onError(C("importscripts", "importScripts failed for " + c + " at " + d, j, [c])) }
+        }; z && !r.skipDataMain && U(document.getElementsByTagName("script"), function (b) {
+            y || (y = b.parentNode); if (K = b.getAttribute("data-main")) return q = K, r.baseUrl || (E = q.split("/"), q = E.pop(), Q = E.length ? E.join("/") + "/" : "./", r.baseUrl =
+            Q), q = q.replace(R, ""), h.jsExtRegExp.test(q) && (q = K), r.deps = r.deps ? r.deps.concat(q) : [q], !0
+        }); define = function (b, c, d) {
+            var g, h; "string" !== typeof b && (d = c, c = b, b = null); H(c) || (d = c, c = null); !c && G(d) && (c = [], d.length && (d.toString().replace(la, "").replace(ma, function (b, d) { c.push(d) }), c = (1 === d.length ? ["require"] : ["require", "exports", "module"]).concat(c))); if (O) {
+                if (!(g = L)) P && "interactive" === P.readyState || U(document.getElementsByTagName("script"), function (b) { if ("interactive" === b.readyState) return P = b }), g = P; g && (b ||
+                (b = g.getAttribute("data-requiremodule")), h = F[g.getAttribute("data-requirecontext")])
+            } (h ? h.defQueue : S).push([b, c, d])
+        }; define.amd = { jQuery: !0 }; h.exec = function (b) { return eval(b) }; h(r)
+    }
+})(this);
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Mobile.css b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Mobile.css
new file mode 100755
index 0000000000000000000000000000000000000000..b44dc2c378a85ae3c22cb660bde1b4d533864e2c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Mobile.css
@@ -0,0 +1,10 @@
+/*<meta />*/
+
+@media only screen and (max-width: 767px)
+{
+	.search-bar
+	{
+		width: 100%;
+	}
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Styles.css b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Styles.css
new file mode 100755
index 0000000000000000000000000000000000000000..9de968024e6712e98dd71d523ee6e994ff08f2d9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Styles.css
@@ -0,0 +1,219 @@
+/* Search */
+/* Fix for safari/ios */
+input[type="search"] 
+{
+    -webkit-appearance: none;
+}
+
+.search, .search-bar
+{
+	width: 100%;
+    position: relative;
+	color: #DADADA;
+    margin: 0 auto;
+}
+
+.search-field
+{
+    text-align: left;
+    width: 100%;
+    height: 2em;
+    padding-left: 10px;
+    margin: 0;
+	box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+    border: none;
+    border-radius: 25px;
+	font: inherit;
+	background: #FFFFFF;
+    color: #5F5F5F;
+    position: relative;
+}
+
+    .search-field::-webkit-search-cancel-button
+    {
+        display: none;
+    }
+
+.search-filter
+{
+	float: left;
+	box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	background: #5F5F5F;
+	line-height: 2em;
+	padding-right: 5px;
+	cursor: pointer;
+	height: 2em;
+	width: 45px;
+    background: #ffffff url('../Images/FilterOutline.png') no-repeat center center;
+}
+
+    .search-filter.selected
+    {
+        background-image: url('../Images/Filter.png');
+        background-repeat: no-repeat;
+        background-position: center center;
+    }
+   
+.search-filter.open
+{
+    background-repeat: no-repeat;
+    background-position: center center;
+}
+
+.search-filter-wrapper
+{
+	display: none;
+	position: absolute;
+    top: 0;
+    right: 56px;
+}
+
+.search-filter-content
+{
+	display: none;
+	-webkit-border-radius: 0 0 4px 4px;
+	-moz-border-radius: 0 0 4px 4px;
+	border-radius: 0 0 4px 4px;
+	position: absolute;
+	right: 0;
+    top: 2em;
+	line-height: normal;
+	text-align: left;
+	overflow: auto;
+	z-index: 1;
+    color: #888888;
+	background-color: #ffffff;
+    white-space: nowrap;
+}
+
+.search-filter-content ul
+{
+	list-style: none;
+	margin: 0;
+	padding: 6px;
+}
+
+.search-filter-content ul li
+{
+	padding: 5px;
+    margin: 0;
+}
+
+.search-filter-content ul li:hover
+{
+	color: #000000;
+	background-color: #ffffff;
+}
+
+.search-submit-wrapper
+{
+	position: absolute;
+    top: 0;
+    right: 0;	
+	tooltip: Search;
+}
+
+.search-submit
+{
+	width: 56px;
+    height: 2em;
+	border-top-right-radius: 25px;
+	border-bottom-right-radius: 25px;
+	border-top-left-radius: 0px;
+	border-bottom-left-radius: 0px;
+	background: #bed230 url('../Images/SearchIcon.png') no-repeat center center;
+	cursor: pointer;
+    box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+}
+
+/* Menu Styles */
+ul.menu a
+{
+    text-decoration: none;
+    outline: none;
+    color: #000;
+}
+
+ul.menu, ul.menu ul, ul.menu li
+{
+    list-style: none;
+    margin: 0;
+}
+
+    ul.menu, ul.menu ul, ul.menu li
+    {
+        padding: 0;
+    }
+
+ul.menu li > a
+{
+    display: block;
+}
+
+    ul.menu li > a.selected
+    {
+        font-weight: bold;
+    }
+
+/* Search Results Styles */
+#results-heading
+{
+    margin-bottom: 20px;
+}
+
+#resultList
+{
+    padding-left: 0;
+    margin: 0;
+}
+#resultList h3.title a
+{
+    text-decoration: none;
+    font-weight: normal;
+}
+
+#resultList h3.title
+{
+    margin-bottom: 2px;
+}
+
+#resultList li
+{
+    list-style: none;
+    margin-bottom: 16px;
+}
+
+#pagination
+{
+    height: 2.5em;
+    line-height: 2.5em;
+}
+
+#pagination a
+{
+    min-width: 34px;
+    cursor: pointer;
+    border: solid 1px #fafafc;
+    color: #0185D1;
+    font-size: 1em;
+    margin: 20px 5px;
+    padding: 2px 8px;
+    text-decoration: none;
+}
+
+#pagination a#selected 
+{
+    font-weight: bold;
+    border-top: solid 1px #e2e2e6;
+}
+
+#pagination a:hover
+{
+    border-top: solid 1px #e2e2e6;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Tablet.css b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Tablet.css
new file mode 100755
index 0000000000000000000000000000000000000000..aba0f2d6cd9fef80af5fa98b11e81102c2cb9623
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Components/Tablet.css
@@ -0,0 +1,12 @@
+/*<meta />*/
+
+@media only screen and (max-width: 1279px)
+{
+	/* Search Styles */
+
+	.search-filter
+	{
+		font-size: 1em;
+	}
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/DropDownClosed.gif b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/DropDownClosed.gif
new file mode 100755
index 0000000000000000000000000000000000000000..da2151f408233007681c713fe298fb6d9c36b631
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/DropDownClosed.gif differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/DropDownOpen.gif b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/DropDownOpen.gif
new file mode 100755
index 0000000000000000000000000000000000000000..8bfd2b8d3bb11c3435795f74212eb79bca4d5b75
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/DropDownOpen.gif differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/Filter.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/Filter.png
new file mode 100755
index 0000000000000000000000000000000000000000..0fb33e1f5f731c7101edb9f42c4917186086bdc5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/Filter.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/FilterOutline.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/FilterOutline.png
new file mode 100755
index 0000000000000000000000000000000000000000..eef8b7116cadfa4edd7ae3cd90ec74c4fcb4674c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/FilterOutline.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/MCSlider_controls.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/MCSlider_controls.png
new file mode 100755
index 0000000000000000000000000000000000000000..28918dde0ea9ef6564eb24646b6ff79321fab9b4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/MCSlider_controls.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/MCSlider_loader.gif b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/MCSlider_loader.gif
new file mode 100755
index 0000000000000000000000000000000000000000..f4ff40edab88c7df20db106d35c641723d125f56
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/MCSlider_loader.gif differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/SearchIcon.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/SearchIcon.png
new file mode 100755
index 0000000000000000000000000000000000000000..a0d35296e850c499bf267a4d16b3bc5c6d040f5f
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/SearchIcon.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/collapse.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/collapse.png
new file mode 100755
index 0000000000000000000000000000000000000000..ecc960c8877d1a162375171e2789fb3055ad594b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/collapse.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/edit-profile.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/edit-profile.png
new file mode 100755
index 0000000000000000000000000000000000000000..24fc26bc1ba5900d54b575ad13675b229ddd3098
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/edit-profile.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/expand.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/expand.png
new file mode 100755
index 0000000000000000000000000000000000000000..8aa5eaa91bd59546c5677c7d074c33d1b853cd61
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/expand.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/help-control.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/help-control.png
new file mode 100755
index 0000000000000000000000000000000000000000..dbd96f552be978745e351a672c6c5549f2d35a06
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/help-control.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/highlight.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/highlight.png
new file mode 100755
index 0000000000000000000000000000000000000000..842fb9f80fcad7bfc6ccee4c76006cab1a9cc5a5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/highlight.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/loading.gif b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/loading.gif
new file mode 100755
index 0000000000000000000000000000000000000000..cd7423f5a21220f0d0a4b74afe146992eeebf3b1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/loading.gif differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/login.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/login.png
new file mode 100755
index 0000000000000000000000000000000000000000..1229d0ad969460a4990f65c3ef4588517ed82cb4
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/login.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/minus.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/minus.png
new file mode 100755
index 0000000000000000000000000000000000000000..982177440370ce4c2094e589887c6e7b7fd02bf1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/minus.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/navigate-next.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/navigate-next.png
new file mode 100755
index 0000000000000000000000000000000000000000..09f364fbf508ab8daa615beb7fb14e7644bd9093
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/navigate-next.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/navigate-previous.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/navigate-previous.png
new file mode 100755
index 0000000000000000000000000000000000000000..6613cea7fdf8129a19f2dcdf5f48caf57ff9158e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/navigate-previous.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/plus.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/plus.png
new file mode 100755
index 0000000000000000000000000000000000000000..9e6a4cfa0cc5e129eb2955f2b731920f5118d505
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/plus.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/printer.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/printer.png
new file mode 100755
index 0000000000000000000000000000000000000000..a12938a812f46dfd307c8cc601cd310f98f2ceda
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/printer.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/star-empty.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/star-empty.png
new file mode 100755
index 0000000000000000000000000000000000000000..fdb0de71a59ab11cc5f59d09fd87597b6d3b0e25
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/star-empty.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/star-full.png b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/star-full.png
new file mode 100755
index 0000000000000000000000000000000000000000..435177c447c2eb1cc0662b5717272dea534ca114
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/star-full.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/transparent.gif b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/transparent.gif
new file mode 100755
index 0000000000000000000000000000000000000000..9cd97c231461c6a92eace03e906900b8ed35efbd
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Images/transparent.gif differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Slideshow.css b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Slideshow.css
new file mode 100755
index 0000000000000000000000000000000000000000..117910444ccb89a84567f0a80d9be857d0030fc6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Slideshow.css
@@ -0,0 +1,237 @@
+/**
+ * BxSlider v4.0 - Fully loaded, responsive content slider
+ * http://bxslider.com
+ *
+ * Written by: Steven Wanderski, 2012
+ * http://stevenwanderski.com
+ * (while drinking Belgian ales and listening to jazz)
+ *
+ * CEO and founder of bxCreative, LTD
+ * http://bxcreative.com
+ */
+
+
+/** RESET AND LAYOUT
+===================================*/
+
+.mc-wrapper {
+	position: relative;
+	margin: 0 auto 60px;
+	padding: 0;
+	zoom: 1;
+    clear: both;
+}
+
+/** THEME
+===================================*/
+
+.mc-wrapper .mc-viewport {
+    box-sizing: content-box; 
+}
+
+.mc-wrapper .mc-pager,
+.mc-wrapper .mc-controls-auto {
+	position: absolute;
+	bottom: -30px;
+	width: 100%;
+}
+
+.mc-wrapper img,
+.mc-wrapper object,
+.mc-wrapper table{ 
+    max-width: 100%;
+    word-wrap: break-word;
+    table-layout: fixed;
+}
+
+div.MCSlide{
+    word-wrap: break-word;
+    visibility: hidden;
+    -webkit-margin-collapse: separate;
+}
+
+/* LOADER */
+
+.mc-wrapper .mc-loading {
+	min-height: 50px;
+    background-image: url(Images/MCSlider_loader.gif);
+    background-repeat:no-repeat;
+    background-color:#fff;
+    background-position: center center;
+	height: 100%;
+	width: 100%;
+	position: absolute;
+	top: 0;
+	left: 0;
+	z-index: auto;
+}
+
+/* PAGER */
+
+.mc-wrapper .mc-pager {
+	text-align: center;
+	font-size: .85em;
+	font-family: Arial;
+	font-weight: bold;
+	color: #666;
+	padding-top: 20px;
+}
+
+.mc-wrapper .mc-pager .mc-pager-item,
+.mc-wrapper .mc-controls-auto .mc-controls-auto-item {
+	display: inline-block;
+	zoom: 1;
+}
+
+.mc-wrapper .mc-pager.mc-default-pager a {
+	background: #666;
+	text-indent: -9999px;
+	display: block;
+	width: 10px;
+	height: 10px;
+	margin: 0 5px;
+	outline: 0;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	border-radius: 5px;
+    cursor: pointer;
+}
+
+.mc-wrapper .mc-pager.mc-default-pager a:hover,
+.mc-wrapper .mc-pager.mc-default-pager a.active {
+	background: #000;
+}
+
+/* DIRECTION CONTROLS (NEXT / PREV) */
+
+.mc-wrapper .mc-prev {
+	/*left: 10px;*/
+    background-image: url(Images/MCSlider_controls.png);
+    background-repeat:no-repeat;
+    background-position: 0 -32px;
+}
+
+.mc-wrapper .mc-next {
+	/*right: 10px;*/
+    background-image: url(Images/MCSlider_controls.png);
+    background-repeat:no-repeat;
+    background-position: -43px -32px;
+}
+
+.mc-wrapper .mc-prev:hover {
+	background-position: 0 0;
+}
+
+.mc-wrapper .mc-next:hover {
+	background-position: -43px 0;
+}
+
+.mc-wrapper .mc-controls-direction a {
+	position: absolute;
+	top: 50%;
+	margin-top: -16px;
+	outline: 0;
+	width: 32px;
+	height: 32px;
+	text-indent: -9999px;
+	z-index: auto;
+    cursor: pointer;
+}
+
+.mc-wrapper .mc-controls-direction a.disabled {
+	display: none;
+}
+
+/* AUTO CONTROLS (START / STOP) */
+
+.mc-wrapper .mc-controls-auto {
+	text-align: center;
+}
+
+.mc-wrapper .mc-controls-auto .mc-start {
+	display: block;
+	text-indent: -9999px;
+	width: 10px;
+	height: 11px;
+	outline: 0;
+    background-image: url(Images/MCSlider_controls.png);
+    background-repeat:no-repeat;
+    background-position: -86px -11px;
+	margin: 0 3px;
+    cursor: pointer;
+}
+
+.mc-wrapper .mc-controls-auto .mc-start:hover,
+.mc-wrapper .mc-controls-auto .mc-start.active {
+	background-position: -86px 0;
+}
+
+.mc-wrapper .mc-controls-auto .mc-stop {
+	display: block;
+	text-indent: -9999px;
+	width: 9px;
+	height: 11px;
+	outline: 0;
+    background-image: url(Images/MCSlider_controls.png);
+    background-repeat:no-repeat;
+    background-position: -86px -44px;
+	margin: 0 3px;
+    cursor: pointer;
+}
+
+.mc-wrapper .mc-controls-auto .mc-stop:hover,
+.mc-wrapper .mc-controls-auto .mc-stop.active {
+	background-position: -86px -33px;
+}
+
+/* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */
+
+.mc-wrapper .mc-controls.mc-has-controls-auto.mc-has-pager .mc-pager {
+	text-align: left;
+	width: 100%;
+}
+
+.mc-wrapper .mc-controls.mc-has-controls-auto.mc-has-pager .mc-controls-auto {
+	right: 0;
+	width: 35px;
+}
+
+/* IMAGE CAPTIONS */
+
+.mc-wrapper .mc-caption {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	background: #666\9;
+	background: rgba(80, 80, 80, 0.75);
+	width: 100%;
+}
+
+.mc-wrapper .mc-caption div {
+	color: #fff;
+	font-family: Arial;
+	display: block;
+	font-size: .85em;
+	padding: 10px;
+}
+
+/* SLIDE THUMBNAILS */
+
+.mc-thumbnail {
+	text-align: center;
+	margin-top: -30px;
+}
+
+.mc-thumbnail a img {
+	margin: 0 3px;
+	padding: 3px;
+	border: solid 1px #ccc;
+	width: 50px;
+    cursor: pointer;
+}
+
+.mc-thumbnail a:hover img,
+.mc-thumbnail a.active img {
+	border: solid 1px #5280DD;
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/TextEffects.css b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/TextEffects.css
new file mode 100755
index 0000000000000000000000000000000000000000..d8b61b7a84a07e18e09455185e8366e34f63c142
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/TextEffects.css
@@ -0,0 +1,859 @@
+/*<meta />*/
+
+.transparent-gif	/* Ensures resource is copied over */
+{
+	background-image: url("Images/transparent.gif");
+}
+
+/* Expanding */
+
+.MCExpanding
+{
+	text-decoration: none;
+}
+
+.MCExpanding_Open
+{
+	
+}
+
+.MCExpanding_Closed
+{
+	
+}
+
+.MCExpandingHead
+{
+	
+}
+
+.MCExpandingHotSpot
+{
+	cursor: pointer;
+	background-position: left center;
+	background-repeat: no-repeat;
+	padding-left: 18px;
+}
+
+.MCExpanding_Image_Icon
+{
+	border: none;
+}
+
+.MCExpanding_Open .MCExpandingHotSpot
+{
+	background-image: url("Images/minus.png");
+}
+
+.MCExpanding_Closed .MCExpandingHotSpot
+{
+	background-image: url("Images/plus.png");
+}
+
+.MCExpanding_Closed a.MCExpandingHotSpot,
+.MCExpanding_Open a.MCExpandingHotSpot
+{
+	text-decoration: none;
+}
+
+.MCExpandingBody
+{
+	vertical-align: bottom;
+}
+
+.MCExpanding_Open .MCExpandingBody
+{
+	display: inline-block;
+}
+
+.MCExpanding_Closed .MCExpandingBody
+{
+	display: none;
+}
+
+/**/
+/* DropDown */
+
+.MCDropDown
+{
+	
+}
+
+.MCDropDown_Open
+{
+	
+}
+
+.MCDropDown_Closed
+{
+	
+}
+
+.MCDropDownHead
+{
+	display: block;
+}
+
+.MCDropDownHotSpot
+{
+	cursor: pointer;
+	background-position: left center;
+	background-repeat: no-repeat;
+	padding-left: 18px;
+}
+
+.MCDropDown_Open .MCDropDownHotSpot
+{
+	background-image: url("Images/minus.png");
+}
+
+.MCDropDown_Closed .MCDropDownHotSpot
+{
+	background-image: url("Images/plus.png");
+}
+
+.MCDropDown_Closed a.MCDropDownHotSpot,
+.MCDropDown_Open a.MCDropDownHotSpot
+{
+	text-decoration: none;
+}
+
+.MCDropDownBody
+{
+	margin-left: 18px;
+	overflow: hidden;
+}
+
+.MCDropDown_Open .MCDropDownBody
+{
+	display: block;
+}
+
+.MCDropDown_Closed .MCDropDownBody
+{
+	display: none;
+}
+
+.MCDropDown_Image_Icon
+{
+	border: none;
+}
+
+/**/
+/* Toggler */
+
+.MCToggler
+{
+	text-decoration: none;
+}
+
+.MCToggler_Open
+{
+	
+}
+
+.MCToggler_Closed
+{
+	
+}
+
+.MCTogglerHead
+{
+	
+}
+
+.MCTogglerHotSpot
+{
+	cursor: pointer;
+	background-position: left center;
+	background-repeat: no-repeat;
+	padding-left: 18px;
+}
+
+.MCToggler_Open.MCTogglerHotSpot
+{
+	background-image: url("Images/minus.png");
+}
+
+.MCToggler_Closed.MCTogglerHotSpot
+{
+	background-image: url("Images/plus.png");
+}
+
+a.MCToggler_Closed.MCTogglerHotSpot,
+a.MCToggler_Open.MCTogglerHotSpot
+{
+	text-decoration: none;
+}
+
+.MCToggler_Image_Icon
+{
+	border: none;
+}
+
+/**/
+/* Text Popup */
+
+.MCTextPopup
+{
+	cursor: pointer;
+	text-decoration: none;
+}
+
+.MCTextPopupHotSpot
+{
+	cursor: pointer;
+	background-repeat: no-repeat;
+}
+
+.MCTextPopup_Open.MCTextPopupHotSpot
+{
+	
+}
+
+.MCTextPopup_Closed.MCTextPopupHotSpot
+{
+	
+}
+
+.MCTextPopupBody
+{
+	color: #EBEBEB;
+	font-weight: normal;
+	line-height: 1.5em;
+	background-color: #000000;
+	width: 200px;
+	padding: 11px 15px;
+	-webkit-box-shadow: 0 4px 10px #8B8B8B;
+	-moz-box-shadow: 0 4px 10px #8B8B8B;
+	box-shadow: 0px 2px 8px 0px rgba(0,0,0,.4);
+	border: none !important;
+	-webkit-border-radius: 4px;
+	-moz-border-radius: 4px;
+	border-radius: 4px;
+	position: absolute;
+	left: 20px;
+	white-space: normal;
+	filter: alpha( opacity = 0 );
+	opacity: 0.0;
+	z-index: 10001;
+}
+
+.MCTextPopup_Open .MCTextPopupBody
+{
+	display: block;
+}
+
+.MCTextPopup_Closed .MCTextPopupBody
+{
+	display: none;
+}
+
+.MCTextPopupArrow
+{
+	content: "";
+	border: solid 13px transparent;
+	border-bottom-color: #DCDCDC;
+	border-bottom-width: 13px;
+	border-top: none;
+	position: absolute;
+	top: 0;
+	left: 50%;
+	margin-top: -13px;
+	margin-left: -13px;
+	width: 0;
+	height: 0;
+}
+
+.MCTextPopupBodyBottom .MCTextPopupArrow
+{
+	border: solid 13px transparent;
+	border-top-color: #000000;
+	border-top-width: 13px;
+	border-bottom: none;
+	top: auto;
+	bottom: -13px;
+}
+
+/**/
+
+.link-list-popup
+{
+	color: #707070;
+	line-height: normal;
+	background-color: #FFF;
+	-webkit-border-radius: 4px;
+	-moz-border-radius: 4px;
+	border-radius: 4px;
+	-webkit-box-shadow: 0 4px 10px #8B8B8B;
+	-moz-box-shadow: 0 4px 10px #8B8B8B;
+	box-shadow: 0 4px 10px #8B8B8B;
+	position: absolute;
+	z-index: 50;
+}
+
+.link-list-popup ul
+{
+	list-style: none;
+	margin: 0;
+	padding: 6px;
+}
+
+.link-list-popup ul li
+{
+	padding: 5px;
+	cursor: pointer;
+}
+
+.link-list-popup ul li:hover
+{
+	color: #000;
+	background-color: #E5EFF7;
+}
+
+.link-list-popup ul li a
+{
+	color: inherit;
+	text-decoration: none;
+}
+
+/* buttons */
+
+.buttons
+{
+	position: static;
+}
+
+.templateTopic .buttons
+{
+	display: none;
+}
+
+.toolbar-buttons
+{
+	position: absolute;
+	top: 7px;
+	left: 9px;
+	right: 9px;
+}
+
+.button-group-container-left
+{
+	float: left;
+	margin-left: -4px;
+}
+
+.button-group-container-right
+{
+	float: right;
+	margin-right: -4px;
+}
+
+.button-group
+{
+	float: left;
+}
+
+.button-separator
+{
+	background-color: #E1E1E1;
+	float: left;
+	margin: 0 4px;
+	height: 24px;
+	width: 1px;
+}
+
+.button
+{
+	width: 22px;
+	height: 22px;
+	line-height: 22px;
+	position: relative;
+	/* need this to workaround CSS3PIE known issue: http://css3pie.com/documentation/known-issues/#z-index */
+	margin: 0px 4px;
+	float: left;
+	cursor: pointer;
+	border: solid 1px #E1E1E1;
+	-webkit-border-radius: 3px;
+	-moz-border-radius: 3px;
+	border-radius: 3px;
+	-webkit-box-shadow: 0px 1px 0px 0px #FFF;
+	-moz-box-shadow: 0px 1px 0px 0px #FFF;
+	box-shadow: 0px 1px 0px 0px #FFF;
+	-moz-box-sizing: content-box;
+	-webkit-box-sizing: content-box;
+	box-sizing: content-box;
+	padding: 0;
+}
+
+.button[disabled],
+.button.current-topic-index-button.disabled
+{
+	opacity: 0.5;
+}
+
+.button.previous-topic-button
+{
+	background: #ECECEC url("Images/navigate-previous.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/navigate-previous.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/navigate-previous.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/navigate-previous.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/navigate-previous.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/navigate-previous.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/navigate-previous.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/navigate-previous.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+.button.next-topic-button
+{
+	background: #ECECEC url("Images/navigate-next.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/navigate-next.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/navigate-next.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/navigate-next.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/navigate-next.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/navigate-next.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/navigate-next.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/navigate-next.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+.button.current-topic-index-button
+{
+	color: #6C6C6C;
+	text-shadow: 0 1px 0 #FFF;
+	width: auto;
+	padding: 0 12px;
+	font-size: 11px;
+	font-weight: bold;
+}
+
+.button.current-topic-index-button.disabled
+{
+	display: none;
+}
+
+.button.expand-all-button
+{
+	background: #ECECEC url("Images/expand.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/expand.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/expand.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/expand.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/expand.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/expand.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/expand.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/expand.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+.button.collapse-all-button
+{
+	background: #ECECEC url("Images/collapse.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/collapse.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/collapse.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/collapse.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/collapse.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/collapse.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/collapse.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/collapse.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+.button.print-button
+{
+	background: #ECECEC url("Images/printer.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/printer.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/printer.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/printer.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/printer.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/printer.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/printer.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/printer.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+.button.remove-highlight-button
+{
+	background: #ECECEC url("Images/highlight.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/highlight.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/highlight.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/highlight.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/highlight.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/highlight.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/highlight.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/highlight.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+.loading
+{
+	background-image: url("Images/loading.gif");
+	background-repeat: no-repeat;
+	background-position: center;
+}
+
+.loading .button.star-button
+{
+	visibility: hidden;
+}
+
+.button.star-button
+{
+	border: none;
+	width: 16px;
+	margin: 0px 2px;
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+
+.button.topic-ratings-button
+{
+	background: url("Images/star-full.png") no-repeat center center;
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+
+.button.topic-ratings-empty-button
+{
+	background: url("Images/star-empty.png") no-repeat center center;
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+
+.button.login-button
+{
+	background: #ECECEC url("Images/login.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/login.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/login.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/login.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/login.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/login.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/login.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/login.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+.button.edit-user-profile-button
+{
+	background: #ECECEC url("Images/edit-profile.png") no-repeat center center;
+	/* Old browsers */
+	background: url("Images/edit-profile.png") no-repeat center center, -moz-linear-gradient(top, #FFF 0%, #ECECEC 100%);
+	/* FF3.6+ */
+	background: url("Images/edit-profile.png") no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF), color-stop(100%,#ECECEC));
+	/* Chrome,Safari4+ */
+	background: url("Images/edit-profile.png") no-repeat center center, -webkit-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Chrome10+,Safari5.1+ */
+	background: url("Images/edit-profile.png") no-repeat center center, -o-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* Opera11.10+ */
+	background: url("Images/edit-profile.png") no-repeat center center, -ms-linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* IE10+ */
+	background: url("Images/edit-profile.png") no-repeat center center, linear-gradient(top, #FFF 0%,#ECECEC 100%);
+	/* W3C */
+	-pie-background: url("Skins/Default/Stylesheets/Images/edit-profile.png") no-repeat center center, linear-gradient(#FFF, #ECECEC);
+	/*PIE*/
+}
+
+/**/
+/* Feedback */
+
+.pulse-frame
+{
+	width: 100%;
+	border: none;
+	margin-top: 17px;
+	visibility: visible;
+	height: 1000px;
+}
+
+.feedback-comments-wrapper.responsive,
+.feedback-comments-wrapper.responsive .pulse-frame,
+.pulse-frame.pulse-loading
+{
+	visibility: hidden;
+	height: 1px;
+}
+
+.feedback-comments-wrapper.hidden
+{
+	display: none;
+}
+
+.feedback-comments-wrapper .comments-header
+{
+	color: #749AB6;
+	font-size: 2em;
+	font-weight: bold;
+	margin: 17px 0;
+}
+
+.comments
+{
+	
+}
+
+.comments .comment
+{
+	border-bottom: 2px solid #ddd;
+	padding: 10px;
+	max-width: 400px;
+}
+
+.comments .comment:last-child
+{
+	border-bottom: none;
+}
+
+.comments .comment .comment
+{
+	margin-left: 45px;
+}
+
+.comments .username
+{
+	color: #749AB6;
+	font-family: Georgia;
+	font-weight: bold;
+	font-style: italic;
+	margin-right: 10px;
+	display: none;
+}
+
+html.feedback-anonymous-enabled .comments .username
+{
+	display: inline;
+}
+
+.comments .timestamp
+{
+	color: #888;
+	font-family: Georgia;
+	font-size: 11px;
+	font-weight: normal;
+	font-style: italic;
+}
+
+.comments .subject
+{
+	color: #888;
+	font-weight: bold;
+}
+
+.comments .body
+{
+	
+}
+
+.comment-form-wrapper
+{
+	
+}
+
+.comment-form-wrapper .username-field,
+.comment-form-wrapper .subject-field
+{
+	width: 200px;
+	padding: 5px;
+	border: 1px solid #ccc;
+	-moz-border-radius: 4px;
+	-webkit-border-radius: 4px;
+	border-radius: 4px;
+}
+
+.comment-form-wrapper .username-field
+{
+	display: none;
+}
+
+html.feedback-anonymous-enabled .comment-form-wrapper .username-field
+{
+	display: inline-block;
+}
+
+.comment-form-wrapper .body-field
+{
+	font-family: Arial;
+	width: 406px;
+	height: 60px;
+	padding: 10px;
+	border: 1px solid #ccc;
+	-moz-border-radius: 4px;
+	-webkit-border-radius: 4px;
+	border-radius: 4px;
+}
+
+.comment-form-wrapper .field-error
+{
+	border: solid 1px #F00;
+	background-color: #FEE7E7;
+}
+
+.comment-form-wrapper .comment-submit
+{
+	
+}
+
+/**/
+
+.mc-template
+{
+	display: none;
+}
+
+#mc-background-tint
+{
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	filter: alpha( opacity = 0 );
+	opacity: 0.0;
+}
+
+#contentBody #mc-background-tint
+{
+	position: absolute;
+}
+
+#mc-background-tint.light
+{
+	background-color: #FFF;
+}
+
+#mc-background-tint.dark
+{
+	background-color: #000;
+}
+
+/* Contain floats: nicolasgallagher.com/micro-clearfix-hack/ */
+
+.clearfix:before,
+.clearfix:after
+{
+	content: "";
+	display: table;
+}
+
+.clearfix:after
+{
+	clear: both;
+}
+
+.clearfix
+{
+	zoom: 1;
+}
+
+span.SearchHighlight
+{
+	
+}
+
+span.SearchHighlight1
+{
+	
+}
+
+span.SearchHighlight2
+{
+	
+}
+
+span.SearchHighlight3
+{
+	
+}
+
+span.SearchHighlight4
+{
+	
+}
+
+span.SearchHighlight5
+{
+	
+}
+
+span.SearchHighlight6
+{
+	
+}
+
+span.SearchHighlight7
+{
+	
+}
+
+span.SearchHighlight8
+{
+	
+}
+
+span.SearchHighlight9
+{
+	
+}
+
+span.SearchHighlight10
+{
+	
+}
+
+.highlightGlossary,
+.highlightIndex
+{
+	font-weight: bold;
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Topic.css b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Topic.css
new file mode 100755
index 0000000000000000000000000000000000000000..b9cb033a0cc437c0b7b1d0acfb2f7724c6d3ad7a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Default/Stylesheets/Topic.css
@@ -0,0 +1,280 @@
+/*<meta />*/
+
+/* Prevents Safari in landscape orientation from zooming in on text*/
+
+body
+{
+	-ms-text-size-adjust: 100%;
+	-moz-text-size-adjust: 100%;
+	-webkit-text-size-adjust: 100%;
+	font-size: 16px;
+}
+
+/* Css to prevent Chrome's automatic border around active fields*/
+
+*:focus
+{
+	outline: none;
+}
+
+/* Default css class for hiding element*/
+
+.hidden
+{
+	display: none;
+}
+
+/* Topic Popup */
+
+.MCTopicPopup
+{
+	text-decoration: none;
+}
+
+.MCTopicPopupHotSpot
+{
+	cursor: pointer;
+	background-position: left center;
+	background-repeat: no-repeat;
+}
+
+.MCTopicPopup_Open.MCTopicPopupHotSpot
+{
+	
+}
+
+.MCTopicPopup_Closed.MCTopicPopupHotSpot
+{
+	
+}
+
+.MCTopicPopupContainer
+{
+	background-color: #FFFFFF;
+	padding: 10px;
+	position: fixed;
+	top: 100px;
+	left: 100px;
+	right: 100px;
+	bottom: 100px;
+	-moz-border-radius: 5px;
+	border-radius: 5px;
+	-webkit-box-shadow: 0 4px 10px #333333;
+	-moz-box-shadow: 0 4px 10px #333333;
+	box-shadow: 0 4px 10px #333333;
+	filter: alpha( opacity = 0 );
+	opacity: 0.0;
+	z-index: 10001;
+}
+
+#contentBodyInner .MCTopicPopupContainer
+{
+	position: absolute;
+}
+
+.MCTopicPopupBody
+{
+	width: 100%;
+	border: none;
+}
+
+/**/
+/* Thumbnail Popup */
+
+.MCPopupThumbnailLink
+{
+	
+}
+
+.MCPopupThumbnail
+{
+	-moz-border-radius: 5px;
+	border-radius: 5px;
+}
+
+.MCPopupContainer
+{
+	background-color: #FFFFFF;
+	border: solid 1px #000000;
+	padding: 10px;
+	position: absolute;
+	cursor: pointer;
+	-moz-border-radius: 5px;
+	border-radius: 5px;
+	z-index: 10001;
+}
+
+.MCPopupContainer2
+{
+	background-color: #FFFFFF;
+	border: solid 1px #000000;
+	padding: 10px;
+	position: absolute;
+	cursor: pointer;
+	-moz-box-shadow: 2px 2px 8px #FFFFFF;
+	-webkit-box-shadow: 2px 2px 8px #FFFFFF;
+	box-shadow: 2px 2px 8px #FFFFFF;
+}
+
+.MCPopupFullImage
+{
+	width: 0px;
+	height: 0px;
+	-moz-border-radius: 5px;
+	border-radius: 5px;
+}
+
+/**/
+/* HelpControl */
+
+.MCHelpControl_Image_Icon
+{
+	border: none;
+}
+
+.MCHelpControl span
+{
+	background: url("Images/help-control.png") no-repeat left center;
+	padding-left: 18px;
+}
+
+a.MCHelpControl
+{
+	cursor: pointer;
+	text-decoration: none;
+}
+
+/**/
+/* Dialog */
+
+.MCDialog
+{
+	display: none;
+	width: 400px;
+	position: fixed;
+	top: 20px;
+	left: 20px;
+	padding: 6px;
+	background-color: #000000;
+	border: 1px solid #000000;
+	-moz-border-radius: 4px;
+	-webkit-border-radius: 4px;
+	border-radius: 4px;
+	-moz-box-shadow: 0 3px 0 rgba(0, 0, 0, 0.1);
+	-webkit-box-shadow: 0 3px 0 rgba(0, 0, 0, 0.1);
+	box-shadow: 0 3px 0 rgba(0, 0, 0, 0.1);
+	filter: alpha( opacity = 0 );
+	opacity: 0.0;
+	z-index: 10001;
+}
+
+.MCDialogHeader
+{
+	margin: 0 0 4px;
+	padding: 5px 0 5px 5px;
+	color: #FFFFFF;
+	font-size: 15px;
+	font-family: Helvetica;
+}
+
+.MCDialogClose
+{
+	color: #FFFFFF;
+	font-family: tahoma, sans-serif;
+	font-weight: bold;
+	font-size: 16px;
+	line-height: 12px;
+	text-align: center;
+	text-decoration: none;
+	float: right;
+	width: 20px;
+	height: 18px;
+	padding-top: 2px;
+	margin-top: -2px;
+	background-color: #999999;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.MCDialogBody
+{
+	color: #555555;
+	padding: 10px;
+	background-color: #FFFFFF;
+	-moz-border-radius: 4px;
+	-webkit-border-radius: 4px;
+	border-radius: 4px;
+}
+
+/**/
+
+a.glossaryTerm
+{
+	text-decoration: none;
+}
+
+/**/
+
+#ios-wrapper
+{
+	width: 100%;
+	height: 100%;
+	overflow: auto;
+	-webkit-overflow-scrolling: touch;
+}
+
+.img_off
+{
+	display: none;
+}
+
+.dropDownHotspot
+{
+	text-decoration: none;
+}
+
+.dropDownHotspot:link
+{
+	text-decoration: none;
+}
+
+.MCDropDownHotSpot_
+{
+	background-position: left;
+}
+
+.MCDropDown_Open .MCDropDownHotSpot_
+{
+	background-image: url('DropDownOpen.gif');
+	padding-left: 1px;
+	padding-right: 0px;
+}
+
+.MCDropDown_Closed .MCDropDownHotSpot_
+{
+	background-image: url('DropDownClosed.gif');
+	padding-left: 0px;
+	padding-right: 0px;
+}
+
+.dropDownHead
+{
+	text-decoration: none;
+}
+
+.MCWebHelpFramesetLink a
+{
+	
+}
+
+.MCWebHelpFramesetLink.MCWebHelpFramesetLinkTop a
+{
+	
+}
+
+.MCWebHelpFramesetLink.MCWebHelpFramesetLinkBottom a
+{
+	
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/Filter.png b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/Filter.png
new file mode 100755
index 0000000000000000000000000000000000000000..0badab9cccdfba5589fb665c31455c0df5cef3b1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/Filter.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/FilterOutline.png b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/FilterOutline.png
new file mode 100755
index 0000000000000000000000000000000000000000..3d01d9cd0d4ca1de01827b953448cc61fea60353
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/FilterOutline.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/GeneralGreenLogo.png b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/GeneralGreenLogo.png
new file mode 100755
index 0000000000000000000000000000000000000000..c02393ef3193bfe247ac166e67e1bd0e691bb647
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/GeneralGreenLogo.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/Menu.png b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/Menu.png
new file mode 100755
index 0000000000000000000000000000000000000000..eaefe7a1f3b16679b55b7447d5d29336bd3e07c6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/Menu.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/SearchIcon.png b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/SearchIcon.png
new file mode 100755
index 0000000000000000000000000000000000000000..831fee7c4e718d38695fd72edacaa3afac9eb24e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/SearchIcon.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/SearchIcon2.gif b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/SearchIcon2.gif
new file mode 100755
index 0000000000000000000000000000000000000000..2190c0b961c206e5bda4d19dc411f63cbee71a94
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/SearchIcon2.gif differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/logo-veremes.png b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/logo-veremes.png
new file mode 100755
index 0000000000000000000000000000000000000000..c82402c5da6c309159f7472ba601d2fbab1f4c53
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/Images/logo-veremes.png differ
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/foundation.5.5.0.css b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/foundation.5.5.0.css
new file mode 100755
index 0000000000000000000000000000000000000000..704767af2d0e19d71427bb9f6bc1f514fee40bc6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/foundation.5.5.0.css
@@ -0,0 +1,2310 @@
+meta.foundation-version {
+  font-family: "/5.5.0/"; }
+
+meta.foundation-mq-small {
+  font-family: "/only screen/";
+  width: 0; }
+
+meta.foundation-mq-small-only {
+  font-family: "/only screen and (max-width: 40em)/";
+  width: 0; }
+
+meta.foundation-mq-medium {
+  font-family: "/only screen and (min-width:40.063em)/";
+  width: 40.063em; }
+
+meta.foundation-mq-medium-only {
+  font-family: "/only screen and (min-width:40.063em) and (max-width:64em)/";
+  width: 40.063em; }
+
+meta.foundation-mq-large {
+  font-family: "/only screen and (min-width:64.063em)/";
+  width: 64.063em; }
+
+meta.foundation-mq-large-only {
+  font-family: "/only screen and (min-width:64.063em) and (max-width:90em)/";
+  width: 64.063em; }
+
+meta.foundation-mq-xlarge {
+  font-family: "/only screen and (min-width:90.063em)/";
+  width: 90.063em; }
+
+meta.foundation-mq-xlarge-only {
+  font-family: "/only screen and (min-width:90.063em) and (max-width:120em)/";
+  width: 90.063em; }
+
+meta.foundation-mq-xxlarge {
+  font-family: "/only screen and (min-width:120.063em)/";
+  width: 120.063em; }
+
+meta.foundation-data-attribute-namespace {
+  font-family: false; }
+
+html, body {
+  height: 100%; }
+
+*,
+*:before,
+*:after {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box; }
+
+html,
+body {
+  font-size: 100%; }
+
+body {
+  padding: 0;
+  margin: 0;
+  position: relative;
+  cursor: auto; }
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari 5, and Chrome.
+ */
+
+h1 {
+    font-size: 2em;
+    margin: 0.67em 0;
+}
+
+a:hover {
+  cursor: pointer; }
+
+img {
+  height: auto; }
+
+img {
+  -ms-interpolation-mode: bicubic; }
+
+.left {
+  float: left !important; }
+
+.right {
+  float: right !important; }
+
+.relative {
+    position: relative;
+}
+
+.clearfix:before, .clearfix:after {
+  content: " ";
+  display: table; }
+.clearfix:after {
+  clear: both; }
+
+.hide {
+  display: none !important;
+  visibility: hidden; }
+
+.invisible {
+  visibility: hidden; }
+
+.antialiased {
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale; }
+
+.row {
+  width: 100%;
+  margin-left: auto;
+  margin-right: auto;
+  margin-top: 0;
+  margin-bottom: 0;
+  max-width: 62.5em; }
+  .row:before, .row:after {
+    content: " ";
+    display: table; }
+  .row:after {
+    clear: both; }
+  .row.collapse > .column,
+  .row.collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row .row {
+    width: auto;
+    margin-left: -0.9375em;
+    margin-right: -0.9375em;
+    margin-top: 0;
+    margin-bottom: 0;
+    max-width: none; }
+    .row .row:before, .row .row:after {
+      content: " ";
+      display: table; }
+    .row .row:after {
+      clear: both; }
+    .row .row.collapse {
+      width: auto;
+      margin: 0;
+      max-width: none; }
+      .row .row.collapse:before, .row .row.collapse:after {
+        content: " ";
+        display: table; }
+      .row .row.collapse:after {
+        clear: both; }
+
+.column,
+.columns {
+  padding-left: 0.9375em;
+  padding-right: 0.9375em;
+  width: 100%;
+  float: left; }
+
+[class*="column"] + [class*="column"]:last-child {
+  float: right; }
+
+[class*="column"] + [class*="column"].end {
+  float: left; }
+
+@media only screen {
+  .small-push-0 {
+    position: relative;
+    left: 0%;
+    right: auto; }
+
+  .small-pull-0 {
+    position: relative;
+    right: 0%;
+    left: auto; }
+
+  .small-push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
+
+  .small-pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
+
+  .small-push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
+
+  .small-pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
+
+  .small-push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+
+  .small-pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+
+  .small-push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
+
+  .small-pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
+
+  .small-push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
+
+  .small-pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
+
+  .small-push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+
+  .small-pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+
+  .small-push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
+
+  .small-pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
+
+  .small-push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
+
+  .small-pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
+
+  .small-push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+
+  .small-pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+
+  .small-push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
+
+  .small-pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
+
+  .small-push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
+
+  .small-pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; }
+
+  .column,
+  .columns {
+    position: relative;
+    padding-left: 0.9375em;
+    padding-right: 0.9375em;
+    float: left; }
+
+  .small-1 {
+    width: 8.33333%; }
+
+  .small-2 {
+    width: 16.66667%; }
+
+  .small-3 {
+    width: 25%; }
+
+  .small-4 {
+    width: 33.33333%; }
+
+  .small-5 {
+    width: 41.66667%; }
+
+  .small-6 {
+    width: 50%; }
+
+  .small-7 {
+    width: 58.33333%; }
+
+  .small-8 {
+    width: 66.66667%; }
+
+  .small-9 {
+    width: 75%; }
+
+  .small-10 {
+    width: 83.33333%; }
+
+  .small-11 {
+    width: 91.66667%; }
+
+  .small-12 {
+    width: 100%; }
+
+  .small-offset-0 {
+    margin-left: 0% !important; }
+
+  .small-offset-1 {
+    margin-left: 8.33333% !important; }
+
+  .small-offset-2 {
+    margin-left: 16.66667% !important; }
+
+  .small-offset-3 {
+    margin-left: 25% !important; }
+
+  .small-offset-4 {
+    margin-left: 33.33333% !important; }
+
+  .small-offset-5 {
+    margin-left: 41.66667% !important; }
+
+  .small-offset-6 {
+    margin-left: 50% !important; }
+
+  .small-offset-7 {
+    margin-left: 58.33333% !important; }
+
+  .small-offset-8 {
+    margin-left: 66.66667% !important; }
+
+  .small-offset-9 {
+    margin-left: 75% !important; }
+
+  .small-offset-10 {
+    margin-left: 83.33333% !important; }
+
+  .small-offset-11 {
+    margin-left: 91.66667% !important; }
+
+  .small-reset-order {
+    margin-left: 0;
+    margin-right: 0;
+    left: auto;
+    right: auto;
+    float: left; }
+
+  .column.small-centered,
+  .columns.small-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
+
+  .column.small-uncentered,
+  .columns.small-uncentered {
+    margin-left: 0;
+    margin-right: 0;
+    float: left; }
+
+  .column.small-centered:last-child,
+  .columns.small-centered:last-child {
+    float: none; }
+
+  .column.small-uncentered:last-child,
+  .columns.small-uncentered:last-child {
+    float: left; }
+
+  .column.small-uncentered.opposite,
+  .columns.small-uncentered.opposite {
+    float: right; }
+
+  .row.small-collapse > .column,
+  .row.small-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.small-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.small-uncollapse > .column,
+  .row.small-uncollapse > .columns {
+    padding-left: 0.9375em;
+    padding-right: 0.9375em;
+    float: left; } }
+@media only screen and (min-width: 40.063em) {
+  .medium-push-0 {
+    position: relative;
+    left: 0%;
+    right: auto; }
+
+  .medium-pull-0 {
+    position: relative;
+    right: 0%;
+    left: auto; }
+
+  .medium-push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
+
+  .medium-pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
+
+  .medium-push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
+
+  .medium-pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
+
+  .medium-push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+
+  .medium-pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+
+  .medium-push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
+
+  .medium-pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
+
+  .medium-push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
+
+  .medium-pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
+
+  .medium-push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+
+  .medium-pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+
+  .medium-push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
+
+  .medium-pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
+
+  .medium-push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
+
+  .medium-pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
+
+  .medium-push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+
+  .medium-pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+
+  .medium-push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
+
+  .medium-pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
+
+  .medium-push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
+
+  .medium-pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; }
+
+  .column,
+  .columns {
+    position: relative;
+    padding-left: 0.9375em;
+    padding-right: 0.9375em;
+    float: left; }
+
+  .medium-1 {
+    width: 8.33333%; }
+
+  .medium-2 {
+    width: 16.66667%; }
+
+  .medium-3 {
+    width: 25%; }
+
+  .medium-4 {
+    width: 33.33333%; }
+
+  .medium-5 {
+    width: 41.66667%; }
+
+  .medium-6 {
+    width: 50%; }
+
+  .medium-7 {
+    width: 58.33333%; }
+
+  .medium-8 {
+    width: 66.66667%; }
+
+  .medium-9 {
+    width: 75%; }
+
+  .medium-10 {
+    width: 83.33333%; }
+
+  .medium-11 {
+    width: 91.66667%; }
+
+  .medium-12 {
+    width: 100%; }
+
+  .medium-offset-0 {
+    margin-left: 0% !important; }
+
+  .medium-offset-1 {
+    margin-left: 8.33333% !important; }
+
+  .medium-offset-2 {
+    margin-left: 16.66667% !important; }
+
+  .medium-offset-3 {
+    margin-left: 25% !important; }
+
+  .medium-offset-4 {
+    margin-left: 33.33333% !important; }
+
+  .medium-offset-5 {
+    margin-left: 41.66667% !important; }
+
+  .medium-offset-6 {
+    margin-left: 50% !important; }
+
+  .medium-offset-7 {
+    margin-left: 58.33333% !important; }
+
+  .medium-offset-8 {
+    margin-left: 66.66667% !important; }
+
+  .medium-offset-9 {
+    margin-left: 75% !important; }
+
+  .medium-offset-10 {
+    margin-left: 83.33333% !important; }
+
+  .medium-offset-11 {
+    margin-left: 91.66667% !important; }
+
+  .medium-reset-order {
+    margin-left: 0;
+    margin-right: 0;
+    left: auto;
+    right: auto;
+    float: left; }
+
+  .column.medium-centered,
+  .columns.medium-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
+
+  .column.medium-uncentered,
+  .columns.medium-uncentered {
+    margin-left: 0;
+    margin-right: 0;
+    float: left; }
+
+  .column.medium-centered:last-child,
+  .columns.medium-centered:last-child {
+    float: none; }
+
+  .column.medium-uncentered:last-child,
+  .columns.medium-uncentered:last-child {
+    float: left; }
+
+  .column.medium-uncentered.opposite,
+  .columns.medium-uncentered.opposite {
+    float: right; }
+
+  .row.medium-collapse > .column,
+  .row.medium-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.medium-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.medium-uncollapse > .column,
+  .row.medium-uncollapse > .columns {
+    padding-left: 0.9375em;
+    padding-right: 0.9375em;
+    float: left; }
+
+  .push-0 {
+    position: relative;
+    left: 0%;
+    right: auto; }
+
+  .pull-0 {
+    position: relative;
+    right: 0%;
+    left: auto; }
+
+  .push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
+
+  .pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
+
+  .push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
+
+  .pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
+
+  .push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+
+  .pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+
+  .push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
+
+  .pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
+
+  .push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
+
+  .pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
+
+  .push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+
+  .pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+
+  .push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
+
+  .pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
+
+  .push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
+
+  .pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
+
+  .push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+
+  .pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+
+  .push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
+
+  .pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
+
+  .push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
+
+  .pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; } }
+@media only screen and (min-width: 64.063em) {
+  .large-push-0 {
+    position: relative;
+    left: 0%;
+    right: auto; }
+
+  .large-pull-0 {
+    position: relative;
+    right: 0%;
+    left: auto; }
+
+  .large-push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
+
+  .large-pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
+
+  .large-push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
+
+  .large-pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
+
+  .large-push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+
+  .large-pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+
+  .large-push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
+
+  .large-pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
+
+  .large-push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
+
+  .large-pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
+
+  .large-push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+
+  .large-pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+
+  .large-push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
+
+  .large-pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
+
+  .large-push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
+
+  .large-pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
+
+  .large-push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+
+  .large-pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+
+  .large-push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
+
+  .large-pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
+
+  .large-push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
+
+  .large-pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; }
+
+  .column,
+  .columns {
+    position: relative;
+    padding-left: 0.9375em;
+    padding-right: 0.9375em;
+    float: left; }
+
+  .large-1 {
+    width: 8.33333%; }
+
+  .large-2 {
+    width: 16.66667%; }
+
+  .large-3 {
+    width: 25%; }
+
+  .large-4 {
+    width: 33.33333%; }
+
+  .large-5 {
+    width: 41.66667%; }
+
+  .large-6 {
+    width: 50%; }
+
+  .large-7 {
+    width: 58.33333%; }
+
+  .large-8 {
+    width: 66.66667%; }
+
+  .large-9 {
+    width: 75%; }
+
+  .large-10 {
+    width: 83.33333%; }
+
+  .large-11 {
+    width: 91.66667%; }
+
+  .large-12 {
+    width: 100%; }
+
+  .large-offset-0 {
+    margin-left: 0% !important; }
+
+  .large-offset-1 {
+    margin-left: 8.33333% !important; }
+
+  .large-offset-2 {
+    margin-left: 16.66667% !important; }
+
+  .large-offset-3 {
+    margin-left: 25% !important; }
+
+  .large-offset-4 {
+    margin-left: 33.33333% !important; }
+
+  .large-offset-5 {
+    margin-left: 41.66667% !important; }
+
+  .large-offset-6 {
+    margin-left: 50% !important; }
+
+  .large-offset-7 {
+    margin-left: 58.33333% !important; }
+
+  .large-offset-8 {
+    margin-left: 66.66667% !important; }
+
+  .large-offset-9 {
+    margin-left: 75% !important; }
+
+  .large-offset-10 {
+    margin-left: 83.33333% !important; }
+
+  .large-offset-11 {
+    margin-left: 91.66667% !important; }
+
+  .large-reset-order {
+    margin-left: 0;
+    margin-right: 0;
+    left: auto;
+    right: auto;
+    float: left; }
+
+  .column.large-centered,
+  .columns.large-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
+
+  .column.large-uncentered,
+  .columns.large-uncentered {
+    margin-left: 0;
+    margin-right: 0;
+    float: left; }
+
+  .column.large-centered:last-child,
+  .columns.large-centered:last-child {
+    float: none; }
+
+  .column.large-uncentered:last-child,
+  .columns.large-uncentered:last-child {
+    float: left; }
+
+  .column.large-uncentered.opposite,
+  .columns.large-uncentered.opposite {
+    float: right; }
+
+  .row.large-collapse > .column,
+  .row.large-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.large-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.large-uncollapse > .column,
+  .row.large-uncollapse > .columns {
+    padding-left: 0.9375em;
+    padding-right: 0.9375em;
+    float: left; }
+
+  .push-0 {
+    position: relative;
+    left: 0%;
+    right: auto; }
+
+  .pull-0 {
+    position: relative;
+    right: 0%;
+    left: auto; }
+
+  .push-1 {
+    position: relative;
+    left: 8.33333%;
+    right: auto; }
+
+  .pull-1 {
+    position: relative;
+    right: 8.33333%;
+    left: auto; }
+
+  .push-2 {
+    position: relative;
+    left: 16.66667%;
+    right: auto; }
+
+  .pull-2 {
+    position: relative;
+    right: 16.66667%;
+    left: auto; }
+
+  .push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+
+  .pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+
+  .push-4 {
+    position: relative;
+    left: 33.33333%;
+    right: auto; }
+
+  .pull-4 {
+    position: relative;
+    right: 33.33333%;
+    left: auto; }
+
+  .push-5 {
+    position: relative;
+    left: 41.66667%;
+    right: auto; }
+
+  .pull-5 {
+    position: relative;
+    right: 41.66667%;
+    left: auto; }
+
+  .push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+
+  .pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+
+  .push-7 {
+    position: relative;
+    left: 58.33333%;
+    right: auto; }
+
+  .pull-7 {
+    position: relative;
+    right: 58.33333%;
+    left: auto; }
+
+  .push-8 {
+    position: relative;
+    left: 66.66667%;
+    right: auto; }
+
+  .pull-8 {
+    position: relative;
+    right: 66.66667%;
+    left: auto; }
+
+  .push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+
+  .pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+
+  .push-10 {
+    position: relative;
+    left: 83.33333%;
+    right: auto; }
+
+  .pull-10 {
+    position: relative;
+    right: 83.33333%;
+    left: auto; }
+
+  .push-11 {
+    position: relative;
+    left: 91.66667%;
+    right: auto; }
+
+  .pull-11 {
+    position: relative;
+    right: 91.66667%;
+    left: auto; } }
+.inline-list {
+  margin: 0 auto 1.0625rem auto;
+  margin-left: -1.375rem;
+  margin-right: 0;
+  padding: 0;
+  list-style: none;
+  overflow: hidden; }
+  .inline-list > li {
+    list-style: none;
+    float: left;
+    margin-left: 1.375rem;
+    display: block; }
+    .inline-list > li > * {
+      display: block; }
+
+.text-left {
+  text-align: left !important; }
+
+.text-right {
+  text-align: right !important; }
+
+.text-center {
+  text-align: center !important; }
+
+.text-justify {
+  text-align: justify !important; }
+
+@media only screen and (max-width: 40em) {
+  .small-only-text-left {
+    text-align: left !important; }
+
+  .small-only-text-right {
+    text-align: right !important; }
+
+  .small-only-text-center {
+    text-align: center !important; }
+
+  .small-only-text-justify {
+    text-align: justify !important; } }
+@media only screen {
+  .small-text-left {
+    text-align: left !important; }
+
+  .small-text-right {
+    text-align: right !important; }
+
+  .small-text-center {
+    text-align: center !important; }
+
+  .small-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 40.063em) and (max-width: 64em) {
+  .medium-only-text-left {
+    text-align: left !important; }
+
+  .medium-only-text-right {
+    text-align: right !important; }
+
+  .medium-only-text-center {
+    text-align: center !important; }
+
+  .medium-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 40.063em) {
+  .medium-text-left {
+    text-align: left !important; }
+
+  .medium-text-right {
+    text-align: right !important; }
+
+  .medium-text-center {
+    text-align: center !important; }
+
+  .medium-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 64.063em) and (max-width: 90em) {
+  .large-only-text-left {
+    text-align: left !important; }
+
+  .large-only-text-right {
+    text-align: right !important; }
+
+  .large-only-text-center {
+    text-align: center !important; }
+
+  .large-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 64.063em) {
+  .large-text-left {
+    text-align: left !important; }
+
+  .large-text-right {
+    text-align: right !important; }
+
+  .large-text-center {
+    text-align: center !important; }
+
+  .large-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 90.063em) and (max-width: 120em) {
+  .xlarge-only-text-left {
+    text-align: left !important; }
+
+  .xlarge-only-text-right {
+    text-align: right !important; }
+
+  .xlarge-only-text-center {
+    text-align: center !important; }
+
+  .xlarge-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 90.063em) {
+  .xlarge-text-left {
+    text-align: left !important; }
+
+  .xlarge-text-right {
+    text-align: right !important; }
+
+  .xlarge-text-center {
+    text-align: center !important; }
+
+  .xlarge-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 120.063em) and (max-width: 99999999em) {
+  .xxlarge-only-text-left {
+    text-align: left !important; }
+
+  .xxlarge-only-text-right {
+    text-align: right !important; }
+
+  .xxlarge-only-text-center {
+    text-align: center !important; }
+
+  .xxlarge-only-text-justify {
+    text-align: justify !important; } }
+@media only screen and (min-width: 120.063em) {
+  .xxlarge-text-left {
+    text-align: left !important; }
+
+  .xxlarge-text-right {
+    text-align: right !important; }
+
+  .xxlarge-text-center {
+    text-align: center !important; }
+
+  .xxlarge-text-justify {
+    text-align: justify !important; } }
+
+/* OffCanvas */
+
+.off-canvas-wrap {
+  position: relative;
+  width: 100%;
+  overflow: hidden; }
+  .off-canvas-wrap.move-right, .off-canvas-wrap.move-left {
+    min-height: 100%;
+    -webkit-overflow-scrolling: touch; }
+
+.inner-wrap {
+  position: relative;
+  width: 100%;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .inner-wrap:before, .inner-wrap:after {
+    content: " ";
+    display: table; }
+  .inner-wrap:after {
+    clear: both; }
+
+.tab-bar {
+  background: #333333;
+  color: #FFFFFF;
+  height: 2.8125rem;
+  line-height: 2.8125rem;
+  position: relative; }
+  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
+    color: #FFFFFF;
+    font-weight: bold;
+    line-height: 2.8125rem;
+    margin: 0; }
+  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
+    font-size: 1.125rem; }
+
+.left-small {
+  width: 2.8125rem;
+  height: 2.8125rem;
+  position: absolute;
+  top: 0;
+  border-right: solid 1px #1a1a1a;
+  left: 0; }
+
+.right-small {
+  width: 2.8125rem;
+  height: 2.8125rem;
+  position: absolute;
+  top: 0;
+  border-left: solid 1px #1a1a1a;
+  right: 0; }
+
+.tab-bar-section {
+  padding: 0 0.625rem;
+  position: absolute;
+  text-align: center;
+  height: 2.8125rem;
+  top: 0; }
+  @media only screen and (min-width: 40.063em) {
+    .tab-bar-section.left {
+      text-align: left; }
+    .tab-bar-section.right {
+      text-align: right; } }
+  .tab-bar-section.left {
+    left: 0;
+    right: 2.8125rem; }
+  .tab-bar-section.right {
+    left: 2.8125rem;
+    right: 0; }
+  .tab-bar-section.middle {
+    left: 2.8125rem;
+    right: 2.8125rem; }
+
+.tab-bar .menu-icon {
+  /*text-indent: 2.1875rem;
+  width: 2.8125rem;
+  height: 3.8125rem;*/
+  display: block;
+  padding: 0;
+  color: #FFFFFF;
+  position: relative;
+  transform: translate3d(0, 0, 0); }
+  /*.tab-bar .menu-icon span::after {
+    content: "";
+    position: absolute;
+    display: block;
+    height: 0;
+    top: 50%;
+    margin-top: -0.5rem;
+    left: 0.90625rem;
+    box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
+    width: 1rem; }
+  .tab-bar .menu-icon span:hover:after {
+    box-shadow: 0 0 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; }*/
+
+.left-off-canvas-menu {
+  width: 15.625rem;
+  top: 0;
+  bottom: 0;
+  position: absolute;
+  overflow-x: hidden;
+  overflow-y: auto;
+  background: #333333;
+  z-index: 1001;
+  box-sizing: content-box;
+  transition: transform 500ms ease 0s;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  -ms-transform: translate(-100%, 0);
+  -webkit-transform: translate3d(-100%, 0, 0);
+  -moz-transform: translate3d(-100%, 0, 0);
+  -ms-transform: translate3d(-100%, 0, 0);
+  -o-transform: translate3d(-100%, 0, 0);
+  transform: translate3d(-100%, 0, 0);
+  left: 0; }
+
+.right-off-canvas-menu {
+  width: 15.625rem;
+  top: 0;
+  bottom: 0;
+  position: absolute;
+  overflow-x: hidden;
+  overflow-y: auto;
+  background: #333333;
+  z-index: 1001;
+  box-sizing: content-box;
+  transition: transform 500ms ease 0s;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  -ms-transform: translate(100%, 0);
+  -webkit-transform: translate3d(100%, 0, 0);
+  -moz-transform: translate3d(100%, 0, 0);
+  -ms-transform: translate3d(100%, 0, 0);
+  -o-transform: translate3d(100%, 0, 0);
+  transform: translate3d(100%, 0, 0);
+  right: 0; }
+
+ul.off-canvas-list {
+  list-style-type: none;
+  padding: 0;
+  margin: 0; }
+  ul.off-canvas-list li label {
+    display: block;
+    padding: 0.3rem 0.9375rem;
+    color: #999999;
+    text-transform: uppercase;
+    font-size: 0.75rem;
+    font-weight: bold;
+    background: #444444;
+    border-top: 1px solid #5e5e5e;
+    border-bottom: none;
+    margin: 0; }
+  ul.off-canvas-list li a {
+    display: block;
+    padding: 0.66667rem;
+    color: rgba(255, 255, 255, 0.7);
+    border-bottom: 1px solid #262626;
+    text-decoration: none;
+    line-height: inherit;
+    font-weight: normal;
+    transition: background 300ms ease; }
+    ul.off-canvas-list li a:hover {
+      background: #242424; }
+
+.move-right > .inner-wrap {
+  -ms-transform: translate(15.625rem, 0);
+  -webkit-transform: translate3d(15.625rem, 0, 0);
+  -moz-transform: translate3d(15.625rem, 0, 0);
+  -ms-transform: translate3d(15.625rem, 0, 0);
+  -o-transform: translate3d(15.625rem, 0, 0);
+  transform: translate3d(15.625rem, 0, 0); }
+.move-right .exit-off-canvas {
+  transition: background 300ms ease;
+  cursor: pointer;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  display: block;
+  position: absolute;
+  background: rgba(255, 255, 255, 0.2);
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 1002;
+  -webkit-tap-highlight-color: transparent; }
+  @media only screen and (min-width: 40.063em) {
+    .move-right .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.move-left > .inner-wrap {
+  -ms-transform: translate(-15.625rem, 0);
+  -webkit-transform: translate3d(-15.625rem, 0, 0);
+  -moz-transform: translate3d(-15.625rem, 0, 0);
+  -ms-transform: translate3d(-15.625rem, 0, 0);
+  -o-transform: translate3d(-15.625rem, 0, 0);
+  transform: translate3d(-15.625rem, 0, 0); }
+.move-left .exit-off-canvas {
+  transition: background 300ms ease;
+  cursor: pointer;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  display: block;
+  position: absolute;
+  background: rgba(255, 255, 255, 0.2);
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 1002;
+  -webkit-tap-highlight-color: transparent; }
+  @media only screen and (min-width: 40.063em) {
+    .move-left .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap .exit-off-canvas {
+  transition: background 300ms ease;
+  cursor: pointer;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  display: block;
+  position: absolute;
+  background: rgba(255, 255, 255, 0.2);
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 1002;
+  -webkit-tap-highlight-color: transparent; }
+  @media only screen and (min-width: 40.063em) {
+    .offcanvas-overlap .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-left .right-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-left .exit-off-canvas {
+  transition: background 300ms ease;
+  cursor: pointer;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  display: block;
+  position: absolute;
+  background: rgba(255, 255, 255, 0.2);
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 1002;
+  -webkit-tap-highlight-color: transparent; }
+  @media only screen and (min-width: 40.063em) {
+    .offcanvas-overlap-left .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-right .left-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-right .exit-off-canvas {
+  transition: background 300ms ease;
+  cursor: pointer;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  display: block;
+  position: absolute;
+  background: rgba(255, 255, 255, 0.2);
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 1002;
+  -webkit-tap-highlight-color: transparent; }
+  @media only screen and (min-width: 40.063em) {
+    .offcanvas-overlap-right .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.no-csstransforms .left-off-canvas-menu {
+  left: -15.625rem; }
+.no-csstransforms .right-off-canvas-menu {
+  right: -15.625rem; }
+.no-csstransforms .move-left > .inner-wrap {
+  right: 15.625rem; }
+.no-csstransforms .move-right > .inner-wrap {
+  left: 15.625rem; }
+
+.left-submenu {
+  list-style: none;
+  width: 15.625rem;
+  top: 0;
+  bottom: 0;
+  position: absolute;
+  margin: 0;
+  padding: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  background: #333333;
+  z-index: 1002;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-transform: translate(-100%, 0);
+  -webkit-transform: translate3d(-100%, 0, 0);
+  -moz-transform: translate3d(-100%, 0, 0);
+  -ms-transform: translate3d(-100%, 0, 0);
+  -o-transform: translate3d(-100%, 0, 0);
+  transform: translate3d(-100%, 0, 0);
+  left: 0;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .left-submenu .back > a {
+    padding: 0.66667rem;
+    font-weight: bold;
+    border-top: 1px solid #5e5e5e;
+    border-bottom: none;
+    margin: 0; }
+    .left-submenu .back > a:hover {
+      border-top: 1px solid #5e5e5e;
+      border-bottom: none; }
+    .left-submenu .back > a:after {
+      content: "\AB";
+      margin-left: 0.5rem;
+      display: inline; }
+  .left-submenu.move-right, .left-submenu.offcanvas-overlap-right, .left-submenu.offcanvas-overlap {
+    -ms-transform: translate(0%, 0);
+    -webkit-transform: translate3d(0%, 0, 0);
+    -moz-transform: translate3d(0%, 0, 0);
+    -ms-transform: translate3d(0%, 0, 0);
+    -o-transform: translate3d(0%, 0, 0);
+    transform: translate3d(0%, 0, 0); }
+
+.right-submenu {
+  list-style: none;
+  width: 15.625rem;
+  top: 0;
+  bottom: 0;
+  position: absolute;
+  margin: 0;
+  padding: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  background: #333333;
+  z-index: 1002;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-transform: translate(100%, 0);
+  -webkit-transform: translate3d(100%, 0, 0);
+  -moz-transform: translate3d(100%, 0, 0);
+  -ms-transform: translate3d(100%, 0, 0);
+  -o-transform: translate3d(100%, 0, 0);
+  transform: translate3d(100%, 0, 0);
+  right: 0;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .right-submenu .back > a {
+    padding: 0.66667rem;
+    font-weight: bold;
+    border-top: 1px solid #5e5e5e;
+    border-bottom: none;
+    margin: 0; }
+    .right-submenu .back > a:hover {
+      border-top: 1px solid #5e5e5e;
+      border-bottom: none; }
+    .right-submenu .back > a:after {
+      content: "\AB";
+      margin-left: 0.5rem;
+      display: inline; }
+  .right-submenu.move-left, .right-submenu.offcanvas-overlap-left, .right-submenu.offcanvas-overlap {
+    -ms-transform: translate(0%, 0);
+    -webkit-transform: translate3d(0%, 0, 0);
+    -moz-transform: translate3d(0%, 0, 0);
+    -ms-transform: translate3d(0%, 0, 0);
+    -o-transform: translate3d(0%, 0, 0);
+    transform: translate3d(0%, 0, 0); }
+
+.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after, .left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
+  content: "\BB";
+  margin-left: 0.5rem;
+  display: inline; }
+
+[class*="block-grid-"] {
+  display: block;
+  padding: 0;
+  margin: 0 -0.625rem; }
+  [class*="block-grid-"]:before, [class*="block-grid-"]:after {
+    content: " ";
+    display: table; }
+  [class*="block-grid-"]:after {
+    clear: both; }
+  [class*="block-grid-"] > li {
+    display: block;
+    height: auto;
+    float: left;
+    padding: 0 0.625rem 1.25rem; }
+
+@media only screen {
+  .small-block-grid-1 > li {
+    width: 100%;
+    list-style: none; }
+    .small-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+
+  .small-block-grid-2 > li {
+    width: 50%;
+    list-style: none; }
+    .small-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+
+  .small-block-grid-3 > li {
+    width: 33.33333%;
+    list-style: none; }
+    .small-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+
+  .small-block-grid-4 > li {
+    width: 25%;
+    list-style: none; }
+    .small-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+
+  .small-block-grid-5 > li {
+    width: 20%;
+    list-style: none; }
+    .small-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+
+  .small-block-grid-6 > li {
+    width: 16.66667%;
+    list-style: none; }
+    .small-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+
+  .small-block-grid-7 > li {
+    width: 14.28571%;
+    list-style: none; }
+    .small-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+
+  .small-block-grid-8 > li {
+    width: 12.5%;
+    list-style: none; }
+    .small-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+
+  .small-block-grid-9 > li {
+    width: 11.11111%;
+    list-style: none; }
+    .small-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+
+  .small-block-grid-10 > li {
+    width: 10%;
+    list-style: none; }
+    .small-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+
+  .small-block-grid-11 > li {
+    width: 9.09091%;
+    list-style: none; }
+    .small-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+
+  .small-block-grid-12 > li {
+    width: 8.33333%;
+    list-style: none; }
+    .small-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+@media only screen and (min-width: 40.063em) {
+  .medium-block-grid-1 > li {
+    width: 100%;
+    list-style: none; }
+    .medium-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+
+  .medium-block-grid-2 > li {
+    width: 50%;
+    list-style: none; }
+    .medium-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+
+  .medium-block-grid-3 > li {
+    width: 33.33333%;
+    list-style: none; }
+    .medium-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+
+  .medium-block-grid-4 > li {
+    width: 25%;
+    list-style: none; }
+    .medium-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+
+  .medium-block-grid-5 > li {
+    width: 20%;
+    list-style: none; }
+    .medium-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+
+  .medium-block-grid-6 > li {
+    width: 16.66667%;
+    list-style: none; }
+    .medium-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+
+  .medium-block-grid-7 > li {
+    width: 14.28571%;
+    list-style: none; }
+    .medium-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+
+  .medium-block-grid-8 > li {
+    width: 12.5%;
+    list-style: none; }
+    .medium-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+
+  .medium-block-grid-9 > li {
+    width: 11.11111%;
+    list-style: none; }
+    .medium-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+
+  .medium-block-grid-10 > li {
+    width: 10%;
+    list-style: none; }
+    .medium-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+
+  .medium-block-grid-11 > li {
+    width: 9.09091%;
+    list-style: none; }
+    .medium-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+
+  .medium-block-grid-12 > li {
+    width: 8.33333%;
+    list-style: none; }
+    .medium-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+@media only screen and (min-width: 64.063em) {
+  .large-block-grid-1 > li {
+    width: 100%;
+    list-style: none; }
+    .large-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+
+  .large-block-grid-2 > li {
+    width: 50%;
+    list-style: none; }
+    .large-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+
+  .large-block-grid-3 > li {
+    width: 33.33333%;
+    list-style: none; }
+    .large-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+
+  .large-block-grid-4 > li {
+    width: 25%;
+    list-style: none; }
+    .large-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+
+  .large-block-grid-5 > li {
+    width: 20%;
+    list-style: none; }
+    .large-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+
+  .large-block-grid-6 > li {
+    width: 16.66667%;
+    list-style: none; }
+    .large-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+
+  .large-block-grid-7 > li {
+    width: 14.28571%;
+    list-style: none; }
+    .large-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+
+  .large-block-grid-8 > li {
+    width: 12.5%;
+    list-style: none; }
+    .large-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+
+  .large-block-grid-9 > li {
+    width: 11.11111%;
+    list-style: none; }
+    .large-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+
+  .large-block-grid-10 > li {
+    width: 10%;
+    list-style: none; }
+    .large-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+
+  .large-block-grid-11 > li {
+    width: 9.09091%;
+    list-style: none; }
+    .large-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+
+  .large-block-grid-12 > li {
+    width: 8.33333%;
+    list-style: none; }
+    .large-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+/* small displays */
+@media only screen {
+  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+
+  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+
+  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+
+  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    position: absolute !important;
+    height: 1px;
+    width: 1px;
+    overflow: hidden;
+    clip: rect(1px, 1px, 1px, 1px); }
+
+  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+
+  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+
+  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+
+  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row !important; }
+
+  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* medium displays */
+@media only screen and (min-width: 40.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    position: absolute !important;
+    height: 1px;
+    width: 1px;
+    overflow: hidden;
+    clip: rect(1px, 1px, 1px, 1px); }
+
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row !important; }
+
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* large displays */
+@media only screen and (min-width: 64.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    position: absolute !important;
+    height: 1px;
+    width: 1px;
+    overflow: hidden;
+    clip: rect(1px, 1px, 1px, 1px); }
+
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row !important; }
+
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* xlarge displays */
+@media only screen and (min-width: 90.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    position: absolute !important;
+    height: 1px;
+    width: 1px;
+    overflow: hidden;
+    clip: rect(1px, 1px, 1px, 1px); }
+
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row !important; }
+
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* xxlarge displays */
+@media only screen and (min-width: 120.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
+    position: absolute !important;
+    height: 1px;
+    width: 1px;
+    overflow: hidden;
+    clip: rect(1px, 1px, 1px, 1px); }
+
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row !important; }
+
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+/* Orientation targeting */
+.show-for-landscape,
+.hide-for-portrait {
+  display: inherit !important; }
+
+.hide-for-landscape,
+.show-for-portrait {
+  display: none !important; }
+
+/* Specific visibility for tables */
+table.hide-for-landscape, table.show-for-portrait {
+  display: table !important; }
+
+thead.hide-for-landscape, thead.show-for-portrait {
+  display: table-header-group !important; }
+
+tbody.hide-for-landscape, tbody.show-for-portrait {
+  display: table-row-group !important; }
+
+tr.hide-for-landscape, tr.show-for-portrait {
+  display: table-row !important; }
+
+td.hide-for-landscape, td.show-for-portrait,
+th.hide-for-landscape,
+th.show-for-portrait {
+  display: table-cell !important; }
+
+@media only screen and (orientation: landscape) {
+  .show-for-landscape,
+  .hide-for-portrait {
+    display: inherit !important; }
+
+  .hide-for-landscape,
+  .show-for-portrait {
+    display: none !important; }
+
+  /* Specific visibility for tables */
+  table.show-for-landscape, table.hide-for-portrait {
+    display: table !important; }
+
+  thead.show-for-landscape, thead.hide-for-portrait {
+    display: table-header-group !important; }
+
+  tbody.show-for-landscape, tbody.hide-for-portrait {
+    display: table-row-group !important; }
+
+  tr.show-for-landscape, tr.hide-for-portrait {
+    display: table-row !important; }
+
+  td.show-for-landscape, td.hide-for-portrait,
+  th.show-for-landscape,
+  th.hide-for-portrait {
+    display: table-cell !important; } }
+@media only screen and (orientation: portrait) {
+  .show-for-portrait,
+  .hide-for-landscape {
+    display: inherit !important; }
+
+  .hide-for-portrait,
+  .show-for-landscape {
+    display: none !important; }
+
+  /* Specific visibility for tables */
+  table.show-for-portrait, table.hide-for-landscape {
+    display: table !important; }
+
+  thead.show-for-portrait, thead.hide-for-landscape {
+    display: table-header-group !important; }
+
+  tbody.show-for-portrait, tbody.hide-for-landscape {
+    display: table-row-group !important; }
+
+  tr.show-for-portrait, tr.hide-for-landscape {
+    display: table-row !important; }
+
+  td.show-for-portrait, td.hide-for-landscape,
+  th.show-for-portrait,
+  th.hide-for-landscape {
+    display: table-cell !important; } }
+/* Touch-enabled device targeting */
+.show-for-touch {
+  display: none !important; }
+
+.hide-for-touch {
+  display: inherit !important; }
+
+.touch .show-for-touch {
+  display: inherit !important; }
+
+.touch .hide-for-touch {
+  display: none !important; }
+
+/* Specific visibility for tables */
+table.hide-for-touch {
+  display: table !important; }
+
+.touch table.show-for-touch {
+  display: table !important; }
+
+thead.hide-for-touch {
+  display: table-header-group !important; }
+
+.touch thead.show-for-touch {
+  display: table-header-group !important; }
+
+tbody.hide-for-touch {
+  display: table-row-group !important; }
+
+.touch tbody.show-for-touch {
+  display: table-row-group !important; }
+
+tr.hide-for-touch {
+  display: table-row !important; }
+
+.touch tr.show-for-touch {
+  display: table-row !important; }
+
+td.hide-for-touch {
+  display: table-cell !important; }
+
+.touch td.show-for-touch {
+  display: table-cell !important; }
+
+th.hide-for-touch {
+  display: table-cell !important; }
+
+.touch th.show-for-touch {
+  display: table-cell !important; }
+
+/* Print visibility */
+@media print {
+  .show-for-print {
+    display: block; }
+
+  .hide-for-print {
+    display: none; }
+
+  table.show-for-print {
+    display: table !important; }
+
+  thead.show-for-print {
+    display: table-header-group !important; }
+
+  tbody.show-for-print {
+    display: table-row-group !important; }
+
+  tr.show-for-print {
+    display: table-row !important; }
+
+  td.show-for-print {
+    display: table-cell !important; }
+
+  th.show-for-print {
+    display: table-cell !important; } }
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/mobile.css b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/mobile.css
new file mode 100755
index 0000000000000000000000000000000000000000..ff72002c6d98b73ab8b5ce79c6e2e0140dd65d0c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/mobile.css
@@ -0,0 +1,162 @@
+/*<meta />*/
+
+@media only screen and (max-width: 767px)
+{
+	nav.tab-bar
+	{
+		background-repeat: no-repeat;
+		background-position: center top;
+	}
+
+	.tab-bar-section a.logo
+	{
+		background-position: center center;
+		background-repeat: no-repeat;
+		width: 102px;
+		height: 24px;
+	}
+
+	.search-submit
+	{
+		background-repeat: no-repeat;
+		background-position: center center;
+	}
+
+	.search-filter
+	{
+		background-repeat: no-repeat;
+		background-position: center center;
+	}
+
+	.search-input
+	{
+		background-repeat: no-repeat;
+		background-position: center center;
+	}
+
+	.right-off-canvas-menu
+	{
+		background-position: top center;
+	}
+
+	.right-off-canvas-menu ul ul
+	{
+		background-position: top center;
+	}
+
+	.left-off-canvas-menu
+	{
+		background-position: top center;
+	}
+
+	.left-off-canvas-menu ul ul
+	{
+		background-position: top center;
+	}
+
+	.tab-bar-section.middle > div
+	{
+		min-height: 40px;
+	}
+
+	nav.tab-bar .row.outer-row
+	{
+		
+	}
+
+	.tab-bar .menu-icon span
+	{
+		
+	}
+
+	.row.outer-row
+	{
+		
+	}
+
+	.main-section > .row.outer-row
+	{
+		
+	}
+
+	ul.off-canvas-list li a
+	{
+		
+	}
+
+	ul.off-canvas-list li.back > a
+	{
+		
+	}
+
+	ul.off-canvas-list li a:hover
+	{
+		
+	}
+
+	ul.off-canvas-list li.back > a:hover
+	{
+		
+	}
+
+	.menu-icon a span
+	{
+		
+	}
+
+	nav.tab-bar .menu-icon
+	{
+		
+	}
+
+	.row.nav-search
+	{
+		
+	}
+
+	.search-bar
+	{
+		
+	}
+
+	.search-field
+	{
+		padding-right: 106px;
+	}
+
+	.search-filter-content
+	{
+		
+	}
+
+	.search-filter.open
+	{
+		
+	}
+
+	.search-filter.selected
+	{
+		
+	}
+
+	.search-filter-content ul li:hover
+	{
+		
+	}
+
+	.search-field::-webkit-input-placeholder
+	{
+		
+	}
+
+	.search-field::-moz-placeholder
+	{
+		
+	}
+
+	.search-filter-wrapper
+	{
+		
+	}
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/styles.css b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/styles.css
new file mode 100755
index 0000000000000000000000000000000000000000..48969f1d0820ca415bf7537f496f6a5dcae50632
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/styles.css
@@ -0,0 +1,663 @@
+/*<meta />*/
+
+/* Main Page Styles */
+
+body
+{
+	margin: 0 !important;
+	padding: 0 !important;
+	max-width: 100% !important;
+}
+
+.inner-wrap
+{
+	min-height: 100vh;
+}
+
+.row.outer-row
+{
+	margin: 0 auto;
+	padding-left: 1em;
+	padding-right: 1em;
+	max-width: 62.5em;
+}
+
+.main-section > .row.outer-row
+{
+	padding-top: 1em;
+	padding-bottom: 1em;
+	max-width: 62.5em;
+}
+
+img
+{
+	vertical-align: baseline;
+}
+
+.navigation-wrapper
+{
+	float: left;
+}
+
+.tab-bar-section.middle > div
+{
+	min-height: 40px;
+}
+
+/* Topbar (Navigation) Dropdown Styles*/
+
+ul.navigation
+{
+	height: 100%;
+	padding-top: 0;
+	padding-bottom: 0;
+	white-space: nowrap;
+	z-index: 1;
+	position: relative;
+	margin-top: 0;
+	margin-bottom: 0;
+	margin-left: 102px;
+	background-repeat: repeat;
+	background-position: center center;
+	line-height: -11px;
+	text-align: left;
+	color: #ffffff;
+	font-size: 14px;
+	font-weight: bold;
+	display: block;
+	padding-left: 20px;
+	padding-right: 20px;
+}
+
+ul.navigation,
+ul.navigation ul
+{
+	list-style: none;
+}
+
+ul.navigation ul
+{
+	z-index: 1000;
+	width: auto;
+	margin: 0;
+	padding: 10px 0 10px 0;
+	position: absolute;
+	background-color: #686868;
+}
+
+ul.navigation > li > ul
+{
+	left: 0;
+}
+
+ul.navigation > li.has-children:after
+{
+	content: ' ';
+	display: block;
+	position: absolute;
+	height: 0;
+	width: 0;
+	border: 8px solid transparent;
+	bottom: 0;
+	left: 50%;
+	margin-left: -8px;
+	border-bottom-color: #686868;
+}
+
+ul.navigation ul,
+ul.navigation > li.has-children:after
+{
+	-webkit-transition: all 100ms ease-in;
+	-moz-transition: all 100ms ease-in;
+	-ms-transition: all 100ms ease-in;
+	-o-transition: all 100ms ease-in;
+	transition: all 100ms ease-in;
+	visibility: hidden;
+	opacity: 0;
+}
+
+ul.navigation ul ul
+{
+	top: 0;
+	left: 100%;
+	background-color: #686868;
+}
+
+ul.navigation ul ul.openLeft
+{
+	left: auto;
+	right: 100%;
+}
+
+ul.navigation ul ul.openRight
+{
+	right: auto;
+	left: 100%;
+}
+
+ul.navigation a
+{
+	text-decoration: none;
+	height: 100%;
+	outline: none;
+	color: #ffffff;
+	font-size: 14px;
+	font-weight: bold;
+}
+
+ul.navigation li
+{
+	position: relative;
+	list-style: none;
+	margin: 0;
+	height: 100%;
+}
+
+ul.navigation li > a
+{
+	line-height: 30px;
+	text-align: left;
+	text-indent: -4px;
+	margin-left: 0px;
+	margin-right: 0px;
+	margin-top: 0px;
+	margin-bottom: 0px;
+	padding-left: 13px;
+	padding-right: 15px;
+	padding-top: 6px;
+	padding-bottom: 6px;
+	display: block;
+}
+
+ul.navigation li li
+{
+	padding: 0 10px;
+}
+
+ul.navigation > li
+{
+	position: relative;
+	float: left;
+	display: block;
+}
+
+ul.navigation li:hover > ul,
+ul.navigation > li.has-children:hover:after
+{
+	visibility: visible;
+	opacity: 1;
+}
+
+ul.navigation li:hover
+{
+	background-color: transparent;
+}
+
+ul.navigation ul > li
+{
+	line-height: 15px;
+}
+
+ul.navigation ul > li > a
+{
+	padding: 0 15px;
+	text-align: left;
+	padding-left: 10px;
+	padding-right: 10px;
+	padding-top: 10px;
+	padding-bottom: 10px;
+	line-height: 15px;
+}
+
+ul.navigation ul > li:hover
+{
+	background-color: #4b4b4b;
+}
+
+#resultList h3.title a:visited
+{
+	color: #2200C1;
+	text-decoration: underline;
+}
+
+#resultList h3.title a:focus
+{
+	color: #2200C1;
+	text-decoration: underline;
+}
+
+ul.navigation li > a:hover
+{
+	background-repeat: repeat;
+	color: #ffffff;
+}
+
+ul.navigation ul > li > a:hover
+{
+	background-repeat: repeat;
+}
+
+ul.navigation ul ul > li > a:hover
+{
+	background-repeat: repeat;
+}
+
+ul.navigation ul ul ul > li > a:hover
+{
+	background-repeat: repeat;
+}
+
+ul.navigation ul ul ul ul > li > a:hover
+{
+	background-repeat: repeat;
+}
+
+#pagination a:hover
+{
+	border-top: solid 1px #e2e2e6;
+}
+
+#resultList h3.title a:hover
+{
+	text-decoration: underline;
+}
+
+#resultList h3.title a:active
+{
+	color: #2200C1;
+	text-decoration: underline;
+}
+
+ul.navigation ul > li.has-children > a:after
+{
+	position: absolute;
+	border: none;
+	content: "\00bb";
+	right: 5px;
+	top: 9px;
+}
+
+nav.tab-bar
+{
+	height: auto;
+	line-height: inherit;
+	padding: 10px 0;
+	display: block;
+	background-repeat: no-repeat;
+	background-position: center top;
+	padding-top: 10px;
+	padding-bottom: 10px;
+	background: #292928 none;
+	background: -moz-linear-gradient(top, #000000 0%, transparent 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#000000), color-stop(100%,transparent));
+	background: -webkit-linear-gradient(top, #000000 0%, transparent 100%);
+	background: -o-linear-gradient(top, #000000 0%,transparent 100%);
+	background: -ms-linear-gradient(top, #000000 0%,transparent 100%);
+	background: linear-gradient(top, #000000 0%,transparent 100%);
+	-pie-background: linear-gradient(#000000, transparent);
+}
+
+nav.tab-bar .menu-icon
+{
+	display: none;
+}
+
+.tab-bar-section
+{
+	position: relative;
+}
+
+.tab-bar-section.middle
+{
+	width: 100%;
+	left: 0;
+	right: 0;
+	height: auto;
+	min-height: 2.5em;
+}
+
+.tab-bar-section a.logo
+{
+	border: none;
+	padding: 0;
+	margin: 0;
+	position: absolute;
+	display: block;
+	width: 102px;
+	height: 24px;
+	top: 50%;
+	bottom: auto;
+	margin-top: -12px;
+	left: 0;
+	background: #ffffff url('Images/logo-veremes.png') no-repeat center center;
+	background: url('Images/logo-veremes.png') no-repeat center center, -moz-linear-gradient(top, #ffffff 0%, #ffffff 100%);
+	background: url('Images/logo-veremes.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ffffff));
+	background: url('Images/logo-veremes.png') no-repeat center center, -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%);
+	background: url('Images/logo-veremes.png') no-repeat center center, -o-linear-gradient(top, #ffffff 0%,#ffffff 100%);
+	background: url('Images/logo-veremes.png') no-repeat center center, -ms-linear-gradient(top, #ffffff 0%,#ffffff 100%);
+	background: url('Images/logo-veremes.png') no-repeat center center, linear-gradient(top, #ffffff 0%,#ffffff 100%);
+	-pie-background: url('Skins/Fluid/Stylesheets/Images/logo-veremes.png') no-repeat center center, linear-gradient(#ffffff, #ffffff);
+}
+
+/* Topbar Menu Functionality Styles */
+
+#navigation.topbar > .row
+{
+	height: 100%;
+}
+
+#navigation.topbar
+{
+	background-color: #292928;
+	padding-top: 10px;
+	padding-bottom: 10px;
+}
+
+/* Search */
+
+.nav-search
+{
+	margin-top: 10px;
+}
+
+.search-field
+{
+	padding: 0 0 0 10px;
+	background: #FFFFFF;
+	top: 0;
+	left: 0;
+	position: relative;
+	height: 2em;
+	border-top: none;
+	border-right: none;
+	border-bottom: none;
+	border-left: none;
+	border-top-left-radius: 25px;
+	border-top-right-radius: 25px;
+	border-bottom-right-radius: 25px;
+	border-bottom-left-radius: 25px;
+	color: #5F5F5F;
+	font-size: 1em;
+	padding-left: 10px;
+	background-color: #ffffff;
+	padding-right: 106px;
+}
+
+.search-field::-webkit-search-cancel-button
+{
+	display: none;
+}
+
+.search-filter
+{
+	float: left;
+	box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	line-height: 2em;
+	padding-right: 5px;
+	cursor: pointer;
+	height: 2em;
+	border-top: none;
+	border-bottom: none;
+	border-right: solid 1px #000000;
+	border-left: solid 1px #000000;
+	width: 45px;
+	background: #ffffff url('Images/FilterOutline.png') no-repeat center center;
+	-pie-background: #ffffff url('Skins/Fluid/Stylesheets/Images/FilterOutline.png') no-repeat center center;
+}
+
+.search-filter.selected
+{
+	background: transparent url('Images/Filter.png') no-repeat center center;
+	-pie-background: transparent url('Skins/Fluid/Stylesheets/Images/Filter.png') no-repeat center center;
+}
+
+.search-filter.open
+{
+	background: #ffffff url('Images/FilterOutline.png') no-repeat center center;
+	-pie-background: #ffffff url('Skins/Fluid/Stylesheets/Images/FilterOutline.png') no-repeat center center;
+	color: #888888;
+	background-color: #ffffff;
+}
+
+.search-filter-wrapper
+{
+	display: none;
+	position: absolute;
+	top: 0;
+	right: 56px;
+}
+
+.search-filter-content
+{
+	display: none;
+	-webkit-border-radius: 0 0 4px 4px;
+	-moz-border-radius: 0 0 4px 4px;
+	border-radius: 0 0 4px 4px;
+	position: absolute;
+	right: 0;
+	line-height: normal;
+	text-align: left;
+	overflow: auto;
+	z-index: 1;
+	white-space: nowrap;
+	top: 2em;
+	color: #888888;
+	background-color: #ffffff;
+}
+
+.search-filter-content ul li
+{
+	padding: 5px;
+	margin: 0;
+}
+
+.search-filter-content ul li:hover
+{
+	color: #000000;
+	background-color: #ffffff;
+}
+
+.search-submit-wrapper
+{
+	position: absolute;
+	top: 0;
+	right: 0;
+}
+
+/* OffCanvas */
+
+ul.off-canvas-list li
+{
+	margin: 0;
+}
+
+.left-off-canvas-menu,
+.right-off-canvas-menu
+{
+	display: none;
+}
+
+nav.tab-bar .row.outer-row
+{
+	max-width: 76.5em;
+}
+
+.tab-bar .menu-icon span
+{
+	top: 10px;
+}
+
+ul.navigation ul a
+{
+	
+}
+
+ul.navigation ul ul a
+{
+	
+}
+
+ul.navigation ul ul ul
+{
+	background-color: #686868;
+}
+
+ul.navigation ul ul ul a
+{
+	
+}
+
+ul.navigation ul ul ul ul
+{
+	background-color: #686868;
+}
+
+ul.navigation ul ul ul ul a
+{
+	
+}
+
+ul.navigation ul ul > li > a
+{
+	
+}
+
+ul.navigation ul ul ul > li > a
+{
+	
+}
+
+ul.navigation ul ul ul ul > li > a
+{
+	
+}
+
+ul.navigation ul ul > li:hover
+{
+	background-color: #4b4b4b;
+}
+
+ul.navigation ul ul ul > li:hover
+{
+	background-color: #4b4b4b;
+}
+
+ul.navigation ul ul ul ul > li:hover
+{
+	background-color: #4b4b4b;
+}
+
+.row.nav-search
+{
+	display: block;
+	margin-top: 10px;
+	margin-bottom: 0px;
+}
+
+.search-bar
+{
+	width: 100%;
+}
+
+.search-submit
+{
+	height: 2em;
+	border-top: none;
+	border-right: none;
+	border-bottom: none;
+	border-top-right-radius: 25px;
+	border-bottom-right-radius: 25px;
+	width: 56px;
+	background: #bed230 url('Images/SearchIcon.png') no-repeat center center;
+	-pie-background: #bed230 url('Skins/Fluid/Stylesheets/Images/SearchIcon.png') no-repeat center center;
+}
+
+h1#results-heading
+{
+	color: #393f45;
+	font-size: 1.5em;
+	font-weight: bold;
+	font-style: normal;
+}
+
+#results-heading
+{
+	border-bottom: solid 1px #EBEBEB;
+	margin-bottom: 20px;
+	padding-bottom: 10px;
+}
+
+.search-field::-webkit-input-placeholder
+{
+	color: #5F5F5F;
+}
+
+.search-field::-moz-placeholder
+{
+	color: #5F5F5F;
+}
+
+#pagination
+{
+	height: 2.5em;
+	line-height: 2.5em;
+}
+
+#pagination a
+{
+	border-top: solid 1px #fafafc;
+	border-right: solid 1px #fafafc;
+	border-bottom: solid 1px #fafafc;
+	border-left: solid 1px #fafafc;
+	color: #0185D1;
+	font-size: 1em;
+	margin-left: 5px;
+	margin-right: 5px;
+	margin-top: 20px;
+	margin-bottom: 20px;
+	padding-left: 8px;
+	padding-right: 8px;
+	padding-top: 2px;
+	padding-bottom: 2px;
+	text-decoration: none;
+}
+
+#pagination a#selected
+{
+	font-weight: bold;
+	border-top: solid 1px #e2e2e6;
+}
+
+.description
+{
+	font-size: 0.8em;
+}
+
+#resultList h3.title a
+{
+	color: #0185D1;
+	font-size: 1em;
+}
+
+#resultList h3.title
+{
+	margin-bottom: 2px;
+	text-decoration: none;
+}
+
+.url cite
+{
+	color: #0E774A;
+	font-size: 0.8em;
+	font-style: normal;
+}
+
+#resultList
+{
+	line-height: 1em;
+	text-align: left;
+	display: block;
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/tablet.css b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/tablet.css
new file mode 100755
index 0000000000000000000000000000000000000000..c731499e2538bfc748fdfd2dc4a75aa4412c5194
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/Skins/Fluid/stylesheets/tablet.css
@@ -0,0 +1,242 @@
+/*<meta />*/
+
+@media only screen and (max-width: 1279px)
+{
+	/* OffCanvas styles */
+
+	html,
+	body
+	{
+		height: 100%;
+		margin: 0;
+		overflow-x: hidden;
+	}
+
+	.left-off-canvas-menu,
+	.right-off-canvas-menu
+	{
+		display: block;
+	}
+
+	/* Foundation Overrides */
+
+	.foundation-wrap,
+	.off-canvas-wrap,
+	.inner-wrap
+	{
+		min-height: 100%;
+	}
+
+	.foundation-wrap,
+	.off-canvas-wrap
+	{
+		height: 100%;
+		overflow-y: auto;
+	}
+
+	nav.tab-bar .menu-icon
+	{
+		display: block;
+		border: none;
+		z-index: 100;
+		top: 50%;
+		margin-top: -24px;
+		position: absolute;
+		left: -13px;
+	}
+
+	nav.tab-bar
+	{
+		background-repeat: no-repeat;
+		background-position: center top;
+		padding-left: -11px;
+		background: #ffffff none;
+		-pie-background: #ffffff;
+	}
+
+	/* Topbar Menu Styles */
+
+	.tab-bar-section.middle > div
+	{
+		min-height: 40px;
+	}
+
+	ul.navigation
+	{
+		display: none;
+	}
+
+	.responsive-header
+	{
+		display: block;
+		background: #292929;
+		height: 60px;
+	}
+
+	.tab-bar-section a.logo
+	{
+		top: 0;
+		margin: 0 auto;
+		width: 102px;
+		height: 24px;
+		background: transparent url('Images/logo-veremes.png') no-repeat center center;
+		background: url('Images/logo-veremes.png') no-repeat center center, -moz-linear-gradient(top, transparent 0%, transparent 100%);
+		background: url('Images/logo-veremes.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, color-stop(0%,transparent), color-stop(100%,transparent));
+		background: url('Images/logo-veremes.png') no-repeat center center, -webkit-linear-gradient(top, transparent 0%, transparent 100%);
+		background: url('Images/logo-veremes.png') no-repeat center center, -o-linear-gradient(top, transparent 0%,transparent 100%);
+		background: url('Images/logo-veremes.png') no-repeat center center, -ms-linear-gradient(top, transparent 0%,transparent 100%);
+		background: url('Images/logo-veremes.png') no-repeat center center, linear-gradient(top, transparent 0%,transparent 100%);
+		-pie-background: url('Skins/Fluid/Stylesheets/Images/logo-veremes.png') no-repeat center center, linear-gradient(transparent, transparent);
+	}
+
+	.tab-bar .menu-icon span
+	{
+		height: 48px;
+		width: 48px;
+		display: block;
+		top: 10px;
+		background: transparent url('Images/Menu.png') no-repeat center center;
+		-pie-background: transparent url('Skins/Fluid/Stylesheets/Images/Menu.png') no-repeat center center;
+	}
+
+	.search-submit
+	{
+		background-repeat: no-repeat;
+		background-position: center center;
+	}
+
+	.search-filter
+	{
+		background: transparent url('Images/SearchIcon2.gif') no-repeat center center;
+		-pie-background: transparent url('Skins/Fluid/Stylesheets/Images/SearchIcon2.gif') no-repeat center center;
+	}
+
+	.search-input
+	{
+		background-repeat: no-repeat;
+		background-position: center center;
+	}
+
+	.right-off-canvas-menu
+	{
+		background-position: top center;
+		background-color: #333333;
+	}
+
+	.right-off-canvas-menu ul ul
+	{
+		background-position: top center;
+		background-color: #333333;
+	}
+
+	.left-off-canvas-menu
+	{
+		background-position: top center;
+		background-color: #333333;
+	}
+
+	.left-off-canvas-menu ul ul
+	{
+		background-position: top center;
+		background-color: #333333;
+	}
+
+	.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after,
+	.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after
+	{
+		margin-left: 0.5rem;
+	}
+
+	.right-submenu .back > a:after,
+	.left-submenu .back > a:after
+	{
+		margin-left: 0.5em;
+	}
+
+	nav.tab-bar .row.outer-row
+	{
+		
+	}
+
+	.row.outer-row
+	{
+		
+	}
+
+	.main-section > .row.outer-row
+	{
+		
+	}
+
+	ul.off-canvas-list li a
+	{
+		
+	}
+
+	ul.off-canvas-list li.back > a
+	{
+		
+	}
+
+	ul.off-canvas-list li a:hover
+	{
+		background-color: #242424;
+	}
+
+	ul.off-canvas-list li.back > a:hover
+	{
+		background-color: #242424;
+	}
+
+	.row.nav-search
+	{
+		
+	}
+
+	.search-bar
+	{
+		
+	}
+
+	.search-field
+	{
+		padding-right: 106px;
+	}
+
+	.search-filter-content
+	{
+		
+	}
+
+	.search-filter.open
+	{
+		background: transparent url('Images/SearchIcon2.gif');
+		-pie-background: transparent url('Skins/Fluid/Stylesheets/Images/SearchIcon2.gif');
+	}
+
+	.search-filter.selected
+	{
+		
+	}
+
+	.search-filter-content ul li:hover
+	{
+		
+	}
+
+	.search-field::-webkit-input-placeholder
+	{
+		
+	}
+
+	.search-field::-moz-placeholder
+	{
+		
+	}
+
+	.search-filter-wrapper
+	{
+		
+	}
+}
+
diff --git a/src/module_gtf/module/gtf.doc/admin/csh.js b/src/module_gtf/module/gtf.doc/admin/csh.js
new file mode 100755
index 0000000000000000000000000000000000000000..0fe104654e0ea980a59c492285906f92544d0266
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/csh.js
@@ -0,0 +1,509 @@
+/// <reference path="../Scripts/jquery.js" />
+/// <reference path="../Scripts/MadCapUtilities.js" />
+/// <reference path="../Scripts/MadCapGlobal.js" />
+/// <reference path="../Scripts/MadCapDom.js" />
+/// <reference path="Scripts/MadCapHelpSystem.js" />
+
+/*!
+* Copyright MadCap Software
+* http://www.madcapsoftware.com/
+*
+* v11.0.0.0
+*/
+
+/*
+ RequireJS 2.1.11 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
+ Available via the MIT or new BSD license.
+ see: http://github.com/jrburke/requirejs for details
+*/
+var requirejs, require, define;
+(function (ca) {
+    function G(b) { return "[object Function]" === M.call(b) } function H(b) { return "[object Array]" === M.call(b) } function v(b, c) { if (b) { var d; for (d = 0; d < b.length && (!b[d] || !c(b[d], d, b)) ; d += 1); } } function U(b, c) { if (b) { var d; for (d = b.length - 1; -1 < d && (!b[d] || !c(b[d], d, b)) ; d -= 1); } } function s(b, c) { return ga.call(b, c) } function j(b, c) { return s(b, c) && b[c] } function B(b, c) { for (var d in b) if (s(b, d) && c(b[d], d)) break } function V(b, c, d, g) {
+        c && B(c, function (c, h) {
+            if (d || !s(b, h)) g && "object" === typeof c && c && !H(c) && !G(c) && !(c instanceof
+            RegExp) ? (b[h] || (b[h] = {}), V(b[h], c, d, g)) : b[h] = c
+        }); return b
+    } function t(b, c) { return function () { return c.apply(b, arguments) } } function da(b) { throw b; } function ea(b) { if (!b) return b; var c = ca; v(b.split("."), function (b) { c = c[b] }); return c } function C(b, c, d, g) { c = Error(c + "\nhttp://requirejs.org/docs/errors.html#" + b); c.requireType = b; c.requireModules = g; d && (c.originalError = d); return c } function ha(b) {
+        function c(a, e, b) {
+            var f, n, c, d, g, h, i, I = e && e.split("/"); n = I; var m = l.map, k = m && m["*"]; if (a && "." === a.charAt(0)) if (e) {
+                n =
+                I.slice(0, I.length - 1); a = a.split("/"); e = a.length - 1; l.nodeIdCompat && R.test(a[e]) && (a[e] = a[e].replace(R, "")); n = a = n.concat(a); d = n.length; for (e = 0; e < d; e++) if (c = n[e], "." === c) n.splice(e, 1), e -= 1; else if (".." === c) if (1 === e && (".." === n[2] || ".." === n[0])) break; else 0 < e && (n.splice(e - 1, 2), e -= 2); a = a.join("/")
+            } else 0 === a.indexOf("./") && (a = a.substring(2)); if (b && m && (I || k)) {
+                n = a.split("/"); e = n.length; a: for (; 0 < e; e -= 1) {
+                    d = n.slice(0, e).join("/"); if (I) for (c = I.length; 0 < c; c -= 1) if (b = j(m, I.slice(0, c).join("/"))) if (b = j(b, d)) {
+                        f = b;
+                        g = e; break a
+                    } !h && (k && j(k, d)) && (h = j(k, d), i = e)
+                } !f && h && (f = h, g = i); f && (n.splice(0, g, f), a = n.join("/"))
+            } return (f = j(l.pkgs, a)) ? f : a
+        } function d(a) { z && v(document.getElementsByTagName("script"), function (e) { if (e.getAttribute("data-requiremodule") === a && e.getAttribute("data-requirecontext") === i.contextName) return e.parentNode.removeChild(e), !0 }) } function g(a) { var e = j(l.paths, a); if (e && H(e) && 1 < e.length) return e.shift(), i.require.undef(a), i.require([a]), !0 } function u(a) {
+            var e; return [e, a];
+        } function m(a, e, b, f) { var n, d, g = null, h = e ? e.name : null, l = a, m = !0, k = ""; a || (m = !1, a = "_@r" + (M += 1)); a = u(a); g = a[0]; a = a[1]; g && (g = c(g, h, f), d = j(p, g)); a && (g ? k = d && d.normalize ? d.normalize(a, function (a) { return c(a, h, f) }) : c(a, h, f) : (k = c(a, h, f), a = u(k), g = a[0], k = a[1], b = !0, n = i.nameToUrl(k))); b = g && !d && !b ? "_unnormalized" + (Q += 1) : ""; return { prefix: g, name: k, parentMap: e, unnormalized: !!b, url: n, originalName: l, isDefine: m, id: (g ? g + "!" + k : k) + b } } function q(a) {
+            var e = a.id, b = j(k, e); b || (b = k[e] = new i.Module(a));
+            return b
+        } function r(a, e, b) { var f = a.id, n = j(k, f); if (s(p, f) && (!n || n.defineEmitComplete)) "defined" === e && b(p[f]); else if (n = q(a), n.error && "error" === e) b(n.error); else n.on(e, b) } function w(a, e) { var b = a.requireModules, f = !1; if (e) e(a); else if (v(b, function (e) { if (e = j(k, e)) e.error = a, e.events.error && (f = !0, e.emit("error", a)) }), !f) h.onError(a) } function x() { S.length && (ia.apply(A, [A.length, 0].concat(S)), S = []) } function y(a) { delete k[a]; delete W[a] } function F(a, e, b) {
+            var f = a.map.id; a.error ? a.emit("error", a.error) : (e[f] =
+            !0, v(a.depMaps, function (f, c) { var d = f.id, g = j(k, d); g && (!a.depMatched[c] && !b[d]) && (j(e, d) ? (a.defineDep(c, p[d]), a.check()) : F(g, e, b)) }), b[f] = !0)
+        } function D() {
+            var a, e, b = (a = 1E3 * l.waitSeconds) && i.startTime + a < (new Date).getTime(), f = [], c = [], h = !1, k = !0; if (!X) {
+                X = !0; B(W, function (a) { var i = a.map, m = i.id; if (a.enabled && (i.isDefine || c.push(a), !a.error)) if (!a.inited && b) g(m) ? h = e = !0 : (f.push(m), d(m)); else if (!a.inited && (a.fetched && i.isDefine) && (h = !0, !i.prefix)) return k = !1 }); if (b && f.length) return a = C("timeout", "Load timeout for modules: " +
+                f, null, f), a.contextName = i.contextName, w(a); k && v(c, function (a) { F(a, {}, {}) }); if ((!b || e) && h) if ((z || fa) && !Y) Y = setTimeout(function () { Y = 0; D() }, 50); X = !1
+            }
+        } function E(a) { s(p, a[0]) || q(m(a[0], null, !0)).init(a[1], a[2]) } function K(a) { var a = a.currentTarget || a.srcElement, e = i.onScriptLoad; a.detachEvent && !Z ? a.detachEvent("onreadystatechange", e) : a.removeEventListener("load", e, !1); e = i.onScriptError; (!a.detachEvent || Z) && a.removeEventListener("error", e, !1); return { node: a, id: a && a.getAttribute("data-requiremodule") } } function L() {
+            var a;
+            for (x() ; A.length;) { a = A.shift(); if (null === a[0]) return w(C("mismatch", "Mismatched anonymous define() module: " + a[a.length - 1])); E(a) }
+        } var X, $, i, N, Y, l = { waitSeconds: 7, baseUrl: "./", paths: {}, bundles: {}, pkgs: {}, shim: {}, config: {} }, k = {}, W = {}, aa = {}, A = [], p = {}, T = {}, ba = {}, M = 1, Q = 1; N = {
+            require: function (a) { return a.require ? a.require : a.require = i.makeRequire(a.map) }, exports: function (a) { a.usingExports = !0; if (a.map.isDefine) return a.exports ? p[a.map.id] = a.exports : a.exports = p[a.map.id] = {} }, module: function (a) {
+                return a.module ?
+                a.module : a.module = { id: a.map.id, uri: a.map.url, config: function () { return j(l.config, a.map.id) || {} }, exports: a.exports || (a.exports = {}) }
+            }
+        }; $ = function (a) { this.events = j(aa, a.id) || {}; this.map = a; this.shim = j(l.shim, a.id); this.depExports = []; this.depMaps = []; this.depMatched = []; this.pluginMaps = {}; this.depCount = 0 }; $.prototype = {
+            init: function (a, e, b, f) {
+                f = f || {}; if (!this.inited) {
+                    this.factory = e; if (b) this.on("error", b); else this.events.error && (b = t(this, function (a) { this.emit("error", a) })); this.depMaps = a && a.slice(0); this.errback =
+                    b; this.inited = !0; this.ignore = f.ignore; f.enabled || this.enabled ? this.enable() : this.check()
+                }
+            }, defineDep: function (a, e) { this.depMatched[a] || (this.depMatched[a] = !0, this.depCount -= 1, this.depExports[a] = e) }, fetch: function () { if (!this.fetched) { this.fetched = !0; i.startTime = (new Date).getTime(); var a = this.map; if (this.shim) i.makeRequire(this.map, { enableBuildCallback: !0 })(this.shim.deps || [], t(this, function () { return a.prefix ? this.callPlugin() : this.load() })); else return a.prefix ? this.callPlugin() : this.load() } }, load: function () {
+                var a =
+                this.map.url; T[a] || (T[a] = !0, i.load(this.map.id, a))
+            }, check: function () {
+                if (this.enabled && !this.enabling) {
+                    var a, e, b = this.map.id; e = this.depExports; var f = this.exports, c = this.factory; if (this.inited) if (this.error) this.emit("error", this.error); else {
+                        if (!this.defining) {
+                            this.defining = !0; if (1 > this.depCount && !this.defined) {
+                                if (G(c)) {
+                                    if (this.events.error && this.map.isDefine || h.onError !== da) try { f = i.execCb(b, c, e, f) } catch (d) { a = d } else f = i.execCb(b, c, e, f); this.map.isDefine && void 0 === f && ((e = this.module) ? f = e.exports : this.usingExports &&
+                                    (f = this.exports)); if (a) return a.requireMap = this.map, a.requireModules = this.map.isDefine ? [this.map.id] : null, a.requireType = this.map.isDefine ? "define" : "require", w(this.error = a)
+                                } else f = c; this.exports = f; if (this.map.isDefine && !this.ignore && (p[b] = f, h.onResourceLoad)) h.onResourceLoad(i, this.map, this.depMaps); y(b); this.defined = !0
+                            } this.defining = !1; this.defined && !this.defineEmitted && (this.defineEmitted = !0, this.emit("defined", this.exports), this.defineEmitComplete = !0)
+                        }
+                    } else this.fetch()
+                }
+            }, callPlugin: function () {
+                var a =
+                this.map, b = a.id, d = m(a.prefix); this.depMaps.push(d); r(d, "defined", t(this, function (f) {
+                    var d, g; g = j(ba, this.map.id); var J = this.map.name, u = this.map.parentMap ? this.map.parentMap.name : null, p = i.makeRequire(a.parentMap, { enableBuildCallback: !0 }); if (this.map.unnormalized) {
+                        if (f.normalize && (J = f.normalize(J, function (a) { return c(a, u, !0) }) || ""), f = m(a.prefix + "!" + J, this.map.parentMap), r(f, "defined", t(this, function (a) { this.init([], function () { return a }, null, { enabled: !0, ignore: !0 }) })), g = j(k, f.id)) {
+                            this.depMaps.push(f);
+                            if (this.events.error) g.on("error", t(this, function (a) { this.emit("error", a) })); g.enable()
+                        }
+                    } else g ? (this.map.url = i.nameToUrl(g), this.load()) : (d = t(this, function (a) { this.init([], function () { return a }, null, { enabled: !0 }) }), d.error = t(this, function (a) { this.inited = !0; this.error = a; a.requireModules = [b]; B(k, function (a) { 0 === a.map.id.indexOf(b + "_unnormalized") && y(a.map.id) }); w(a) }), d.fromText = t(this, function (f, c) {
+                        var g = a.name, J = m(g), k = O; c && (f = c); k && (O = !1); q(J); s(l.config, b) && (l.config[g] = l.config[b]); try { h.exec(f) } catch (j) {
+                            return w(C("fromtexteval",
+                            "fromText eval for " + b + " failed: " + j, j, [b]))
+                        } k && (O = !0); this.depMaps.push(J); i.completeLoad(g); p([g], d)
+                    }), f.load(a.name, p, d, l))
+                })); i.enable(d, this); this.pluginMaps[d.id] = d
+            }, enable: function () {
+                W[this.map.id] = this; this.enabling = this.enabled = !0; v(this.depMaps, t(this, function (a, b) {
+                    var c, f; if ("string" === typeof a) {
+                        a = m(a, this.map.isDefine ? this.map : this.map.parentMap, !1, !this.skipMap); this.depMaps[b] = a; if (c = j(N, a.id)) { this.depExports[b] = c(this); return } this.depCount += 1; r(a, "defined", t(this, function (a) {
+                            this.defineDep(b,
+                            a); this.check()
+                        })); this.errback && r(a, "error", t(this, this.errback))
+                    } c = a.id; f = k[c]; !s(N, c) && (f && !f.enabled) && i.enable(a, this)
+                })); B(this.pluginMaps, t(this, function (a) { var b = j(k, a.id); b && !b.enabled && i.enable(a, this) })); this.enabling = !1; this.check()
+            }, on: function (a, b) { var c = this.events[a]; c || (c = this.events[a] = []); c.push(b) }, emit: function (a, b) { v(this.events[a], function (a) { a(b) }); "error" === a && delete this.events[a] }
+        }; i = {
+            config: l, contextName: b, registry: k, defined: p, urlFetched: T, defQueue: A, Module: $, makeModuleMap: m,
+            nextTick: h.nextTick, onError: w, configure: function (a) {
+                a.baseUrl && "/" !== a.baseUrl.charAt(a.baseUrl.length - 1) && (a.baseUrl += "/"); var b = l.shim, c = { paths: !0, bundles: !0, config: !0, map: !0 }; B(a, function (a, b) { c[b] ? (l[b] || (l[b] = {}), V(l[b], a, !0, !0)) : l[b] = a }); a.bundles && B(a.bundles, function (a, b) { v(a, function (a) { a !== b && (ba[a] = b) }) }); a.shim && (B(a.shim, function (a, c) { H(a) && (a = { deps: a }); if ((a.exports || a.init) && !a.exportsFn) a.exportsFn = i.makeShimExports(a); b[c] = a }), l.shim = b); a.packages && v(a.packages, function (a) {
+                    var b,
+                    a = "string" === typeof a ? { name: a } : a; b = a.name; a.location && (l.paths[b] = a.location); l.pkgs[b] = a.name + "/" + (a.main || "main").replace(ja, "").replace(R, "")
+                }); B(k, function (a, b) { !a.inited && !a.map.unnormalized && (a.map = m(b)) }); if (a.deps || a.callback) i.require(a.deps || [], a.callback)
+            }, makeShimExports: function (a) { return function () { var b; a.init && (b = a.init.apply(ca, arguments)); return b || a.exports && ea(a.exports) } }, makeRequire: function (a, e) {
+                function g(f, c, d) {
+                    var j, l; e.enableBuildCallback && (c && G(c)) && (c.__requireJsBuild =
+                    !0); if ("string" === typeof f) { if (G(c)) return w(C("requireargs", "Invalid require call"), d); if (a && s(N, f)) return N[f](k[a.id]); if (h.get) return h.get(i, f, a, g); j = m(f, a, !1, !0); j = j.id; return !s(p, j) ? w(C("notloaded", 'Module name "' + j + '" has not been loaded yet for context: ' + b + (a ? "" : ". Use require([])"))) : p[j] } L(); i.nextTick(function () { L(); l = q(m(null, a)); l.skipMap = e.skipMap; l.init(f, c, d, { enabled: !0 }); D() }); return g
+                } e = e || {}; V(g, {
+                    isBrowser: z, toUrl: function (b) {
+                        var e, d = b.lastIndexOf("."), g = b.split("/")[0]; if (-1 !==
+                        d && (!("." === g || ".." === g) || 1 < d)) e = b.substring(d, b.length), b = b.substring(0, d); return i.nameToUrl(c(b, a && a.id, !0), e, !0)
+                    }, defined: function (b) { return s(p, m(b, a, !1, !0).id) }, specified: function (b) { b = m(b, a, !1, !0).id; return s(p, b) || s(k, b) }
+                }); a || (g.undef = function (b) { x(); var c = m(b, a, !0), e = j(k, b); d(b); delete p[b]; delete T[c.url]; delete aa[b]; U(A, function (a, c) { a[0] === b && A.splice(c, 1) }); e && (e.events.defined && (aa[b] = e.events), y(b)) }); return g
+            }, enable: function (a) { j(k, a.id) && q(a).enable() }, completeLoad: function (a) {
+                var b,
+                c, f = j(l.shim, a) || {}, d = f.exports; for (x() ; A.length;) { c = A.shift(); if (null === c[0]) { c[0] = a; if (b) break; b = !0 } else c[0] === a && (b = !0); E(c) } c = j(k, a); if (!b && !s(p, a) && c && !c.inited) { if (l.enforceDefine && (!d || !ea(d))) return g(a) ? void 0 : w(C("nodefine", "No define call for " + a, null, [a])); E([a, f.deps || [], f.exportsFn]) } D()
+            }, nameToUrl: function (a, b, c) {
+                var f, d, g; (f = j(l.pkgs, a)) && (a = f); if (f = j(ba, a)) return i.nameToUrl(f, b, c); if (h.jsExtRegExp.test(a)) f = a + (b || ""); else {
+                    f = l.paths; a = a.split("/"); for (d = a.length; 0 < d; d -= 1) if (g = a.slice(0,
+                    d).join("/"), g = j(f, g)) { H(g) && (g = g[0]); a.splice(0, d, g); break } f = a.join("/"); f += b || (/^data\:|\?/.test(f) || c ? "" : ".js"); f = ("/" === f.charAt(0) || f.match(/^[\w\+\.\-]+:/) ? "" : l.baseUrl) + f
+                } return l.urlArgs ? f + ((-1 === f.indexOf("?") ? "?" : "&") + l.urlArgs) : f
+            }, load: function (a, b) { h.load(i, a, b) }, execCb: function (a, b, c, d) { return b.apply(d, c) }, onScriptLoad: function (a) { if ("load" === a.type || ka.test((a.currentTarget || a.srcElement).readyState)) P = null, a = K(a), i.completeLoad(a.id) }, onScriptError: function (a) {
+                var b = K(a); if (!g(b.id)) return w(C("scripterror",
+                "Script error for: " + b.id, a, [b.id]))
+            }
+        }; i.require = i.makeRequire(); return i
+    } var h, x, y, D, K, E, P, L, q, Q, la = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, ma = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, R = /\.js$/, ja = /^\.\//; x = Object.prototype; var M = x.toString, ga = x.hasOwnProperty, ia = Array.prototype.splice, z = !!("undefined" !== typeof window && "undefined" !== typeof navigator && window.document), fa = !z && "undefined" !== typeof importScripts, ka = z && "PLAYSTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/,
+    Z = "undefined" !== typeof opera && "[object Opera]" === opera.toString(), F = {}, r = {}, S = [], O = !1; if ("undefined" === typeof define) {
+        if ("undefined" !== typeof requirejs) { if (G(requirejs)) return; r = requirejs; requirejs = void 0 } "undefined" !== typeof require && !G(require) && (r = require, require = void 0); h = requirejs = function (b, c, d, g) { var u, m = "_"; !H(b) && "string" !== typeof b && (u = b, H(c) ? (b = c, c = d, d = g) : b = []); u && u.context && (m = u.context); (g = j(F, m)) || (g = F[m] = h.s.newContext(m)); u && g.configure(u); return g.require(b, c, d) }; h.config = function (b) { return h(b) };
+        h.nextTick = "undefined" !== typeof setTimeout ? function (b) { setTimeout(b, 4) } : function (b) { b() }; require || (require = h); h.version = "2.1.11"; h.jsExtRegExp = /^\/|:|\?|\.js$/; h.isBrowser = z; x = h.s = { contexts: F, newContext: ha }; h({}); v(["toUrl", "undef", "defined", "specified"], function (b) { h[b] = function () { var c = F._; return c.require[b].apply(c, arguments) } }); if (z && (y = x.head = document.getElementsByTagName("head")[0], D = document.getElementsByTagName("base")[0])) y = x.head = D.parentNode; h.onError = da; h.createNode = function (b) {
+            var c =
+            b.xhtml ? document.createElementNS("http://www.w3.org/1999/xhtml", "html:script") : document.createElement("script"); c.type = b.scriptType || "text/javascript"; c.charset = "utf-8"; c.async = !0; return c
+        }; h.load = function (b, c, d) {
+            var g = b && b.config || {}; if (z) return g = h.createNode(g, c, d), g.setAttribute("data-requirecontext", b.contextName), g.setAttribute("data-requiremodule", c), g.attachEvent && !(g.attachEvent.toString && 0 > g.attachEvent.toString().indexOf("[native code")) && !Z ? (O = !0, g.attachEvent("onreadystatechange", b.onScriptLoad)) :
+            (g.addEventListener("load", b.onScriptLoad, !1), g.addEventListener("error", b.onScriptError, !1)), g.src = d, L = g, D ? y.insertBefore(g, D) : y.appendChild(g), L = null, g; if (fa) try { importScripts(d), b.completeLoad(c) } catch (j) { b.onError(C("importscripts", "importScripts failed for " + c + " at " + d, j, [c])) }
+        }; z && !r.skipDataMain && U(document.getElementsByTagName("script"), function (b) {
+            y || (y = b.parentNode); if (K = b.getAttribute("data-main")) return q = K, r.baseUrl || (E = q.split("/"), q = E.pop(), Q = E.length ? E.join("/") + "/" : "./", r.baseUrl =
+            Q), q = q.replace(R, ""), h.jsExtRegExp.test(q) && (q = K), r.deps = r.deps ? r.deps.concat(q) : [q], !0
+        }); define = function (b, c, d) {
+            var g, h; "string" !== typeof b && (d = c, c = b, b = null); H(c) || (d = c, c = null); !c && G(d) && (c = [], d.length && (d.toString().replace(la, "").replace(ma, function (b, d) { c.push(d) }), c = (1 === d.length ? ["require"] : ["require", "exports", "module"]).concat(c))); if (O) {
+                if (!(g = L)) P && "interactive" === P.readyState || U(document.getElementsByTagName("script"), function (b) { if ("interactive" === b.readyState) return P = b }), g = P; g && (b ||
+                (b = g.getAttribute("data-requiremodule")), h = F[g.getAttribute("data-requirecontext")])
+            } (h ? h.defQueue : S).push([b, c, d])
+        }; define.amd = { jQuery: !0 }; h.exec = function (b) { return eval(b) }; h(r)
+    }
+})(this);/* require end */
+
+/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
+
+/*
+* Copyright MadCap Software
+* http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+*
+ * v11.0.0.0
+*/
+var MadCap={};MadCap.CreateNamespace=function(b){var d=b.split(".");var e=MadCap;for(var a=0,c=d.length;a<c;a++){var b=d[a];if(b=="MadCap"){continue}if(typeof(e[b])!="undefined"){e=e[b];continue}e[b]={};e=e[b]}return e};if(!Object.create){Object.create=function(b){if(arguments.length>1){throw new Error("Object.create implementation only accepts the first parameter.")}function a(){}a.prototype=b;return new a()}}if(typeof String.prototype.trim!=="function"){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}MadCap.Extend=function(a,b){b.prototype=Object.create(a.prototype);b.prototype.constructor=b;b.prototype.base=a.prototype};MadCap.Exception=function(b,a){this.Number=b;this.Message=a};MadCap.IsIOS=function(){return MadCap.String.Contains(navigator.userAgent,"iphone")||MadCap.String.Contains(navigator.userAgent,"ipad")};MadCap.IsIBooks=function(){return MadCap.HasEpubReadingSystem()&&navigator.epubReadingSystem.name=="iBooks"};MadCap.HasEpubReadingSystem=function(){return"epubReadingSystem" in navigator};MadCap.IsSafari=function(){return MadCap.String.Contains(navigator.userAgent,"safari")&&!MadCap.String.Contains(navigator.userAgent,"chrome")};(function(){var a=MadCap.CreateNamespace("String");a.IsNullOrEmpty=function(b){if(b==null){return true}if(b.length==0){return true}return false};a.StartsWith=function(f,e,c){if(e==null){return false}if(f.length<e.length){return false}var d=f;var b=e;if(!c){d=d.toLowerCase();b=b.toLowerCase()}if(d.substring(0,b.length)==b){return true}else{return false}};a.EndsWith=function(f,e,c){if(e==null){return false}if(f.length<e.length){return false}var d=f;var b=e;if(!c){d=d.toLowerCase();b=b.toLowerCase()}if(d.substring(d.length-b.length)==b){return true}else{return false}};a.Contains=function(h,g,c){var d=c?h:h.toLowerCase();if($.isArray(g)){for(var e=0,f=g.length;e<f;e++){var b=c?g[e]:g[e].toLowerCase();if(d.indexOf(b)!=-1){return true}}return false}var b=c?g:g.toLowerCase();return d.indexOf(b)!=-1};a.Trim=function(b){return a.TrimRight(a.TrimLeft(b))};a.TrimLeft=function(d){var b=0;var c=d.length;for(b=0;b<c&&d.charAt(b)==" ";b++){}return d.substring(b,d.length)};a.TrimRight=function(c){var b=0;for(b=c.length-1;b>=0&&c.charAt(b)==" ";b--){}return c.substring(0,b+1)};a.ToBool=function(e,c){var b=c;if(e!=null){var d=e.toLowerCase();if(d!="true"&&d!="false"&&d!="1"&&d!="0"&&d!="yes"&&d!="no"){throw new MadCap.Exception(-1,"The string can not be converted to a boolean value.")}b=d=="true"||d=="1"||d=="yes"}return b};a.ToInt=function(d,b){var c=b;if(d!=null){c=parseInt(d)}return c};a.ToDashed=function(b){return b.replace(/([A-Z])/g,function(c){return"-"+c.toLowerCase()})};a.Compare=function(f,e){var h=f.length;var g=e.length;for(var d=0;d<h&&d<g;d++){var c=f.charCodeAt(d);var b=e.charCodeAt(d);if(c<b){return -1}else{if(c>b){return 1}}}if(h<g){return -1}else{if(h>g){return 1}else{return 0}}}})();(function(){MadCap.CreateNamespace("DEBUG");var a=MadCap.DEBUG;a.Log={};a.Log.Create=function(){var e=document.createElement("div");e.setAttribute("id","DEBUG_Log");var f=document.createElement("div");$(f).addClass("MCDebugLogHeader");f.appendChild(document.createTextNode("Log Console"));e.appendChild(f);var d=document.createElement("div");$(d).addClass("MCDebugLogBody");e.appendChild(d);var c=document.createElement("div");$(c).addClass("MCDebugLogFooter");e.appendChild(c);document.body.appendChild(e);var b=new MadCap.DragDrop(e,f)};a.Log._LoadTime=new Date();a.Log.AddLine=function(d){if(parent!=window){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"DEBUG-AddLine",[d],null);return}var f=document.getElementById("DEBUG_Log");if(f==null){return}var c=new Date();var h=c-a.Log._LoadTime;var e=document.createElement("p");$(e).addClass("MCDebugLogEntryTime");e.appendChild(document.createTextNode(h+"ms "+c.toLocaleTimeString()));var b=document.createElement("div");$(b).addClass("MCDebugLogEntry");b.appendChild(e);b.appendChild(document.createTextNode(d));var g=MadCap.Dom.GetElementsByClassName("MCDebugLogBody","div",f)[0];g.insertBefore(b,g.firstChild)}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("Dom");var a=MadCap.Dom;a.Dataset=function(c,b){return c.getAttribute("data-"+MadCap.String.ToDashed(b))};a.GetElementsByClassName=function(g,b,c){b=b||"*";c=c||document;var d=new Array();var j=c.getElementsByTagName(b);for(var e=0,h=j.length;e<h;e++){var f=j[e];if($(f).hasClass(g)){d[d.length]=f}}return d};a.GetElementsByAttribute=function(h,k,l,j){l=l||"*";j=j||document;var c=new Array();var b=j.getElementsByTagName(l);for(var g=0,e=b.length;g<e;g++){var d=b[g];var f=a.GetAttribute(d,h);if(f==k){c[c.length]=d}}return c};a.GetChildNodeByTagName=function(d,f,e){var c=null;var g=-1;for(var b=d.firstChild;b!=null;b=b.nextSibling){if(b.nodeName.toLowerCase()==f.toLowerCase()){g++;if(g==e){c=b;break}}}return c};a.GetAncestorNodeByTagName=function(d,e,f){f=f||document.body;var c=null;var b=d.parentNode;while(b!=null&&b!=f){if(b.nodeName.toLowerCase()==e.toLowerCase()){c=b;break}b=b.parentNode}return c};a.GetAttribute=function(b,e){var d=b.getAttribute(e);if(d==null){d=b.getAttribute(e.toLowerCase());if(d==null){var c=e.indexOf(":");if(c!=-1){d=b.getAttribute(e.substring(c+1,e.length))}}}return d};a.GetAttributeInt=function(e,c,b){var d=b;var f=a.GetAttribute(e,c);if(f!=null){d=parseInt(f)}return d};a.GetAttributeBool=function(e,d,c){var b=c;var f=a.GetAttribute(e,d);if(f!=null){b=MadCap.String.ToBool(f,c)}return b};a.GetScrollPosition=function(){var b=0;var c=0;if(typeof(window.pageYOffset)!="undefined"){b=window.pageXOffset;c=window.pageYOffset}else{if(typeof(document.documentElement.scrollTop)!="undefined"&&document.documentElement.scrollTop>0){b=document.documentElement.scrollLeft;c=document.documentElement.scrollTop}}return{X:b,Y:c}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("Utilities");MadCap.Utilities.Dictionary=function(f){this._Map=new Object();this._Overflows=new Array();this._Length=0;this._IgnoreCase=f==true};var a=MadCap.Utilities.Dictionary;a.prototype.GetLength=function(f){return this._Length};a.prototype.ForEach=function(j){var f=this._Map;for(var n in f){var m=f[n];var l=j(n,m);if(l!=undefined&&!l){return}}var h=this._Overflows;for(var k=0,g=h.length;k<g;k++){var o=h[k];var l=j(o.Key,o.Value);if(l!=undefined&&!l){return}}};a.prototype.GetItem=function(g){if(this._IgnoreCase){g=g.toLowerCase()}var h=null;if(typeof(this._Map[g])=="function"){var f=this.GetItemOverflowIndex(g);if(f>=0){h=this._Overflows[f].Value}}else{h=this._Map[g];if(typeof(h)=="undefined"){h=null}}return h};a.prototype.GetItemOverflowIndex=function(g){if(this._IgnoreCase){g=g.toLowerCase()}var j=this._Overflows;for(var f=0,h=j.length;f<h;f++){if(j[f].Key==g){return f}}return -1};a.prototype.Remove=function(g){if(this._IgnoreCase){g=g.toLowerCase()}if(typeof(this._Map[g])=="function"){var f=this.GetItemOverflowIndex(g);if(f>=0){this._Overflows.splice(f,1);this._Length--}}else{if(typeof(this._Map[g])!="undefined"){delete (this._Map[g]);this._Length--}}};a.prototype.Add=function(f,h){if(this._IgnoreCase){f=f.toLowerCase()}if(typeof(this._Map[f])=="function"){var g=this.GetItem(f);if(g!=null){this.Remove(f)}this._Overflows[this._Overflows.length]={Key:f,Value:h}}else{this._Map[f]=h}this._Length++};a.prototype.AddUnique=function(f,h){if(this._IgnoreCase){f=f.toLowerCase()}var g=this.GetItem(f);if(typeof(g)=="undefined"||!g){this.Add(f,h)}};MadCap.Utilities.DateTime=function(h){var g=/\/Date\(([0-9]+)\)\//i;var f=g.exec(h);if(f!=null){this.Date=new Date(parseInt(f[1]))}else{this.Date=new Date(h)}};var c=MadCap.Utilities.DateTime;c.Months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];MadCap.Utilities.TimeSpan=function(g,f){if(typeof g=="undefined"){g=new Date()}if(typeof f=="undefined"){f=new Date()}if(g>f){this.FromDate=f;this.ToDate=g}else{this.FromDate=g;this.ToDate=f}this.Ticks=this.ToDate-this.FromDate;this.Seconds=this.Ticks/1000;this.Minutes=this.Seconds/60;this.Hours=this.Minutes/60;this.Days=this.Hours/24};var b=MadCap.Utilities.TimeSpan;b.prototype.ToDurationString=function(){if(this.Minutes<1){return"Just now"}if(this.Hours<1){return parseInt(this.Minutes)+" minutes ago"}if(this.Days<1){return parseInt(this.Hours)+" hours ago"}if(this.Days<30){return parseInt(this.Days)+" days ago"}var f=c.Months[this.FromDate.getMonth()]+" "+this.FromDate.getDate();if(this.FromDate.getFullYear()!=this.ToDate.getFullYear()){f+=", "+this.FromDate.getFullYear()}return f};MadCap.Utilities.Url=function(g){var f=this;this._Segments=[];this.FullPath=null;this.Path=null;this.PlainPath=null;this.Name=null;this.Extension=null;this.NameWithExtension=null;this.Fragment=null;this.Query=null;this.IsAbsolute=false;this.IsFolder=false;this.QueryMap=new MadCap.Utilities.Dictionary(true);this.HashMap=new MadCap.Utilities.Dictionary(true);(function(){var p="";var s="";var q=g.indexOf("#");var n=g.indexOf("?");if(q!=-1){if(q>n){p=g.substring(q)}else{p=g.substring(q,n)}}if(n!=-1){if(n>q){s=g.substring(n)}else{s=g.substring(n,q)}}var t=q>-1?(n>-1?Math.min(q,n):q):n;var o=g.substring(0,t==-1?g.length:t);t=o.lastIndexOf("/");var v=o.substring(0,t+1);var m=o.substring(t+1);t=m.lastIndexOf(".");var h=m.substring(0,t);var k=m.substring(t+1);var j="";t=g.indexOf(":");if(t>=0){j=g.substring(0,t)}if(!MadCap.String.IsNullOrEmpty(g)){var r=g;if(MadCap.String.EndsWith(r,"/")){r=r.substring(0,r.length-1)}f._Segments=r.split("/")}f.FullPath=g;f.Path=v;f.PlainPath=o;f.Name=h;f.Extension=k;f.NameWithExtension=m;f.Scheme=j;f.IsAbsolute=!MadCap.String.IsNullOrEmpty(j);f.IsFolder=MadCap.String.EndsWith(o,"/");f.Fragment=p;f.Query=s;var u=f.Query;if(!MadCap.String.IsNullOrEmpty(u)){u=u.substring(1);u=u.replace(/\+/g," ");i(u,"&",f.QueryMap)}var l=f.Fragment;if(!MadCap.String.IsNullOrEmpty(l)){l=l.substring(1);i(l,"|",f.HashMap)}function i(F,x,w){var C=F.split(x);for(var A=0,y=C.length;A<y;A++){var z=C[A];var B=z.indexOf("=");var E=null;var D=null;if(B>=0){E=decodeURIComponent(z.substring(0,B));D=decodeURIComponent(z.substring(B+1))}else{E=z}w.Add(E,D)}}})()};var e=MadCap.Utilities.Url;e.StripInvalidCharacters=function(f){return f.replace(/(javascript:|data:|[<>])/gi,"")};e.prototype.AddFile=function(i){if(typeof(i)=="string"){i=new e(i)}if(i.IsAbsolute){return i}var h=i.FullPath;if(h.charAt(0)=="/"){var j=document.location;var k=j.href.lastIndexOf(j.pathname);var g=j.href.substring(0,k);return new e(g+h)}var f=this.FullPath;if(!MadCap.String.EndsWith(f,"/")){f=f+"/"}return new e(f+h)};e.prototype.CombinePath=function(l){if(typeof(l)=="string"){l=new e(l)}if(l.IsAbsolute){throw new MadCap.Exception(-1,"Cannot combine two absolute paths.")}var j=l.FullPath;var k=l.FullPath.split("/");var o=this.FullPath;var m="";if(this.Scheme=="mk"){var n=o.indexOf("::");m=o.substring(0,n+"::".length);o=o.substring(n+"::".length)}for(var h=0,f=k.length;h<f;h++){var g=k[h];if(o.length>1&&MadCap.String.EndsWith(o,"/")){o=o.substring(0,o.length-1)}if(g=="."){o+="/"}else{if(g==".."){o=o.substring(0,o.lastIndexOf("/")+1)}else{if(o!=""&&!MadCap.String.EndsWith(o,"/")){o+="/"}o+=g}}}o=m+o;return new e(o)};e.prototype.ToQuery=function(g){var f=this.PlainPath+"?"+g+this.Fragment;return new e(f)};e.prototype.ToFolder=function(){var f=this.PlainPath;if(MadCap.String.EndsWith(f,"/")){f=f.substring(0,f.length-1)}var h=f.lastIndexOf("/");var g=f.substring(0,h+1);return new e(g)};e.prototype.ToRelative=function(n){if(typeof(n)=="string"){n=new e(n)}if(this.IsAbsolute!=n.IsAbsolute){return this}var k=0;var l=n._Segments.length;for(;k<l;k++){var g=this._Segments[k];var f=n._Segments[k];if(g!=f){break}}var m="";var o=MadCap.String.EndsWith(n.FullPath,"/")?0:1;for(var h=0;h<l-k-o;h++){m+="../"}for(var h=k;h<this._Segments.length;h++){if(h>k){m+="/"}m+=this._Segments[h]}return new e(m)};e.prototype.ToExtension=function(j){var h=this.FullPath;var i=h.lastIndexOf(".");var g=h.substring(0,i);var f=g+"."+j;return new e(f)};e.prototype.ToScheme=function(f){var h=this.FullPath;pos=h.indexOf(":");if(pos<0){return this}var g=f+":"+h.substring(pos);return new e(g)};e.prototype.ToPath=function(){return new e(this.Path)};e.prototype.ToPlainPath=function(){return new e(this.PlainPath)};e.prototype.ToNoQuery=function(){return new e(this.PlainPath+this.Fragment)};MadCap.Utilities.CrossFrame={};var d=MadCap.Utilities.CrossFrame;d.MESSAGE_SEPARATOR="%%%%%";d.DATA_SEPARATOR="^^^^^";d._MessageID=0;d._MessageInfos=new Array();d._MessageHandlerFuncs=new Array();d._PostMessage=function(h,f){if(typeof h=="undefined"){return}if(h.postMessage!=null){h.postMessage(f,"*");return}var g={data:f,source:window};h.MadCap.Utilities.CrossFrame.OnMessage(g)};d.AddMessageHandler=function(h,g){var f=d._MessageHandlerFuncs.length;d._MessageHandlerFuncs[f]={HandlerFunc:h,ContextObj:g}};d.PostMessageRequest=function(n,k,l,f){d._MessageInfos[d._MessageID]=f;var h="";if(l!=null){for(var g=0,j=l.length;g<j;g++){if(g>0){h+=d.DATA_SEPARATOR}h+=l[g]}}var m="request"+d.MESSAGE_SEPARATOR+k+d.MESSAGE_SEPARATOR+h+d.MESSAGE_SEPARATOR+d._MessageID;d._PostMessage(n,m);d._MessageID++};d._PostMessageResponse=function(n,k,l,f){var h="";if(l!=null){for(var g=0,j=l.length;g<j;g++){if(g>0){h+=d.DATA_SEPARATOR}h+=l[g]}}var m="response"+d.MESSAGE_SEPARATOR+k+d.MESSAGE_SEPARATOR+h+d.MESSAGE_SEPARATOR+f;d._PostMessage(n,m);d._MessageID++};d.OnMessage=function(t){var s=t.originalEvent;var o=s.data.split(d.MESSAGE_SEPARATOR);var m=o[0];var l=o[1];var j=o[2];var f=parseInt(o[3]);var h=null;if(!MadCap.String.IsNullOrEmpty(j)){h=j.split(d.DATA_SEPARATOR);for(var p=0,g=h.length;p<g;p++){if(h[p]=="null"){h[p]=null}}}if(m=="request"){var k=false;var x=true;var v=new Array();for(var p=0,g=d._MessageHandlerFuncs.length;p<g;p++){var w=d._MessageHandlerFuncs[p];var u=w.HandlerFunc;var q=w.ContextObj;var r=null;if(q!=null){r=u.call(q,l,h,v,s.source,f)}else{r=u(l,h,v,s.source,f)}k=r.Handled;x=r.FireResponse;if(k){break}}if(!k){if(l=="DEBUG-AddLine"){var l=h[0];MadCap.DEBUG.Log.AddLine(l);k=true}else{if(l=="url"){v[v.length]=document.location.href;k=true}else{if(l=="get-title"){v[v.length]=document.title;k=true}else{if(l=="navigate"){var n=h[0];document.location.href=n;k=true}}}}}if(x){d._PostMessageResponse(s.source,l,v.length>0?v:null,f)}}else{if(m=="response"){if(d._MessageInfos[f]!=null){d._MessageInfos[f](h)}}}};if(window.postMessage!="undefined"){$(window).bind("message",d.OnMessage)}else{}MadCap.Utilities.PreventDefault=function(f){f.preventDefault?f.preventDefault():event.returnValue=false};MadCap.Utilities.AsyncForeach=function(i,g,h){i=i.slice(0);function f(){var j=i.shift();g(j,function(k){if(i.length>0){f()}else{h()}})}if(i.length>0){f()}else{h()}};MadCap.Utilities.Now=Date.now||function(){return new Date().getTime()};MadCap.Utilities.Debounce=function(h,j,g){var m,l,f,k,n;var i=function(){var o=MadCap.Utilities.Now()-k;if(o<j&&o>0){m=setTimeout(i,j-o)}else{m=null;if(!g){n=h.apply(f,l);if(!m){f=l=null}}}};return function(){f=this;l=arguments;k=MadCap.Utilities.Now();var o=g&&!m;if(!m){m=setTimeout(i,j)}if(o){n=h.apply(f,l);f=l=null}return n}};MadCap.Utilities.IsRuntimeFileType=function(f){return MadCap.Dom.Dataset(document.documentElement,"mcRuntimeFileType")==f};MadCap.Utilities.HasRuntimeFileType=function(g){var f=MadCap.Dom.Dataset(document.documentElement,"mcRuntimeFileType");return f&&f.split(";").indexOf(g)>-1};MadCap.Utilities.CreateStylesheet=function(i,j){var g=i||document,f;var h=g.createElement("style");if(j){h.setAttribute("media",j)}g.getElementsByTagName("head")[0].appendChild(h);f=g.styleSheets[g.styleSheets.length-1];return f};MadCap.Utilities.AsyncForeachParallel=function(l,j,k){var h=0;if(l.length===0){k()}var f=l.length;for(var g=0;g<f;g++){j(l[g],function(){h++;if(h===l.length){k()}})}};MadCap.Utilities.FixLink=function(h,g,i,f){if(!h.IsAbsolute){h=g.CombinePath(h);var j=h.FullPath;if(!MadCap.String.IsNullOrEmpty(i)&&i!=null&&f){h=h.ToRelative(f);j=i+h.FullPath}return j}};MadCap.Utilities.IsRTL=function(){return $("html").css("direction")==="rtl"};MadCap.Utilities.ToggleButtonState=function(f){var i=$(f);var g=i.attr("data-current-state")||"1";var h=g=="1"?2:1;MadCap.Utilities.SetButtonState(f,h)};MadCap.Utilities.SetButtonState=function(g,j){var k=$(g);var h=j==1?2:1;var i=k.attr("data-state"+j+"-class");var f=k.attr("data-state"+h+"-class");k.attr("data-current-state",j);k.removeClass(f).addClass(i);k.attr("title",k.attr("data-state"+j+"-title"))};MadCap.Utilities.LoadHandlers=Object.create(null);MadCap.Utilities.LoadScript=function(i,h,g){var f=document.createElement("script");f.src=i;f.type="text/javascript";if(f.addEventListener){$(f).error(g);$(f).load(h)}else{if(f.readyState){f.onreadystatechange=function(){if(f.readyState=="loaded"||f.readyState=="complete"){h()}}}}document.getElementsByTagName("head")[0].appendChild(f);return f};MadCap.Utilities.LoadRegisteredScript=function(m,j,i,h){var k=false;var f;$("script").each(function(n,o){var p=$(o).attr("src");if(!MadCap.String.IsNullOrEmpty(p)&&p.toLowerCase()==m.toLowerCase()){k=true;f=o}});if(k){var g=new MadCap.Utilities.Url(m).Name;var l=MadCap.Utilities.LoadHandlers[g];if(l){l(h)}j()}};MadCap.Utilities.LoadScripts=function(f,i,h,g){MadCap.Utilities.AsyncForeach(f,function(j,k){if(!MadCap.String.IsNullOrEmpty(j)){MadCap.Utilities.LoadRegisteredScript(j,k,h,g)}else{k()}},i)};MadCap.Utilities.TopicUniqueStyleSheets=Object.create(null);MadCap.Utilities.LoadStyleSheets=function(g,f){$.each(g,function(i,h){if(!MadCap.String.IsNullOrEmpty(h)){MadCap.Utilities.LoadStyleSheetUnique(h,f)}})};MadCap.Utilities.LoadStyleSheetUnique=function(i,g){var h=false;$("link").each(function(k,l){var j=$(l).attr("href");if(!MadCap.String.IsNullOrEmpty(j)&&j.toLowerCase()==i.toLowerCase()){h=true}});if(!h){var f='<link rel="stylesheet" type="text/css" href="{0}" />';cssLink=f.replace("{0}",i);if($('link[href*="'+i+'"]').length==0||!MadCap.String.Contains(i,"/Topic.css",false)){if(g){$(cssLink).insertAfter(g)}else{$("head").append(insertIndex,cssLink)}}}MadCap.Utilities.TopicUniqueStyleSheets[i]=$('link[href*="'+i+'"]')};MadCap.Utilities.RemoveTopicStylesheets=function(){$.each(MadCap.Utilities.TopicUniqueStyleSheets,function(f,g){$(g).remove()})};MadCap.Utilities.CombineRelevancy=function(h,g){var f=MadCap.Utilities.CapNumber(h,g,16,0,2);for(var j=2;j<7;j++){f=MadCap.Utilities.CapNumber(f,g,16,j,1)}f=MadCap.Utilities.CapNumber(f,g,16,7,1,7);return f};MadCap.Utilities.CalculateScore=function(g,f,h){return(Math.log(g)/Math.log(2147483647)*h)+(f*(1-h))};MadCap.Utilities.CapNumber=function(j,i,p,l,f,n){if(!n){n=Math.pow(p,f)-1}var g=Math.pow(p,l);var m=g*Math.pow(p,f);var o=~~(j%m/g);var k=~~(i%m/g);var h=Math.min(o+k,n);return j+((h-o)*g)};MadCap.Utilities.Require=function(h,i){if(!MadCap.Utilities._requireCache){MadCap.Utilities._requireCache=Object.create(null)}var f=MadCap.Utilities._requireCache;var g=h[0];var j=f[g];if(j&&j.data){i(j.data)}else{if(j&&j.callbacks){j.callbacks.push(i)}else{f[g]={callbacks:[i]};require([g],function(l){j=f[g];j.data=l;for(var k=0;k<j.callbacks.length;k++){j.callbacks[k](l)}j.callbacks=null;require.undef(g)})}}};MadCap.Utilities.GetChunkId=function(f,l,k){for(var h=0;h<f.length;h++){var g=f[h];var j=k(l,g);if(j===0){return h}else{if(j===-1){return h-1}}}return f.length-1};MadCap.Utilities.ClearRequireCache=function(){MadCap.Utilities._requireCache=null};MadCap.Utilities.StopWords=Array("a","an","the","to","of","is","for","and","or","do","be","by","he","she","on","in","at","it","not","no","are","as","but","her","his","its","non","only","than","that","then","they","this","we","were","which","with","you","into","about","after","all","also","been","can","come","from","had","has","have","me","made","many","may","more","most","near","over","some","such","their","there","these","under","use","was","when","where","against","among","became","because","between","during","each","early","found","however","include","late","later","med","other","several","through","until","who","your");MadCap.Utilities.Store=(function(){try{if(window.localStorage){return window.localStorage}}catch(h){if(console&&console.log){console.log("window.localStorage not available")}}var g="MadCap";var i=document.createElement("div");i.style.display="none";document.getElementsByTagName("head")[0].appendChild(i);if(typeof i.addBehavior=="function"){i.addBehavior("#default#userdata");i.load(g);return{getItem:function(j){return i.XMLDocument.documentElement.getAttribute(j)},setItem:function(j,k){i.XMLDocument.documentElement.setAttribute(j,k);i.save(g)},removeItem:function(j){i.removeAttribute(j);i.save(g)}}}var f="data-"+g+"-";return{getItem:function(j){var k=i.getAttribute(f+j);return k?decodeURIComponent(k):k},setItem:function(j,k){i.setAttribute(f+j,k?encodeURIComponent(k):null)},removeItem:function(j){i.removeAttribute(f+j)}}})()})();Array.prototype.Remove=function(a){if(a<0||a>this.length){throw"Index out of bounds."}this.splice(a,1)};Array.prototype.RemoveValue=function(b){for(var a=this.length-1;a>=0;a--){if(this[a]==b){this.Remove(a)}}};Array.prototype.Union=function(b){var a=[].concat(this);if(b){for(var c=0;c<b.length;c++){if(this.indexOf(b[c])===-1){a.push(b[c])}}}return a};Array.prototype.Intersect=function(b){var a=[];for(var c=0;c<b.length;c++){if(this.indexOf(b[c])!==-1){a.push(b[c])}}return a};/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.Utilities.Xhr=function(d,b,c){var e=this;this._XmlDoc=null;this._XmlHttp=null;this._Args=d;this._LoadFunc=b;this._LoadContextObj=c;this.OnreadystatechangeLocal=function(){if(e._XmlDoc.readyState==4){e._XmlDoc.onreadystatechange=a._Noop;var f=null;if(e._XmlDoc.documentElement!=null){f=e._XmlDoc}if(e._LoadContextObj==null){e._LoadFunc(f,e._Args)}else{e._LoadFunc.call(e._LoadContextObj,f,e._Args)}}};this.OnreadystatechangeRemote=function(){if(e._XmlHttp.readyState==4){e._XmlHttp.onreadystatechange=a._Noop;var f=null;if(e._XmlHttp.responseXML!=null&&e._XmlHttp.responseXML.documentElement!=null){f=e._XmlHttp.responseXML}if(e._LoadContextObj==null){e._LoadFunc(f,e._Args)}else{e._LoadFunc.call(e._LoadContextObj,f,e._Args)}}}};var a=MadCap.Utilities.Xhr;a.prototype._LoadLocal=function(b,c){if(window.ActiveXObject){this._XmlDoc=a._GetMicrosoftXmlDomObject();this._XmlDoc.async=c;if(this._LoadFunc){this._XmlDoc.onreadystatechange=this.OnreadystatechangeLocal}try{if(!this._XmlDoc.load(b)){this._XmlDoc=null}}catch(d){this._XmlDoc=null}}else{if(window.XMLHttpRequest){this._LoadRemote(b,c)}}return this._XmlDoc};a.prototype._LoadRemote=function(b,c){this._XmlHttp=a._GetXhrObject();if(this._LoadFunc){this._XmlHttp.onreadystatechange=this.OnreadystatechangeRemote}try{this._XmlHttp.open("GET",b,c);this._XmlHttp.send(null);if(!c&&(this._XmlHttp.status==0||this._XmlHttp.status==200)){this._XmlDoc=this._XmlHttp.responseXML}}catch(d){this._XmlHttp.abort();if(this._LoadFunc){if(this._LoadContextObj==null){this._LoadFunc(null,this._Args)}else{this._LoadFunc.call(this._LoadContextObj,null,this._Args)}}}return this._XmlDoc};a.prototype.Load=function(b,d){var e=null;var c=document.location.protocol;if(c=="file:"||c=="mk:"||c=="ms-its:"||c=="app:"){e=this._LoadLocal(b,d)}else{if(c=="http:"||c=="https:"){e=this._LoadRemote(b,d)}}return e};a.LoadXmlString=function(c){var b=null;if(window.ActiveXObject){b=a._GetMicrosoftXmlDomObject();b.async=false;b.loadXML(c)}else{if(DOMParser){var d=new DOMParser();b=d.parseFromString(c,"text/xml")}}return b};a.CreateXmlDocument=function(b){var c="<"+b+" />";var d=a.LoadXmlString(c);return d};a.GetOuterXml=function(d){var b=null;if(window.ActiveXObject){b=d.xml}else{if(window.XMLSerializer){var c=new XMLSerializer();b=c.serializeToString(d)}}return b};a.ImportNode=function(c,b){if(typeof(c.importNode)=="function"){return c.importNode(b,true)}return b.cloneNode(true)};a.CallWebService=function(e,d,f,b){var c=new a(b,f,null);var g=c.Load(e,d);return g};a._MicrosoftXmlDomProgIDs=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument","Microsoft.XMLDOM"];a._MicrosoftXmlHttpProgIDs=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];a._MicrosoftXmlDomProgID=null;a._MicrosoftXmlHttpProgID=null;a._FilePathToXmlStringMap=new MadCap.Utilities.Dictionary();a._LoadingFilesPathMap=new MadCap.Utilities.Dictionary();a._LoadingFromQueue=false;a.ForceUseJS=false;a.Load=function(g,e,b,h,c){function l(){a._LoadingFilesPathMap.Remove(j.FullPath);var n=a._FilePathToXmlStringMap.GetItem(j.Name);if(n!=null){a._FilePathToXmlStringMap.Remove(j.Name);m=a.LoadXmlString(n)}a._LoadingFilesPathMap.ForEach(function(q,r){var p=new MadCap.Utilities.Url(q);var o=r;if(p.Name==f&&p.FullPath!=j.FullPath){a._LoadingFilesPathMap.Remove(p.FullPath);a._LoadingFromQueue=true;a.Load(p.FullPath,o.async,o.LoadFunc,o.args,o.loadContextObj);return false}return true});if(c==null){b(m,h)}else{b.call(c,m,h)}}var m=null;if(a.ForceUseJS||(Boolean(!window.ActiveXObject)&&MadCap.String.StartsWith(document.location.protocol,"file"))){var i=new MadCap.Utilities.Url(g);var j=i.ToExtension("js");var f=j.Name;a._LoadingFilesPathMap.Add(j.FullPath,{async:e,LoadFunc:b,args:h,loadContextObj:c});var k=false;a._LoadingFilesPathMap.ForEach(function(p,q){var o=new MadCap.Utilities.Url(p);var n=q;if(o.Name==f&&o.FullPath!=j.FullPath){k=true;return false}return true});if(a._LoadingFromQueue||!k){a._LoadingFromQueue=false;MadCap.Utilities.LoadScript(j.FullPath,l,l)}}else{var d=new a(h,b,c);m=d.Load(g,e)}return m};a._Noop=function(){};a._GetMicrosoftXmlDomObject=function(){var e=null;if(a._MicrosoftXmlDomProgID==null){for(var c=0;c<a._MicrosoftXmlDomProgIDs.length;c++){var d=a._MicrosoftXmlDomProgIDs[c];try{e=new ActiveXObject(d);a._MicrosoftXmlDomProgID=d;break}catch(b){}}}else{e=new ActiveXObject(a._MicrosoftXmlDomProgID)}return e};a._GetXhrObject=function(){if(window.XMLHttpRequest){return function(){return new window.XMLHttpRequest()}}else{if(window.ActiveXObject){return function(){var e=null;if(a._MicrosoftXmlHttpProgID==null){for(var c=0;c<a._MicrosoftXmlHttpProgIDs.length;c++){var d=a._MicrosoftXmlHttpProgIDs[c];try{e=new ActiveXObject(d);a._MicrosoftXmlHttpProgID=d;break}catch(b){}}}else{e=new ActiveXObject(a._MicrosoftXmlHttpProgID)}return e}}}}()})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("TextEffects");var a=MadCap.TextEffects;a.Init=function(b){a.ExpandingControl.Load(b);a.DropDownControl.Load(b);a.TogglerControl.Load(b);a.TextPopupControl.Load(b);a.TopicPopupControl.Load(b)};a.Dispose=function(b){a.ExpandingControl.UnLoad(b);a.DropDownControl.UnLoad(b);a.TogglerControl.UnLoad(b);a.TextPopupControl.UnLoad(b);a.TopicPopupControl.UnLoad(b)};$(function(){MadCap.Utilities.LoadHandlers.MadCapTextEffects=a.Init;a.Init(document)});a.TextEffectControl=function(d,c){if(this._rootEl==null){this._rootEl=d}this._hotSpotEl=null;this._bodyEls=null;this._className=c;a.TextEffectControl.Controls[a.TextEffectControl.Controls.length]=this;var b=this;(function(){b._hotSpotEl=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl)[0];b._bodyEls=MadCap.Dom.GetElementsByClassName(b._className+"Body",null,b._rootEl);var g=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl);for(var e=g.length-1;e>=0;e--){var f=g[e].parentNode;while(f!=null){if($(f).hasClass(b._className)){if(f==b._rootEl){$(g[e]).click(function(h){b.Toggle.call(b)})}else{break}}f=f.parentNode}}})()};a.UnbindTextEffectControl=function(d,c){if(this._rootEl==null){this._rootEl=d}this._hotSpotEl=null;this._bodyEls=null;this._className=c;var b=this;(function(){b._hotSpotEl=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl)[0];var g=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl);for(var e=g.length-1;e>=0;e--){var f=g[e].parentNode;while(f!=null){if($(f).hasClass(b._className)){if(f==b._rootEl){$(g[e]).unbind()}else{break}}f=f.parentNode}}$(b._hotSpotEl).unbind()})()};a.TextEffectControl.Controls=new Array();a.TextEffectControl.FindControl=function(c){for(var b=0;b<a.TextEffectControl.Controls.length;b++){if(a.TextEffectControl.Controls[b]._rootEl==c){return a.TextEffectControl.Controls[b]}}return null};a.TextEffectControl.ExpandAll=function(b){for(var c=0,d=a.TextEffectControl.Controls.length;c<d;c++){var e=a.TextEffectControl.Controls[c];if(b=="open"){e.Open(false)}else{if(b=="close"){e.Close(false)}}}};a.TextEffectControl.prototype.Open=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}d.removeClass(this._className+"_Closed");d.addClass(this._className+"_Open");var c=null;if(d.hasClass("MCToggler")){c=$(".MCToggler_Image_Icon")}else{if(d.hasClass("MCDropDown")){c=$(".MCDropDown_Image_Icon")}else{if(d.hasClass("MCExpanding")){c=$(".MCExpanding_Image_Icon")}}}var b=d.find(c);this.ToggleAltText(b[0],d,"closed");d.attr("data-mc-state","open")};a.TextEffectControl.prototype.Close=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}d.removeClass(this._className+"_Open");d.addClass(this._className+"_Closed");var c=null;if(d.hasClass("MCToggler")){c=$(".MCToggler_Image_Icon")}else{if(d.hasClass("MCDropDown")){c=$(".MCDropDown_Image_Icon")}else{if(d.hasClass("MCExpanding")){c=$(".MCExpanding_Image_Icon")}}}var b=d.find(c);this.ToggleAltText(b[0],d,"open");d.attr("data-mc-state","closed")};a.TextEffectControl.prototype.ToggleAltText=function(g,c,d){if(g!=null){var b=$(g);var f=b.attr("data-mc-alt2");var e=b.attr("alt");if(c!=null&&c.attr("data-mc-state")==d){b.attr("alt",f);b.attr("data-mc-alt2",e)}}};a.TextEffectControl.prototype.Toggle=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}var b=d.attr("data-mc-state")||"closed";var c=null;if(b=="open"){this.Close(true)}else{if(b=="closed"){this.Open(true)}}$(d.find("a")[0]).focus()};a.TextEffectControl.prototype.ResizeSlideshow=function(f,d){if(f){var e=$(f);var c=e.closest('div[class^="mc-viewport"]');if(c){var b=0;e.children().each(function(){b=b+$(this).outerHeight()});if(d){b=c.height()+Math.max(b,e.outerHeight())}else{b=c.height()-Math.max(b,e.outerHeight())}c.animate({height:b})}}};a.ExpandingControl=function(b){a.TextEffectControl.call(this,b,"MCExpanding")};MadCap.Extend(a.TextEffectControl,a.ExpandingControl);a.ExpandingControl.Load=function(c){var d=$(".MCExpanding",c);for(var b=0,e=d.length;b<e;b++){var g=d[b];var f=new a.ExpandingControl(g);f.Init()}};a.ExpandingControl.UnLoad=function(c){var d=$(".MCExpanding",c);for(var b=0,e=d.length;b<e;b++){a.UnbindTextEffectControl(d[b])}};a.ExpandingControl.prototype.Init=function(){this.Close(false)};a.ExpandingControl.prototype.Open=function(b){this.base.Open.call(this);var c=$(this._bodyEls[0]);this.ResizeSlideshow(c,true);if(b){c.css({"white-space":"nowrap"});c.hide().animate({width:"show"},function(){$(this).css({"white-space":"normal"})})}else{c.show()}};a.ExpandingControl.prototype.Close=function(c){if(!c){$(this._bodyEls[0]).hide();this.base.Close.call(this);return}var b=this;this.ResizeSlideshow(this._bodyEls[0],false);$(this._bodyEls[0]).css({"white-space":"nowrap"}).animate({width:"hide"},function(){$(this).css({"white-space":"normal"});b.base.Close.call(b)})};a.DropDownControl=function(b){a.TextEffectControl.call(this,b,"MCDropDown")};MadCap.Extend(a.TextEffectControl,a.DropDownControl);a.DropDownControl.Load=function(e){var d=$(".MCDropDown",e);for(var c=0,f=d.length;c<f;c++){var b=d[c];var g=new a.DropDownControl(b);g.Init(false)}};a.DropDownControl.UnLoad=function(d){var c=$(".MCDropDown",d);for(var b=0,e=c.length;b<e;b++){a.UnbindTextEffectControl(c[b])}};a.DropDownControl.prototype.Init=function(){this.Close(false)};a.DropDownControl.prototype.Open=function(b){this.base.Open.call(this);var c=$(this._bodyEls[0]);if(b){c.hide().slideDown()}else{c.show()}this.ResizeSlideshow(c,true)};a.DropDownControl.prototype.Close=function(c){if(!c){$(this._bodyEls[0]).hide();this.base.Close.call(this);return}var b=this;this.ResizeSlideshow(this._bodyEls[0],false);$(this._bodyEls[0]).slideUp(function(){b.base.Close.call(b)})};a.TogglerControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=new Array();this._className="MCToggler";a.TextEffectControl.Controls[a.TextEffectControl.Controls.length]=this;var b=this;(function(){var h=MadCap.Dom.Dataset(b._rootEl,"mcTargets");var d=h.split(";");for(var f=0,g=d.length;f<g;f++){var j=d[f];var e=MadCap.Dom.GetElementsByAttribute("data-mc-target-name",j,null,document.body);b._bodyEls=b._bodyEls.concat(e)}$(b._hotSpotEl).click(function(i){b.Toggle.call(b)})})()};MadCap.Extend(a.TextEffectControl,a.TogglerControl);a.TogglerControl.Load=function(c){var e=$(".MCToggler",c);for(var b=0,d=e.length;b<d;b++){var g=e[b];var f=new a.TogglerControl(g);f.Init()}};a.TogglerControl.UnLoad=function(c){var e=$(".MCToggler",c);for(var b=0,d=e.length;b<d;b++){a.UnbindTextEffectControl(e[b])}};a.TogglerControl.prototype.Init=function(){this.Close(false)};a.TogglerControl.prototype.Open=function(b){this.base.Open.call(this);for(var c=0,d=this._bodyEls.length;c<d;c++){if(b){$(this._bodyEls[c]).css({opacity:0,display:""});$(this._bodyEls[c]).animate({opacity:1},200)}else{$(this._bodyEls[c]).css({opacity:1,display:""})}}this.ResizeSlideshow(this._bodyEls[0],true)};a.TogglerControl.prototype.Close=function(c){this.base.Close.call(this);this.ResizeSlideshow(this._bodyEls[0],false);function f(g){$(g).css("display","none")}for(var d=0,e=this._bodyEls.length;d<e;d++){var b=this;if(c){$(this._bodyEls[d]).animate({opacity:0},200,function(){f(this)})}else{f(this._bodyEls[d])}}};a.TextPopupControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=null;this._className="MCTextPopup";var b=this;(function(){b._bodyEls=$("."+b._className+"Body",b._rootEl).toArray();if(jQuery.browser.mobile){$(b._hotSpotEl).click(function(d){if($(this).attr("data-mc-state")==="closed"){b.Open()}else{b.Close()}})}else{$(b._hotSpotEl).mouseover(function(d){b.Open()});$(b._hotSpotEl).mouseleave(function(d){b.Close()})}})()};MadCap.Extend(a.TextEffectControl,a.TextPopupControl);a.TextPopupControl.Load=function(d){var b=$(".MCTextPopup",d);for(var c=0,f=b.length;c<f;c++){var g=b[c];var e=new a.TextPopupControl(g);e.Init()}};a.TextPopupControl.UnLoad=function(d){var b=$(".MCTextPopup",d);for(var c=0,e=b.length;c<e;c++){a.UnbindTextEffectControl(b[c])}};a.TextPopupControl.prototype.Init=function(){this.Close(false)};a.TextPopupControl.prototype.Open=function(){this.base.Open.call(this);var z=$(this._rootEl);var j=$(this._bodyEls[0]);var e=$(".MCTextPopupArrow",z);var s=$(window);j.css("top","0");j.css("left","0");j.css("height","auto");var h=13;var m=j.offset().top;var n=j.offset().left;var w=z.offset().top-m;var k=z.offset().left-n;var l=w+this._rootEl.offsetHeight;var v=j[0].offsetWidth;var o=j[0].offsetHeight;var B=k+(z[0].offsetWidth/2);var f=B-(v/2);var y=f+v;var r=l+h;var d=s.scrollTop();var u=s.scrollLeft();var c=-e[0].offsetWidth/2;var b=s.width();var q=d+s.height()-l;if((o+h)>q){var A=w-d;if((o+h)>A){r=l;var p=parseInt(j.css("border-top-width"));var g=parseInt(j.css("border-bottom-width"));var x=parseInt(j.css("padding-top"));var i=parseInt(j.css("padding-bottom"));j.css("height",(q-p-g-x-i)+"px");j.css("overflow","auto")}else{j.addClass("MCTextPopupBodyBottom");r=w-o-h}}else{j.removeClass("MCTextPopupBodyBottom")}j.css("top",r+"px");if(y>=b+u){c+=(y-b-u)}if(f<u){c+=(f-u)}f=Math.min(f,u+b-v);f=Math.max(f,u);var t=z.closest("body");if(MadCap.HasEpubReadingSystem()){f=z.offset().left;c=-((j[0].offsetWidth/2)-(e[0].offsetWidth/2))}j.css("left",f+"px");e.css("margin-left",c+"px");j.animate({opacity:1},200)};a.TextPopupControl.prototype.Close=function(){this.base.Close.call(this);var b=$(this._bodyEls[0]);b.css("opacity",0)};a.TopicPopupControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=null;this._className="MCTopicPopup";var b=this;(function(){b._bodyEls=$("."+b._className+"Body",b._rootEl).toArray();$(b._hotSpotEl).click(function(d){b.Open();$(document.documentElement).click(function(f){b.Close();$(document.documentElement).off("click",arguments.callee)});d.stopPropagation();MadCap.Utilities.PreventDefault(d)})})()};MadCap.Extend(a.TextEffectControl,a.TopicPopupControl);a.TopicPopupControl.Load=function(d){var g=$(".MCTopicPopup",d);for(var c=0,e=g.length;c<e;c++){var b=g[c];var f=new a.TopicPopupControl(b);f.Init()}};a.TopicPopupControl.UnLoad=function(c){var e=$(".MCTopicPopup",c);for(var b=0,d=e.length;b<d;b++){a.UnbindTextEffectControl(e[b])}};a.TopicPopupControl.prototype.Init=function(){this.Close(false)};a.TopicPopupControl.prototype.Open=function(){this.base.Open.call(this);var f=$("<div></div>");f.addClass("MCTopicPopupContainer needs-pie");var b=MadCap.Dom.GetAttribute(this._hotSpotEl,"href");var k=document.createElement("iframe");$(k).addClass("MCTopicPopupBody");k.setAttribute("src",b);k.setAttribute("name","MCPopup");f.append(k);var i=document.body;f.appendTo(i);var h=$(this._rootEl);var c=h.attr("data-mc-width");var o=h.attr("data-mc-height");if(c!=null||o!=null){f.css({top:"50%",left:"50%",width:c,height:o});var e=f.width();var g=f.height();var d=$(window);var n=d.width()-100;var m=d.height()-100;if(e>n){f.css({width:n+"px"});e=n}if(g>m){f.css({height:m+"px"});g=m}f.css({"margin-top":(-g/2)+"px","margin-left":(-e/2)+"px"})}$(k).css("height","100%");if($("html").attr("data-mc-target-type")=="EPUB"){var j=($(this._hotSpotEl).offset().top-f.offset().top)-f[0].offsetHeight/2;f.css({"margin-top":j+"px",left:$(this._hotSpotEl).offset().left,"margin-left":$(this._hotSpotEl).offset().left})}f.animate({opacity:1},200);var l=a.AddBackgroundTint("dark",i);$(l).animate({opacity:0.5},200)};a.TopicPopupControl.prototype.Close=function(){this.base.Close.call(this);var b=$(".MCTopicPopupContainer");var c=b.parent();b.remove();a.RemoveBackgroundTint();if($("#topicContent").length>0){c.css("overflow","auto")}};a.CreateLinkListTree=function(q,h,e,g,o){a.RemoveLinkListTrees();if(!g){g=""}var b=$("<ul class='responsive-link-list tree inner'></ul>");var j=$(e).attr("target");for(var f=0,c=q.length;f<c;f++){var p=q[f];var m=$("<li class='IndexEntry IndexEntryLink tree-node tree-node-leaf'></li>").appendTo(b);var l=$("<div class='IndexTerm'></div>").appendTo(m);var k=$("<span class='label'></span>").appendTo(l);var d=$("<a/>").appendTo(k);d.text(p.Title);var n=p.Link;d.attr("href",g+n);m.click(o)}b.appendTo(h)};a.CreateLinkListPopup=function(l,j,q,h,x,u){a.RemoveLinkListPopups();if(!u){u=""}var k=$("<div class='link-list-popup needs-pie'><ul></ul></div>");var r=k.children("ul");var y=$(x).attr("target");for(var v=0,g=l.length;v<g;v++){var w=l[v];var n=$("<li><a></a></li>").appendTo(r);var f=$("a",n);f.attr("target",y);if(y=="_popup"){f.click(a.TopicPopup_Click)}f.text(w.Title);var m=w.Link;f.attr("href",u+m);n.click(a.Item_Click)}k.appendTo(j);var p=k.closest(".popup-container");if(p.length==0){p=$(window)}var b=p.width();var d=p.height();var c=p.scrollTop();var t=p.scrollLeft();var s=k[0].offsetWidth;var o=k[0].offsetHeight;q=Math.min(q,c+d-o);q=Math.max(q,c);h=Math.min(h,t+b-s);h=Math.max(h,t);if((q==0&&h==0)||MadCap.IsIBooks()){h=$(x).offset().left+$(x).width();q=$(x).offset().top+$(x).height()}if(MadCap.IsIBooks()){k.css("display","inline-block");h=h-x.offsetWidth;q=q-(k[0].offsetHeight/2)}if(MadCap.Utilities.IsRTL()){var e=Math.min($(window).width()-($(x).offset().left+$(x).width()),k.width());h=h-e}k.css("top",q);k.css("left",h);k.hide().fadeIn(200);$([document,x]).click(function(i){k.remove();$([document,x]).off("click",arguments.callee)});$([document,x]).keydown(function(i){var i=i||windows.event;if(i.keyCode!=27&&i.keyCode!=13){return}if(!k.is(":focus")){return}k.remove();$([document,x]).off("keydown",arguments.callee)});k.attr("tabindex",0);k.focus()};a.Item_Click=function(d){var c=$("a",this);var b=c.attr("href");var f=c.attr("target");if(b&&!MadCap.String.IsNullOrEmpty(b)){if(f){window.open(b,f)}else{document.location.href=b}}MadCap.Utilities.PreventDefault(d)};a.RemoveLinkListTrees=function(){$(".responsive-link-list").remove()};a.RemoveLinkListPopups=function(){$(".link-list-popup").remove()};a.AddBackgroundTint=function(c,d){if(!d){d=document.body}var b=$("<div id='mc-background-tint'></div>");b.addClass(c);b.appendTo(d);return b[0]};a.RemoveBackgroundTint=function(){$("#mc-background-tint").remove()}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(a){a.fn.fitVids=function(c){var e={customSelector:null};var d=document.createElement("div"),b=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0];d.className="fit-vids-style";d.innerHTML="<style>.fluid-width-video-wrapper {width: 100%;position: relative;padding: 0;} .fluid-width-video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } </style>";b.parentNode.insertBefore(d,b);if(c){a.extend(e,c)}return this.each(function(){var f=["iframe[src*='player.vimeo.com']","iframe[src*='www.youtube.com']","iframe[src*='www.kickstarter.com']"];if(e.customSelector){f.push(e.customSelector)}var g=a(this).find(f.join(","));g.each(function(){var j=a(this);if(j.parent(".fluid-width-video-wrapper").length){return}var m=j.attr("height")&&!isNaN(parseInt(j.attr("height"),10))?parseInt(j.attr("height"),10):j.height(),l=!isNaN(parseInt(j.attr("width"),10))?parseInt(j.attr("width"),10):j.width(),h=m/l;if(!j.attr("id")){var k="fitvid"+Math.floor(Math.random()*999999);j.attr("id",k)}j.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top",h*100+"%");j.removeAttr("height").removeAttr("width")})})}})(jQuery);!function(a){var c={},b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4000,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){},slideshowClass:""};a.fn.MCSlider=function(aq){if(0==this.length){return this}if(this.length>1){return this.each(function(){a(this).MCSlider(aq)}),this}var ap={},am=this;c.el=this;var aB=a(window).width(),at=a(window).height(),ay=function(){ap.settings=a.extend({},b,aq),ap.settings.slideWidth=parseInt(ap.settings.slideWidth),ap.children=am.children(ap.settings.slideSelector),ap.children.length<ap.settings.minSlides&&(ap.settings.minSlides=ap.children.length),ap.children.length<ap.settings.maxSlides&&(ap.settings.maxSlides=ap.children.length),ap.settings.randomStart&&(ap.settings.startSlide=Math.floor(Math.random()*ap.children.length)),ap.active={index:ap.settings.startSlide},ap.carousel=ap.settings.minSlides>1||ap.settings.maxSlides>1,ap.carousel&&(ap.settings.preloadImages="all"),ap.minThreshold=ap.settings.minSlides*ap.settings.slideWidth+(ap.settings.minSlides-1)*ap.settings.slideMargin,ap.maxThreshold=ap.settings.maxSlides*ap.settings.slideWidth+(ap.settings.maxSlides-1)*ap.settings.slideMargin,ap.working=!1,ap.controls={},ap.interval=null,ap.animProp="vertical"==ap.settings.mode?"top":"left",ap.usingCSS=ap.settings.useCSS&&"fade"!=ap.settings.mode&&function(){var f=document.createElement("div"),g=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var d in g){if(void 0!==f.style[g[d]]){return ap.cssPrefix=g[d].replace("Perspective","").toLowerCase(),ap.animProp="-"+ap.cssPrefix+"-transform",!0}}return !1}(),"vertical"==ap.settings.mode&&(ap.settings.maxSlides=ap.settings.minSlides),am.data("origStyle",am.attr("style")),am.children(ap.settings.slideSelector).each(function(){a(this).data("origStyle",a(this).attr("style"))}),az()},az=function(){am.wrap('<div class="mc-wrapper"><div class="mc-viewport '+ap.settings.slideshowClass+'"></div></div>'),ap.viewport=am.parent(),ap.loader=a('<div class="mc-loading" />'),ap.viewport.prepend(ap.loader),am.css({width:"horizontal"==ap.settings.mode?100*ap.children.length+215+"%":"auto",position:"relative"}),ap.usingCSS&&ap.settings.easing?am.css("-"+ap.cssPrefix+"-transition-timing-function",ap.settings.easing):ap.settings.easing||(ap.settings.easing="swing"),ax(),ap.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),ap.viewport.parent().css({maxWidth:ak()}),ap.settings.pager||ap.viewport.parent().css({margin:"0 auto 0px"}),ap.children.css({"float":"horizontal"==ap.settings.mode?"left":"none",listStyle:"none",position:"relative"}),ap.children.css("width",al()),"horizontal"==ap.settings.mode&&ap.settings.slideMargin>0&&ap.children.css("marginRight",ap.settings.slideMargin),"vertical"==ap.settings.mode&&ap.settings.slideMargin>0&&ap.children.css("marginBottom",ap.settings.slideMargin),"fade"==ap.settings.mode&&(ap.children.css({position:"absolute",zIndex:0,display:"none"}),ap.children.eq(ap.settings.startSlide).css({zIndex:50,display:"block"})),ap.controls.el=a('<div class="mc-controls" />'),ap.settings.captions&&J(),ap.active.last=ap.settings.startSlide==ai()-1,ap.settings.video&&am.fitVids();var d=ap.children.eq(ap.settings.startSlide);"all"==ap.settings.preloadImages&&(d=ap.children),ap.settings.ticker?ap.settings.pager=!1:(ap.settings.pager&&F(),ap.settings.controls&&ad(),ap.settings.auto&&ap.settings.autoControls&&ab(),(ap.settings.controls||ap.settings.autoControls||ap.settings.pager)&&ap.viewport.after(ap.controls.el)),aw(d,av)},aw=function(h,f){var g=h.find('img:not([src=""])').length;if(0===g){return void f()}var d=0;h.find('img:not([src=""])').each(function(){$(this).one("load error",function(){++d===g&&f()}).each(function(){this.complete&&$(this).load()})})},av=function(){if(ap.settings.infiniteLoop&&"fade"!=ap.settings.mode&&!ap.settings.ticker){var g="vertical"==ap.settings.mode?ap.settings.minSlides:ap.settings.maxSlides,d=ap.children.slice(0,g).clone().addClass("mc-clone"),f=ap.children.slice(-g).clone().addClass("mc-clone");am.append(d).prepend(f)}ap.loader.remove(),G(),"vertical"==ap.settings.mode&&(ap.settings.adaptiveHeight=!0),ap.viewport.height(ao()),am.redrawSlider(),ap.settings.onSliderLoad(ap.active.index),ap.initialized=!0,ap.settings.responsive&&a(window).bind("resize",ae),ap.settings.auto&&ap.settings.autoStart&&aa(),ap.settings.ticker&&U(),ap.settings.pager&&Z(ap.settings.startSlide),ap.settings.controls&&s(),ap.settings.touchEnabled&&!ap.settings.ticker&&K()},ao=function(){var f=0,d=a();if("vertical"==ap.settings.mode||ap.settings.adaptiveHeight){if(ap.carousel){var g=1==ap.settings.moveSlides?ap.active.index:ap.active.index*ar();for(d=ap.children.eq(g),i=1;i<=ap.settings.maxSlides-1;i++){d=g+i>=ap.children.length?d.add(ap.children.eq(i-1)):d.add(ap.children.eq(g+i))}}else{d=ap.children.eq(ap.active.index)}}else{d=ap.children}return"vertical"==ap.settings.mode?(d.each(function(){f+=a(this).outerHeight()}),ap.settings.slideMargin>0&&(f+=ap.settings.slideMargin*(ap.settings.minSlides-1))):f=Math.max.apply(Math,d.map(function(){return a(this).outerHeight(!1)}).get()),f},ak=function(){var d="100%";return ap.settings.slideWidth>0&&(d="horizontal"==ap.settings.mode?ap.settings.maxSlides*ap.settings.slideWidth+(ap.settings.maxSlides-1)*ap.settings.slideMargin:ap.settings.slideWidth),d},al=function(){var d=ap.settings.slideWidth,f=ap.viewport.width();return 0==ap.settings.slideWidth||ap.settings.slideWidth>f&&!ap.carousel||"vertical"==ap.settings.mode?d=(f/ap.settings.minSlides):ap.settings.maxSlides>1&&"horizontal"==ap.settings.mode&&(f>ap.maxThreshold||f<ap.minThreshold&&(d=(f-ap.settings.slideMargin*(ap.settings.minSlides-1))/ap.settings.minSlides)),d},ax=function(){var d=1;if("horizontal"==ap.settings.mode&&ap.settings.slideWidth>0){if(ap.viewport.width()<ap.minThreshold){d=ap.settings.minSlides}else{if(ap.viewport.width()>ap.maxThreshold){d=ap.settings.maxSlides}else{var f=ap.children.first().width();d=Math.floor(ap.viewport.width()/f)}}}else{"vertical"==ap.settings.mode&&(d=ap.settings.minSlides)}return d},ai=function(){var f=0;if(ap.settings.moveSlides>0){if(ap.settings.infiniteLoop){f=ap.children.length/ar()}else{for(var g=0,d=0;g<ap.children.length;){++f,g=d+ax(),d+=ap.settings.moveSlides<=ax()?ap.settings.moveSlides:ax()}}}else{f=Math.ceil(ap.children.length/ax())}return f},ar=function(){return ap.settings.moveSlides>0&&ap.settings.moveSlides<=ax()?ap.settings.moveSlides:ax()},G=function(){if(ap.children.length>ap.settings.maxSlides&&ap.active.last&&!ap.settings.infiniteLoop){if("horizontal"==ap.settings.mode){var f=ap.children.last(),g=f.position();aA(-(g.left-(ap.viewport.width()-f.width())),"reset",0)}else{if("vertical"==ap.settings.mode){var d=ap.children.length-ap.settings.minSlides,g=ap.children.eq(d).position();aA(-g.top,"reset",0)}}}else{var g=ap.children.eq(ap.active.index*ar()).position();ap.active.index==ai()-1&&(ap.active.last=!0),void 0!=g&&("horizontal"==ap.settings.mode?aA(-g.left,"reset",0):"vertical"==ap.settings.mode&&aA(-g.top,"reset",0))}},aA=function(g,k,f,h){if(ap.usingCSS){var l="vertical"==ap.settings.mode?"translate3d(0, "+g+"px, 0)":"translate3d("+g+"px, 0, 0)";am.css("-"+ap.cssPrefix+"-transition-duration",f/1000+"s"),"slide"==k?(am.css(ap.animProp,l),am.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){am.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),ac()})):"reset"==k?am.css(ap.animProp,l):"ticker"==k&&(am.css("-"+ap.cssPrefix+"-transition-timing-function","linear"),am.css(ap.animProp,l),am.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){am.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),aA(h.resetValue,"reset",0),Q()}))}else{var d={};d[ap.animProp]=g,"slide"==k?am.animate(d,f,ap.settings.easing,function(){ac()}):"reset"==k?am.css(ap.animProp,g):"ticker"==k&&am.animate(d,speed,"linear",function(){aA(h.resetValue,"reset",0),Q()})}},aj=function(){for(var g="",d=ai(),f=0;d>f;f++){var h="";ap.settings.buildPager&&a.isFunction(ap.settings.buildPager)?(h=ap.settings.buildPager(f),ap.pagerEl.addClass("mc-custom-pager")):(h=f+1,ap.pagerEl.addClass("mc-default-pager")),g+='<div class="mc-pager-item"><a data-slide-index="'+f+'" class="mc-pager-link">'+h+"</a></div>"}ap.pagerEl.html(g)},F=function(){ap.settings.pagerCustom?ap.pagerEl=a(ap.settings.pagerCustom):(ap.pagerEl=a('<div class="mc-pager" />'),ap.settings.pagerSelector?a(ap.settings.pagerSelector).html(ap.pagerEl):ap.controls.el.addClass("mc-has-pager").append(ap.pagerEl),aj()),ap.pagerEl.delegate("a","click",an)},ad=function(){ap.controls.next=a('<a class="mc-next">'+ap.settings.nextText+"</a>"),ap.controls.prev=a('<a class="mc-prev">'+ap.settings.prevText+"</a>"),ap.controls.next.bind("click",ah),ap.controls.prev.bind("click",ag),ap.settings.nextSelector&&a(ap.settings.nextSelector).append(ap.controls.next),ap.settings.prevSelector&&a(ap.settings.prevSelector).append(ap.controls.prev),ap.settings.nextSelector||ap.settings.prevSelector||(ap.controls.directionEl=a('<div class="mc-controls-direction" />'),ap.controls.directionEl.append(ap.controls.prev).append(ap.controls.next),ap.controls.el.addClass("mc-has-controls-direction").append(ap.controls.directionEl))},ab=function(){ap.controls.start=a('<div class="mc-controls-auto-item"><a class="mc-start">'+ap.settings.startText+"</a></div>"),ap.controls.stop=a('<div class="mc-controls-auto-item"><a class="mc-stop">'+ap.settings.stopText+"</a></div>"),ap.controls.autoEl=a('<div class="mc-controls-auto" />'),ap.controls.autoEl.delegate(".mc-start","click",au),ap.controls.autoEl.delegate(".mc-stop","click",R),ap.settings.autoControlsCombine?ap.controls.autoEl.append(ap.controls.start):ap.controls.autoEl.append(ap.controls.start).append(ap.controls.stop),ap.settings.autoControlsSelector?a(ap.settings.autoControlsSelector).html(ap.controls.autoEl):ap.controls.el.addClass("mc-has-controls-auto").append(ap.controls.autoEl),af(ap.settings.autoStart?"stop":"start")},J=function(){ap.children.each(function(){var d=a(this).attr("title");void 0!=d&&(""+d).length&&a(this).append('<div class="mc-caption"><div>'+d+"</div></div>")})},ah=function(d){ap.settings.auto&&am.stopAuto(),am.goToNextSlide(),d.preventDefault()},ag=function(d){ap.settings.auto&&am.stopAuto(),am.goToPrevSlide(),d.preventDefault()},au=function(d){am.startAuto(),d.preventDefault()},R=function(d){am.stopAuto(),d.preventDefault()},an=function(g){ap.settings.auto&&am.stopAuto();var d=a(g.currentTarget),f=parseInt(d.attr("data-slide-index"));f!=ap.active.index&&am.goToSlide(f),g.preventDefault()},Z=function(f){var d=ap.children.length;return"short"==ap.settings.pagerType?(ap.settings.maxSlides>1&&(d=Math.ceil(ap.children.length/ap.settings.maxSlides)),ap.pagerEl.html(f+1+ap.settings.pagerShortSeparator+d),void 0):(ap.pagerEl.find("a").removeClass("active"),ap.pagerEl.each(function(g,h){a(h).find("a").eq(f).addClass("active")}),void 0)},ac=function(){if(ap.settings.infiniteLoop){var d="";0==ap.active.index?d=ap.children.eq(0).position():ap.active.index==ai()-1&&ap.carousel?d=ap.children.eq((ai()-1)*ar()).position():ap.active.index==ap.children.length-1&&(d=ap.children.eq(ap.children.length-1).position()),"horizontal"==ap.settings.mode?aA(-d.left,"reset",0):"vertical"==ap.settings.mode&&aA(-d.top,"reset",0)}ap.working=!1,ap.settings.onSlideAfter(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index)},af=function(d){ap.settings.autoControlsCombine?ap.controls.autoEl.html(ap.controls[d]):(ap.controls.autoEl.find("a").removeClass("active"),ap.controls.autoEl.find("a:not(.mc-"+d+")").addClass("active"))},s=function(){1==ai()?(ap.controls.prev.addClass("disabled"),ap.controls.next.addClass("disabled")):!ap.settings.infiniteLoop&&ap.settings.hideControlOnEnd&&(0==ap.active.index?(ap.controls.prev.addClass("disabled"),ap.controls.next.removeClass("disabled")):ap.active.index==ai()-1?(ap.controls.next.addClass("disabled"),ap.controls.prev.removeClass("disabled")):(ap.controls.prev.removeClass("disabled"),ap.controls.next.removeClass("disabled")))},aa=function(){ap.settings.autoDelay>0?setTimeout(am.startAuto,ap.settings.autoDelay):am.startAuto(),ap.settings.autoHover&&am.hover(function(){ap.interval&&(am.stopAuto(!0),ap.autoPaused=!0)},function(){ap.autoPaused&&(am.startAuto(!0),ap.autoPaused=null)})},U=function(){var f=0;if("next"==ap.settings.autoDirection){am.append(ap.children.clone().addClass("mc-clone"))}else{am.prepend(ap.children.clone().addClass("mc-clone"));var d=ap.children.first().position();f="horizontal"==ap.settings.mode?-d.left:-d.top}aA(f,"reset",0),ap.settings.pager=!1,ap.settings.controls=!1,ap.settings.autoControls=!1,ap.settings.tickerHover&&!ap.usingCSS&&ap.viewport.hover(function(){am.stop()},function(){var k=0;ap.children.each(function(){k+="horizontal"==ap.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)});var g=ap.settings.speed/k,h="horizontal"==ap.settings.mode?"left":"top",l=g*(k-Math.abs(parseInt(am.css(h))));Q(l)}),Q()},Q=function(g){speed=g?g:ap.settings.speed;var k={left:0,top:0},f={left:0,top:0};"next"==ap.settings.autoDirection?k=am.find(".mc-clone").first().position():f=ap.children.first().position();var h="horizontal"==ap.settings.mode?-k.left:-k.top,l="horizontal"==ap.settings.mode?-f.left:-f.top,d={resetValue:l};aA(h,"ticker",speed,d)},K=function(){ap.touch={start:{x:0,y:0},end:{x:0,y:0}},ap.viewport.bind("touchstart",j)},j=function(d){if(ap.working){d.preventDefault()}else{ap.touch.originalPos=am.position();var f=d.originalEvent;ap.touch.start.x=f.changedTouches[0].pageX,ap.touch.start.y=f.changedTouches[0].pageY,ap.viewport.bind("touchmove",e),ap.viewport.bind("touchend",t)}},e=function(f){var k=f.originalEvent,d=Math.abs(k.changedTouches[0].pageX-ap.touch.start.x),g=Math.abs(k.changedTouches[0].pageY-ap.touch.start.y);if(3*d>g&&ap.settings.preventDefaultSwipeX?f.preventDefault():3*g>d&&ap.settings.preventDefaultSwipeY&&f.preventDefault(),"fade"!=ap.settings.mode&&ap.settings.oneToOneTouch){var l=0;if("horizontal"==ap.settings.mode){var h=k.changedTouches[0].pageX-ap.touch.start.x;l=ap.touch.originalPos.left+h}else{var h=k.changedTouches[0].pageY-ap.touch.start.y;l=ap.touch.originalPos.top+h}aA(l,"reset",0)}},t=function(f){ap.viewport.unbind("touchmove",e);var h=f.originalEvent,d=0;if(ap.touch.end.x=h.changedTouches[0].pageX,ap.touch.end.y=h.changedTouches[0].pageY,"fade"==ap.settings.mode){var g=Math.abs(ap.touch.start.x-ap.touch.end.x);g>=ap.settings.swipeThreshold&&(ap.touch.start.x>ap.touch.end.x?am.goToNextSlide():am.goToPrevSlide(),am.stopAuto())}else{var g=0;"horizontal"==ap.settings.mode?(g=ap.touch.end.x-ap.touch.start.x,d=ap.touch.originalPos.left):(g=ap.touch.end.y-ap.touch.start.y,d=ap.touch.originalPos.top),!ap.settings.infiniteLoop&&(0==ap.active.index&&g>0||ap.active.last&&0>g)?aA(d,"reset",200):Math.abs(g)>=ap.settings.swipeThreshold?(0>g?am.goToNextSlide():am.goToPrevSlide(),am.stopAuto()):aA(d,"reset",200)}ap.viewport.unbind("touchend",t)},ae=function(){var f=a(window).width(),d=a(window).height();if(!(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))){(aB!=f||at!=d)&&(aB=f,at=d,am.redrawSlider())}};return am.goToSlide=function(o,k){if(!ap.working&&ap.active.index!=o){if(ap.working=!0,ap.oldIndex=ap.active.index,ap.active.index=0>o?ai()-1:o>=ai()?0:o,ap.settings.onSlideBefore(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index),"next"==k?ap.settings.onSlideNext(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index):"prev"==k&&ap.settings.onSlidePrev(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index),ap.active.last=ap.active.index>=ai()-1,ap.settings.pager&&Z(ap.active.index),ap.settings.controls&&s(),"fade"==ap.settings.mode){ap.settings.adaptiveHeight&&ap.viewport.height()!=ao()&&ap.viewport.animate({height:ao()},ap.settings.adaptiveHeightSpeed),ap.children.filter(":visible").fadeOut(ap.settings.speed).css({zIndex:0}),ap.children.eq(ap.active.index).css("zIndex",51).fadeIn(ap.settings.speed,function(){a(this).css("zIndex",50),ac()})}else{ap.settings.adaptiveHeight&&ap.viewport.height()!=ao()&&ap.viewport.animate({height:ao()},ap.settings.adaptiveHeightSpeed);var u=0,f={left:0,top:0};if(!ap.settings.infiniteLoop&&ap.carousel&&ap.active.last){if("horizontal"==ap.settings.mode){var r=ap.children.eq(ap.children.length-1);f=r.position(),u=ap.viewport.width()-r.outerWidth()}else{var h=ap.children.length-ap.settings.minSlides;f=ap.children.eq(h).position()}}else{if(ap.carousel&&ap.active.last&&"prev"==k){var p=1==ap.settings.moveSlides?ap.settings.maxSlides-ar():(ai()-1)*ar()-(ap.children.length-ap.settings.maxSlides),r=am.children(".mc-clone").eq(p);f=r.position()}else{if("next"==k&&0==ap.active.index){f=am.find("> .mc-clone").eq(ap.settings.maxSlides).position(),ap.active.last=!1}else{if(o>=0){var q=o*ar();f=ap.children.eq(q).position()}}}}if("undefined"!=typeof f){var m="horizontal"==ap.settings.mode?-(f.left-u):-f.top;aA(m,"slide",ap.settings.speed)}}}},am.goToNextSlide=function(){if(ap.settings.infiniteLoop||!ap.active.last){var d=parseInt(ap.active.index)+1;am.goToSlide(d,"next")}},am.goToPrevSlide=function(){if(ap.settings.infiniteLoop||0!=ap.active.index){var d=parseInt(ap.active.index)-1;am.goToSlide(d,"prev")}},am.startAuto=function(d){ap.interval||(ap.interval=setInterval(function(){"next"==ap.settings.autoDirection?am.goToNextSlide():am.goToPrevSlide()},ap.settings.pause),ap.settings.autoControls&&1!=d&&af("stop"))},am.stopAuto=function(d){ap.interval&&(clearInterval(ap.interval),ap.interval=null,ap.settings.autoControls&&1!=d&&af("start"))},am.getCurrentSlide=function(){return ap.active.index},am.getSlideCount=function(){return ap.children.length},am.redrawSlider=function(){ap.children.add(am.find(".mc-clone")).outerWidth(al()),ap.viewport.css("height",ao()),ap.settings.ticker||G(),ap.active.last&&(ap.active.index=ai()-1),ap.active.index>=ai()&&(ap.active.last=!0),ap.settings.pager&&!ap.settings.pagerCustom&&(aj(),Z(ap.active.index))},am.destroySlider=function(){ap.initialized&&(ap.initialized=!1,a(".mc-clone",this).remove(),ap.children.each(function(){void 0!=a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!=a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),ap.controls.el&&ap.controls.el.remove(),ap.controls.next&&ap.controls.next.remove(),ap.controls.prev&&ap.controls.prev.remove(),ap.pagerEl&&ap.pagerEl.remove(),a(".mc-caption",this).remove(),ap.controls.autoEl&&ap.controls.autoEl.remove(),clearInterval(ap.interval),ap.settings.responsive&&a(window).unbind("resize",ae))},am.reloadSlider=function(d){void 0!=d&&(aq=d),am.destroySlider(),ay()},ay(),this}}(jQuery);(function(){var a=MadCap.CreateNamespace("Slideshow");$(function(){if(MadCap.Utilities!=null&&MadCap.Utilities.LoadHandlers!=null){MadCap.Utilities.LoadHandlers.MadCapSlideshow=a.Init;a.Init(document)}});a.Init=function(b){var c;if($("html").attr("data-mc-target-type")){c=function(e,d){return e.attr("data-mc-"+d)}}else{c=function(e,d){return e.attr("madcap:"+d.replace("-",""))}}$(".MCSlider",b).each(function(q,h){var I=$(h);var l={};var u=h.className;var f=c(I,"random-start");var z=c(I,"infinite-loop");var r=c(I,"show-captions");var w=c(I,"controls");var y=c(I,"slide-width");var x=c(I,"adaptive-height");var k=c(I,"responsive");var j=c(I,"navigation");var s=true;var e=false;l.pagerCustom=null;if(j){if(j=="Thumbnails"){e=true;l.pagerCustom="#mc-pager"+(q+1).toString()}if(j=="None"){s=false}}var F=c(I,"auto-hover");var m=c(I,"auto-start");var H=c(I,"auto-controls");var d=c(I,"combine-controls");var D=c(I,"auto-direction");var E=+c(I,"auto-delay");var t=c(I,"mode");var A=+c(I,"speed");var o=+c(I,"pause");var C=+c(I,"slides-displayed");var B=c(I,"video");if(u){l.slideshowClass=u}if(f){if("true"==f.toString().toLowerCase()){l.randomStart=true}else{if("false"==f.toString().toLowerCase()){l.randomStart=false}}}if(z){if("true"==z.toString().toLowerCase()){l.infiniteLoop=true}else{if("false"==z.toString().toLowerCase()){l.infiniteLoop=false;l.hideControlOnEnd=true}}}if(r){if("true"==r.toString().toLowerCase()){l.captions=true}else{if("false"==r.toString().toLowerCase()){l.captions=false}}}if(w){if("true"==w.toString().toLowerCase()){l.controls=true}else{if("false"==w.toString().toLowerCase()){l.controls=false}}}l.pager=s;l.thumbnails=e;if(y){l.slideWidth=y}if(x){if("true"==x.toString().toLowerCase()){l.adaptiveHeight=true}else{if("false"==x.toString().toLowerCase()){l.adaptiveHeight=false}}}if(k){if("true"==k.toString().toLowerCase()){l.responsive=true}else{if("false"==k.toString().toLowerCase()){l.responsive=false}}}var p=false;if(F){if("true"==F.toString().toLowerCase()){l.autoHover=true;p=true}else{if("false"==F.toString().toLowerCase()){l.autoHover=false}}}if(m){if("true"==m.toString().toLowerCase()){l.autoStart=true;p=true}else{if("false"==m.toString().toLowerCase()){l.autoStart=false}}}if(H){if("true"==H.toString().toLowerCase()){l.autoControls=true;l.autoControlsCombine=true;p=true}else{if("false"==H.toString().toLowerCase()){l.autoControls=false;l.autoControlsCombine=false}}}if(p){l.auto=true}if(D){l.autoDirection=D}if(E){l.autoDelay=E}if(t){l.mode=t}if(A){l.speed=A}if(o){l.pause=o}if(C){l.minSlides=C;l.maxSlides=C;l.moveSlides=1;if(y){var G=y.match(/\d+/);var v=y.replace(/\d/g,"");l.slideWidth=(G/C)+v}}if(navigator.userAgent.indexOf("MSIE")!==-1){l.preloadImages="all"}l.video=true;l.useCSS=false;if(B){l.video=false}l.onSliderLoad=function(J){$(".MCSlide").css("visibility","visible")};var g;var n;if(MadCap.Utilities!=null&&MadCap.Utilities.HasRuntimeFileType("Topic")){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(O){if(O){var K=new MadCap.Utilities.Url(decodeURIComponent(O[0]));var J=new MadCap.Utilities.Url(K.Fragment.substring(1));g=J.Fragment;n=K.QueryMap.GetItem("Highlight");if(g){g=g.substring(1);g=g.replace(".","\\.");try{l.startSlide=$("[name="+g+"]").closest(".MCSlide").index();if(l.startSlide<0){l.startSlide=0}}catch(N){l.startSlide=0}}else{if(n){var M=n.replace('"',"").split(" ");for(var L=0;L<M.length;L++){if(M[L]==""){M.splice(M[L],1);L--}}$(".MCSlide",b).each(function(P,S){for(var R=0;R<M.length;R++){if(M[R]!=""){var Q=new RegExp("\\b"+M[R]+"\\b","i");var U=$(S).attr("title");if(U!=null&&U.match(Q)){l.startSlide=P;return false}var T=$(S).text();if(T!=null&&T.match(Q)){l.startSlide=P;return false}}}if(l.startSlide<0){l.startSlide=0}})}}}I.MCSlider(l)})}else{I.MCSlider(l)}})}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.FeedbackController=function(i){if(MadCap.WebHelp.FeedbackController.Shared!=null){return MadCap.WebHelp.FeedbackController.Shared}MadCap.WebHelp.FeedbackController.Shared=this;var d=false;var h=false;var f=new Array();var k=0;var b=this;var g=3000;this.Server=i;this.FeedbackServer=j(i);this.Version=-1;this.FeedbackActive=false;this.PulseServer=null;this.PulseEnabled=false;this.PulseActive=false;this.PulseUserGuid=null;function c(){for(var m=0;m<f.length;m++){f[m](b)}d=true}function j(o,n){if(o==null){return null}if(typeof n=="undefined"){n=""}var m=new MadCap.Utilities.Url(o);m=m.CombinePath(n+"Service.FeedbackExplorer/FeedbackJsonService.asmx/");return m.FullPath}function l(A,z,s,o){var D=document.createElement("script");var p=document.getElementsByTagName("head")[0];var w="MCLiveHelpScript_"+k++;var q=b.FeedbackServer+A+"?";q+="OnComplete="+z+"&ScriptID="+w+"&UniqueID="+(new Date()).getTime();if(s!=null){for(var B=0,n=s.length;B<n;B++){var x=s[B];var F=x[0];var y=encodeURIComponent(x[1]);q+=("&"+F+"="+y)}}if(document.body.currentStyle!=null){var u=2083;if(q.length>u){var v=q.length-u;var E={ExceedAmount:v};var C=new MadCap.FeedbackException(-1,"URL limit exceeded.",E);throw C}}var r=2048;var t=q.indexOf("?");var m=q.substring(t+1).length;if(m>r){var v=m-r;var E={ExceedAmount:v};var C=new MadCap.FeedbackException(-1,"Query string limit exceeded.",E);throw C}D.id=w;D.setAttribute("type","text/javascript");D.setAttribute("src",q);p.appendChild(D);return w}function e(m){window.setTimeout(function(){var n=document.getElementById(m);n.parentNode.removeChild(n)},10)}this.Init=function(m){if(d){m(this);return}if(m!=null){f.push(m)}if(h){return}h=true;b.GetVersion(function(){if(b.PulseEnabled){b.GetPulseServerActivated(function(n){b.PulseActive=n&&n.toLowerCase()==="true";c()})}else{c()}});window.setTimeout(function(){if(!d){c()}},g)};this.GetUserGuid=function(){return b.PulseEnabled?b.PulseUserGuid:MadCap.Utilities.Store.getItem("LiveHelpUserGuid")};this.LogTopic=function(n,o,m){this.LogTopicOnComplete=function(p){if(m!=null){m()}e(p);this.LogTopicOnComplete=null};this.GetVersion(function(p){if(p==1){l("LogTopic","MadCap.WebHelp.FeedbackController.Shared.LogTopicOnComplete",[["TopicID",n]])}else{l("LogTopic2","MadCap.WebHelp.FeedbackController.Shared.LogTopicOnComplete",[["TopicID",n],["CSHID",o]])}})};this.LogSearch=function(m,p,n,q,o){this.LogSearchOnComplete=function(r){e(r);this.LogSearchOnComplete=null};l("LogSearch","MadCap.WebHelp.FeedbackController.Shared.LogSearchOnComplete",[["ProjectID",m],["UserGuid",p],["ResultCount",n],["Language",q],["Query",o]])};this.AddComment=function(o,q,p,n,s,r,m){this.AddCommentOnComplete=function(t){if(m!=null){m()}e(t);this.AddCommentOnComplete=null};l("AddComment","MadCap.WebHelp.FeedbackController.Shared.AddCommentOnComplete",[["TopicID",o],["UserGuid",q],["Username",p],["Subject",n],["Comment",s],["ParentCommentID",r]])};this.GetAverageRating=function(o,m,n){this.GetAverageRatingOnComplete=function(r,q,p){if(m!=null){m(q,p,n)}e(r);this.GetAverageRatingOnComplete=null};l("GetAverageRating","MadCap.WebHelp.FeedbackController.Shared.GetAverageRatingOnComplete",[["TopicID",o]])};this.SubmitRating=function(o,p,r,m,n){this.SubmitRatingOnComplete=function(s){if(m!=null){m(n)}e(s);this.SubmitRatingOnComplete=null};var q=l("SubmitRating","MadCap.WebHelp.FeedbackController.Shared.SubmitRatingOnComplete",[["TopicID",o],["Rating",p],["Comment",r]])};this.GetTopicComments=function(o,q,p,m,n){this.GetTopicCommentsOnComplete=function(t,s){if(m!=null){m(s,n)}e(t);this.GetTopicCommentsOnComplete=null};var r=l("GetTopicComments","MadCap.WebHelp.FeedbackController.Shared.GetTopicCommentsOnComplete",[["TopicID",o],["UserGuid",q],["Username",p]])};this.GetAnonymousEnabled=function(n,m,o){this.GetAnonymousEnabledOnComplete=function(q,p){if(m!=null){m(p,o)}e(q);this.GetAnonymousEnabledOnComplete=null};l("GetAnonymousEnabled","MadCap.WebHelp.FeedbackController.Shared.GetAnonymousEnabledOnComplete",[["ProjectID",n]])};this.StartActivateUser=function(r,w,u){this.StartActivateUserOnComplete=function(F,E){if(w!=null){w(E,u)}e(F);this.StartActivateUserOnComplete=null};var D=FMCGetChildNodeByAttribute(r.documentElement,"Name","Username");var o=FMCGetAttribute(D,"Value");var s=FMCGetChildNodeByAttribute(r.documentElement,"Name","EmailAddress");var n=FMCGetAttribute(s,"Value");var y=FMCGetChildNodeByAttribute(r.documentElement,"Name","FirstName");var m=FMCGetAttribute(y,"Value");var C=FMCGetChildNodeByAttribute(r.documentElement,"Name","LastName");var x=FMCGetAttribute(C,"Value");var B=FMCGetChildNodeByAttribute(r.documentElement,"Name","Country");var A=FMCGetAttribute(B,"Value");var z=FMCGetChildNodeByAttribute(r.documentElement,"Name","PostalCode");var t=FMCGetAttribute(z,"Value");var p=FMCGetChildNodeByAttribute(r.documentElement,"Name","Gender");var v=FMCGetAttribute(p,"Value");var q="";l("StartActivateUser","MadCap.WebHelp.FeedbackController.Shared.StartActivateUserOnComplete",[["Username",o],["EmailAddress",n],["FirstName",m],["LastName",x],["Country",A],["Zip",t],["Gender",v],["UILanguageOrder",q]])};this.StartActivateUser2=function(p,m,o,q){var n=MadCap.Utilities.Xhr.GetOuterXml(p);this.StartActivateUser2OnComplete=function(s,r){if(m!=null){if(q!=null){m.call(q,r,o)}else{m(r,o)}}e(s);this.StartActivateUser2OnComplete=null};l("StartActivateUser2","MadCap.WebHelp.FeedbackController.Shared.StartActivateUser2OnComplete",[["Xml",n]])};this.UpdateUserProfile=function(p,q,m,o,r){var n=MadCap.Utilities.Xhr.GetOuterXml(q);this.UpdateUserProfileOnComplete=function(t,s){if(m!=null){if(r!=null){m.call(r,s,o)}else{m(s,o)}}e(t);this.UpdateUserProfileOnComplete=null};l("UpdateUserProfile","MadCap.WebHelp.FeedbackController.Shared.UpdateUserProfileOnComplete",[["Guid",p],["Xml",n]])};this.GetUserProfile=function(o,m,n,p){this.GetUserProfileOnComplete=function(r,q){if(m!=null){if(p!=null){m.call(p,q,n)}else{m(q,n)}}e(r);this.GetUserProfileOnComplete=null};l("GetUserProfile","MadCap.WebHelp.FeedbackController.Shared.GetUserProfileOnComplete",[["Guid",o]])};this.CheckUserStatus=function(o,m,n){this.CheckUserStatusOnComplete=function(q,p){if(m!=null){m(p,n)}e(q);this.CheckUserStatusOnComplete=null};l("CheckUserStatus","MadCap.WebHelp.FeedbackController.Shared.CheckUserStatusOnComplete",[["PendingGuid",o]])};this.GetSynonymsFile=function(n,p,m,o){this.GetSynonymsFileOnComplete=function(r,q){if(m!=null){m(q,o)}e(r)};l("GetSynonymsFile","MadCap.WebHelp.FeedbackController.Shared.GetSynonymsFileOnComplete",[["ProjectID",n],["UpdatedSince",p]])};this.GetVersion=function(m,n,o){this.GetVersionOnComplete=function(q,p){if(p==null){b.Version=1}else{if(b.Version==-1&&p>4){b.FeedbackServer=j(b.Server,"Feedback/");b.PulseServer=b.Server;b.PulseEnabled=true}b.FeedbackActive=true;b.Version=p}if(m!=null){if(o!=null){m.call(o,b.Version,n)}else{m(b.Version,n)}}if(q!=null){e(q)}this.GetVersionOnComplete=null};if(b.Version==-1){l("GetVersion","MadCap.WebHelp.FeedbackController.Shared.GetVersionOnComplete")}else{this.GetVersionOnComplete(null,b.Version)}};this.GetPulseServerActivated=function(n,m,o){this.GetPulseServerActivatedOnComplete=function(q,p){if(n!=null){if(o!=null){n.call(o,p,m)}else{n(p,m)}}if(q!=null){e(q)}this.GetPulseServerActivatedOnComplete=null};l("GetPulseServerActivated","MadCap.WebHelp.FeedbackController.Shared.GetPulseServerActivatedOnComplete")};this.GetPulseStreamID=function(n,o,m,p){this.GetPulseStreamIDOnComplete=function(r,q){if(o!=null){if(p!=null){o.call(p,q,m)}else{o(q,m)}}if(r!=null){e(r)}this.GetPulseStreamIDOnComplete=null};l("GetPulseStreamID","MadCap.WebHelp.FeedbackController.Shared.GetPulseStreamIDOnComplete",[["TopicID",n]])};this.GetTopicPathByStreamID=function(o,n,m,p){this.GetTopicPathByStreamIDOnComplete=function(q,r){if(n!=null){if(p!=null){n.call(p,r,m)}else{n(r,m)}}if(q!=null){e(q)}this.GetTopicPathByStreamIDOnComplete=null};l("GetTopicPathByStreamID","MadCap.WebHelp.FeedbackController.Shared.GetTopicPathByStreamIDOnComplete",[["StreamID",o]])};this.GetTopicPathByPageID=function(m,o,n,p){this.GetTopicPathByPageIDOnComplete=function(q,r){if(o!=null){if(p!=null){o.call(p,r,n)}else{o(r,n)}}if(q!=null){e(q)}this.GetTopicPathByPageIDOnComplete=null};l("GetTopicPathByPageID","MadCap.WebHelp.FeedbackController.Shared.GetTopicPathByPageIDOnComplete",[["PageID",m]])};this.GetPulseSearchResults=function(o,q,n,m){var p=$.Deferred();this.GetPulseSearchResultsOnComplete=function(s,r){p.resolve(r);if(s!=null){e(s)}this.GetPulseSearchResultsOnComplete=null};l("GetPulseSearchResults","MadCap.WebHelp.FeedbackController.Shared.GetPulseSearchResultsOnComplete",[["ProjectID",o],["SearchQuery",q],["PageSize",n],["PageIndex",m]]);return p.promise()}};MadCap.WebHelp.FeedbackController.Shared=null;MadCap.CreateNamespace("Feedback");MadCap.Feedback.LoginDialog=function(c,b){this._FeedbackController=c;this._TimeoutID=-1;this._Mode=b;this._UserGuid=null;this._El=null};var a=MadCap.Feedback.LoginDialog;a.prototype._Init=function(){var c=this;this._El=$(".login-dialog");$(".login-dialog-buttons .submit-button").click(function(d){c.Submit()});$(".login-dialog-buttons .cancel-button").click(function(d){c.Hide(false)});if(this._Mode=="edit"){this._UserGuid=this._FeedbackController.GetUserGuid();this._FeedbackController.GetUserProfile(this._UserGuid,function(f,d){var e=MadCap.Utilities.Xhr.LoadXmlString(f);$(e.documentElement).children("Item").each(function(h,i){var k=$(this);var g=k.attr("Name");var j=k.attr("Value");var m=$(".login-dialog input[name='"+g+"']");if(m.attr("type")=="checkbox"){var l=MadCap.String.ToBool(j,false);m.prop("checked",l)}else{m.val(j)}})},null,this)}else{if(this._Mode=="pulse"){var b=$("#pulse-login-frame");if(b.length==0){c._El.addClass("pulse");c._El.empty();c._El.append('<iframe id="pulse-login-frame" name="pulse-login-html5" style="visibility:hidden;" onload="this.style.visibility=\'visible\';"></iframe>');c._El.append('<button class="close-dialog"></button>');$(".close-dialog",c._El).click(function(d){c.Hide(true)});$("#pulse-login-frame").attr("src",c._FeedbackController.PulseServer+"Login")}}}};a.prototype._Cleanup=function(){$(".login-dialog-buttons .submit-button").off("click");$(".login-dialog-buttons .cancel-button").off("click");$(".submit-button").attr("disabled",null);$(".status-message-box").hide();$(".profile-item-wrapper.error").removeClass("error");window.clearTimeout(this._TimeoutID)};a.prototype.Show=function(){this._Init();var b=MadCap.TextEffects.AddBackgroundTint("light");$(b).animate({opacity:0.5},200);this._El.fadeIn(200)};a.prototype.Hide=function(b){this._Cleanup();MadCap.TextEffects.RemoveBackgroundTint();if(b){this._El.fadeOut()}else{this._El.hide()}$(this).trigger("closed")};a.prototype.Submit=function(){$(".status-message-box").hide();$(".profile-item-wrapper.error").removeClass("error");if(this._CheckErrors()){this._SetStatusMessage("required-fields-missing-message","error");return}var c=this._LoginItemsToXml();var b=this;if(this._Mode=="new"){this._FeedbackController.StartActivateUser2(c,function(d){b._CheckUserStatus(d)});this._SetStatusMessage("verification-email-sent-message")}else{if(this._Mode=="edit"){this._FeedbackController.UpdateUserProfile(this._UserGuid,c,function(d){if(d=="00000000-0000-0000-0000-000000000000"){b.Hide(true)}else{b._CheckUserStatus(d);b._SetStatusMessage("verification-email-sent-message")}})}}$(".submit-button").attr("disabled","disabled")};a.prototype._CheckUserStatus=function(c){var b=this;this._FeedbackController.CheckUserStatus(c,function(d){if(d=="Pending"){b._TimeoutID=setTimeout(function(){b._CheckUserStatus(c)},5000)}else{MadCap.Utilities.Store.setItem("LiveHelpUserGuid",d);b.Hide(true)}})};a.prototype._CheckErrors=function(){var e=false;var d=$(".login-dialog .profile-item-wrapper input, .login-dialog .profile-item-wrapper select");for(var c=0,f=d.length;c<f;c++){var b=d[c];var j=$(b);var g=j.val();var h=MadCap.String.ToBool(MadCap.Dom.Dataset(b,"required"),false);if(h&&MadCap.String.IsNullOrEmpty(g)){j.closest(".profile-item-wrapper").addClass("error");e=true}}return e};a.prototype._LoginItemsToXml=function(){var m=MadCap.Utilities.Xhr.CreateXmlDocument("FeedbackUserProfile");var h=m.documentElement;var b=$(".login-dialog .profile-item-wrapper input");for(var e=0,d=b.length;e<d;e++){var j=b[e];var g=$(j);var c=g.attr("name");var f=g.attr("type");var k=f=="checkbox"?j.checked:g.val();var l=m.createElement("Item");l.setAttribute("Name",c);l.setAttribute("Value",k.toString());h.appendChild(l)}return m};a.prototype._SetStatusMessage=function(b,c){var d=$(".status-message-box");if(c=="error"){d.addClass("error")}else{d.removeClass("error")}$(".message").hide();$("."+b).show();d.fadeIn()};MadCap.FeedbackException=function(c,b,d){MadCap.Exception.call(this,c,b);this.Data=d};MadCap.FeedbackException.prototype=new MadCap.Exception();MadCap.FeedbackException.prototype.constructor=MadCap.FeedbackException;MadCap.FeedbackException.prototype.base=MadCap.Exception.prototype})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.HelpSystem=function(v,m,n,c,E){var d=this;var r=v;var e=new MadCap.Utilities.Url(n).ToFolder().ToFolder().FullPath;var o=null;var l=new Array();var w=c;var k=E;var q=null;var C=[];var t=new MadCap.Utilities.Dictionary();var A=null;var G=new MadCap.Utilities.Dictionary();var b=false;var p=new MadCap.WebHelp.AliasFile(e+"Data/Alias.xml",this);var H=new MadCap.WebHelp.TocFile(this,MadCap.WebHelp.TocFile.TocType.Toc);var h=null;var s=new MadCap.WebHelp.TocFile(this,MadCap.WebHelp.TocFile.TocType.BrowseSequence);var u=new MadCap.Utilities.Dictionary();this.TargetType=null;this.DefaultStartTopic=null;this.InPreviewMode=null;this.LiveHelpOutputId=null;this.LiveHelpServer=null;this.LiveHelpEnabled=false;this.IsWebHelpPlus=false;this.ContentFolder=null;this.UseCustomTopicFileExtension=false;this.CustomTopicFileExtension=null;this.GlossaryUrl=null;this.SearchFilterSetUrl=null;this.SyncTOC=null;this.DefaultSkin=null;this.IsAutoMerged=false;this.LanguageUrl=null;this.BreakpointsUrl=null;this.PreventExternalUrls=false;this.IsResponsive=false;this.SearchUrl=null;(function(){})();this.Load=function(J){MadCap.Utilities.Xhr.Load(n,true,function(Y){var Q=0;function M(){Q++;if(Q==l.length){J()}}function Z(ac,aa){if(l.length>0){for(var ab=0;ab<l.length;ab++){l[ab].Load(ac)}}else{aa()}}b=Y!=null;if(!b){J();return}this.TargetType=Y.documentElement.getAttribute("TargetType");this.DefaultStartTopic=Y.documentElement.getAttribute("DefaultUrl");this.InPreviewMode=MadCap.Dom.GetAttributeBool(Y.documentElement,"InPreviewMode",false);this.LiveHelpOutputId=Y.documentElement.getAttribute("LiveHelpOutputId");this.LiveHelpServer=Y.documentElement.getAttribute("LiveHelpServer");this.LiveHelpEnabled=this.LiveHelpOutputId!=null;this.MoveContentToRoot=MadCap.Dom.GetAttributeBool(Y.documentElement,"MoveOutputContentToRoot",false);this.PreventExternalUrls=MadCap.Dom.GetAttributeBool(Y.documentElement,"PreventExternalUrls",false);this.IsResponsive=MadCap.Dom.GetAttributeBool(Y.documentElement,"EnableResponsiveOutput",false);this.ResultsPerPage=MadCap.Dom.GetAttributeInt(Y.documentElement,"ResultsPerPage",20);var O=MadCap.Dom.GetAttributeBool(Y.documentElement,"ServerEnabled",false);this.IsWebHelpPlus=(this.TargetType=="WebHelpPlus"||O)&&MadCap.String.StartsWith(document.location.protocol,"http",false);var W=MadCap.Dom.GetAttributeBool(Y.documentElement,"MakeFileLowerCase",false);var K="";if(!this.MoveContentToRoot){K="Content/"}if(W){K=K.toLowerCase()}this.ContentFolder=K;this.UseCustomTopicFileExtension=MadCap.Dom.GetAttributeBool(Y.documentElement,"UseCustomTopicFileExtension",false);this.CustomTopicFileExtension=MadCap.Dom.GetAttribute(Y.documentElement,"CustomTopicFileExtension");this.GlossaryUrl=F(Y,"Glossary");this.TocUrl=F(Y,"Toc");this.SearchUrl=F(Y,"SearchUrl");this.BrowseSequencesUrl=F(Y,"BrowseSequence");this.IndexUrl=F(Y,"Index");this.SearchFilterSetUrl=F(Y,"SearchFilterSet");this.LanguageUrl=e+"Data/Language.js";this.BreakpointsUrl=e+"Data/Breakpoints.js";this.HasBrowseSequences=Y.documentElement.getAttribute("BrowseSequence")!=null;this.HasToc=Y.documentElement.getAttribute("Toc")!=null;I.call(this,Y);this.DefaultSkin=this.GetSkin($(Y.documentElement).attr("SkinName"));this.SyncTOC=this.DefaultSkin!=null&&MadCap.String.ToBool(this.DefaultSkin.AutoSyncTOC,false);this.DisplayCommunitySearchResults=this.DefaultSkin==null||MadCap.String.ToBool(this.DefaultSkin.DisplayCommunitySearchResults,true);this.CommunitySearchResultsCount=3;if(this.DefaultSkin!=null){this.CommunitySearchResultsCount=MadCap.String.ToInt(this.DefaultSkin.CommunitySearchResultsCount,3)}var R=Y.getElementsByTagName("Subsystems");if(R.length>0&&R[0].getElementsByTagName("Url").length>0){var X=Y.getElementsByTagName("Subsystems")[0].getElementsByTagName("Url");for(var P=0;P<X.length;P++){var T=X[P];if(!T){continue}var L=T.getAttribute("Source");var N=L.substring(0,L.lastIndexOf("/")+1);var V=T.getAttribute("TocPath");var S=T.getAttribute("BrowseSequencePath");var U=new MadCap.WebHelp.HelpSystem(this,e+N,e+N+"Data/HelpSystem.xml",V,S);l.push(U)}}this.LoadBreakpoints(function(){d.LoadLanguage(function(){if(!d.IsAutoMerged&&d.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(d.GetPath()+"Service/Service.asmx/GetSubsystems",true,function(ab,aa){$.each(ab.documentElement.childNodes,function(ac,ad){if(ad.nodeName=="Subsystems"){$.each(ad.childNodes,function(ah,ai){if(ai.nodeName=="Url"){var ag=ai.getAttribute("Source");var ae=ag.substring(0,ag.lastIndexOf("/")+1);if(ae){var af=new MadCap.WebHelp.HelpSystem(d,e+ae,e+ae+"Data/HelpSystem.xml",null,null);af.IsAutoMerged=true;l.push(af)}}})}});Z(M,J)})}else{Z(M,J)}})})},null,this)};this.GetExists=function(){return b};this.GetMasterHelpsystem=function(){var J=this;for(var K=J.GetParentSubsystem();K!=null;K=K.GetParentSubsystem()){J=K}return J};this.GetParentSubsystem=function(){return r};this.GetPath=function(){return e};this.GetAbsolutePath=function(){if(o==null){var J=new MadCap.Utilities.Url(e);o=J.IsAbsolute?J.FullPath:new MadCap.Utilities.Url(document.location.href).Path}return o};this.GetContentPath=function(){return e+this.ContentFolder};this.GetSkin=function(J){return u.GetItem(J)};this.GetTocPath=function(J){return J=="toc"?w:k};this.GetFullTocPath=function(J,L){var M=this.GetHelpSystem(L);if(M==null){return null}var K=new Object();K.tocPath=this.GetTocPath(J);M.ComputeTocPath(J,K);return K.tocPath};this.GetTopicPath=function(J){var P=this.GetPath();var M=!this.IsRoot;var O=this.GetMasterHelpsystem();if(M&&!masterHelpsystem.MoveContentToRoot){P="../"+P}if(MadCap.Utilities.HasRuntimeFileType("Search")){var N=new MadCap.Utilities.Url(document.location.href);var L=N.ToFolder().CombinePath(P+"Data/").CombinePath(J);var K=L.ToRelative(N);J=K}else{P+="Data/";J=new MadCap.Utilities.Url(P).CombinePath(J);if(!M&&!O.MoveContentToRoot){J=J.ToRelative(O.ContentFolder)}}return J};this.ComputeTocPath=function(J,K){if(r){var L=this.GetTocPath(J);if(!MadCap.String.IsNullOrEmpty(L)){K.tocPath=K.tocPath?L+"|"+K.tocPath:L}r.ComputeTocPath(J,K)}};this.GetHelpSystem=function(K){var L=null;for(var J=0;J<l.length;J++){L=l[J].GetHelpSystem(K);if(L!=null){return L}}if(MadCap.String.StartsWith(K,e,false)){return this}return null};this.GetSubsystem=function(J){return l[J]};this.GetMergedAliasIDs=function(J){p.Load(function(){function P(R){for(var Q=0,S=R.length;Q<S;Q++){O[O.length]=R[Q]}M++;if(M==N+1){J(O)}}var O=new Array();var N=l.length;var M=0;var L=p.GetIDs();P(L);for(var K=0;K<N;K++){l[K].GetMergedAliasIDs(P)}})};this.GetMergedAliasNames=function(J){p.Load(function(){function O(R){for(var Q=0,S=R.length;Q<S;Q++){K[K.length]=R[Q]}M++;if(M==N+1){J(K)}}var K=new Array();var N=l.length;var M=0;var P=p.GetNames();O(P);for(var L=0,N=l.length;L<N;L++){l[L].GetMergedAliasNames(O)}})};this.LookupCSHID=function(K,J){p.Load(function(){function L(R){if(Q){return}N++;if(R.Found){Q=true;J(R);return}if(N==O){J(P)}}var P=p.LookupID(K);if(P.Found){P.Topic=d.GetPath()+P.Topic;J(P);return}if(l.length==0){J(P);return}var Q=false;var N=0;for(var M=0,O=l.length;M<O;M++){l[M].LookupCSHID(K,L)}})};this.GetTocFile=function(){return H};this.GetBrowseSequenceFile=function(){return s};this.IsMerged=function(){return(l.length>0)};this.IsRoot=function(){return r==null};this.IsTabletLayout=function(K){if(this.IsResponsive&&this.Breakpoints){var J=this.Breakpoints.mediums.Tablet;var L=this.Breakpoints.prop;if(L=="max-width"){if(!K){K=window.innerWidth}return K<=J}else{return window.matchMedia("("+L+": "+J+"px)").matches}}return false};this.LoadLanguage=function(L,J){var K=this;require([this.LanguageUrl],function(M){K.Language=M;L.call(J,M)})};this.LoadBreakpoints=function(L,J){if(this.IsResponsive&&this.IsRoot()){var K=this;require([this.BreakpointsUrl],function(M){K.Breakpoints=M;L.call(J,M)})}else{L.call(J,null)}};this.LoadConcepts=function(){var J=$.Deferred();require([e+"Data/Concepts.js"],function(K){A=K;J.resolve(A)});return J.promise()};this.LoadAllConcepts=function(J){function O(){L++;if(L==M+1){J()}}var L=0;var M=l.length;this.LoadConcepts().then(O);for(var K=0;K<M;K++){var N=l[K];if(!N.GetExists()){O();continue}N.LoadAllConcepts(O)}};this.GetConceptsLinks=function(K){var Q=$.Deferred();var P=[];if(this.IsWebHelpPlus){function J(Y,V){var T=Y.documentElement.getElementsByTagName("Url");var S=T.length;for(var W=0;W<S;W++){var X=T[W];var Z=X.getAttribute("Title");var U=X.getAttribute("Source");U=e+((U.charAt(0)=="/")?U.substring(1,U.length):U);P[P.length]={Title:Z,Link:U}}Q.resolve(P)}MadCap.Utilities.Xhr.CallWebService(e+"Service/Service.asmx/GetTopicsForConcepts?Concepts="+K,true,J)}else{function N(S){P=P.Union(S)}K=K.replace("\\;","%%%%%");if(K==""){Q.resolve(P)}else{var M=K.split(";");var R=[];R.push(this.GetConceptsLinksLocal(M).then(N));for(var O=0;O<l.length;O++){var L=l[O];if(L.GetExists()){R.push(L.GetConceptsLinks(K).then(N))}}$.when.apply(this,R).done(function(){Q.resolve(P)})}}return Q.promise()};this.GetConceptsLinksLocal=function(O){var K=[];var N=[];for(var L=0;L<O.length;L++){var M=O[L];M=M.replace("%%%%%",";");N.push(this.GetConceptLinks(M).then(function(P){K=K.concat(P)}))}var J=$.Deferred();$.when.apply(this,N).done(function(){J.resolve(K)});return J.promise()};this.LoadTopicChunk=function(K){var J=$.Deferred();MadCap.Utilities.Require([e+"Data/SearchTopic_Chunk"+K+".js"],function(L){J.resolve(L)});return J.promise()};this.GetSearchChunkIds=function(K){var J=$.Deferred();MadCap.Utilities.Require([e+"Data/Search.js"],function(N){var L=N.t;var O=[];for(var M=0;M<K.length;M++){O.push(MadCap.Utilities.GetChunkId(L,K[M],function(Q,P){if(Q<P){return -1}else{if(Q===P){return 0}else{return 1}}}))}J.resolve(O)});return J.promise()};this.GetConceptLinks=function(L){var K=$.Deferred();var J=this;this.LoadConcepts().done(function(){var M=[];var N=A[L];if(!N){K.resolve(M)}else{J.GetSearchChunkIds(N).then(function(R){var Q=[];for(var P=0;P<R.length;P++){var O=R[P];Q.push(J.LoadTopicChunk(O).then(function(U){for(var T=0;T<N.length;T++){var S=U[N[T]];if(S){S.Url=J.GetTopicPath(S.u);M.push(S)}}}))}$.when.apply(this,Q).done(function(){K.resolve(M)})})}});return K.promise()};this.LoadToc=function(L,M,J){var K=this;var N=K[L];if(typeof N!=="undefined"){M.call(J,N)}else{this.GetToc(L,function(O){M.call(J,O)})}};this.GetToc=function(M,J){var K=this;var L=this[M+"Url"];require([L],function(R){if(typeof R=="undefined"){J(R);return}K[M]=R;R.type=M;R.helpSystem=K;R.chunks=[];R.entries=[];R.nodes={};var O=new MadCap.Utilities.Url(L).ToFolder();for(var U=0;U<R.numchunks;U++){R.chunks[U]={path:O.AddFile(R.prefix+U+".js").FullPath,loaded:false}}var Q=R.tree;var V={};R.automerge=R.tree;while(Q!=null){Q.toc=R;Q.childrenLoaded=false;R.nodes[Q.i]=Q;if(typeof Q.m!=="undefined"){V[Q.m]=Q}if(typeof Q.a!=="undefined"){R.automerge=Q}if(typeof Q.n!=="undefined"){for(var T=0;T<Q.n.length;T++){Q.n[T].parent=Q;if(T<Q.n.length-1){Q.n[T].next=Q.n[T+1]}if(T>0){Q.n[T].previous=Q.n[T-1]}}}Q=B(Q)}var P=[];var S=false;for(var T=0;T<l.length;T++){var N=l[T];if(N.GetExists()){if(!N.IsAutoMerged){N.MergeNode=V[T]}else{S=true}if(N.IsAutoMerged||typeof N.MergeNode!=="undefined"){P.push(N)}}else{f(V[T])}}if(!S&&R.automerge.a=="replace"){f(R.automerge)}if(P.length==0){J(R);return}MadCap.Utilities.AsyncForeach(P,function(W,X){i(R,W,X)},function(){J(R)})})};function f(N){var L=N.parent;var M=N.previous;var K=N.next;if(M){M.next=K;N.previous=null}if(K){K.previous=M;N.next=null}if(L){var J=N.parent.n.indexOf(N);L.n.splice(J,1);N.parent=null}}function B(K){var J=null;if(typeof K.n!="undefined"){J=K.n[0]}else{if(typeof K.next!="undefined"){J=K.next}else{J=K;while(typeof J.parent!="undefined"){if(typeof J.parent.next!="undefined"){J=J.parent.next;break}else{J=J.parent}}if(typeof J.parent=="undefined"){J=null}}}return J}function j(K){var J=null;if(typeof K.previous!="undefined"){J=K.previous;while(typeof J.n!=="undefined"&&J.n.length>0){J=J.n[J.n.length-1]}}else{if(typeof K.parent!="undefined"){J=K.parent}}return J}function y(P,O){var N="";var M=-1;var L=null;if(P.n&&P.n.length>0){N=P.toc.entries[P.i].title;if(O){N=encodeURIComponent(N)}M=0}else{M=P.parent.n.indexOf(P)+1}if(N.length>0){N+="|"}N+=("_____"+M);for(var J=P.parent;J&&typeof J.i!=="undefined";J=J.parent){if(N==null){N=""}if(N.length>0){N="|"+N}var K=J.toc.entries[J.i].title;if(O){K=encodeURIComponent(K)}N=K+N}return N}function i(K,L,J){L.GetToc(K.type,function(P){if(typeof P=="undefined"){J();return}var O=L.IsAutoMerged?K.automerge:L.MergeNode;var W=P.tree;if(typeof W.n!=="undefined"){var N=O.r==1||(L.IsAutoMerged&&O.a=="replace");var U=N||(L.IsAutoMerged&&(O.a=="before-head"||O.a=="after-head"));var Q=N||(L.IsAutoMerged&&(O.a=="before-head"||O.a=="after-tail"));var V=Q?O.parent:O;if(typeof V.n=="undefined"){V.n=[]}var R=Q?V.n.indexOf(O)+(U?0:1):U?0:V.n.length;var M=W.n.length;for(var S=0;S<M;S++){W.n[S].parent=V;V.n.splice(R+S,0,W.n[S])}if(N){V.n.splice(R+M,1)}if(R>0){V.n[R].previous=V.n[R-1];V.n[R-1].next=V.n[R]}var T=R+M-(N?1:0)-1;if(T>=0&&T+1<V.n.length){V.n[T].next=V.n[T+1];V.n[T+1].previous=V.n[T]}if(L.IsAutoMerged){K.automerge=V.n[R+M-1];K.automerge.a="after-tail"}}J()})}this.LoadTocChunk=function(L,J,K){require([L.chunks[J].path],function(M){if(!L.chunks[J].loaded){for(var O in M){for(var N=0;N<M[O].i.length;N++){L.entries[M[O].i[N]]={link:O,title:M[O].t[N],bookmark:M[O].b[N]}}}L.chunks[J].loaded=true}if(K){K(M)}})};this.GetTocEntryHref=function(W,O,S){var N=W.toc;var R=N.entries[W.i];var V=R.link+R.bookmark;var L=null;if(typeof W.m=="undefined"&&V!="___"){var K=null;var Q=new MadCap.Utilities.Url(V);var J=N.helpSystem;var P=J.GetPath();var U=J.GetMasterHelpsystem().GetContentPath();var M=typeof W.f!="undefined";if(!Q.IsAbsolute){if(!MadCap.String.IsNullOrEmpty(P)){Q=new MadCap.Utilities.Url(P).CombinePath(V);K=Q.ToRelative(U)}else{K=Q.ToRelative("/"+U)}}else{K=Q}if(M||!S){if(K.IsAbsolute){L=K.FullPath}else{L=U+K.FullPath}}else{L="#"+K.FullPath}}if(L!=null&&O){var T=y(W,true);L+=encodeURIComponent("?"+O+"Path="+T)}return L};this.FindTocNode=function(L,J,K){d.FindNode("Toc",L,J,K)};this.FindBrowseSequenceNode=function(L,J,K){d.FindNode("BrowseSequences",L,J,K)};this.FindNode=function(J,L,K,M){d.LoadToc(J,function(S){var O=new MadCap.Utilities.Url(d.GetMasterHelpsystem().GetContentPath());var P=K;var R=0;var N;if(!K.IsAbsolute){var P=!MadCap.String.IsNullOrEmpty(O.FullPath)?O.CombinePath(K):K;P=P.ToRelative(d.GetPath());P=new MadCap.Utilities.Url("/"+P.FullPath)}for(var Q=1;Q<S.chunkstart.length;Q++){if(S.chunkstart[Q]<=P.PlainPath){R++}}d.LoadTocChunk(S,R,function(T){var V=T[P.PlainPath];if(typeof V!=="undefined"){var W=null;if(!N){N=S.nodes[V.i[0]]}if(L){for(var U=0;U<V.i.length;U++){if(y(S.nodes[V.i[U]],false)==L){W=V.i[U];break}}}else{for(var U=0;U<V.i.length;U++){if(V.b[U].toLowerCase()==P.Fragment.toLowerCase()){W=V.i[U];break}}}if(W!=null){M(S.nodes[W]);return}}if(l.length>0){MadCap.Utilities.AsyncForeach(l,function(X,Y){X.FindNode(J,L,K,function(Z){if(typeof Z!=="undefined"){M(Z);return}Y()})},function(){M(N)})}else{M(N)}})})};this.LoadGlossary=function(L,J){var K=this;this.GetGlossary(function(M){K.Glossary=M;L.call(J,M)})};this.GetGlossary=function(J){require([this.GlossaryUrl],function(K){function M(){O++;if(O==P){J(K)}}if(typeof K=="undefined"){J(K);return}var O=0;var P=0;K.chunks=[];var N=new MadCap.Utilities.Url(d.GlossaryUrl).ToFolder();for(var R=0;R<K.numchunks;R++){K.chunks.push(N.AddFile(K.prefix+R+".js").FullPath)}for(var L=0;L<l.length;L++){var Q=l[L];if(!Q.GetExists()){continue}P++}if(P==0){J(K);return}for(var L=0;L<l.length;L++){var Q=l[L];if(!Q.GetExists()){continue}a(K,Q,M)}})};this.LoadIndex=function(L,J){if(typeof this.Index!=="undefined"){L.call(J,this.Index);return}var K=this;this.GetIndex(function(M){K.Index=M;L.call(J,M)})};this.GetIndex=function(J){require([this.IndexUrl],function(L){function K(){O++;if(O==P){J(L)}}if(typeof L=="undefined"){J(L);return}var O=0;var P=0;L.chunks=[];var N=new MadCap.Utilities.Url(d.IndexUrl).ToFolder().ToRelative(document.location.href);for(var R=0;R<L.numchunks;R++){L.chunks.push(N.AddFile(L.prefix+R+".js").FullPath)}for(var M=0;M<l.length;M++){var Q=l[M];if(!Q.GetExists()){continue}P++}if(P==0){J(L);return}for(var M=0;M<l.length;M++){var Q=l[M];if(!Q.GetExists()){continue}D(L,Q,K)}})};this.LoadRootIndexEntry=function(J,K){if(J.loaded){if(K){K(J)}return}this.LoadIndex(function(L){var M=typeof J.c=="number"?[J.c]:J.c;MadCap.Utilities.AsyncForeach(M,function(P,O){var N=L.chunks[P];require([N],function(Q){var S=Q[J.t];var R=new MadCap.Utilities.Url(N).ToFolder().ToFolder().FullPath;if(MadCap.String.EndsWith(R,"/")){R=R.slice(0,-1)}d.SetIndexEntryRoot(S,R);d.MergeIndexEntries(J,S);O()})},function(){d.LoadIndexEntry(J);if(K){K(J)}})})};this.SetIndexEntryRoot=function(K,J){if(K.l){$.each(K.l,function(L,M){M.root=J})}if(K.e){$.each(K.e,function(L,M){d.SetIndexEntryRoot(M,J)})}};this.LoadIndexEntry=function(K){if(K.l){var J=[];$.each(K.l,function(M,L){var N={Title:L.t,Link:d.GetIndexLinkPath(L)};J[J.length]=N});K.linkList=d.SortLinkList(J)}if(K.e){$.each(K.e,function(L,M){d.LoadIndexEntry(M)})}K.loaded=true};this.GetIndexLinkPath=function(K){var M=K.root+K.u;if(MadCap.String.StartsWith(M,"/")){M=M.substring(1)}var J=new MadCap.Utilities.Url(d.GetMasterHelpsystem().GetAbsolutePath());var L=new MadCap.Utilities.Url(document.location.href);if(J.Path.toLowerCase()==L.Path.toLowerCase()){M=J.AddFile(M).ToRelative(J.Path+d.GetMasterHelpsystem().GetContentPath()).FullPath}return M};this.MergeIndexEntries=function(K,J){if(J.l){if(typeof K.l=="undefined"){K.l=J.l}else{K.l=K.l.concat(J.l)}}if(J.r){if(typeof K.r=="undefined"){K.r=J.r}else{if(K.r=="SeeAlso"||J.r=="SeeAlso"){K.r="SeeAlso"}}if(typeof K.f=="undefined"){K.f=J.f}else{var M=K.f.split(";");var L=J.f.split(";");$.each(L,function(O,N){if($.inArray(M,N)){M.push(N)}});M.sort(function(Q,O){var P=Q.toLowerCase();var N=O.toLowerCase();return P<N?-1:P>N?1:0});K.f=M.join("; ")}}if(J.e){if(typeof K.e=="undefined"){K.e={}}$.each(J.e,function(N,O){if(typeof K.e[N]!=="undefined"){d.MergeIndexEntries(K.e[N],O)}else{K.e[N]=O}})}};this.FindIndexEntry=function(K,J){d.LoadIndex(function(L){if(!L.entries){L.entries={};$.each(L.terms,function(P,Q){L.entries[Q.t]=Q})}var N=K.split(":");var O=N.length;var M=L.entries[N[0]];if(M){d.LoadRootIndexEntry(M,function(Q){var R=Q;for(var P=1;P<O;P++){R=R.e[N[P]];if(!R){break}}if(J){J(Q,R)}})}else{if(J){J()}}})};this.SortLinkList=function(J){J.sort(function(L,K){var N=L.Title.toLowerCase();var M=K.Title.toLowerCase();return N<M?-1:N>M?1:0});return J};this.GetSearchDBs=function(J){var L=new Array();var K=this;require([e+"Data/Search.js"],function(Q){function N(S){if(S!=null){for(var R=0;R<S.length;R++){L[L.length]=S[R]}}O++;if(O==P){J(L)}}var O=0;var P=l.length;var M=new MadCap.WebHelp.Search.SearchDB(K);L[L.length]=M;M.Load(Q,function(){var R=Q.pm;if(R||P==0){J(L)}else{for(var S=0;S<P;S++){var T=l[S];if(!T.GetExists()){N(null);continue}T.GetSearchDBs(N)}}})})};this.GetConcepts=function(){return A};this.GetSearchFilters=function(){return q.map};this.ParseSearchFilterDoc=function(P){filterMap=Object.create(null);if(P!=null){var O=P.getElementsByTagName("SearchFilter");for(var L=0;L<O.length;L++){var M=O[L];var K=M.getAttribute("Name");var J=M.getAttribute("Order");var N=M.getAttribute("Concepts");if(!N){continue}filterMap[K]={c:N,o:J,group:0,}}}return filterMap};this.LoadSearchFiltersLocal=function(){var J=$.Deferred();require([this.SearchFilterSetUrl],function(L){var K=null;if(L){K={map:L,count:1}}J.resolve(K)});return J.promise()};this.LoadSearchFilters=function(){var L=$.Deferred();if(!this.IsWebHelpPlus){function K(V){if(V){if(!J){J=V;for(var S in V.map){V.map[S].group=0}}else{J.count+=V.count;for(var S in V.map){if(!J.map[S]){J.map[S]=V.map[S];J.map[S].group+=V.count}else{var U=J.map[S];var T=V.map[S];var R=U.c.split(";");var Q=T.c.split(";");U.c=R.Union(Q).join(";");if(MadCap.String.IsNullOrEmpty(U.cm)){U.cm=T.cm}}}}}}var J;var O=[];O.push(this.LoadSearchFiltersLocal().then(K));for(var N=0;N<l.length;N++){var P=l[N];if(P.GetExists()){O.push(P.LoadSearchFilters().then(K))}}$.when.apply(this,O).done(function(){q=J;L.resolve(J)})}else{var M=this;MadCap.Utilities.Xhr.CallWebService(e+"Service/Service.asmx/GetSearchFilters",true,function(R,Q){var S=M.ParseSearchFilterDoc(R);L.resolve({map:S})})}return L.promise()};this.AdvanceTopic=function(J,O,N,K,L){var M=null;d.FindNode(J,N,K,function(Q){if(Q){function P(S,R){S=R=="next"?B(S):j(S);if(S&&typeof S.i!=="undefined"){d.LoadTocChunk(S.toc,S.c,function(T){var V=S.toc.entries[S.i];var U=d.GetTocEntryHref(S,J,true);if(U){if(MadCap.String.StartsWith(U,"#")){U=U.substring(1)}L(U)}else{P(S,R)}})}}P(Q,O)}})};this.SetBrowseSequencePath=function(K,J){var L=$(".current-topic-index-button");if(K!=null){this.FindBrowseSequenceNode(K,J,function(M){if(M&&M.parent){L.removeClass("disabled");$(".sequence-index").text(M.parent.n.indexOf(M)+1);$(".sequence-total").text(M.parent.n.length)}else{L.addClass("disabled")}})}else{L.addClass("disabled")}};function F(M,K){var L=M.documentElement.getAttribute(K);if(L==null){return null}var J=new MadCap.Utilities.Url(e);if(!J.IsAbsolute){return e+L}return J.AddFile(L).ToRelative(document.location.href).FullPath}function I(Y){var Z=$("CatapultSkin",Y.documentElement);for(var U=0,P=Z.length;U<P;U++){var V=Z[U];var Q=$(V);var S=Q.attr("Name");var X={};for(var T=0,N=V.attributes.length;T<N;T++){var W=V.attributes[T];X[W.name]=W.value}var O=Q.children();for(var T=0,N=O.length;T<N;T++){var J=O[T];var L=J.nodeName;var M={};X[L]=M;for(var R=0,K=J.attributes.length;R<K;R++){var W=J.attributes[R];M[W.name]=W.value}}u.Add(S,X)}}function x(L,M){if(L.nodeName.toLowerCase()=="madcap:glossarychunkref"){var O=$(L);var J=O.attr("src");if(!MadCap.String.IsNullOrEmpty(J)){var K=new MadCap.Utilities.Url(M).CombinePath("../../Data/").CombinePath(J);O.attr("src","../"+K.FullPath)}}else{var N=L.getElementsByTagName("a")[0];var J=$(N).attr("href");if(!MadCap.String.IsNullOrEmpty(J)){var K=new MadCap.Utilities.Url(M).CombinePath("../../Content/").CombinePath(J);$(N).attr("href","../"+K.FullPath)}}}function g(N){for(var L=0;L<N.childNodes.length;L++){var J=N.childNodes[L];if(J.nodeName=="Entries"){for(var K=0;K<J.childNodes.length;K++){g(J.childNodes[K])}}else{if(J.nodeName=="Links"){for(var K=0;K<J.childNodes.length;K++){if(J.childNodes[K].nodeType==1){var M=MadCap.Dom.GetAttribute(J.childNodes[K],"Link");M=e+((M.charAt(0)=="/")?M.substring(1,M.length):M);J.childNodes[K].setAttribute("Link",M)}}}}}}function z(K,J){if(!J){return}for(var L=0;L<J.length;L++){K[K.length]=J[L]}}function a(K,L,J){L.GetGlossary(function(Q){if(typeof Q=="undefined"){J();return}K.chunks=K.chunks.concat(Q.chunks);for(var P=0,N=0;P<K.terms.length&&N<Q.terms.length;){var O=K.terms[P];var M=Q.terms[N];var T=O.t;var R=M.t;if(T.toLowerCase()==R.toLowerCase()){P++;N++}else{if(T.toLowerCase()>R.toLowerCase()){M.c+=K.numchunks;K.terms.splice(P,0,M);N++}else{P++}}}for(;N<Q.terms.length;N++){var S=Q.terms[N];S.c+=K.numchunks;K.terms.push(S)}K.numchunks=K.chunks.length;J()})}function D(L,K,J){K.GetIndex(function(R){if(typeof R=="undefined"){J();return}L.chunks=L.chunks.concat(R.chunks);for(var P=0,O=0;P<L.terms.length&&O<R.terms.length;){var T=L.terms[P];var S=R.terms[O];var N=T.s||T.t;var M=S.s||S.t;if(N==M&&T.t==S.t){if(typeof T.c=="number"){T.c=[T.c]}var Q=S.c;if(typeof S.c=="number"){Q=[S.c]}$.each(Q,function(W,V){T.c.push(V+L.numchunks)});T.$=(T.$===1&&S.$===1)?1:0;P++;O++}else{if(N.toLowerCase()>M.toLowerCase()||(N.toLowerCase()==M.toLowerCase()&&T.t.toLowerCase()>S.t.toLowerCase())){S.c+=L.numchunks;L.terms.splice(P,0,S);O++}else{P++}}}for(;O<R.terms.length;O++){var U=R.terms[O];U.c+=L.numchunks;L.terms.push(U)}L.numchunks=L.chunks.length;J()})}};(function(){var a=null;MadCap.WebHelp.HelpSystem.GetHelpSystem=function(){return a};MadCap.WebHelp.HelpSystem.LoadHelpSystem=function(c,b){a=new MadCap.WebHelp.HelpSystem(null,null,c,null,null);a.Load(function(){b(a)})}})();MadCap.WebHelp.TocFile=function(r,l){var b=this;var h=r;var e=l;var c=false;var i=null;var n=new Array();var j=null;var o=null;var a=new Array();(function(){})();this.Init=function(t){if(c){if(t!=null){t()}return}if(t!=null){n.push(t)}var v=null;if(l==MadCap.WebHelp.TocFile.TocType.Toc){v="Toc.xml"}else{if(l==MadCap.WebHelp.TocFile.TocType.BrowseSequence){v="BrowseSequences.xml"}}this.LoadToc(h.GetPath()+"Data/"+v,u);function u(w){c=true;i=w.documentElement;g()}};this.LoadToc=function(u,t){if(e==MadCap.WebHelp.TocFile.TocType.Toc&&h.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(h.GetPath()+"Service/Service.asmx/GetToc",true,w,null)}else{if(e==MadCap.WebHelp.TocFile.TocType.BrowseSequence&&h.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(h.GetPath()+"Service/Service.asmx/GetBrowseSequences",true,w,null)}else{var v=(u.indexOf("/")==-1)?h.GetPath()+"Data/"+u:u;MadCap.Utilities.Xhr.Load(v,false,w,null,null)}}function w(y,x){if(!y||!y.documentElement){if(t!=null){t(y)}return}if(t!=null){t(y)}}};this.LoadChunk=function(u,v,t){var w=(v.indexOf("/")==-1)?h.GetPath()+"Data/"+v:v;MadCap.Utilities.Xhr.Load(v,true,x,null,null);function x(E,z){if(!E||!E.documentElement){if(t!=null){t(u)}return}u.removeAttribute("Chunk");var y=E.documentElement;for(var B=0,D=y.childNodes.length;B<D;B++){var A=y.childNodes[B];if(A.nodeType!=1){continue}var C=null;if(typeof(E.importNode)=="function"){C=E.importNode(A,true)}else{C=A.cloneNode(true)}u.appendChild(C)}if(t!=null){t(u)}}};this.LoadMerge=function(y,t){var x=MadCap.Dom.GetAttributeInt(y,"MergeHint",-1);if(x==-1){t(y,false,null,null);return}y.removeAttribute("MergeHint");var A=k(y);var u=A.GetSubsystem(x);var v=MadCap.Dom.GetAttributeBool(y,"ReplaceMergeNode",false);if(!v){y.setAttribute("ownerHelpSystemIndex",a.length)}a[a.length]=u;var z=u.GetPath()+"Data/"+(e==MadCap.WebHelp.TocFile.TocType.Toc?"Toc.xml":"BrowseSequences.xml");var B=MadCap.Utilities.Xhr.Load(z,true,w);function w(N,K){if(!N||!N.documentElement){if(t!=null){t(y,false,null,null)}return}var G=N.documentElement;var J=null;var H=true;var D=null;var E=null;var L=y.ownerDocument;for(var I=0,F=G.childNodes.length;I<F;I++){var C=G.childNodes[I];if(C.nodeType!=1){continue}var M=null;if(typeof(L.importNode)=="function"){M=L.importNode(C,true)}else{M=C.cloneNode(true)}if(v){M.setAttribute("ownerHelpSystemIndex",a.length-1);if(H){H=false;y.parentNode.replaceChild(M,y);D=M;E=D}else{J.parentNode.insertBefore(M,J.nextSibling);E=M}J=M}else{y.appendChild(M)}}if(t!=null){t(y,v,D,E)}}};this.AdvanceTopic=function(x,w,u,v){this.GetTocNode(w,u,t);function t(y){if(y==null){v(null);return}var z=null;q(x,y,A);function A(E){var B=null;if(E!=null){B=MadCap.Dom.GetAttribute(E,"Link");B=B.substring("/".length);var H=new MadCap.Utilities.Url(B);var G=null;if(e==MadCap.WebHelp.TocFile.TocType.Toc){G="TocPath"}else{if(e==MadCap.WebHelp.TocFile.TocType.BrowseSequence){G="BrowseSequencePath"}}var D=m(E,false);var C=H.ToQuery(G+"="+encodeURIComponent(D));B=C.FullPath;var F=k(E);B=F.GetPath()+B;v(B)}else{v(B)}}}};this.GetRootNode=function(u){this.Init(t);function t(){u(i)}};this.GetTocNode=function(v,t,x){this.Init(w);function w(){j=v;o=t;var F=(v=="")?new Array(0):v.split("|");var B=-1;if(F.length>0){var z=F[F.length-1];if(MadCap.String.StartsWith(z,"_____")){B=parseInt(z.substring("_____".length));F.splice(F.length-1,1)}}var H=i;for(var D=0,A=F.length;D<A;D++){if(y(H)){return}if(u(H)){return}H=d(H,decodeURIComponent(F[D]))}if(H==null){x(null);return}if(y(H)){return}if(u(H)){return}if(B>=0){if(B==0){C=H}else{C=$(H).children("TocEntry")[B-1]}}else{var E=k(H);var G=t.ToRelative(new MadCap.Utilities.Url(E.GetPath()));var C=s(H,G.FullPath.toLowerCase(),true);if(!C){C=s(H,G.PlainPath.toLowerCase(),false)}}j=null;o=null;x(C)}function y(z){var A=MadCap.Dom.GetAttribute(z,"Chunk");if(A!=null){b.LoadChunk(z,A,function(B){b.GetTocNode(j,o,x)});return true}return false}function u(z){var A=$(z).attr("MergeHint")||-1;if(A>=0){b.LoadMerge(z,function(B){b.GetTocNode(j,o,x)});return true}return false}};this.GetEntrySequenceIndex=function(u,t,w){this.GetTocNode(u,t,v);function v(y){var x=-1;if(y!=null){x=f(y)}w(x)}};this.GetIndexTotalForEntry=function(u,t,w){this.GetTocNode(u,t,v);function v(y){var z=-1;if(y!=null){var x=y;while(x.parentNode!=i){x=x.parentNode}z=MadCap.Dom.GetAttributeInt(x,"DescendantCount",-1)}w(z)}};function g(){for(var t=0,u=n.length;t<u;t++){n[t]()}}function d(u,w){var t=null;for(var v=0;v<u.childNodes.length;v++){if(u.childNodes[v].nodeName=="TocEntry"&&MadCap.Dom.GetAttribute(u.childNodes[v],"Title")==w){t=u.childNodes[v];break}}return t}function s(v,t,x){var y=null;var B=MadCap.Dom.GetAttribute(v,"Link");if(B!=null){B=B.substring("/".length);B=B.replace(/%20/g," ");B=B.toLowerCase()}if(B==t){y=v}else{for(var w=0;w<v.childNodes.length;w++){var z=v.childNodes[w];if(z.nodeType!=1){continue}var A=MadCap.Dom.GetAttribute(z,"Link");if(A==null){continue}A=A.substring("/".length);A=A.replace(/%20/g," ");A=A.toLowerCase();if(!x){var C=A.indexOf("#");if(C!=-1){A=A.substring(0,C)}var u=A.indexOf("?");if(u!=-1){A=A.substring(0,u)}}if(A==t){y=z;break}}}return y}function q(w,t,x){if(w=="previous"){v(t)}else{if(w=="next"){z(t)}}function A(F){var B=null;if(F!=null){var E=MadCap.Dom.GetAttribute(F,"Link");if(E==null){q(w,F,x);return}var C=new MadCap.Utilities.Url(E);var D=C.Extension.toLowerCase();var G=h.GetMasterHelpsystem();if(G.UseCustomTopicFileExtension){if(D!=G.CustomTopicFileExtension){q(w,F,x);return}}else{if(D!="htm"&&D!="html"){q(w,F,x);return}}B=F}x(B)}function v(E){function F(H){var G=p(H,"TocEntry");if(G==null){D=H}else{D=G;if(y(G,F)){return}if(u(G,C)){return}}A(D)}function C(H,I,J,G){if(I){F(G)}else{F(H)}}var D=null;for(var B=E.previousSibling;B!=null;B=B.previousSibling){if(B.nodeName=="TocEntry"){D=B;break}}if(D!=null){if(y(D,F)){return}if(u(D,C)){return}F(D);return}else{if(E.parentNode.nodeType==1){D=E.parentNode}}A(D)}function z(D){function E(H){var G=$(H).children("TocEntry")[0];for(var F=H;F!=null&&G==null;F=F.parentNode){G=$(F).next("TocEntry")[0]}A(G)}function C(G,H,I,F){if(H){A(I);return}E(G)}var B=null;if(y(D,E)){return}if(u(D,C)){return}E(D)}function y(C,B){var D=MadCap.Dom.GetAttribute(C,"Chunk");if(D!=null){b.LoadChunk(C,D,B);return true}return false}function u(C,B){var D=$(C).attr("MergeHint")||-1;if(D>=0){b.LoadMerge(C,B);return true}return false}}function p(t,w){var v=$(t).children(w+":last")[0];if(v!=null){var u=p(v,w);if(u!=null){return u}return v}return null}function k(u){var w=null;var t=u;while(true){if(t==t.ownerDocument.documentElement){w=h;break}var v=MadCap.Dom.GetAttributeInt(t,"ownerHelpSystemIndex",-1);if(v>=0){w=a[v];break}t=t.parentNode}return w}function m(u){var x="";var w=-1;var v=$(u).children("TocEntry")[0];if(v!=null){x=encodeURIComponent(MadCap.Dom.GetAttribute(u,"Title"));w=0}else{w=$(u).index()+1}if(x.length>0){x+="|"}x+=("_____"+w);for(var t=u.parentNode;t!=null&&t.parentNode.nodeType==1;t=t.parentNode){if(x==null){x=""}if(x.length>0){x="|"+x}x=encodeURIComponent(MadCap.Dom.GetAttribute(t,"Title"))+x}return x}function f(w){if(w.parentNode==w.ownerDocument.documentElement){return 0}var v=0;var z=MadCap.Dom.GetAttribute(w,"Link");if(z!=null){v++}for(var t=w.previousSibling;t!=null;t=t.previousSibling){if(t.nodeType!=1){continue}var y=MadCap.Dom.GetAttributeInt(t,"DescendantCount",0);v+=y;var z=MadCap.Dom.GetAttribute(t,"Link");if(z!=null){var u=new MadCap.Utilities.Url(z);var x=u.Extension.toLowerCase();if(x=="htm"||x=="html"){v++}}}return v+f(w.parentNode)}};MadCap.WebHelp.TocFile.TocType={Toc:0,BrowseSequence:1};MadCap.WebHelp.AliasFile=function(h,a,e){var d=null;var f=a;var i=null;var g=null;(function(){})();this.Load=function(j){MadCap.Utilities.Xhr.Load(h,true,function k(l){if(l){d=l.documentElement}j()})};this.GetIDs=function(){var j=new Array();c();g.ForEach(function(k,l){j[j.length]=k;return true});return j};this.GetNames=function(){var j=new Array();c();i.ForEach(function(k,l){j[j.length]=k;return true});return j};this.LookupID=function(o){var l=false;var j=null;var m=null;if(o){if(typeof(o)=="string"&&o.indexOf(".")!=-1){var k=o.indexOf("|");if(k!=-1){j=o.substring(0,k);m=o.substring(k+1)}else{j=o}l=true}else{var n=b(o);if(n!=null){l=true;j=n.Topic;m=n.Skin}}}else{l=true}if(j){j=f.ContentFolder+j}return{Found:l,Topic:j,Skin:m}};function b(k){var j=null;c();if(i!=null){if(typeof(k)=="string"){j=i.GetItem(k);if(j==null){j=g.GetItem(k)}}else{if(typeof(k)=="number"){j=g.GetItem(k.toString())}}}return j}function c(){if(i==null){if(d){i=new MadCap.Utilities.Dictionary();g=new MadCap.Utilities.Dictionary();var p=d.getElementsByTagName("Map");for(var m=0;m<p.length;m++){var k=p[m].getAttribute("Link");var o=p[m].getAttribute("Skin");var l={Topic:k,Skin:o};var j=p[m].getAttribute("Name");if(j!=null){i.Add(j,l)}var n=p[m].getAttribute("ResolvedId");if(n!=null){g.Add(n,l)}}}}}};MadCap.WebHelp.IndexEntry=function(g,f){var e=MadCap.Dom.GetChildNodeByTagName(g,"Links",0).childNodes;var d=e.length;var b=0;this.Term=MadCap.Dom.GetAttribute(g,"Term");this.IndexLinks=new Array();this.Level=f;this.GeneratedReferenceType=MadCap.Dom.GetAttribute(g,"GeneratedReferenceType");for(var c=0;c<d;c++){var a=e[c];if(a.nodeType!=1){continue}this.IndexLinks[b]=new MadCap.WebHelp.IndexLink(a);b++}};MadCap.WebHelp.IndexLink=function(a){this.Title=MadCap.Dom.GetAttribute(a,"Title");this.Link=MadCap.Dom.GetAttribute(a,"Link")};/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Default")){return}var I=MadCap.Utilities.HasRuntimeFileType("TriPane");var a=I||MadCap.Utilities.IsRuntimeFileType("Default");var j=null;var af="search-";var C=null;function ac(aJ){MadCap.DEBUG.Log.AddLine(window.name+"onload");MadCap.DEBUG.Log.AddLine(window.name+"hash: "+document.location.hash);MadCap.DEBUG.Log.AddLine(window.name+"search: "+document.location.search);if($.browser.msie&&$.browser.version<=9){var aG=$("#search-field");if(aG.css("direction")=="rtl"){aG.css({"border-top-left-radius":aG.css("border-top-right-radius"),"border-top-right-radius":aG.css("border-top-left-radius"),"border-bottom-left-radius":aG.css("border-bottom-right-radius"),"border-bottom-right-radius":aG.css("border-bottom-left-radius")})}var aK=$("#contentBody");if(aK.css("direction")=="rtl"){aK.css({"border-top-left-radius":aK.css("border-top-right-radius"),"border-top-right-radius":aK.css("border-top-left-radius")})}}$("input, textarea").placeholder();$(".tabs .tabs-nav li").click(s);$("ul.navigation ul li").mouseenter(p);$("#home").click(z);$(".search-submit").click(function(aL){Z(aL)});$("#search-field, #search-field-sidebar, .search-field").keypress(function(aL){if(aL.which!=13){return}Z(aL);aL.preventDefault()});$(".search-filter").click(function(aM){var aN=$(this);var aL=$(".search-filter-content",this);if(aN.hasClass("open")){h(0,0,aL,aN)}else{$(this).addClass("open");if(window.PIE){$(".search-submit-wrapper").each(function(){PIE.detach(this);PIE.attach(this)})}aL.fadeIn(200);aL.css("max-height",$(window).height()-aL.offset().top)}});if(!$.browser.mobile){$(".search-filter").mouseenter(function(aL){clearTimeout(C)});$(".search-filter").mouseleave(function(aM){var aL=$(this);var aN=$(".search-filter-content",this);h(200,500,aN,aL)})}$("#navigationResizeBar").mousedown(ad);$("#show-hide-navigation").click(B);P(parseInt($("#navigation").css("width")));var aI=$("title");aI.attr("data-title",document.title);$("#topic").load(function(){ai(0);MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-title",null,function(aM){var aL=aI.attr("data-title");var aN=aL;if(!MadCap.String.IsNullOrEmpty(aL)){aN+=" - "}document.title=aN+aM[0]});MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-topic-id",null,function(aL){aE=aL[0];if(aE!=null){au()}})});if(I){$(".print-button").click(function(aL){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"print")});$(".expand-all-button").click(function(aM){var aL=$(this);if(aL.hasClass("expand-all-button")){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"expand-all")}else{if(aL.hasClass("collapse-all-button")){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"collapse-all")}}MadCap.Utilities.ToggleButtonState(this)});$(".remove-highlight-button").click(function(aL){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"remove-highlight")})}$(".previous-topic-button").click(function(aL){V()});$(".next-topic-button").click(function(aL){x()});$(".side-menu-button").click(function(aL){aL.preventDefault();$(".off-canvas").toggleClass("active")});j=$(document).find(".tab")[0];var aH=$(document.documentElement).attr("data-mc-path-to-help-system");var aF="Data/HelpSystem.xml";if(aH){aF=aH+aF}MadCap.WebHelp.HelpSystem.LoadHelpSystem(aF,function(aL){an=aL;i=new MadCap.WebHelp.SearchPane(an,$("#searchPane"));if(an.LiveHelpEnabled){aa=new MadCap.WebHelp.FeedbackController(an.LiveHelpServer);aa.Init(function(){if(aa.PulseActive){$(document.documentElement).addClass("pulse-active");P(parseInt($("#navigation").css("width")))}if(aa.FeedbackActive){$(document.documentElement).addClass("feedback-active");o()}})}if(I&&!MadCap.String.IsNullOrEmpty(an.DefaultSkin.Tabs)){w()}ak();if(document.location.hash.length>1){ao()}else{D(an.DefaultStartTopic)}if(I){R(an.DefaultSkin)}if(!an.IsResponsive){$("html").addClass("web")}else{if(an.IsTabletLayout()){z()}}an.LoadSearchFilters().then(function(aP){var aM=aP?aP.map:null;var aT=[];var aX=false;if(aM){for(var aQ in aM){var aN=aM[aQ];if(!MadCap.String.IsNullOrEmpty(aN.c)){aT.push(aQ);aX|=aN.o!=-1}}}if(aT.length==0){if(window.PIE){$(".search-submit-wrapper").each(function(){PIE.attach(this)})}$("#SearchTab").closest("div").empty();return}$(".search-filter-wrapper").show();if(window.PIE){$(".search-filter, .search-submit-wrapper").each(function(){PIE.attach(this)})}aT.sort(function(aY,a1){var a0=aM[aY];var aZ=aM[a1];if(aX&&a0.group!=aZ.group){return a0.group-aZ.group}else{if(a0.o==-1||aZ.o==-1||a0.o==aZ.o){return aY.localeCompare(a1)}else{return a0.o-aZ.o}}});if(I&&$(".search-bar").css("display")=="none"){$("#SearchTab").closest(".tab").remove();return}var aS=$("#search ul");for(var aR=0,aO=aT.length;aR<aO;aR++){$(".search-filter-content ul").append($("<li></li>").text(aT[aR]));var aV=$("<li/>");aV.addClass("SearchFilterEntry tree-node tree-node-leaf");var aW=$('<div class="SearchFilter" />');var aU=$('<span class="label" />');aU.text(aT[aR]);aW.append(aU);aV.append(aW);aS.append(aV)}$(".search-filter-content li").click(function(a3){var aY=$(a3.target);var a1=aY.text().trim();var aZ=aY.closest(".search-bar").children(".search-field");var a2=aZ.val();var a0=aY.closest(".search-filter");var a4=aY.closest(".search-filter-content");Y(a1);f(a1,a0);h(0,0,a4,a0);aq(a2,a1)});$(".SearchFilter").click(function(a2){var aY=$(a2.target).closest(".SearchFilterEntry");var a1=$("#search-field-sidebar").val();$(".SearchFilterEntry.tree-node-selected").removeClass("tree-node-selected");if(aY.hasClass("SearchFilterEntry")){aY.addClass("tree-node-selected");var a0=aY.find(".SearchFilter").text().trim();var aZ=$("#search-field-sidebar");if(!aZ.attr("data-placeholder")){aZ.attr("data-placeholder",aZ.attr("placeholder"))}aZ.attr("placeholder",aZ.attr("data-placeholder")+" "+a0);Y(a0,this);aq(a1,a0)}})});ax(aJ)})}function h(aH,aI,aF,aG){if(C){clearTimeout(C)}C=setTimeout(function(){$(aF).fadeOut(aH,function(){$(aG).removeClass("open")})},aI)}function J(aF){$(".search-field").val(aF);$("#search-field-sidebar").val(aF)}function Y(aG){$(".search-filter").data("filter",aG);if(!I){var aF=$(".search-field");if(!aF.attr("data-placeholder")){aF.attr("data-placeholder",aF.attr("placeholder"))}aF.attr("placeholder",aF.attr("data-placeholder")+" "+aG)}else{$(".search-filter > span").text(aG)}}function f(aI,aH){var aJ=$(".search-filter-content",aH);var aF=aJ.children()[0];var aG=$(aF).children()[0];aI!==$(aG).text()?$(".search-filter").addClass("selected"):$(".search-filter").removeClass("selected")}var b=window.innerWidth;var ax=MadCap.Utilities.Debounce(function(){var aH=window.innerWidth;if(an.IsResponsive){var aK=an.IsTabletLayout();var aG=an.IsTabletLayout(b);if(!aK){$("#navigation").removeAttr("role");$("body").removeClass("active");$("html").addClass("web");if(aG){z()}if(j){var aI=$(j);if(!aI.hasClass("active")){var aF=aI.find("li");var aJ=$(aF[0]);aJ.removeClass("tabs-nav-inactive");aJ.addClass("tabs-nav-active");aI.addClass("active")}}else{if(!j&&$(document).find(".tab.active").length==0){j=$($(document).find(".tab")[0]);G("Toc",j)}}}else{if($("#navigation").attr("role")!=="undefined"){$("#navigation").attr("role","complementary")}if(!aG){var aI=$(".tab.active");j=aI.length&&aI.find("li").text()!="SearchTab"?$(".tab.active"):j;$(".tab .tabs-nav-active").removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");$(".tab.active").removeClass("active")}$("html").removeClass("web")}if((aK&&!aG)||(!aK&&aG)){aA()}}P(parseInt($("#navigation").css("width")));b=aH},50);function aA(){var aH=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aM=$("#navigation");var aL=$("#contentBody");var aG=$("#navigationResizeBar");var aI=!aM.attr("style")||!aL.attr("style");var aK=!aM.attr("data-mc-last-width")||!aL.attr("data-mc-last-width");if(aI&&aK){return}if(!an.IsTabletLayout()){var aJ=aM.attr("data-mc-last-width");if(aJ){aM.css("width",aJ);var aF=aL.attr("data-mc-last-width");if(aF){aL.css(aH,aF)}}}else{var aJ=aM.css("width");if(aJ){aM.attr("data-mc-last-width",aJ);aM.removeAttr("style");var aF=aL.css(aH);if(aF){aL.attr("data-mc-last-width",aF)}aL.removeAttr("style")}}}function u(aF){MadCap.DEBUG.Log.AddLine(window.name+"onhashchange: "+document.location.hash);if(document.location.hash.length>1){ao()}else{D(an.DefaultStartTopic)}}function o(){$(".star-buttons").click(O);M();$(".buttons").on("click",".login-button",function(aF){L=new MadCap.Feedback.LoginDialog(aa,aa.PulseEnabled?"pulse":"new");if(!aa.PulseEnabled){$(L).bind("closed",function(){M()})}L.Show()});$(".buttons").on("click",".edit-user-profile-button",function(aF){if(aa.PulseEnabled){document.location.hash="pulse-#!streams/"+aa.PulseUserGuid+"/settings"}else{L=new MadCap.Feedback.LoginDialog(aa,"edit");$(L).bind("closed",function(){M()});L.Show()}})}function Z(aH){var aG=av(aH);if(!MadCap.String.IsNullOrEmpty(aG.Query)){var aF=af+aG.ToString();if(I){document.location.hash=aF}else{document.location=an.SearchUrl+"#"+aF}}}function av(aL){var aO=$(aL.target).closest(".search-bar-container");var aM=$("input",aO).first();var aG=$(".search-filter",aO);var aP=aM.val();if(aP){aP=MadCap.Utilities.Url.StripInvalidCharacters(aP)}var aN;var aJ=aO.attr("id");if(I&&aJ&&aJ.indexOf("sidebar")!=-1){aN=$(".SearchFilterEntry.tree-node-selected").text()}else{aN=aG.data("filter")}if(!aN){var aI=document.location.hash;var aK=aI.lastIndexOf("?f=");if(aK!==-1){var aF=aI.substr(aK+3);if(aF){aN=aF}}}aN=aN?aN.trim():aN;var aH=E(aN,aO);return new MadCap.WebHelp.Search.SearchQuery(aP,aH,null)}function E(aG,aH){var aF=$.trim($(".search-filter li",aH).first().text());if(aG&&aG!=aF){return MadCap.Utilities.Url.StripInvalidCharacters(aG)}return null}function aB(aG){var aF=MadCap.WebHelp.Search.SearchQuery.Parse(aG);if(!I&&!MadCap.Utilities.HasRuntimeFileType("Search")){document.location=an.SearchUrl+"#"+af+aF.ToString()}else{J(aF.Query);if(!MadCap.String.IsNullOrEmpty(aF.Filter)){Y(aF.Filter);f(aF.Filter,document)}k(aF.Query,aF.Filter,aF.PageIndex)}}function aq(aG,aF){if($("#searchPane").is(":visible")&&!MadCap.String.IsNullOrEmpty(aG)){at(new MadCap.WebHelp.Search.SearchQuery(aG,E(aF),null))}}function k(aI,aG,aM,aL,aJ,aK,aH){if(typeof aL=="undefined"){aL=true}if(typeof aJ=="undefined"){aJ=an.DisplayCommunitySearchResults}if(typeof aK=="undefined"){aK=an.CommunitySearchResultsCount}if(typeof aH=="undefined"){aH=0}if(!aM){aM=1}$("#resultList").remove();ag("search");var aF={};if(aL){aF.searchContent=true;aF.content={filterName:aG}}if(aJ){aF.searchCommunity=true;aF.community={pageSize:aK,pageIndex:aH}}i.Search(aI,aF).then(function(aN){K(aI,aN.includedTerms,aN.content,aN.community,aM)});$("body").removeClass("active")}function r(aM,aH){if($("pagination")){$("#pagination").remove()}var aJ=aH.length;if(aJ>0){var aP=$("<div id='pagination'></div>");var aL=Math.ceil(aJ/an.ResultsPerPage);var aN=10;var aO=5;var aQ=Math.max(Math.min(aM-aO,aL-aN+1),1);var aK=Math.min(aQ+aN-1,aL);if(aM>1){aF=$("<a>Previous</a>");aP.append(aF);aF.on("click",{value:aM-1},A)}for(var aG=aQ;aG<=aK;aG++){var aI="<a id='selected'>"+aG+"</a>";if(aG!=aM){aI="<a>"+aG+"</a>"}var aF=$(aI);aP.append(aF);aF.on("click",{value:aG},A)}if(aM<aL){aF=$("<a>Next</a>");aP.append(aF);aF.on("click",{value:aM+1},A)}$("#searchPane").append(aP)}}function A(aH){aH.preventDefault();var aG="#"+af;if(document.location.hash.indexOf(aG)==0){var aF=MadCap.WebHelp.Search.SearchQuery.Parse(document.location.hash.substring(aG.length));aF.PageIndex=aH.data.value;at(aF)}}function at(aI,aG,aF){var aH=aI.ToString();aH=MadCap.Utilities.Url.StripInvalidCharacters(aH);document.location.hash="#"+af+aH}function K(aY,aZ,aV,aL,aN){var aK=$("#results-heading")[0];var aJ=(aV!=null?aV.length:0);var aR=aJ+(aL!=null?aL.TotalRecords:0);var aP=I?"#":"";$(".query",aK).text('"'+decodeURIComponent(aY)+'"');$(".total-results",aK).text(aR);if(aN<1||aN>Math.ceil(aR/an.ResultsPerPage)){$("#pagination").remove();return}var aT=document.createElement("ul");aT.setAttribute("id","resultList");if(aV==null){aT.setAttribute("class","communitySearch")}var aG=an.ResultsPerPage;if(aL!=null&&aL.Activities.length>0){U(aT,aY,aL);aG-=1}if(aV!=null&&aG>0){var aU=(aN-1)*an.ResultsPerPage;var a0=aU+aG>aV.length?aV.length:aU+aG;for(var aX=aU;aX<a0;aX++){var aQ=aV[aX];var a2=aQ.Title;var aO=aQ.Link;var aF=aQ.AbstractText;var aS=document.createElement("li");aT.appendChild(aS);var aM=document.createElement("h3");$(aM).addClass("title");aS.appendChild(aM);var a1=document.createElement("a");a1.setAttribute("href",aP+aO+"?Highlight="+aY);a1.appendChild(document.createTextNode(a2));d(a1,aZ);aM.appendChild(a1);if(aF!=null){var aW=document.createElement("div");$(aW).addClass("description");aW.appendChild(document.createTextNode(aF));d(aW,aZ);aS.appendChild(aW)}var aH=document.createElement("div");$(aH).addClass("url");aS.appendChild(aH);var aI=document.createElement("cite");aI.appendChild(document.createTextNode(aO));aH.appendChild(aI)}}$(aT).appendTo($("#searchPane"));if(an.LiveHelpEnabled){aa.LogSearch(an.LiveHelpOutputId,null,aJ,null,aY)}if(aR>an.ResultsPerPage){r(aN,aV)}else{$("#pagination").remove()}if(MadCap.IsIOS()){$(".off-canvas-wrap").scrollTop(1)}$("#contentBodyInner, .off-canvas-wrap").scrollTop(0);$("#resultList a").first().focus()}function d(aF,aH){var aI=$(aF);if(aH){for(var aG=0;aG<aH.length;aG++){aI.highlight(aH[aG],null,"b")}}}function U(aQ,aX,aI){var aP=document.createElement("li");aP.setAttribute("id","community-results");aQ.appendChild(aP);var aK=document.createElement("h3");aK.setAttribute("class","title");var aT=document.createElement("a");aT.setAttribute("href","#communitysearch-"+aX);aT.appendChild(document.createTextNode("Community Results"));aK.appendChild(aT);var aH=document.createElement("span");aH.appendChild(document.createTextNode(" ("+aI.TotalRecords+")"));aK.appendChild(aH);var aM=document.createElement("ul");aM.setAttribute("id","communityResultList");aP.appendChild(aK);aP.appendChild(aM);var aF=new Date();var aG=new Date(aF.getUTCFullYear(),aF.getUTCMonth(),aF.getUTCDate(),aF.getUTCHours(),aF.getUTCMinutes(),aF.getUTCSeconds());for(var aW=0;aW<aI.Activities.length;aW++){var a0=aI.Activities[aW];var aL=document.createElement("li");aM.appendChild(aL);var aR=document.createElement("a");aR.setAttribute("class","activityText");aR.setAttribute("href","#pulse-#!streams/"+a0.FeedId+"/activities/"+a0.Id);aR.appendChild(document.createTextNode(a0.Text));var aY=document.createElement("div");aY.setAttribute("class","activityInfo");var aJ=document.createElement("a");aJ.setAttribute("class","activityCreator");aJ.setAttribute("href","#pulse-#!streams/"+a0.CreatedBy+"/activities");aJ.appendChild(document.createTextNode(a0.CreatedByDisplayName));var aV=document.createElement("span");aV.appendChild(document.createTextNode(" to "));var aN=a0.FeedUrl!=null?"#"+a0.FeedUrl:"#pulse-#!streams/"+a0.FeedId+"/activities";var aO=document.createElement("a");aO.setAttribute("class","activityFeed");aO.setAttribute("href",aN);aO.appendChild(document.createTextNode(a0.FeedName));var aZ=new MadCap.Utilities.DateTime(a0.PostedUtc);var aS=new MadCap.Utilities.TimeSpan(aZ.Date,aG);var aU=document.createElement("span");aU.setAttribute("class","activityTime");aU.appendChild(document.createTextNode(aS.ToDurationString()));aY.appendChild(aJ);aY.appendChild(aV);aY.appendChild(aO);aY.appendChild(aU);aL.appendChild(aR);aL.appendChild(aY)}}function ad(aG){MadCap.DEBUG.Log.AddLine("nav resizeBar : mousedown");if($(aG.target).attr("id")=="show-hide-navigation"){return}if($(this).hasClass("nav-closed")){return}var aF=document.createElement("div");aF.setAttribute("id","mousemove-sheet");document.body.appendChild(aF);$(document).mousemove(m);$(document).mouseup(n);$(document).bind("selectstart",al);aG.preventDefault()}function al(aF){return false}function m(aH){MadCap.DEBUG.Log.AddLine("nav resizeBar : mousemove : "+aH.pageX);var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aG=aH.pageX;if(aF=="right"){aG=window.innerWidth-aH.pageX}e(aG)}function n(aG){MadCap.DEBUG.Log.AddLine("nav resizeBar : mouseup");$(document).off("mousemove",m);$(document).off("mouseup",n);$(document).off("selectstart",al);var aF=$("#mousemove-sheet")[0];window.setTimeout(function(){aF.parentNode.removeChild(aF)},1)}function e(aG){var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";if(aF=="left"){if(aG<175||aG>(window.innerWidth*0.85)){return}}else{if(aF=="right"){if(aG<(window.innerWidth*0.15)||aG>(window.innerWidth-175)){return}}}P(aG);$("#navigationResizeBar").css(aF,aG+"px");$("#navigation").css("width",aG+"px");$("#contentBody").css(aF,(aG+5)+"px")}function P(aI){var aH=$(".tabs-nav li");if(ay()===0){return}$.each(aH,function(aK,aL){var aJ=$(aL);if(aJ.hasClass("tab-collapsed")){aJ.removeClass("tab-collapsed")}});if(aI<ay()+4){for(var aG=aH.length-1;aG>=0;aG--){var aF=$(aH[aG]);aF.addClass("tab-collapsed");if(aI>ay()+18){break}}}}function ay(){var aG=0;var aF=$(".tabs-nav li");aF.each(function(aI,aH){var aJ=$(aH);if(aJ.is(":visible")){aG+=parseInt(aJ.css("width"))}});return aG}function z(){var aG=$(document).find(".tab");for(var aF=0;aF<aG.length;aF++){var aH=$(aG[aF]);aH.show();aH.removeClass("active")}$("#search-sidebar").removeClass("index").removeClass("glossary");$(".tabs-nav-active").removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");$(".responsive-link-list").remove()}function p(aI){var aL=$(aI.currentTarget).closest("li");var aK=aL.children("ul").first();if(aK.length){var aH=aK.width();var aG=$("html").attr("dir")=="rtl";var aJ=aG?aL.offset().left:$(window).width()-aL.offset().left-aL.width();var aF=aG?"openRight":"openLeft";aK.toggleClass(aF,aH>aJ)}}function B(aF){var aG=$("#navigation");if(!aG.hasClass("nav-closed")){l("hide")}else{l("show")}}function l(aI){var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aK=$("#navigation");var aG=$("#navigationResizeBar");var aJ=$("#contentBody");if(aI=="show"){aG.css(aF,aG.attr("data-mc-last-width"));var aH=aJ.attr("data-mc-last-width");if(aH==aJ.css("left")){aH=aK.innerWidth()+aG.innerWidth()+1;aJ.attr("data-mc-last-width",aH+"px")}else{aJ.css(aF,aH)}aK.removeClass("nav-closed");aG.removeClass("nav-closed");aJ.removeClass("nav-closed");if(an.IsResponsive){aA()}}else{if(aI=="hide"){aJ.attr("data-mc-last-width",aJ.css(aF));aJ.removeAttr("style");aG.attr("data-mc-last-width",aG.css(aF));aG.css(aF,0);aK.attr("data-mc-last-width",aK.css("width"));aK.addClass("nav-closed");aG.addClass("nav-closed");aJ.addClass("nav-closed")}}}function ao(){if(document.location.hash.length==0){return}var aI=MadCap.Utilities.Url.StripInvalidCharacters(document.location.hash);if(MadCap.String.IsNullOrEmpty(aI)){document.location.hash="";return}var aG=aI.substring(1);var aJ=decodeURIComponent(aG);aJ=MadCap.Utilities.Url.StripInvalidCharacters(aJ);if(MadCap.String.Contains(aJ,"cshid=")||MadCap.String.Contains(aJ,"searchQuery=")||MadCap.String.Contains(aJ,"skinName=")){aw();return}else{if(MadCap.String.StartsWith(aG,af)){aB(aG.substring(af.length));return}else{if(MadCap.String.StartsWith(aJ,"communitysearch-")){var aH=aJ.substring("communitysearch-".length);J(aH);k(aH,null,1,false,true,-1,0);return}else{if(MadCap.String.StartsWith(aJ,"pulse-")){var aF=aJ.substring("pulse-".length);t(aF);return}}}}ab(aJ)}function ab(aH){var aJ=new MadCap.Utilities.Url(aH);if(aJ.IsAbsolute){if(an.PreventExternalUrls){aH=an.DefaultStartTopic}else{var aI=aJ.Query.indexOf("?");var aG=aJ.Query.lastIndexOf("?");var aF="";if(aI!=aG){aF=aJ.Query.substr(aI,aG)}if(aJ.FullPath.indexOf("http://")!=0){aH=an.ContentFolder+aJ.ToNoQuery().FullPath+(MadCap.String.IsNullOrEmpty(aF)?"":aF)}else{aH=aJ.ToNoQuery().FullPath+(MadCap.String.IsNullOrEmpty(aF)?"":aF)}}}else{aH=an.ContentFolder+aJ.ToNoQuery().FullPath}D(aH)}function D(aQ){if(!a){return}var aG=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));if(!I){var aP=new MadCap.Utilities.Url(aG.PlainPath);if(!aP.IsFolder){aP=aP.ToFolder()}var aF=aP.CombinePath(aQ);var aH=MadCap.Utilities.Url.StripInvalidCharacters(aF.FullPath);document.location=aH}else{$(document.documentElement).addClass("has-topic");ag("topic");try{frames.topic.location.replace(aQ)}catch(aJ){document.getElementById("topic").src=aQ}var aM=null,aO=null,aL=null;if(!MadCap.String.IsNullOrEmpty(aG.Fragment)&&aG.Fragment.length>1){aO=aG.QueryMap.GetItem("TocPath");if(aO!=null){aM="Toc"}else{aL=aG.QueryMap.GetItem("BrowseSequencesPath");if(aL!=null){aM="BrowseSequences"}}if(aG.HashMap.GetItem("cshid")==null){var aK=aG.Query.indexOf("?");var aI=aG.Query.lastIndexOf("?");var aN="";if(aK!=aI){aN=aG.Query.substr(aK,aI)}aG=new MadCap.Utilities.Url(aG.Fragment.substr(1));if(!MadCap.String.IsNullOrEmpty(aN)){aG.Query=aN}}}else{aG=new MadCap.Utilities.Url(an.DefaultStartTopic).ToRelative(an.GetContentPath())}an.SetBrowseSequencePath(aL,aG);if(an.SyncTOC){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"sync-toc",[aM,aM=="Toc"?aO:aL,aG.FullPath],null)}}}function t(aF){$(document.documentElement).removeClass("has-topic");ag("pulse");var aG=aF.substring(aF.indexOf("#"));MadCap.Utilities.CrossFrame.PostMessageRequest(frames["community-frame-html5"],"pulse-hash-changed",[aG]);aa.Init(function(){if(aa.PulseActive){frames.pulse.location.replace(aa.PulseServer+aG)}})}function aw(){var aL=document.location.hash.substring(1);var aM=new MadCap.Utilities.Dictionary();var aI=aL.split("&");$(aI).each(function(aO,aP){var aN=aI[aO].split("=");aM.Add(aN[0].toLowerCase(),aN[1])});var aH=aM.GetItem("searchQuery".toLowerCase());if(aH!=null){J(decodeURIComponent(aH));var aG=MadCap.String.ToBool(aM.GetItem("firstPick".toLowerCase()),false);if(aG){i.Search(aH,{searchContent:true}).then(function(aN){var aO=aN.content;if(aO.length>=1){ab(aO[0].Link)}})}else{aB(aH)}}else{var aK=aM.GetItem("cshid");if(aK!=null){ar=aK;an.LookupCSHID(aK,function(aO){if(aO.Found){D(aO.Topic)}else{D(an.DefaultStartTopic)}var aN=aM.GetItem("skinName".toLowerCase())||aO.Skin;if(aN!=null){var aP=an.GetSkin(aN);c(aP)}});return}else{D(an.DefaultStartTopic)}}var aF=aM.GetItem("skinName".toLowerCase());if(aF!=null){var aJ=an.GetSkin(aF);c(aJ)}}function aj(){if(document.location.hash.indexOf("#pulse-")!=0){return""}return document.location.hash.substring("#pulse-".length)}function c(aQ){R(aQ);if(MadCap.String.IsNullOrEmpty(aQ.Tabs)){$("#navigation").remove();$("#navigationResizeBar").remove();$(document.documentElement).removeClass("left-layout").removeClass("right-layout")}else{if(aQ.WebHelpOptions!=null&&aQ.WebHelpOptions.HideNavigationOnStartup!=null&&(MadCap.String.ToBool(aQ.WebHelpOptions.HideNavigationOnStartup,false))){l("hide")}if(aQ.NavigationPanePosition!=null&&aQ.NavigationPanePosition=="Right"){$(document.documentElement).removeClass("left-layout").addClass("right-layout")}if(aQ.NavigationPaneWidth!=null){var aP=MadCap.String.ToInt(aQ.NavigationPaneWidth,300);e(aP)}var aM=aQ.Tabs.split(",");var aK=["TOC","Index","Glossary","BrowseSequences","Community"];var aI=$(".tabs");for(var aJ=0,aG=aK.length;aJ<aG;aJ++){var aH=aK[aJ];if($.inArray(aH,aM)>=0){continue}if(aH=="TOC"){aH="Toc"}var aO=$("#"+aH+"Tab");if(aO.length==0){continue}var aF=aI.children(".tabs-nav").children("li").index(aO);var aN=aI.children(".tabs-panels").children(":eq("+aF+")");aO.remove();aN.remove()}var aL=aQ.DefaultTab;if(aL=="TOC"){aL="Toc"}G(aL,aI);T(aL)}if(aQ.Toolbar!=null&&MadCap.String.IsNullOrEmpty(aQ.Toolbar.Buttons)){$(".buttons").remove()}if(aQ.DisplaySearchBar=="false"){$(".search-bar").hide()}}function ag(aF){$("#topic").css("display",aF=="topic"?"block":"none");$("#topicContent").css("display",aF=="topic"?"block":"none");$("#pulse").css("display",aF=="pulse"?"block":"none");$("#searchPane").css("display",aF=="search"?"block":"none")}var q=null;function s(aL){var aF=$(this).attr("id");var aH=aF.substring(0,aF.length-"Tab".length);q=aH;G(aH,$(this).closest(".tabs"));if(an.IsTabletLayout()&&an.IsResponsive){var aJ=$(document).find(".tab");for(var aI=0;aI<aJ.length;aI++){var aK=$(aJ[aI]);if(!aK.hasClass("active")){aK.hide()}else{aK.show()}}var aG=$("#search-sidebar");var aM=aH.toLowerCase();aG.removeClass("index").removeClass("glossary");if(aM=="index"||aM=="glossary"){aG.addClass(aM)}}T(aH)}function G(aH,aK){var aG=$(".tabs-nav-active",aK);var aI=$("#"+aH+"Tab");var aJ=aG.closest(".tab");var aF=aI.closest(".tab");aG.removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");if(aJ!=null){aJ.removeClass("active")}aI.removeClass("tabs-nav-inactive");aI.addClass("tabs-nav-active");if(aF!=null){aF.addClass("active")}if(an.IsResponsive&&aH!="Search"){j=$(".tab.active")}else{j=null}}function ak(){var aF=$("ul[data-mc-toc]");aF.each(function(){var aG=new MadCap.WebHelp.TocPane("Toc",an,this,false);aG.Init()})}function w(){var aF=an.DefaultSkin.DefaultTab;if(aF=="TOC"){T("Toc")}else{T(aF)}}function T(aF){var aG=null;if(aF=="Toc"){aG=aD()}else{if(aF=="Index"){aG=W()}else{if(aF=="Glossary"){aG=F()}else{if(aF=="BrowseSequences"){aG=g()}else{if(aF=="Community"){aG=aC()}}}}}if(aG||(aG&&an.IsResponsive&&!an.IsTabletLayout())){G(aF,aG)}}function aD(){if(S!=null){return}var aG=$("#toc");if(!aG.length){return}aG.addClass("loading");var aF=$('<ul class="tree" />');aG.append(aF);S=new MadCap.WebHelp.TocPane("Toc",an,aF[0],true);S.Init(function(){aG.removeClass("loading")});return aG.parent()}function W(){if(ah!=null){return}var aF=$("#index");aF.addClass("loading");ah=new MadCap.WebHelp.IndexPane(an);ah.Init($("#index .index-wrapper")[0],function(){aF.removeClass("loading")});return aF.parent()}function F(){if(N!=null){return}var aF=$("#glossary");aF.addClass("loading");N=new MadCap.WebHelp.GlossaryPane(an);N.Init(aF[0],function(){aF.removeClass("loading")});return aF.parent()}function g(){if(az!=null){return}var aG=$("#browseSequences");if(!aG.length){return}aG.addClass("loading");var aF=$('<ul class="tree" />');aG.append(aF);az=new MadCap.WebHelp.TocPane("BrowseSequences",an,aF[0],true);az.Init(function(){aG.removeClass("loading")});return aG.parent()}function aC(){if(H){return}H=true;var aF=$("#community-frame-html5");aa.Init(function(){if(aa.PulseActive){aF.attr("src",aa.PulseServer+"streams/my")}});return $pane.parent()}function R(aS){var aT=MadCap.String.ToBool(aS.UseBrowserDefaultSize,false);if(aT){return}var aI=MadCap.String.ToInt(aS.Top,0);var aQ=MadCap.String.ToInt(aS.Left,0);var aR=MadCap.String.ToInt(aS.Bottom,0);var aG=MadCap.String.ToInt(aS.Right,0);var aJ=MadCap.String.ToInt(aS.Width,800);var aK=MadCap.String.ToInt(aS.Height,600);var aF=aS.Anchors;if(aF){var aM=(aF.indexOf("Top")>-1)?true:false;var aH=(aF.indexOf("Left")>-1)?true:false;var aP=(aF.indexOf("Bottom")>-1)?true:false;var aL=(aF.indexOf("Right")>-1)?true:false;var aN=(aF.indexOf("Width")>-1)?true:false;var aO=(aF.indexOf("Height")>-1)?true:false}if(aH&&aL){aJ=screen.availWidth-(aQ+aG)}else{if(!aH&&aL){aQ=screen.availWidth-(aJ+aG)}else{if(aN){aQ=(screen.availWidth/2)-(aJ/2)}}}if(aM&&aP){aK=screen.availHeight-(aI+aR)}else{if(!aM&&aP){aI=screen.availHeight-(aK+aR)}else{if(aO){aI=(screen.availHeight/2)-(aK/2)}}}if(window==top){window.resizeTo(aJ,aK);window.moveTo(aQ,aI)}}function au(){$(".star-buttons").addClass("loading");aa.GetAverageRating(aE,function(aG,aF){$(".star-buttons").removeClass("loading");ai(aG)})}function ai(aJ){var aF=$(".star-buttons");var aM=$(".star-button",aF);var aL=aM.length;var aK=Math.ceil(aJ*aL/100);aM.css("opacity",0);for(var aH=0;aH<aL;aH++){var aI=aM[aH];var aG=$(aI);window.setTimeout((function(aO,aN){return function(){if(aO<=aK-1){MadCap.Utilities.SetButtonState(aN[0],2)}else{MadCap.Utilities.SetButtonState(aN[0],1)}aN.animate({opacity:1})}})(aH,aG),aH*50)}}function O(aI){var aF=$(aI.target);if(aI.target.tagName=="IMG"){aF=aF.closest(".star-button")}if(aF.hasClass("star-button")){var aH=$(".star-button",this).length;var aG=(aF.index()+1)*100/aH;aa.SubmitRating(aE,aG,null,function(){au()})}}function v(aF){ae(aF,function(aG){if(aG){document.location.hash=aG}})}function V(){v("previous")}function x(){v("next")}function ae(aG,aF){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-topic-url",null,function(aM){var aJ=new MadCap.Utilities.Url(decodeURIComponent(aM[0]));var aI=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));var aK=aI.QueryMap.GetItem("TocPath");var aL=aI.QueryMap.GetItem("BrowseSequencesPath");aI=aI.ToPlainPath();if(!aI.IsFolder){aI=aI.ToFolder()}var aH=aI.CombinePath(an.GetMasterHelpsystem().GetContentPath());aJ=aJ.ToRelative(aH);if(aL!=null){an.AdvanceTopic("BrowseSequences",aG,aL,aJ,aF)}else{an.AdvanceTopic("Toc",aG,aK,aJ,aF)}})}function y(){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-bs-path",null,function(aM){function aJ(aN){var aO=$(".current-topic-index-button");if(aN==-1){aO.addClass("disabled");return}aO.removeClass("disabled");$(".sequence-index").text(aN);aG.GetIndexTotalForEntry(aI,aF,function(aP){$(".sequence-total").text(aP)})}var aI=aM[0];var aF=new MadCap.Utilities.Url(decodeURIComponenet(aM[1]));var aL=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));aL=new MadCap.Utilities.Url(aL.PlainPath);var aH=MadCap.String.EndsWith(aL.FullPath,"/")?aL:aL.ToFolder();aF=aF.ToRelative(aH);if(aI!=null){var aK=an.GetFullTocPath("browsesequences",aF.FullPath);if(aK){aI=aI?aK+"|"+aI:aK}}if(MadCap.String.IsNullOrEmpty(aI)||MadCap.String.StartsWith(aI,"_____")){aJ(-1);return}var aG=an.GetBrowseSequenceFile();aG.GetEntrySequenceIndex(aI,aF,aJ)})}function M(){Q=aa.GetUserGuid();var aF=$(".login-button");if(aF.length==0){aF=$(".edit-user-profile-button")}MadCap.Utilities.SetButtonState(aF[0],Q==null?1:2)}function ap(){if(L!=null){L.Hide(true)}}function am(aM){var aO=$("#topicContent");if(aO.length==0){var aJ=$("#topic").parent();aJ.append("<div id='topicContent'></div>");aO=$("#topicContent")}else{aO.empty()}aO.append(aM[2]);var aN=$(aM[1]);var aK=[],aP=[],aT=[];var aV=new MadCap.Utilities.Url(aM[0]);var aQ=new MadCap.Utilities.Url(document.location.href);var aG=aQ.ToFolder().ToRelative(aV);$.each(aN,function(aX,aY){if(!MadCap.String.IsNullOrEmpty(aY.localName)){var aW=aY.localName.toLowerCase();if(aW=="script"){var aZ=new MadCap.Utilities.Url($(aY).attr("src"));if(!aZ.IsAbsolute){aZ=aZ.ToRelative(aG)}aK.push(aZ.FullPath)}else{if(aW=="link"){aT.push(aY)}}}});var aI=aV.ToFolder().ToRelative(aQ.PlainPath);X(aT,aI,"href");$.each(aT,function(aX,aY){if($(aY).attr("mc-topic-css")){var aW=$(aY).attr("href");aW=aW.replace(".css","-topic.css");aP.push(aW)}else{aP.push($(aY).attr("href"))}});MadCap.Utilities.LoadStyleSheets(aP,$('link[href*="Styles.css"]')[0]);MadCap.Utilities.LoadScripts(aK,function(){},function(){},aO);var aR=new MadCap.Utilities.Url(document.location.href);aG=aV.ToFolder().ToRelative(aR.PlainPath);var aF=aO.find('a[href][href!="javascript:void(0);"]');aF=aF.not('[class*="MCPopupThumbnailLink"]').not('[class*="MCTopicPopup"]');var aL=aO.find('[class*="MCTopicPopup"]');var aS=aO.find('a[class="MCPopupThumbnailLink"]');var aU=aO.find("img[src]");var aH=aO.find("area[href]");X(aF,aG,"href","#");X(aL,aG,"href");X(aU,aG,"src");X(aS,aG,"href");X(aH,aG,"href","#");$(".MCWebHelpFramesetLink",aO).hide()}function X(aF,aG,aH,aI){$.each(aF,function(aL,aM){var aK=$(aM);var aJ=new MadCap.Utilities.Url(aK.attr(aH));if(!aJ.IsAbsolute){var aN=MadCap.Utilities.FixLink(aJ,aG,aI,an.ContentFolder);aK.attr(aH,aN)}})}MadCap.Utilities.CrossFrame.AddMessageHandler(function(aN,aK,aY,aZ,aF){var aT={Handled:false,FireResponse:true};if(aN=="get-href"){aY[aY.length]=document.location.href;aT.Handled=true;aT.FireResponse=true}if(aN=="get-return-url"){var aJ=new MadCap.Utilities.Url(document.location.href);var aX=null;if(aJ.Fragment.length>1){var aW=new MadCap.Utilities.Url(aJ.Fragment.substring(1));aX=aJ.QueryMap.GetItem("returnUrl")}aY[aY.length]=aX;aT.Handled=true;aT.FireResponse=true}else{if(aN=="navigate"){var aS=aK[0];if(aS){document.location.hash=MadCap.Utilities.Url.StripInvalidCharacters(aS)}aT.Handled=true;aT.FireResponse=true}else{if(aN=="navigate-topic"){var aS=aK[0];var aW=new MadCap.Utilities.Url(aS);if(aW.IsAbsolute){var aI=new MadCap.Utilities.Url(document.location.href);aI=new MadCap.Utilities.Url(aI.PlainPath);var aR=MadCap.String.EndsWith(aI.FullPath,"/")?aI:aI.ToFolder();var aO=aR.CombinePath(an.ContentFolder);aW=aW.ToRelative(aO)}if(aW.FullPath){var aP=MadCap.Utilities.Url.StripInvalidCharacters(aW.FullPath);if(document.location.hash.substring(1)==aP){document.location.hash=null}document.location.hash=aP}aT.Handled=true}else{if(aN=="navigate-home"){var aJ=new MadCap.Utilities.Url(document.location.href);document.location.href=aJ.PlainPath;aT.Handled=true}else{if(aN=="navigate-pulse"){var aS=aK[0];if(document.location.hash.length>1&&aS){var aV=aS.toLowerCase();if(aV==="feedback/account/register"||aS.toLowerCase()==="forgotpassword"){var aJ=new MadCap.Utilities.Url(document.location.hash.substring(1));var aX=aJ.QueryMap.GetItem("returnUrl");if(aX!=null){aX=escape(aX)}else{aX=document.location.hash.substring(1)}aS+="?returnUrl="+aX}}if(aS){document.location.hash="pulse-"+MadCap.Utilities.Url.StripInvalidCharacters(aS)}aT.Handled=true}else{if(aN=="navigate-previous"){V();aT.Handled=true}else{if(aN=="navigate-next"){x();aT.Handled=true}else{if(aN=="login-user"||aN=="login-pulse"){if(Q==null){var aQ=aN=="login-pulse"?"pulse":"new";L=new MadCap.Feedback.LoginDialog(aa,aQ);if(aQ=="new"){$(L).bind("closed",function(){M();aY[aY.length]=Q;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)})}L.Show();aT.Handled=true;aT.FireResponse=false}else{aY[aY.length]=Q;aT.Handled=true;aT.FireResponse=true}}else{if(aN=="get-csh-id"){aY[aY.length]=ar;aT.Handled=true;aT.FireResponse=true}else{if(aN=="get-user-guid"){aY[aY.length]=Q;aT.Handled=true;aT.FireResponse=true}else{if(aN=="get-topic-path-by-stream-id"){var aL=aK[0];aa.GetTopicPathByStreamID(aL,function(a1){aY[aY.length]=a1;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)},null,null);aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-topic-path-by-page-id"){var aH=aK[0];aa.GetTopicPathByPageID(aH,function(a1){aY[aY.length]=a1;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)},null,null);aT.Handled=true;aT.FireResponse=false}else{if(aN=="hash-changed"){var aP=aK[0];aP=aP.substring(1);history.pushState(null,null,document.location.pathname+document.location.hash+"$"+aP);aT.Handled=true;aT.FireResponse=false}else{if(aN=="forward-ajax-open-success"){var a0=aK[0];var aU=parseInt(aK[1]);var aM=aK[2];ag("pulse");MadCap.Utilities.CrossFrame.PostMessageRequest(frames.pulse,"ajax-open-success",[a0,aU,aM]);aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-pulse-hash"){var aG="";if(document.location.hash.indexOf("#pulse-")==0){aG=document.location.hash.substring("#pulse-".length)}aY[aY.length]=aG;aT.Handled=true;aT.FireResponse=true}else{if(aN=="login-complete"||aN=="logout-complete"){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.pulse,"reload");MadCap.Utilities.CrossFrame.PostMessageRequest(frames["community-frame-html5"],"reload");MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"reload-pulse");ap();M();aT.Handled=true;aT.FireResponse=false}else{if(aN=="close-login-dialog"){ap();aT.Handled=true;aT.FireResponse=false}else{if(aN=="set-pulse-login-id"){if(aa!=null){aa.PulseUserGuid=aK[0]}M();aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-parent-window-width"){aY[aY.length]=window.innerWidth;aT.Handled=true;aT.FireResponse=true}else{if(aN=="set-topic-content"){am(aK);aT.Handled=true;aT.FireResponse=false}}}}}}}}}}}}}}}}}}}}return aT},null);$(ac);$(window).resize(ax);$(window).hashchange(u);var S=null;var ah=null;var i=null;var N=null;var az=null;var H=null;var an=null;var aa=null;var aE=null;var Q=null;var ar=null;var L=null})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Default")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");var b=window.external&&window.external.attached&&window.external.attached();MadCap.WebHelp.TocPane=function(e,i,g,d){var f=this;this._Init=false;this._RuntimeFileType=e;this._RootUl=g;this._CanSync=d;this._HelpSystem=i;this._TocFile=this._RuntimeFileType=="Toc"?this._HelpSystem.GetTocFile():this._HelpSystem.GetBrowseSequenceFile();this._LoadedNodes=[];var h=null;var c=null;MadCap.Utilities.CrossFrame.AddMessageHandler(this.OnMessage,this);this._Initializing=false;this._InitOnCompleteFuncs=new Array();this.TreeNode_Expand=function(r){var s=r.target;var v=$(s).closest("li")[0];if(v==null){return}var u=$(v);var n=u.hasClass(f._TreeNodeLeafClass);if(!n){u.toggleClass(f._TreeNodeExpandedClass).toggleClass(f._TreeNodeCollapsedClass)}var k=u.find("> div img");var t=k.attr("data-mc-alt2");var q=k.attr("alt");if(t!=""){k.attr("alt",t);k.attr("data-mc-alt2",q)}if(f._IncludeIndicator){var w=u.find("> div a");if(w[0]!=null){var j=w.attr("href");if(!MadCap.String.IsNullOrEmpty(j)){f._SelectNode(v)}if(w[0]!=s){var p=w.attr("target");if(!MadCap.String.IsNullOrEmpty(j)){if(p!=null){window.open(j,p)}else{document.location.href=j}}}}}var m=f._LoadedNodes[u.attr("data-mc-id")];if(typeof m.n=="undefined"||m.n.length==0){m.childrenLoaded=true}if(!m.childrenLoaded){var l=$("a",u).first();var o=$("<ul/>");o.addClass(f._SubMenuClass);if(b){o.attr("data-mc-style","Navigation Panel Item")}f.LoadTocChildren(m,o,function(){u.append(o);if(f._DeferExpandEvent){setTimeout(function(){l.trigger(f._ExpandEvent)},100)}});if(f._DeferExpandEvent){r.stopImmediatePropagation();return false}}if(n){$("body").removeClass("active")}}};var a=MadCap.WebHelp.TocPane;a.prototype.OnMessage=function(i,f,h){var g={Handled:false,FireResponse:true};if(i=="sync-toc"){var c=f[0];var e=f[1];var d=new MadCap.Utilities.Url(f[2]);if(this._CanSync&&(c==null||c==this._RuntimeFileType)){this.SyncTOC(e,d);g.Handled=true}}return g};a.prototype.Init=function(c){if(this._Init){if(c!=null){c()}return}if(c!=null){this._InitOnCompleteFuncs.push(c)}if(this._Initializing){return}this._Initializing=true;var e=$(this._RootUl);this._SubMenuClass=e.attr("data-mc-css-sub-menu")||"tree inner";this._TreeNodeClass=e.attr("data-mc-css-tree-node")||"tree-node";this._TreeNodeCollapsedClass=e.attr("data-mc-css-tree-node-collapsed")||"tree-node-collapsed";this._TreeNodeExpandedClass=e.attr("data-mc-css-tree-node-expanded")||"tree-node-expanded";this._TreeNodeLeafClass=e.attr("data-mc-css-tree-node-leaf")||"tree-node-leaf";this._TreeNodeSelectedClass=e.attr("data-mc-css-tree-node-leaf")||"tree-node-selected";this._IncludeBack=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-back",false);this._IncludeParentLink=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-parent-link",false);this._IncludeIcon=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-icon",true);this._IncludeIndicator=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-indicator",true);this._DeferExpandEvent=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-defer-expand-event",false);this._ExpandEvent=e.attr("data-mc-expand-event")||"click";this._BackLink=e.attr("data-mc-back-link")||"Back";var d=this;e.attr("data-mc-chunk","Data/"+this._RuntimeFileType+".xml");this.CreateToc(this._RootUl,function(){d._Init=true;for(var f=0;f<d._InitOnCompleteFuncs.length;f++){d._InitOnCompleteFuncs[f]()}})};a.prototype.CreateToc=function(e,c){var f=true;if(this._RuntimeFileType=="Toc"){f=this._HelpSystem.HasToc}else{f=this._HelpSystem.HasBrowseSequences}if(!f){if(c!=null){c()}return}var d=this;d._HelpSystem.LoadToc(this._RuntimeFileType,function(i,h){var g=$(e);if(b){g.attr("data-mc-style","Navigation Panel Item")}d.LoadTocChildren(i.tree,g,function(){this._Init=true;if(c!=null){c()}})},null)};a.prototype.LoadTocChildren=function(h,f,d){var e=typeof h.n!=="undefined"?h.n.length:0;var k=0;if(e==0){h.childrenLoaded=true}if(h.childrenLoaded){if(d){d()}return}if(h.parent){if(this._IncludeBack){var l=$('<li class="back"/>');l.addClass(this._TreeNodeClass);var g=$('<a href="#" />');g.text(this._BackLink);l.append(g);f.append(l)}if(this._IncludeParentLink&&this._HelpSystem.GetTocEntryHref(h)!=null){var l=$("<li/>");l.addClass(this._TreeNodeClass);f.append(l);this.LoadTocNode(h,l,null)}}for(var j=0;j<e;j++){var c=h.n[j];var l=$("<li/>");l.addClass(this._TreeNodeClass);l.addClass(this._TreeNodeCollapsedClass);f.append(l);this.LoadTocNode(c,l,function(){k++;if(k==e){h.childrenLoaded=true;if(d!=null){d()}}})}};a.prototype.LoadTocNode=function(f,e,c){var d=this;var g=f.toc;this._HelpSystem.LoadTocChunk(g,f.c,function(q){var r=g.entries[f.i];var l=typeof f.f!="undefined";var j=typeof f.n=="undefined"||f.n.length==0;var n=d._CanSync&&!l?d._RuntimeFileType:null;var i=d._HelpSystem.GetTocEntryHref(f,n,d._CanSync);var k=$("<a/>");if(l){k.attr("target",f.f)}if(i!=null){k.attr("href",i)}else{k.attr("href","javascript:void(0);")}k.text(r.title);if(typeof f.s!="undefined"){e.addClass(f.s)}if(j){e.removeClass(d._TreeNodeCollapsedClass);e.addClass(d._TreeNodeLeafClass)}if(d._IncludeIcon){var s="default";var m=d._HelpSystem.Language;for(className in m){if(e.hasClass(className)){s=className;break}}var h=$("<img/>");h.attr("src","Skins/Default/Stylesheets/Images/transparent.gif");h.addClass("toc-icon");if(d._IncludeIndicator){h.attr("alt",m[s]["MarkAsNewIconAlternateText"])}else{if(e.hasClass(d._TreeNodeLeafClass)){h.attr("alt",m[s]["TopicIconAlternateText"])}else{h.attr("alt",m[s]["ClosedBookIconAlternateText"]);h.attr("data-mc-alt2",m[s]["OpenBookIconAlternateText"])}}if(h.prop("src")!=""){k.prepend(h)}}if(d._IncludeIndicator){var p=$("<div/>");if(typeof f.w!=="undefined"&&f.w==1){p.append("<span class='new-indicator'></span>")}var o=$('<span class="label" />');o.append(k);p.append(o);k=p}k.on(d._ExpandEvent,d.TreeNode_Expand);f.el=e;e.append(k);e.attr("data-mc-id",d._LoadedNodes.length);d._LoadedNodes.push(f);if(c!=null){c()}})};a.prototype.SyncTOC=function(e,d){var c=this;var f=$("."+this._TreeNodeSelectedClass+" a",this._RootUl);if(f.length>0){var g=f[0];if(g.href===document.location.href){return}}this.Init(function(){function j(l){if(typeof l!=="undefined"&&l!=null){var k=[];var m=l;while(typeof m!=="undefined"&&!m.childrenLoaded){k.unshift(m);m=m.parent}MadCap.Utilities.AsyncForeach(k,function(q,p){var o=$(q.el);var n=$("<ul/>");n.addClass(c._SubMenuClass);c.LoadTocChildren(q,n,function(){o.append(n);p()})},function(){var n=l.el[0];c._UnhideNode(n);c._SelectNode(n)})}}function h(k){c._HelpSystem.FindNode(c._RuntimeFileType,e,k,function(m){if(!m){if(!MadCap.String.IsNullOrEmpty(k.Fragment)||!MadCap.String.IsNullOrEmpty(k.Query)){var l=new MadCap.Utilities.Url(k.PlainPath);c._HelpSystem.FindNode(c._RuntimeFileType,e,l,j)}}else{j(m)}})}var i=d.HashMap.GetItem("cshid");if(i!=null){c._HelpSystem.LookupCSHID(i,function(l){var k=l.Found?new MadCap.Utilities.Url(l.Topic).ToRelative(c._HelpSystem.GetContentPath()):new MadCap.Utilities.Url(c._HelpSystem.DefaultStartTopic);h(k)})}else{h(d)}})};a.prototype._UnhideNode=function(c){var e=MadCap.Dom.GetAncestorNodeByTagName(c,"li",this._RootUl);while(e!=null){var d=$(e);d.removeClass(this._TreeNodeCollapsedClass);d.addClass(this._TreeNodeExpandedClass);e=MadCap.Dom.GetAncestorNodeByTagName(e,"li",this._RootUl)}};a.prototype.NavigateTopic=function(f){var g=$("."+this._TreeNodeSelectedClass,this._RootUl)[0];if(g==null){g=$("."+this._TreeNodeClass,this._RootUl)[0]}if(this.NeedsCreateToc(g)){var e=this;this.CreateToc(g,function(){e.NavigateTopic(f)});return}var c=f=="previous"?this._GetPrevious(g):this._GetNext(g);if(c==null){return}this._SelectNode(c);var d=$("> div a",c)[0];if(d!=null){document.location.href=$(d).attr("href")}this._UnhideNode(c)};a.prototype._SelectNode=function(d){var c=$(d);$("."+this._TreeNodeSelectedClass,this._RootUl).removeClass(this._TreeNodeSelectedClass);c.addClass(this._TreeNodeSelectedClass);c.scrollintoview()};a.prototype._GetNext=function(e){var d=$(e);var f="."+this._TreeNodeClass;if(d.find(f).length>0){return d.find(f)[0]}if(d.next(f).length>0){return d.next(f)[0]}var c=d;while(true){var g=$(c.parent().closest(f,this._RootUl));if(g.length==0){break}if(g.next(f).length>0){return g.next(f)[0]}c=g}return null};a.prototype._GetPrevious=function(e){var d=$(e);var f="."+this._TreeNodeClass;var c=d.prev(f);if(c.length==0){if(d.parent().closest(f,this._RootUl).length>0){return d.parent().closest(f,this._RootUl)[0]}else{return null}}if(c.find(f).length>0){return c.find(f).last()[0]}return c[0]}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("TriPane")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.IndexPane=function(c){var b=this;this._Init=false;this._ContainerEl=null;this._HelpSystem=c;this._EntryHeight=-1;this._IndexEntryCount=0;this._IndexEntries=Object.create(null);this._IndexDivs=new Array();this._XmlDoc=null;this._Chunks=null;this._AlphaMap=new MadCap.Utilities.Dictionary();this._LiCached=null;this._SeePrefix=null;this._SeeAlsoPrefix=null;this.GetPath=function(d,e){return MadCap.String.IsNullOrEmpty(d)?new MadCap.Utilities.Url(e).ToRelative("/Content/").FullPath:"../"+new MadCap.Utilities.Url(d+e).FullPath};this.LoadRootEntry=function(e,d){var g=$(e);var f=g.data("entry");b._HelpSystem.LoadRootIndexEntry(f,function(i){if(i.e&&!i.childrenLoaded){var h=$("<ul/>");h.addClass("tree inner");b.LoadEntries(h,i.e);g.append(h)}i.childrenLoaded=true;g.data("entry",i);if(d){d(i,g)}})};this.LoadEntries=function(g,d){var f=this;if(!$.isArray(d)){var e=[];$.each(d,function(h,i){if(!i.t){i.t=h}e.push(i)});e.sort(function(i,h){var k=(i.s||i.t).toLowerCase();var j=(h.s||h.t).toLowerCase();return k<j?-1:k>j?1:0});d=e}$.each(d,function(q,v){var r=$("<li/>");r.addClass("IndexEntry tree-node tree-node-collapsed");var l=v.t;var o=v.r=="See";var h=v.r=="SeeAlso";var j=$("<div/>");j.addClass("IndexTerm");var t=$("<span/>").addClass("label");j.append(t);var u=true;if(o){l=f._SeePrefix+": "+v.f;j.addClass("see");v.seeAlsoLinks=[v.f]}else{if(h){l=f._SeeAlsoPrefix+": ";v.seeAlsoLinks=[];seeAlsoLinks=v.f.split("; ");if(seeAlsoLinks.length>1){var k=$("<a/>").text(l);t.append(k);for(var n=0;n<seeAlsoLinks.length;n++){var s=seeAlsoLinks[n];var p=$("<a/>").addClass("seeAlsoLink").text(s);t.append(p);v.seeAlsoLinks.push(s);if(n<seeAlsoLinks.length-1){t.append("; ")}}u=false}else{l+=v.f;v.seeAlsoLinks.push(v.f)}j.addClass("see-also")}}if(u){var k=$("<a/>").text(l);t.append(k)}r.append(j);v.isRoot=typeof v.$!=="undefined";if(v.e){var m=$("<ul/>");m.addClass("tree inner");f.LoadEntries(m,v.e);r.append(m)}else{if(v.$===1||!v.isRoot){r.removeClass("tree-node-collapsed");r.addClass("tree-node-leaf")}}g.append(r);v.el=r[0];r.data("entry",v);if(!o&&!h){if(typeof f._IndexEntries[l]=="undefined"){f._IndexEntries[l]=[v]}else{f._IndexEntries[l].push(v)}}})};this.FindEntry=function(e,d){b._HelpSystem.FindIndexEntry(e,function(f,g){if(!g){return}b.LoadRootEntry(f.el,function(){if(d){d(g)}})})};this.SelectEntry=function(i,m,j,k,n){$(".tree-node-selected",b._ContainerEl).removeClass("tree-node-selected");j.addClass("tree-node-selected");if(!m){return}MadCap.TextEffects.RemoveLinkListTrees();var l=i.pageY-k.offset().top;var d=i.pageX-k.offset().left;var f=!this._HelpSystem.IsTabletLayout()||!this._HelpSystem.IsResponsive;if(m.r&&!n){var h=$(".seeAlsoLink",j).index(i.target);var g=m.seeAlsoLinks[0];if(h>=0){g=m.seeAlsoLinks[h]}g=g.replace(", ",":");this.FindEntry(g,function(e){j=$(e.el);$container=f?$(b._ContainerEl).parent():$("#navigation");b._UnhideNode(j[0]);b.SelectEntry(i,e,j,k,true);$container.animate({scrollTop:$container.scrollTop()+j.offset().top-$container.offset().top})});return}else{if(m.linkList&&m.linkList.length>1&&!n){if(f){MadCap.TextEffects.CreateLinkListPopup(m.linkList,b._ContainerEl,l,d,this,"#")}else{MadCap.TextEffects.CreateLinkListTree(m.linkList,j,this,"#",function(o){b.TreeNode_Click(o);MadCap.TextEffects.Item_Click.call(this,[o])})}MadCap.Utilities.PreventDefault(i);i.stopPropagation()}else{if(m.linkList&&m.linkList.length==1){document.location.href="#"+m.linkList[0].Link}}}if(j.hasClass("tree-node-expanded")&&!n){j.removeClass("tree-node-expanded");j.addClass("tree-node-collapsed")}else{if(j.hasClass("tree-node-collapsed")){j.removeClass("tree-node-collapsed");j.addClass("tree-node-expanded")}}};this.TreeNode_Click=function(h){var d=MadCap.Dom.GetAncestorNodeByTagName(h.target,"li");if(d==null){return}if($(h.target).closest(".link-list-popup").length>0){return}var g=$(this);var i=$(d);MadCap.Utilities.PreventDefault(h);var f=i.data("entry");if(!i.hasClass("IndexEntryLink")&&(!f||f.isRoot)){b.LoadRootEntry(d,function(e,j){b.SelectEntry(h,e,j,g)})}else{b.SelectEntry(h,f,i,g)}};this.Search=function(){var d=this.value.toLowerCase();b._Terms.each(function(){var e=$(this);var f=e.parent().parent();var g=e.text().toLowerCase().indexOf(d)!=-1;f.css("display",g?"block":"none");e.removeHighlight("highlightIndex");if(g){e.highlight(d,"highlightIndex")}})}};var a=MadCap.WebHelp.IndexPane;a.prototype.Init=function(e,b){if(this._Init){if(b!=null){b()}return}var d=this;d._ContainerEl=e;var c=$(this._ContainerEl.parentNode);this._SeePrefix=c.attr("data-see-prefix")||"See";this._SeeAlsoPrefix=c.attr("data-see-also-prefix")||"See Also";d._HelpSystem.LoadIndex(function(h,g){var f=$("<ul/>");f.addClass("tree");d.LoadEntries(f,h.terms);var j=$(d._ContainerEl);j.click(d.TreeNode_Click);j.append(f);var i=$("#search-index");i.bind("keyup",d.Search);$("#responsive-search-index").bind("keyup",d.Search);d._Terms=$(".IndexEntry a",this._ContainerEl);d._Init=true;if(b!=null){b()}},null)};a.prototype._UnhideNode=function(c){var b=MadCap.Dom.GetAncestorNodeByTagName(c,"li",this._ContainerEl);while(b!=null){var d=$(b);d.removeClass("tree-node-collapsed");d.addClass("tree-node-expanded");b=MadCap.Dom.GetAncestorNodeByTagName(b,"li",this._ContainerEl)}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("TriPane")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.GlossaryPane=function(c){var b=this;this._Init=false;this._ContainerEl=null;this._HelpSystem=c;MadCap.Utilities.CrossFrame.AddMessageHandler(this.OnMessage,this);this.TreeNode_Click=function(j){var d=MadCap.Dom.GetAncestorNodeByTagName(j.target,"li");if(d==null){return}var l=$(d);var i=$("a",l);var h=i.text();var k=l.attr("data-chunk");var f=b._HelpSystem.Glossary.chunks[k];var g=new MadCap.Utilities.Url(f).ToFolder().ToFolder();MadCap.Utilities.PreventDefault(j);require([f],function(n){var o=n[h];$(".tree-node-selected",b._ContainerEl).removeClass("tree-node-selected");l.addClass("tree-node-selected");var e=$(".GlossaryPageTerm",d);if(!MadCap.String.IsNullOrEmpty(o.d)&&!e.hasClass("MCDropDownHead")){e.addClass("MCDropDownHead MCDropDownHotSpot");var s=$("<div/>");s.addClass("GlossaryPageDefinition MCDropDownBody");s.append(o.d);l.addClass("MCDropDown");l.append(e);l.append(s);var p=new MadCap.TextEffects.DropDownControl(l[0]);p.Init(false);p.Open(true)}if(!MadCap.String.IsNullOrEmpty(o.l)){var m=i.attr("href");if(MadCap.String.IsNullOrEmpty(m)){var q=g.CombinePath(o.l).ToRelative(b._HelpSystem.GetContentPath()).FullPath;m=encodeURI(q);i.attr("href",m)}document.location.href="#"+m}else{if(l.hasClass("tree-node-expanded")){l.removeClass("tree-node-expanded");l.addClass("tree-node-collapsed")}else{if(l.hasClass("tree-node-collapsed")){l.removeClass("tree-node-collapsed");l.addClass("tree-node-expanded");if($("li",l.parent()).last()[0]==l[0]){var r=$(b._ContainerEl);r.animate({scrollTop:r[0].scrollHeight},500)}}}}})};this.Search=function(){var d=this.value.toLowerCase();b._Terms.each(function(){var e=$(this);var f=e.parent().parent();var g=e.text().toLowerCase().indexOf(d)!=-1;f.css("display",g?"block":"none");e.removeHighlight("highlightGlossary");if(g){e.highlight(d,"highlightGlossary")}})}};var a=MadCap.WebHelp.GlossaryPane;a.prototype.OnMessage=function(e,b,d){var c={Handled:false,FireResponse:true};return c};a.prototype.Init=function(d,b){if(this._Init){if(b!=null){b()}return}var c=this;c._ContainerEl=d;c._HelpSystem.LoadGlossary(function(f,k){var h=$("<ul/>");h.addClass("tree");for(var g=0;g<f.terms.length;g++){var m=f.terms[g];var l=$("<li/>");l.addClass("GlossaryPageEntry tree-node tree-node-collapsed");l.attr("data-chunk",m.c);var e=$("<div/>");e.addClass("GlossaryPageTerm");e.append('<span class="label"><a>'+m.t+"</a></span>");l.append(e);h.append(l)}var n=$(c._ContainerEl);n.click(c.TreeNode_Click);n.append(h);var j=$("#search-glossary");j.bind("keyup",c.Search);$("#responsive-search-glossary").bind("keyup",c.Search);c._Terms=$(".GlossaryPageTerm a",c._ContainerEl);c._Init=true;if(b!=null){b()}},null)};a.prototype._SelectNode=function(b){$(".tree-node-selected",this._ContainerEl).removeClass("tree-node-selected");$(b).addClass("tree-node-selected")}})();(function(){var b=(function(){var j={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},g={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},k="[^aeiou]",m="[aeiouy]",d=k+"[^aeiouy]*",i=m+"[aeiou]*",h="^("+d+")?"+i+d,e="^("+d+")?"+i+d+"("+i+")?$",f="^("+d+")?"+i+d+i+d,l="^("+d+")?"+m;return function(s){s=s.toLowerCase();var n,u,t,v,q,p,o,c=s;if(s.length<3){return s.toLowerCase()}t=s.substr(0,1);if(t=="y"){s=t.toUpperCase()+s.substr(1)}v=/^(.+?)(ss|i)es$/;q=/^(.+?)([^s])s$/;if(v.test(s)){s=s.replace(v,"$1$2")}else{if(q.test(s)){s=s.replace(q,"$1$2")}}v=/^(.+?)eed$/;q=/^(.+?)(ed|ing)$/;if(v.test(s)){var r=v.exec(s);v=new RegExp(h);if(v.test(r[1])){v=/.$/;s=s.replace(v,"")}}else{if(q.test(s)){var r=q.exec(s);n=r[1];q=new RegExp(l);if(q.test(n)){s=n;q=/(at|bl|iz)$/;p=new RegExp("([^aeiouylsz])\\1$");o=new RegExp("^"+d+m+"[^aeiouwxy]$");if(q.test(s)){s=s+"e"}else{if(p.test(s)){v=/.$/;s=s.replace(v,"")}else{if(o.test(s)){s=s+"e"}}}}}}v=/^(.+?)y$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(l);if(v.test(n)){s=n+"i"}}v=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;if(v.test(s)){var r=v.exec(s);n=r[1];u=r[2];v=new RegExp(h);if(v.test(n)){s=n+j[u]}}v=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;if(v.test(s)){var r=v.exec(s);n=r[1];u=r[2];v=new RegExp(h);if(v.test(n)){s=n+g[u]}}v=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;q=/^(.+?)(s|t)(ion)$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(f);if(v.test(n)){s=n}}else{if(q.test(s)){var r=q.exec(s);n=r[1]+r[2];q=new RegExp(f);if(q.test(n)){s=n}}}v=/^(.+?)e$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(f);q=new RegExp(e);p=new RegExp("^"+d+m+"[^aeiouwxy]$");if(v.test(n)||(q.test(n)&&!(p.test(n)))){s=n}}v=/ll$/;q=new RegExp(f);if(v.test(s)&&q.test(s)){v=/.$/;s=s.replace(v,"")}if(t=="y"){s=t.toLowerCase()+s.substr(1)}return s.toLowerCase()}})();var a=MadCap.CreateNamespace("WebHelp.Search");a.Stemmer=b})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){var a=MadCap.CreateNamespace("WebHelp.Search");a.Tokenizer=function(){var i="";var f=-1;var c=new Array();this.Tokenize=function(n){var m=null;i=n;f=-1;for(var l=0;m=k();l++){c[l]=m}return c};function h(l){if(!l){return false}else{if(l=='"'){return false}else{if(l=="+"){return false}else{if(l=="^"){return false}else{if(l=="|"){return false}else{if(l=="&"){return false}else{if(l=="("){return false}else{if(l==")"){return false}else{if(d(l)){return false}else{return true}}}}}}}}}}function d(l){if(!l){return false}else{if(l==" "){return true}else{if(l.charCodeAt(0)==12288){return true}else{return false}}}}function e(){return i.charAt(f+1)}function g(){f++}function j(){var l="";for(;;){var m=e();if(!m){return(l=="")?null:l}if(m=="\\"){g();if(!e()){return null}g();continue}if(m=='"'){g();break}else{g();l+=m}}return l}function k(){var p=e();var m=null;var l="";if(!p){m=null}else{if(d(p)){for(p=e();d(p);p=e()){g();l+=p}m=new a.Token(l,a.Token.WhiteSpace)}else{if(p=="("){g();m=new a.Token(p,a.Token.LeftParen)}else{if(p==")"){g();m=new a.Token(p,a.Token.RightParen)}else{if(p=="^"||p=="!"){g();m=new a.Token(p,a.Token.Not)}else{if(p=="+"||p=="&"){g();m=new a.Token(p,a.Token.And)}else{if(p=="|"){g();m=new a.Token(p,a.Token.Or)}else{if(p=='"'){g();var o=j();if(MadCap.String.Contains(o,a.Tokenizer.Connectors)){o=o.replace(a.Tokenizer.ConnectorRegex," ");o=$.trim(o)}m=new a.Token(o,(o==null)?a.Token.Error:a.Token.Phrase)}else{for(p=e();h(p);p=e()){g();l+=p}if(l=="and"||l=="AND"){m=new a.Token(l,a.Token.And)}else{if(l=="or"||l=="OR"){m=new a.Token(l,a.Token.Or)}else{if(l=="not"||l=="NOT"){m=new a.Token(l,a.Token.Not)}else{var n=a.Token.Word;if(MadCap.WebHelp.SearchPane.SearchDBs[0].SearchType=="NGram"){n=a.Token.Phrase}if(MadCap.String.Contains(l,a.Tokenizer.Connectors)){l=l.replace(a.Tokenizer.ConnectorRegex," ");l=$.trim(l);m=new a.Token(l,a.Token.Phrase)}else{m=new a.Token(l,n)}}}}}}}}}}}}return m}};a.Tokenizer.Connectors=[".",",","/",":",";","\\\\","*","<",">","!","@","\\[","\\]","(",")","{","}"];a.Tokenizer.ConnectorRegex=new RegExp("["+a.Tokenizer.Connectors.join("")+"]","g");a.Token=function(c,e){var d=c;var f=e;this.GetTokenText=function(){return d};this.GetType=function(){return f}};var b=a.Token;b.Eof=0;b.Error=1;b.WhiteSpace=2;b.Phrase=3;b.Word=4;b.RightParen=5;b.LeftParen=6;b.Not=7;b.And=8;b.Or=9;b.ImplicitAnd=10;a.Parser=function(g){var i=this;var k=g;var d=-1;var h=new a.Tokenizer();var c=h.Tokenize(k);this.ParseExpression=function(){var n=j();f();if(e()==a.Token.Eof){return n}else{if(e()==a.Token.And||e()==a.Token.Or||e()==a.Token.Not){l();var m=new a.Node(c[d],n,this.ParseExpression());return m}else{if(e()==a.Token.Word||e()==a.Token.Phrase||e()==a.Token.Not||e()==a.Token.LeftParen){var m=new a.Node(new a.Token(n.GetToken().GetTokenText()+" "+c[d+1].GetTokenText(),a.Token.ImplicitAnd),n,this.ParseExpression());return m}else{if(e()==a.Token.RightParen){return n}}}}throw gInvalidTokenLabel};function l(){d++}function j(){f();if(e()==a.Token.Word){l();return new a.Node(c[d],null,null)}else{if(e()==a.Token.Phrase){l();return new a.Node(c[d],null,null)}else{if(e()==a.Token.LeftParen){l();var m=c[d];var n=new a.Node(m,i.ParseExpression(),null);if(e()!=a.Token.RightParen){throw"Missing right paren ')'."}l();return n}}}throw gInvalidTokenLabel}function e(){if(c[d+1]==null){return a.Token.Eof}else{return c[d+1].GetType()}}function f(){for(;e()==a.Token.WhiteSpace;){l()}}};a.Node=function(e,f,d){var c=e;var h=f;var g=d;this.Evaluate=function(k,i){var j=this;var l=c.GetType();if(l==a.Token.Word||l==a.Token.Phrase){this.EvaluatePhrase(k).then(i)}else{if(l==a.Token.And||l==a.Token.ImplicitAnd||l==a.Token.Or||l==a.Token.Not){h.Evaluate(k,function(m){g.Evaluate(k,function(n){if(c.GetType()==a.Token.And||c.GetType()==a.Token.ImplicitAnd){i(a.IntersectResults(m,n))}else{if(c.GetType()==a.Token.Or){i(a.UnionResults(m,n))}else{if(c.GetType()==a.Token.Not){i(a.SubtractResults(m,n))}}}})})}else{if(l==a.Token.LeftParen){if(h){h.Evaluate(k,i)}else{i(null)}}else{i(null)}}}};this.EvaluatePhrase=function(n){var q=this;var r=$.Deferred();var i=c.GetTokenText();var k=c.GetType()==a.Token.Phrase;var p=[];var o=Object.create(null);o.results=Object.create(null);o.terms=[];o.ignore=MadCap.Utilities.StopWords.indexOf(i)>-1;if(!o.ignore){o.terms.push(i);for(var m=0;m<MadCap.WebHelp.SearchPane.SearchDBs.length;m++){var l=MadCap.WebHelp.SearchPane.SearchDBs[m];p.push(l.LookupPhrase(i,k,n).then(function(j,s){if(s){dbIndex=MadCap.WebHelp.SearchPane.SearchDBs.indexOf(j);o.results[dbIndex]={data:s}}}))}}$.when.apply(this,p).done(function(){r.resolve(o)});return r.promise()};this.GetToken=function(){return c}};a.LoadResultData=function(h){var k=[];var i=0;var d=h.results;for(var f in d){var e=MadCap.WebHelp.SearchPane.SearchDBs[f];var g=d[f];k.push(e.LoadTopics(g).then(function(m){i+=m.count}))}var l=MadCap.WebHelp.SearchPane.SearchDBs[0].RelevanceWeight;var j=$.Deferred();var c=[];$.when.apply(this,k).done(function(){for(var r in d){var n=MadCap.WebHelp.SearchPane.SearchDBs[r];var p=d[r];for(var o in p.data){var t=p.data[o];var q=n.HelpSystem.GetTopicPath(t.u).FullPath;var m=t.i*p.count/i;var s=MadCap.Utilities.CalculateScore(t.r,m,l);c.push(new a.SearchResult(s,t.t,q,t.a))}}j.resolve(c,h.terms)});return j.promise()};a.SplitPhrase=function(f){var e=null;var c=MadCap.WebHelp.SearchPane.SearchDBs[0];if(c.SearchType=="NGram"){e=new Array(Math.max(0,f.length-(c.NGramSize+1)));for(var d=0;d<f.length-c.NGramSize+1;d++){e[d]=f.substring(d,d+c.NGramSize)}}else{e=f.split(" ")}return e};a.FilterResults=function(e,d,j,c){if((e.ignore&&d.ignore)||d.ignore){return e}else{if(e.ignore){return d}}var i=Object.create(null);i.results=Object.create(null);var k=i.results;for(var h in e.results){k[h]=Object.create(null);k[h].data=Object.create(null);var g=e.results[h].data;var f=d.results[h];if(f){f=f.data}j(g,f,k[h].data)}i.terms=c(e.terms,d.terms);return i};a.UnionResults=function(d,c){return a.FilterResults(d,c,function(f,j,e){for(var h in f){e[h]=f[h]}if(j){for(var h in j){var i=f[h];var g=j[h];if(i){e[h]={r:MadCap.Utilities.CombineRelevancy(i.r,g.r)}}else{e[h]=g}}}},function(f,e){return f.Union(e)})};a.IntersectResults=function(d,c){return a.FilterResults(d,c,function(f,i,e){if(i){for(var h in f){var g=i[h];if(g){e[h]={r:MadCap.Utilities.CombineRelevancy(f[h].r,g.r)}}}}},function(f,e){return f.Union(e)})};a.SubtractResults=function(d,c){if(d.ignore||c.ignore){return d}return a.FilterResults(d,c,function(f,i,e){if(i){for(var h in f){var g=i[h];if(!g){e[h]=f[h]}}}},function(f,e){return f})}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.SearchPane=function(f,e){this._Init=false;this._Container=e;this._HelpSystem=f;this._FeedbackController=null;this._Parser=null;this._Filters=null;this._Set=null;this._FilteredSet=null;this._Highlight="";this._DownloadedSynonymXmlDocRootNode=null};var c=MadCap.WebHelp.SearchPane;c.SearchDBs=new Array();c.prototype.Init=function(e){if(this._Init){if(e){e.call(this)}return}var h=this;if(this._HelpSystem.LiveHelpEnabled){this._FeedbackController=new MadCap.WebHelp.FeedbackController(this._HelpSystem.LiveHelpServer);this._FeedbackController.Init(function(){if(h._FeedbackController.FeedbackActive){h._FeedbackController.GetSynonymsFile(h._HelpSystem.LiveHelpOutputId,null,function(k,i){var j=MadCap.Utilities.Xhr.LoadXmlString(k);if(j!=null){h._DownloadedSynonymXmlDocRootNode=j.documentElement}g()},null)}else{g()}})}else{g()}function g(){if(!h._HelpSystem.IsWebHelpPlus){h._HelpSystem.GetSearchDBs(f)}else{f(null)}}function f(i){c.SearchDBs=i;h._Filters=new b.Filters(h._HelpSystem);h._Filters.Load(function(){h._Init=true;if(e){e.call(h)}})}};c.prototype.Search=function(g,f){if(MadCap.String.IsNullOrEmpty(MadCap.String.Trim(g))){return}this._Container.addClass("loading");var e=$.Deferred();this.Init(function(){var j={};var h=[];if(f.searchContent){var i=f.content?f.content.filterName:null;var k=!this._HelpSystem.IsWebHelpPlus?this.DoSearch(g,i):this.DoSearchWebHelpPlus(g,i);h.push(k.then(function(m,n){j.content=m;j.includedTerms=n}))}if(f.searchCommunity){if(this._FeedbackController&&this._FeedbackController.PulseActive){var l=this._FeedbackController.GetPulseSearchResults(this._HelpSystem.LiveHelpOutputId,g,f.community.pageSize,f.community.pageIndex);h.push(l.then(function(m){j.community=m}))}}$.when.apply(this,h).done($.proxy(function(){this._Container.removeClass("loading");e.resolve(j)},this))});return e.promise()};c.prototype.DoSearch=function(j,h){var f=$.Deferred();this._Parser=new b.Parser(j);var e=null;try{e=this._Parser.ParseExpression()}catch(i){alert("Ensure that the search string is properly formatted.");e=null}if(!e){return f.resolve()}if(this._DownloadedSynonymXmlDocRootNode!=null&&c.SearchDBs[0].DownloadedSynonymFile==null){c.SearchDBs[0].DownloadedSynonymFile=new b.SynonymFile(this._DownloadedSynonymXmlDocRootNode)}var g=this;e.Evaluate(h,function(k){b.LoadResultData(k).then(function(l,m){g._Set=l;if(g._Set){g._Set.sort(function(o,n){return n.Score-o.Score})}MadCap.Utilities.ClearRequireCache();f.resolve(g._Set,m)})});return f.promise()};c.prototype.DoSearchWebHelpPlus=function(m,k){var h=this;var g=$.Deferred();function f(A,v){var y=[];var p=A.getElementsByTagName("Result");var s=p.length;var u=new MadCap.Utilities.Url(document.location.pathname);if(!h._HelpSystem.SearchUrl){if(!MadCap.String.EndsWith(document.location.pathname,"/")){u=u.ToFolder()}u=u.CombinePath(h._HelpSystem.ContentFolder)}for(var q=0;q<s;q++){var z=p[q];var o=MadCap.Dom.GetAttributeInt(z,"Rank",-1);var x=z.getAttribute("Title");var w=z.getAttribute("Link");var t=new MadCap.Utilities.Url(w).ToRelative(u);var n=z.getAttribute("AbstractText");if(MadCap.String.IsNullOrEmpty(x)){x=z.getAttribute("Filename")}var r=new b.SearchResult(o,x,t.FullPath,unescape(n));y.push(r)}g.resolve(y)}MadCap.Utilities.Xhr.CallWebService(h._HelpSystem.GetPath()+"Service/Service.asmx/GetSearchResults?SearchString="+encodeURIComponent(m)+"&FilterName="+encodeURIComponent(k),true,f,null);var l=m.split(" ");var e=true;this._Highlight="?Highlight=";for(var j=0;j<l.length;j++){if(!e){this._Highlight+="||"}else{e=false}this._Highlight+=l[j]}return g.promise()};var b=MadCap.CreateNamespace("WebHelp.Search");MadCap.WebHelp.Search.SearchDB=function(e){this.RelevanceWeight=0;this.TopicChunkMap=null;this.StemChunkMap=null;this.PhraseChunkMap=null;this.HelpSystem=e;this.SearchType=null;this.NGramSize=0;this.SynonymFile=null;this.DownloadedSynonymFile=null;this.LoadChunkCompleteFuncs=new MadCap.Utilities.Dictionary()};var a=b.SearchDB;a.prototype.Load=function(f,e){MadCap.Utilities.Xhr.Load(this.HelpSystem.GetPath()+"Data/Synonyms.xml",true,function(g){if(g!=null){this.SynonymFile=new b.SynonymFile(g.documentElement)}this._LoadSearchDB(f,e)},null,this)};a.prototype.GetTermPhrases=function(h,f,i){var o=this;var k=new MadCap.Utilities.Dictionary();var g=b.Stemmer(h);var l=new MadCap.Utilities.Dictionary();k.Add(g,true);if(!f){if(this.SynonymFile!=null){this.SynonymFile.AddSynonymStems(h,g,k)}if(this.DownloadedSynonymFile!=null){this.DownloadedSynonymFile.AddSynonymStems(h,g,k)}}var e=Object.create(null);var j=[];k.ForEach(function(r,s){if(o.SearchType=="NGram"){for(var q=0;q<r.length-o.NGramSize+1;q++){var p=r.substring(q,q+o.NGramSize);j.push(p)}}else{j.push(r)}});var n=[];$.each(j,function(p,q){n.push(o.LoadStem(q).then(function(s){for(var r in s){if(!f||r==h.toLowerCase()){var t=s[r];if(i){t=i.Intersect(t)}l.Add(r,t)}}}))});var m=$.Deferred();$.when.apply(this,n).done(function(){m.resolve(h,l)});return m.promise()};a.prototype.LookupPhrase=function(m,k,e){var o=this;var w=$.Deferred();var f=b.SplitPhrase(m);var h=null;var n=[];var l=new MadCap.Utilities.Dictionary();if(m){m=m.trim()}if(!m||MadCap.Utilities.StopWords.indexOf(m)>-1){w.resolve(o,null);return w.promise()}var j;if(e){j=[];var r=this.HelpSystem.GetMasterHelpsystem().GetSearchFilters();if(r){var u=r[e];if(u){var g=u.c;var v=g.split(";");var t=this.HelpSystem.GetConcepts();for(var q=0;q<v.length;q++){var s=v[q];j=j.Union(t[s])}}}}for(var q=0;q<f.length;q++){var p=f[q];n.push(this.GetTermPhrases(p,k,j).then(function(i,x){l.Add(i,x)}))}$.when.apply(o,n).done(function(){var A;l.ForEach(function(C,B){var D=[];B.ForEach(function(E,F){D=D.Union(F)});if(!A){A=D}else{A=A.Intersect(D)}});var x=Object.create(null);var z=[];l.ForEach(function(C,B){x[C]=Object.create(null);B.ForEach(function(D,F){var E=F.Intersect(A);$.each(E,function(G,H){z.push(o.LoadPhrase(D,H).then(function(I,K){var J=x[C][I];if(K){if(!J){x[C][I]=K}else{J.r=MadCap.Utilities.CombineRelevancy(J.r,K.r);$.extend(true,J.w,K.w)}}}))})})});var y=Object.create(null);var i=Object.create(null);$.when.apply(this,z).done(function(){$.each(A,function(G,J){var L=0;if(!k){L=x[f[0]][J].r}else{var K=x[f[0]][J].w;for(var C in K){var D=K[C];for(var I=1;I<f.length;I++){var H=parseInt(C);var F=f[I];var E=x[F][J].w;var B=E[H+I];if(B){D=Math.max(D,B)}else{D=0;break}}L=MadCap.Utilities.CombineRelevancy(L,D)}}if(L>0){i[J]={r:L}}});w.resolve(o,i)})});return w.promise()};a.prototype.LoadTopics=function(h){var e=[];var i=h.data;for(var g in i){e.push(this.LoadTopic(g).then(function(j,k){$.extend(i[j],k)}))}h.count=e.length;var f=$.Deferred();$.when.apply(this,e).done(function(){f.resolve(h)});return f.promise()};a.prototype._LoadSearchDB=function(f,e){this.TopicChunkMap=f.t;this.StemChunkMap=f.s;this.PhraseChunkMap=f.p;this.RelevanceWeight=f.r;this.SearchType=f.st;this.NGramSize=f.n;if(e){e()}};a.prototype.LookupPhraseChunkId=function(e,j){var f=this.PhraseChunkMap.length;for(var g=0;g<f;g++){var h=this.PhraseChunkMap[g][0];var k=MadCap.String.Compare(e,h);if(k==0){if(j<this.PhraseChunkMap[g][1]){return g-1}else{if(j==this.PhraseChunkMap[g][1]){return g}}}else{if(k==-1){return g-1}}}return f-1};a.prototype.LoadTopic=function(g){var f=$.Deferred();var e=MadCap.Utilities.GetChunkId(this.TopicChunkMap,g,function(i,h){if(i<h){return -1}else{if(i==h){return 0}else{return 1}}});if(e==-1){f.resolve()}else{MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchTopic_Chunk"+e],function(h){f.resolve(g,h[g])})}return f.promise()};a.prototype.LoadStem=function(h){var f=$.Deferred();var e=MadCap.Utilities.GetChunkId(this.StemChunkMap,h,function(j,i){return MadCap.String.Compare(j,i)});if(e==-1){f.resolve()}else{var g=h;MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchStem_Chunk"+e],function(i){f.resolve(i[g])})}return f.promise()};a.prototype.LoadPhrase=function(e,h){var g=$.Deferred();var f=this.LookupPhraseChunkId(e,h);MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchPhrase_Chunk"+f],function(j){var i;if(j[e]){i=j[e][h]}g.resolve(h,i)});return g.promise()};b.SearchQuery=function(g,f,e){function h(m,o){var l=false;if(MadCap.IsSafari()){m=encodeURIComponent(m)}for(var k=0;k<o.length;k++){var j=o[k][0];var n=o[k][1];if(!MadCap.String.IsNullOrEmpty(n)){m+=(l?"&":"?")+j+"="+encodeURIComponent(n);l=true}}return m}this.Query=g;this.Filter=f;this.PageIndex=e;this.ToString=function(){return h(this.Query,[[b.SearchQuery._filter,this.Filter],[b.SearchQuery._pageIndex,this.PageIndex]])}};b.SearchQuery._filter="f";b.SearchQuery._pageIndex="p";b.SearchQuery.Parse=function(i){var g=new MadCap.Utilities.Url(i);var h=g.PlainPath;if(!MadCap.String.IsNullOrEmpty(h)){h=decodeURIComponent(h)}var f=g.QueryMap.GetItem(b.SearchQuery._filter);if(f){f=decodeURIComponent(f)}var e=g.QueryMap.GetItem(b.SearchQuery._pageIndex);if(e!=null){e=parseInt(e)}return new b.SearchQuery(h,f,e)};b.SearchResult=function(h,g,f,e){this.Score=h;this.Title=g;this.Link=f;this.AbstractText=e};b.Filters=function(f){var e=f;this.Load=function(g){e.LoadSearchFilters().then(function(){e.LoadAllConcepts(function(){g()})},null,null)}};b.SynonymFile=function(e){this.WordToStem=new MadCap.Utilities.Dictionary();this.Directionals=new MadCap.Utilities.Dictionary();this.DirectionalStems=new MadCap.Utilities.Dictionary();this.DirectionalStemSources=new MadCap.Utilities.Dictionary();this.Groups=new MadCap.Utilities.Dictionary();this.GroupStems=new MadCap.Utilities.Dictionary();this.GroupStemSources=new MadCap.Utilities.Dictionary();this.LoadSynonymFile(e)};var d=b.SynonymFile;d.prototype.LoadSynonymFile=function(E){var D=MadCap.Dom.GetChildNodeByTagName(E,"Groups",0);var l=MadCap.Dom.GetChildNodeByTagName(E,"Directional",0);if(l!=null){var o=l.childNodes.length;for(var A=0;A<o;A++){var n=l.childNodes[A];if(n.nodeName=="DirectionalSynonym"){var y=MadCap.Dom.GetAttribute(n,"From");var m=MadCap.Dom.GetAttribute(n,"To");var r=MadCap.Dom.GetAttributeBool(n,"Stem",false);var g=MadCap.Dom.GetAttribute(n,"FromStem");var p=MadCap.Dom.GetAttribute(n,"ToStem");if(r){if(g==null){g=b.Stemmer(y)}}if(p==null){p=b.Stemmer(m)}if(y!=null&&m!=null){if(r){this.DirectionalStemSources.Add(y,p);this.DirectionalStems.Add(g,p);this.WordToStem.Add(y,g);this.WordToStem.Add(m,p)}else{this.Directionals.Add(y,p);this.WordToStem.Add(m,p)}}}}}if(D!=null){var o=D.childNodes.length;for(var A=0;A<o;A++){var n=D.childNodes[A];if(n.nodeName=="SynonymGroup"){var v=new Array();var w=new Array();var r=MadCap.Dom.GetAttributeBool(n,"Stem",false);var t=n.childNodes.length;for(var z=0;z<t;z++){var C=n.childNodes[z];if(C.nodeType!=1){continue}v.push(C.firstChild.nodeValue)}for(var z=0;z<t;z++){var C=n.childNodes[z];if(C.nodeType!=1){continue}var F=MadCap.Dom.GetAttribute(C,"Stem");if(F==null){F=b.Stemmer(C.firstChild.nodeValue)}this.WordToStem.Add(C.firstChild.nodeValue,F);w.push(F)}var u=v.length;for(var z=0;z<u;z++){var B=v[z];var f=w[z];for(var x=0;x<u;x++){var e=v[x];if(r){var s=this.GroupStemSources.GetItem(B);if(s==null){s=new MadCap.Utilities.Dictionary();this.GroupStemSources.Add(B,s)}s.Add(e,f)}else{var s=this.GroupStemSources.GetItem(B);if(s==null){s=new MadCap.Utilities.Dictionary();this.Groups.Add(B,s)}s.Add(e,f)}}}var q=w.length;for(var z=0;z<q;z++){var f=w[z];for(var x=0;x<q;x++){var h=w[x];var s=this.GroupStems.GetItem(f);if(s==null){s=new MadCap.Utilities.Dictionary();this.GroupStems.Add(f,s)}s.Add(h,f)}}}}}};d.prototype.AddSynonymStems=function(e,i,g){var f=this.Directionals.GetItem(e);if(f!=null){g.AddUnique(f)}f=this.DirectionalStems.GetItem(i);if(f!=null){g.AddUnique(f)}var h=this.Groups.GetItem(e);if(h!=null){h.ForEach(function(j,k){g.AddUnique(j);return true})}h=this.GroupStems.GetItem(i);if(h!=null){h.ForEach(function(j,k){g.AddUnique(j);return true})}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Topic")){return}MadCap.CreateNamespace("Topic");var C=MadCap.Topic;var e=MadCap.TextEffects;C.Expand=function(G){var H=new e.ExpandingControl(G.parentNode);H.Toggle()};C.DropDown=function(G){var H=new e.DropDownControl(G.parentNode.parentNode);H.Toggle()};C.Toggle=function(G){var H=new e.TogglerControl(G);H.Toggle()};C.ThumbPopup_Click=function(G){var H=C.ShowThumbnailPopup(G,this,"click");if(G.preventDefault){G.preventDefault()}};C.ThumbPopup_Hover=function(G){var H=C.ShowThumbnailPopup(G,this,"mouseleave")};C.ShowThumbnailPopup=function(ai,aj,ae){var ad=10;var Y=1;var U=10;var K=$(aj).children("img")[0];var X=parseInt(MadCap.Dom.Dataset(K,"mcWidth"));var R=parseInt(MadCap.Dom.Dataset(K,"mcHeight"));var G=R/X;var ag=document.documentElement.clientWidth-((ad+Y+U)*2);var ac=document.documentElement.clientHeight-((ad+Y+U)*2);if(R>ac){R=ac;X=R/G}if(X>ag){X=ag;R=X*G}var M=new MadCap.Utilities.Url(document.location.href);var ah=$(K).offset().top;var al=$(K).offset().left;var ao=MadCap.Dom.GetAttribute(aj,"href");var ab=MadCap.Dom.GetAttribute(aj,"data-mc-popup-alt");var W=R+((Y+U)*2);var T=X+((Y+U)*2);var S=(ah+(K.offsetHeight/2))-(W/2);var O=(al+(K.offsetWidth/2))-(T/2);var N=MadCap.Dom.GetScrollPosition();var Z=N.Y;var I=Z+document.documentElement.clientHeight;var ak=N.X;var H=ak+document.documentElement.clientWidth;var P=Z+ad;var aa=ak+ad;var Q=I-ad;var J=H-ad;if(S<P){S=P}if(O<aa){O=aa}if(S+W>Q){S=Q-W}if(O+T>J){O=J-T}var L=$("<div></div>");L.addClass("MCPopupContainer");var af=document.createElement("img");$(af).addClass("MCPopupFullImage");af.setAttribute("src",ao);af.setAttribute("alt",ab);af.setAttribute("tabindex","0");L.bind(ae,function(){MadCap.DEBUG.Log.AddLine(ae);L.animate({top:an,left:V},200,function(){L.remove()});$(af).animate({width:K.offsetWidth,height:K.offsetHeight},200);$(am).animate({opacity:0},200,function(){MadCap.TextEffects.RemoveBackgroundTint()})});L.bind("keydown",function(ap){var ap=ap||window.event;if(ap.keyCode!=27&&ap.keyCode!=13){return}L.remove();MadCap.TextEffects.RemoveBackgroundTint()});L.append(af);document.body.appendChild(L[0]);var an=ah-(Y+U);var V=al-(Y+U);if(MadCap.IsIBooks()){$idealContainer=$(aj).parentsUntil("body").last();X=$idealContainer[0].offsetWidth*0.9;R=X*G;O=$idealContainer.offset().left;L.css({top:an,left:V}).animate({top:S,left:O,width:X,height:R},200)}else{L.css({top:an,left:V}).animate({top:S,left:O},200)}$(af).css({width:K.offsetWidth,height:K.offsetHeight}).animate({width:X,height:R},200);var am=MadCap.TextEffects.AddBackgroundTint(null,document.body);$(am).animate({opacity:0.5},200);af.focus()};C.HelpControl_Click=function(H){var G=this;C.GetHelpControlLinks(this,function(O){var J=new MadCap.Utilities.Url(document.location.href);for(var K=O.length-1;K>=0;K--){var I=O[K];I.Title="t" in I?I.t:"Title" in I?I.Title:null;var L="Url" in I?I.Url:"Link" in I?I.Link:null;if(L!=null&&typeof L!="string"){if(L.FullPath==J.FullPath){O.Remove(K)}L=L.ToRelative(J);I.Link=L.FullPath}}if(!$(G).hasClass("MCHelpControl-Related")){O.sort(function(Q,P){return Q.Title.localeCompare(P.Title)})}var M=new MadCap.Utilities.Dictionary();for(var K=O.length-1;K>=0;K--){var N=O[K];var L=N.Link;if(M.GetItem(L)){O.Remove(K);continue}M.Add(N.Link,true)}e.CreateLinkListPopup(O,document.body,H.pageY,H.pageX,G)},null);H.preventDefault();H.stopPropagation()};C.GetHelpControlLinks=function(M,Q){var P=new Array();var I=$(M);if(v&&!v.InPreviewMode){if(k()){var L=I.attr("data-mc-keywords");if(L!=null){if(L==""){Q(P)}var O=L.split(";");MadCap.Utilities.AsyncForeach(O,function(R,S){v.FindIndexEntry(R,function(T,U){if(U!=null&&U.linkList){P=P.concat(U.linkList)}S()})},function(){Q(v.SortLinkList(P))});return}else{var K=I.attr("data-mc-concepts");if(K!=null){v.GetConceptsLinks(K).then(Q);return}}}}var H=I.attr("data-mc-topics");if(H!=null){topicPairs=H.split("||");if(topicPairs==""){Q(P)}for(var N=0,J=topicPairs.length;N<J;N++){var G=topicPairs[N].split("|");P[P.length]={Title:G[0],Link:G[1]}}}Q(P)};C.Hyperlink_Onclick=function(K){var J=$(this);if(J.hasClass("MCTopicPopup")||J.hasClass("MCPopupThumbnailLink")||J.hasClass("MCHelpControl")||J.hasClass("reply-comment-button")){return}var G=MadCap.Dom.GetAttribute(this,"href");if(G==null||MadCap.String.StartsWith(G,"http:")||MadCap.String.StartsWith(G,"https:")){return}var I=MadCap.Dom.GetAttribute(this,"target");if(I!=null){return}if(k()){var H=new MadCap.Utilities.Url(document.location.href);if(MadCap.String.StartsWith(G,"#")){H=new MadCap.Utilities.Url(H.PlainPath+G)}else{if(MadCap.String.Contains(G,"javascript")){return}else{H=H.ToFolder().CombinePath(G)}}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-topic",[H.FullPath],null);K.preventDefault()}};C.ScrollToBookmark=function(I){var G=$("#"+I);if(G.length==0){G=$("[name = '"+I+"']")}if(G.length>0){if(u(G[0],false)){var H=G.offset().top;$("html, body").animate({scrollTop:H})}}};$(function(G){MadCap.Utilities.LoadHandlers.MadCapTopic=C.Init;E(G)});function l(G){g()}function g(){var G=$(".feedback-comments-wrapper");if(v&&v.IsResponsive&&parent!=window){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-parent-window-width",null,function(I){var H=parseInt(I[0]);if(v.IsTabletLayout(H)){if(!G.hasClass("responsive")){G.addClass("responsive")}}else{if(G.hasClass("responsive")){G.removeClass("responsive")}}})}else{if(G.hasClass("responsive")){G.removeClass("responsive")}}}function E(G){$(window).resize(l);$(window).hashchange(F);C.Init(document)}C.Init=function(J){v=MadCap.WebHelp.HelpSystem.GetHelpSystem();$("input, textarea",J).placeholder();if(document.location.hash.length>0){var I=new MadCap.Utilities.Url(document.location.hash.substring(1));y(I.ToNoQuery().FullPath)}if(k()||b()){$(".MCWebHelpFramesetLink",J).hide()}$(J).on("click","a, area",MadCap.Topic.Hyperlink_Onclick);$(".MCPopupThumbnailPopup",J).click(MadCap.Topic.ThumbPopup_Click);$(".MCPopupThumbnailHover",J).mouseover(MadCap.Topic.ThumbPopup_Hover);$("a.MCHelpControl",J).click(MadCap.Topic.HelpControl_Click);$(".print-button",J).click(function(P){window.print()});$(".expand-all-button",J).click(function(Q){var P=$(this);if(P.hasClass("expand-all-button")){MadCap.TextEffects.TextEffectControl.ExpandAll("open")}else{if(P.hasClass("collapse-all-button")){MadCap.TextEffects.TextEffectControl.ExpandAll("close")}}MadCap.Utilities.ToggleButtonState(this)});$(".remove-highlight-button",J).click(function(P){r()});$(".previous-topic-button",J).click(function(P){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-previous")});$(".next-topic-button",J).click(function(P){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-next")});if(MadCap.String.Contains(navigator.userAgent,"iphone",false)){window.scrollTo(0,1)}if(MadCap.IsIOS()){var H=$("<div id='ios-wrapper'></div>").appendTo(document.body);var N=H[0];for(var M=document.body.childNodes.length-2;M>=0;M--){var K=document.body.childNodes[M];N.insertBefore(K,N.firstChild)}}w();var O=parent;if(b()){O=parent.parent}if(v==null){var L=$(document.documentElement).attr("data-mc-path-to-help-system");if(!L){return}var G=new MadCap.Utilities.Url(document.location.href).CombinePath(L).ToFolder().CombinePath("Data/HelpSystem.xml");v=new MadCap.WebHelp.HelpSystem(null,null,G.FullPath,null,null);v.Load(A)}else{A()}};function A(){z();if(v&&v.LiveHelpEnabled){q=new MadCap.WebHelp.FeedbackController(v.LiveHelpServer);q.Init(function(){if(q.FeedbackActive){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-csh-id",null,function(G){var H=G!=null?G[0]:null;if(c!=null){q.LogTopic(c,H,function(){var I=$(".feedback-comments-wrapper");if(!b()){if(!q.PulseEnabled){I.removeClass("hidden");t=$("#new-comment-form").attr("data-comment-length-exceeded-message")||"The maximum comment length was exceeded by {n} characters.";q.GetAnonymousEnabled(v.LiveHelpOutputId,function(K){B=K;if(K){$(document.documentElement).addClass("feedback-anonymous-enabled")}});var J=MadCap.Utilities.Store.getItem("LiveHelpUsername");$(".username").val(J);$(".comment-submit").click(p);$(".feedback-comments-wrapper .comments").on("click",".reply-comment-button",m);a()}else{if(q.PulseActive){o(function(K){if(K){var L=q.PulseServer+K;j(L)}else{q.GetPulseStreamID(c,function(M){if(M=="00000000-0000-0000-0000-000000000000"){return}var N=q.PulseServer+"streams/"+M+"/activities?frame=stream";j(N)})}})}}}})}})}});g()}}function F(H){var G=new MadCap.Utilities.Url(document.location.href);if(!MadCap.String.IsNullOrEmpty(G.Fragment)){var I=G.Fragment.substring(1);I=MadCap.Utilities.Url.StripInvalidCharacters(I);C.ScrollToBookmark(I)}}function y(G){G=MadCap.Utilities.Url.StripInvalidCharacters(G);var H=$("[name='"+G+"']");if(H.length>0){u(H[0],false)}}function k(){return window.name=="topic"&&!MadCap.Utilities.HasRuntimeFileType("Default")}function b(){return window.name=="MCPopup"&&!MadCap.Utilities.HasRuntimeFileType("Default")}function z(){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(J){if(J){var H=new MadCap.Utilities.Url(decodeURIComponent(J[0]));var G=new MadCap.Utilities.Url(H.Fragment.substring(1));var I=H.QueryMap.GetItem("BrowseSequencesPath");v.SetBrowseSequencePath(I,G)}})}function p(J){var G=$(this).closest(".comment-form-wrapper");var I=null;var N=G.children(".username-field").val();var H=G.children(".subject-field").val();var M=G.find(".body-field").val();var K=null;var L=G.parent();if(L.hasClass("comment")){K=L.attr("data-mc-comment-id")}x(N,H,M,K)}function x(L,H,K,J){if(B){MadCap.Utilities.Store.setItem("LiveHelpUsername",L);try{q.AddComment(c,null,L,H,K,J,a)}catch(G){var I=t.replace(/{n}/g,G.Data.ExceedAmount);alert(I)}}else{MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"login-user",null,function(P){var O=P[0];if(O!=null){try{q.AddComment(c,O,L,H,K,J,a)}catch(M){var N=t.replace(/{n}/g,M.Data.ExceedAmount);alert(N)}}})}}function m(H){H.preventDefault();var I=$(this).closest(".comment");if(I.children(".comment-form-wrapper")[0]!=null){return}var G=$("#new-comment-form").clone();G.attr("id",null);G.children(".comment-submit").click(p);I.children(".buttons").after(G);G.hide().slideDown()}function a(){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-user-guid",null,function(H){var G=H[0];q.GetTopicComments(c,G,null,function(I){var K=MadCap.Utilities.Xhr.LoadXmlString(I);var J=$(".comments");J.children().not(".mc-template").remove();s(K.documentElement,J)})})}function s(R,O){var Q=$(R).children("Comment");var G=$(".comments .comment.mc-template");for(var N=0,J=Q.length;N<J;N++){var S=$(Q[N]);var M=S.attr("User");var P=S.attr("DateUTC")||S.attr("Date");var K=S.attr("Subject");var I=S.attr("CommentID");var H=S.children("Body").text();var L=G.clone();L.removeClass("mc-template");L.attr("data-mc-comment-id",I);$(".username",L).text(M);$(".timestamp",L).text(P);$(".subject",L).text(K);$(".body",L).text(H);$(O).append(L);s(S.children("Comments")[0],L)}}function o(G){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(K){var H=null;if(K){var J=new MadCap.Utilities.Url(decodeURIComponent(K[0]));var I=new MadCap.Utilities.Url(J.Fragment.substring(1));H=J.QueryMap.GetItem("PulsePath")}G(H)})}function j(I){var G=$(".feedback-comments-wrapper");G.empty();var H=$("<iframe name='topiccomments-html5' class='pulse-frame pulse-loading' title='Topic Comments' frameborder='0'></iframe>");H.appendTo(G);if(!($.browser.msie&&parseInt($.browser.version,10)===7)){H.attr("onload","this.className='pulse-frame';")}H.attr("src",I);G.removeClass("hidden")}function r(){for(var G=1;G<=10;G++){$("body").removeHighlight("SearchHighlight"+G)}}function w(){function G(H){if(typeof H.nextElementSibling=="undefined"){return H.nextSibling==null||H.nextSibling.nodeType==1?H.nextSibling:G(H.nextSibling)}else{return H.nextElementSibling}}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(P){if(P){var I=new MadCap.Utilities.Url(decodeURIComponent(P[0]));var L=I.QueryMap.GetItem("Highlight");if(MadCap.String.IsNullOrEmpty(L)){return}var M=L.match(/"[^"]*"/g);if(M!=null){for(var N=0;N<M.length;N++){L=L.replace(M[N],"")}}var Q=L.replace('"',"").split(" ");for(var O=0;O<Q.length;O++){if(Q[O]==""){Q.splice(Q[O],1);O--}}if(M!=null){for(var N=0;N<M.length;N++){Q.push(M[N].replace(/"/g,""))}}for(var O=0;O<Q.length;O++){if($.inArray(Q[O].toLowerCase(),MadCap.Utilities.StopWords)!=-1){Q.splice(O,1);O--}}for(var R=0;R<Q.length;R++){var J=Array("*[class*='MCExpandingBody']","*[class*='MCDropDownHotSpot']","*[data-mc-target-name]");for(var T=0;T<J.length;T++){var H=$(J[T]);for(var K=0;K<H.length;K++){var S=G(H[K].parentElement);if((H[K].textContent!=null&&H[K].textContent.toLowerCase().indexOf(Q[R].toLowerCase())>=0)||(S!=null&&S.textContent!=null&&S.textContent.toLowerCase().indexOf(Q[R].toLowerCase())>=0)){u(T!=2?H[K]:H[K].firstChild)}}}$("body").highlight(Q[R],"SearchHighlight SearchHighlight"+(R+1))}}})}function i(J,H,G,I){if(J==""){return}h(document.body,J,H,G,I);if(f&&f.offsetTop>document.documentElement.clientHeight){document.documentElement.scrollTop=f.offsetTop}}function d(J){for(var I=J.childNodes.length-1;I>=1;I--){var G=J.childNodes[I];var H=G.previousSibling;if(G.nodeType==3&&H.nodeType==3){H.nodeValue=H.nodeValue+G.nodeValue;J.removeChild(G)}}for(var I=0;I<J.childNodes.length;I++){d(J.childNodes[I])}}function h(S,J,K,Q,P){var V=null;if(P=="NGram"){V=new RegExp(J,"g"+(Q?"":"i"))}else{var H=J.replace(/([*^$+?.()[\]{}|\\])/g,"\\$1");V=new RegExp("(^|\\s|[.,;!#$/:?'\"()[\\]{}|=+*_\\-\\\\])"+H+"($|\\s|[.,;!#$/:?'\"()[\\]{}|=+*_\\-\\\\])","g"+(Q?"":"i"))}for(var N=S.childNodes.length-1;N>=0;N--){var I=S.childNodes[N];h(I,J,K,Q,P);if(I.nodeType!=3||I.parentNode.nodeName=="SCRIPT"){continue}var M=I;var U=M.nodeValue;for(var O=V.exec(U);O!=null;O=V.exec(U)){var R=O.index+(P=="NGram"?0:O[1].length);var G=R+J.length;var T=document.createElement("span");T.className="highlight";T.style.fontWeight="bold";T.style.backgroundColor=K.split(",")[0];T.style.color=K.split(",")[1];var L=document.createElement("span");L.className="SearchHighlight"+(D+1);L.appendChild(document.createTextNode(U.substring(R,G)));T.appendChild(L);M.nodeValue=U.substring(0,R);M.parentNode.insertBefore(T,M.nextSibling);M.parentNode.insertBefore(document.createTextNode(U.substring(G,U.length)),T.nextSibling);M=M.nextSibling.nextSibling;U=M.nodeValue;if(f==null||T.offsetTop<f.offsetTop){f=T}u(T)}}}function u(I,G){if(typeof G=="undefined"){G=true}var O=false;for(var N=I.parentNode;N.nodeName!="BODY";N=N.parentNode){var R=$(N);if(R.hasClass("MCExpanding")){var L=e.TextEffectControl.FindControl(R[0]);if(L==null){L=new MadCap.Topic.ExpandingControl(N)}L.Open(G);O=true}else{if(R.hasClass("MCDropDown")){var L=e.TextEffectControl.FindControl(R[0]);if(L==null){L=new MadCap.Topic.DropDownControl(N)}L.Open(G);O=true}else{var M=$(N).attr("data-mc-target-name");if(M!=null){var Q=MadCap.Dom.GetElementsByClassName("MCToggler",null,document.body);for(var K=0,H=Q.length;K<H;K++){var P=$(Q[K]).attr("data-mc-targets").split(";");var S=false;for(var J=0;J<P.length;J++){if(P[J]==M){S=true;break}}if(!S){continue}var L=e.TextEffectControl.FindControl(Q[K]);if(L==null){L=new MadCap.Topic.TogglerControl(Q[K])}L.Open(G);O=true;break}}}}}return O}MadCap.Utilities.CrossFrame.AddMessageHandler(function(L,H,K){var J={Handled:false,FireResponse:true};if(L=="print"){window.focus();window.print();J.Handled=true}else{if(L=="expand-all"){MadCap.TextEffects.TextEffectControl.ExpandAll("open");J.Handled=true}else{if(L=="collapse-all"){MadCap.TextEffects.TextEffectControl.ExpandAll("close");J.Handled=true}else{if(L=="get-topic-id"){K[K.length]=c;J.Handled=true}else{if(L=="get-topic-url"){K[K.length]=document.location.href;J.Handled=true}else{if(L=="remove-highlight"){r();J.Handled=true}else{if(L=="get-bs-path"){var G=new MadCap.Utilities.Url(document.location.href);var I=G.QueryMap.GetItem("BrowseSequencePath");if(I==null){I=MadCap.Dom.Dataset(document.documentElement,"mcBrowseSequencePath")}K[K.length]=I;K[K.length]=G.FullPath;J.Handled=true}else{if(L=="reload-pulse"){MadCap.Utilities.CrossFrame.PostMessageRequest(frames["topiccomments-html5"],"reload");J.Handled=true}else{if(L=="logout-complete"){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"logout-complete");J.Handled=true}else{if(L=="set-pulse-login-id"){if(q!=null){q.PulseUserGuid=H[0]}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"set-pulse-login-id",H);J.Handled=true}}}}}}}}}}return J},null);var n=new Array("#ffff66,#000000","#a0ffff,#000000","#99ff99,#000000","#ff9999,#000000","#ff66ff,#000000","#880000,#ffffff","#00aa00,#ffffff","#886800,#ffffff","#004699,#ffffff","#990099,#ffffff");var D=0;var f=null;var v=null;var q=null;var B=false;var c=MadCap.Dom.Dataset(document.documentElement,"mcLiveHelp");var t=null})();
+
+var helpSystemName = "gtf_manuel_utilisateur.htm";
+
+//    Syntax:
+//    function MadCap.OpenHelp(id, skinName, searchQuery, firstPick)
+//
+//    id          - Identifier that was created in Flare. This can be either the identifier name or value. The topic and skin
+//                  that is associated with the id will be used. If no skin is associated with the id, skinName will be used.
+//                  Alternatively, id may contain a topic path. In this case, the specified topic will be loaded with the skin
+//                  that is specified in skinName. Specify null to use the help system's default starting topic.
+//    skinName    - This is a string indicating the name of the skin to use when opening the help system. Specify null to use
+//                  the default skin or to use the skin that is associated with id. If a skin is associated with id AND a skin
+//                  is specified in skinName, skinName will take precedence.
+//    searchQuery - This is a string indicating the search query used when opening the help system. If a search query is specified,
+//                  the help system will start with the search pane open and the search query executed. Specify null to open
+//                  the help system without a search query.
+//    firstPick   - This is a boolean indicating whether to automatically open the topic from the first search result that is
+//                  returned by the search query (see searchQuery parameter). Use null if no search query was specified.
+//
+//    Examples:
+//
+//    In the following example, topic and skin associated with "FILE_NEW" will be used:
+//    MadCap.OpenHelp('FILE_NEW', null, null, null);
+//
+//    In the following example, topic associated with "FILE_NEW" will be used. "BlueSkin" will override the skin associated with "FILE_NEW":
+//    MadCap.OpenHelp('FILE_NEW', 'BlueSkin', null, null);
+//
+//    In the following example, topic and skin associated with identifier value 1 will be used:
+//    MadCap.OpenHelp(1, null, null, null);
+//
+//    In the following example, topic associated with identifier value 1 will be used. "BlueSkin" will override the skin associated with identifier value 1:
+//    MadCap.OpenHelp(1, 'BlueSkin', null, null);
+//
+//    In the following example, "Company/Employees.htm" will be used with the default skin:
+//    MadCap.OpenHelp('Company/Employees.htm', null, null, null);
+//
+//    In the following example, both the default topic and skin will be used:
+//    MadCap.OpenHelp(null, null, null, null);
+//
+//    In the following example, the default topic will be used with "BlueSkin":
+//    MadCap.OpenHelp(null, 'BlueSkin', null, null);
+//
+//    In the following example, both the default topic and skin will be used. The help system will be started with the search pane
+//    displaying the search results for the query 'quarterly report'. The topic from the first result will not be opened:
+//    MadCap.OpenHelp(null, null, 'quarterly report', false);
+//
+//    In the following example, both the default topic and skin will be used. The help system will be started with the search pane
+//    displaying the search results for the query 'quarterly report'. The topic from the first result will be opened:
+//    MadCap.OpenHelp(null, null, 'quarterly report', true);
+
+(function ()
+{
+var helpSystemName = "gtf_manuel_utilisateur.htm";
+
+    MadCap.OpenHelp = function (id, skinName, searchQuery, firstPick, pathToHelpSystem)
+    {
+        var cshFileName = "csh.js";
+        var webHelpPath = null;
+        var webHelpFile = null;
+        var cshFileUrl = new MadCap.Utilities.Url(helpSystemName);
+
+        if (pathToHelpSystem == null)
+        {
+            var scriptNodes = document.getElementsByTagName("script");
+            var found = false;
+
+            for (var i = 0; i < scriptNodes.length; i++)
+            {
+                var src = scriptNodes[i].src;
+                var srcUrl = new MadCap.Utilities.Url(MadCap.String.Trim(src));
+
+                if (srcUrl.NameWithExtension.toLowerCase() == cshFileName.toLowerCase())
+                {
+                    var locUrl = new MadCap.Utilities.Url(document.location.href).ToFolder();
+
+                    webHelpPath = locUrl.AddFile(srcUrl);
+                    webHelpPath = webHelpPath.ToFolder();
+
+                    found = true;
+
+                    break;
+                }
+            }
+
+            if (!found)
+                throw "CSH failed: could not find MadCap CSH script in page.";
+        }
+        else
+        {
+            webHelpPath = new MadCap.Utilities.Url(pathToHelpSystem);
+        }
+
+        webHelpFile = webHelpPath.AddFile(cshFileUrl);
+
+        var webHelpPath = webHelpFile.ToFolder().FullPath;
+        var helpSystemFile = webHelpPath + "Data/HelpSystem.xml";
+        var helpSystem = new MadCap.WebHelp.HelpSystem(null, null, helpSystemFile, null, null);
+
+        helpSystem.Load(function ()
+        {
+            helpSystem.LookupCSHID(id, function (idInfo)
+            {
+                function OnGetSkinComplete()
+                {
+                    var cshString = webHelpFile.FullPath;
+
+                    if (id)
+                        cshString += "#cshid=" + id;
+
+                    if (skinName)
+                    {
+                        if (cshString.indexOf("#") != -1)
+                            cshString += "&";
+                        else
+                            cshString += "#";
+
+                        cshString += "skinName=" + skinName;
+                    }
+
+                    if (searchQuery)
+                    {
+                        if (cshString.indexOf("#") != -1)
+                            cshString += "&";
+                        else
+                            cshString += "#";
+
+                        cshString += "searchQuery=" + searchQuery;
+
+                        if (firstPick)
+                            cshString += "&firstPick=true";
+                    }
+
+                    var win = window.open(cshString, "_MCWebHelpCSH", browserOptions + size);
+
+                    // Bug 32051: Windows 7 64-bit is returning null from the call to window.open().
+                    if (win != null)
+                        win.focus();
+                }
+
+                skinName = skinName || idInfo.Skin;
+
+                // Browser setup options
+
+                var browserOptions = "";
+                var size = "";
+
+                if (skinName)
+                {
+                    var skin = helpSystem.GetSkin(skinName);
+
+                    if (skin)
+                    {
+                        var useDefault = MadCap.String.ToBool(skin.UseDefaultBrowserSetup, false);
+
+                        if (!useDefault)
+                        {
+                            var toolbar = "no";
+                            var menu = "no";
+                            var locationBar = "no";
+                            var statusBar = "no";
+                            var resizable = "no";
+                            var setup = skin.BrowserSetup;
+
+                            if (setup)
+                            {
+                                toolbar = (setup.indexOf("Toolbar") > -1) ? "yes" : "no";
+                                menu = (setup.indexOf("Menu") > -1) ? "yes" : "no";
+                                locationBar = (setup.indexOf("LocationBar") > -1) ? "yes" : "no";
+                                statusBar = (setup.indexOf("StatusBar") > -1) ? "yes" : "no";
+                                resizable = (setup.indexOf("Resizable") > -1) ? "yes" : "no";
+                            }
+
+                            browserOptions = "toolbar=" + toolbar + ", menubar=" + menu + ", location=" + locationBar + ", status=" + statusBar + ", resizable=" + resizable;
+                        }
+
+                        var windowSize = LoadSize(skin);
+
+                        if (windowSize)
+                            size = ", top=" + windowSize.topPx + ", left=" + windowSize.leftPx + ", width=" + windowSize.widthPx + ", height=" + windowSize.heightPx;
+                    }
+
+                    OnGetSkinComplete();
+                }
+                else
+                {
+                    OnGetSkinComplete();
+                }
+            });
+        });
+    }
+
+
+    function LoadSize(skin)
+    {
+        var useDefaultSize = MadCap.String.ToBool(skin.UseBrowserDefaultSize, false);
+
+        if (useDefaultSize)
+            return null;
+
+        var topPx = MadCap.String.ToInt(skin.Top, 0);
+        var leftPx = MadCap.String.ToInt(skin.Left, 0);
+        var bottomPx = MadCap.String.ToInt(skin.Bottom, 0);
+        var rightPx = MadCap.String.ToInt(skin.Right, 0);
+        var widthPx = MadCap.String.ToInt(skin.Width, 800);
+        var heightPx = MadCap.String.ToInt(skin.Height, 600);
+
+        var anchors = skin.Anchors;
+
+        if (anchors)
+        {
+            var aTop = (anchors.indexOf("Top") > -1) ? true : false;
+            var aLeft = (anchors.indexOf("Left") > -1) ? true : false;
+            var aBottom = (anchors.indexOf("Bottom") > -1) ? true : false;
+            var aRight = (anchors.indexOf("Right") > -1) ? true : false;
+            var aWidth = (anchors.indexOf("Width") > -1) ? true : false;
+            var aHeight = (anchors.indexOf("Height") > -1) ? true : false;
+        }
+
+        if (aLeft && aRight)
+            widthPx = screen.width - (leftPx + rightPx);
+        else if (!aLeft && aRight)
+            leftPx = screen.width - (widthPx + rightPx);
+        else if (aWidth)
+            leftPx = (screen.width / 2) - (widthPx / 2);
+
+        if (aTop && aBottom)
+            heightPx = screen.height - (topPx + bottomPx);
+        else if (!aTop && aBottom)
+            topPx = screen.height - (heightPx + bottomPx);
+        else if (aHeight)
+            topPx = (screen.height / 2) - (heightPx / 2);
+
+        //
+
+        var windowSize = {};
+        windowSize.topPx = topPx;
+        windowSize.leftPx = leftPx;
+        windowSize.widthPx = widthPx;
+        windowSize.heightPx = heightPx;
+
+        return windowSize;
+    }
+})();
diff --git a/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.htm b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.htm
new file mode 100755
index 0000000000000000000000000000000000000000..f091fd54350b5c8569d4064fcb408a1e6e176333
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html data-mc-runtime-file-type="Default">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta charset="utf-8" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" /><title></title>
+        <script type="text/javascript" src="Resources/Scripts/custom.modernizr.js">
+        </script>
+        <script type="text/javascript" src="Resources/Scripts/jquery.min.js">
+        </script>
+        <script type="text/javascript" src="Resources/Scripts/plugins.min.js">
+        </script>
+        <script type="text/javascript" src="Resources/Scripts/require.min.js">
+        </script>
+        <script type="text/javascript" src="Resources/Scripts/require.config.js">
+        </script>
+        <script type="text/javascript" src="Resources/Scripts/MadCapAll.js">
+        </script>
+    </head>
+    <body>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.js b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.js
new file mode 100755
index 0000000000000000000000000000000000000000..205312b593d2daf8a8986c6297af34c180ff66bf
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.js
@@ -0,0 +1,558 @@
+// {{MadCap}} //////////////////////////////////////////////////////////////////
+// Copyright: MadCap Software, Inc - www.madcapsoftware.com ////////////////////
+////////////////////////////////////////////////////////////////////////////////
+// <version>11.0.0.0</version>
+////////////////////////////////////////////////////////////////////////////////
+
+//    Syntax:
+//    function FMCOpenHelp( id, skinName, searchQuery, firstPick )
+//
+//    id          - Identifier that was created in Flare. This can be either the identifier name or value. The topic and skin
+//                  that is associated with the id will be used. If no skin is associated with the id, skinName will be used.
+//                  Alternatively, id may contain a topic path. In this case, the specified topic will be loaded with the skin
+//                  that is specified in skinName. Specify null to use the help system's default starting topic.
+//    skinName    - This is a string indicating the name of the skin to use when opening the help system. Specify null to use
+//                  the default skin or to use the skin that is associated with id. If a skin is associated with id AND a skin
+//                  is specified in skinName, skinName will take precedence.
+//    searchQuery - This is a string indicating the search query used when opening the help system. If a search query is specified,
+//                  the help system will start with the search pane open and the search query executed. Specify null to open
+//                  the help system without a search query.
+//    firstPick   - This is a boolean indicating whether to automatically open the topic from the first search result that is
+//                  returned by the search query (see searchQuery parameter). Use null if no search query was specified.
+//
+//    Examples:
+//
+//    In the following example, topic and skin associated with "FILE_NEW" will be used:
+//    FMCOpenHelp( 'FILE_NEW', null, null, null );
+//
+//    In the following example, topic associated with "FILE_NEW" will be used. "BlueSkin" will override the skin associated with "FILE_NEW":
+//    FMCOpenHelp( 'FILE_NEW', 'BlueSkin', null, null );
+//
+//    In the following example, topic and skin associated with identifier value 1 will be used:
+//    FMCOpenHelp( 1, null, null, null );
+//
+//    In the following example, topic associated with identifier value 1 will be used. "BlueSkin" will override the skin associated with identifier value 1:
+//    FMCOpenHelp( 1, 'BlueSkin', null, null );
+//
+//    In the following example, "Company/Employees.htm" will be used with the default skin:
+//    FMCOpenHelp( 'Company/Employees.htm', null, null, null );
+//
+//    In the following example, both the default topic and skin will be used:
+//    FMCOpenHelp( null, null, null, null );
+//
+//    In the following example, the default topic will be used with "BlueSkin":
+//    FMCOpenHelp( null, 'BlueSkin', null, null );
+//
+//    In the following example, both the default topic and skin will be used. The help system will be started with the search pane
+//    displaying the search results for the query 'quarterly report'. The topic from the first result will not be opened:
+//    FMCOpenHelp( null, null, 'quarterly report', false );
+//
+//    In the following example, both the default topic and skin will be used. The help system will be started with the search pane
+//    displaying the search results for the query 'quarterly report'. The topic from the first result will be opened:
+//    FMCOpenHelp( null, null, 'quarterly report', true );
+
+function FMCOpenHelp( id, skinName, searchQuery, firstPick, pathToHelpSystem )
+{
+    MadCap.OpenHelp(id, skinName, searchQuery, firstPick, pathToHelpSystem);
+}
+
+/*!
+* Copyright MadCap Software
+* http://www.madcapsoftware.com/
+*
+* v11.0.0.0
+*/
+
+/*
+ RequireJS 2.1.11 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
+ Available via the MIT or new BSD license.
+ see: http://github.com/jrburke/requirejs for details
+*/
+var requirejs, require, define;
+(function (ca) {
+    function G(b) { return "[object Function]" === M.call(b) } function H(b) { return "[object Array]" === M.call(b) } function v(b, c) { if (b) { var d; for (d = 0; d < b.length && (!b[d] || !c(b[d], d, b)) ; d += 1); } } function U(b, c) { if (b) { var d; for (d = b.length - 1; -1 < d && (!b[d] || !c(b[d], d, b)) ; d -= 1); } } function s(b, c) { return ga.call(b, c) } function j(b, c) { return s(b, c) && b[c] } function B(b, c) { for (var d in b) if (s(b, d) && c(b[d], d)) break } function V(b, c, d, g) {
+        c && B(c, function (c, h) {
+            if (d || !s(b, h)) g && "object" === typeof c && c && !H(c) && !G(c) && !(c instanceof
+            RegExp) ? (b[h] || (b[h] = {}), V(b[h], c, d, g)) : b[h] = c
+        }); return b
+    } function t(b, c) { return function () { return c.apply(b, arguments) } } function da(b) { throw b; } function ea(b) { if (!b) return b; var c = ca; v(b.split("."), function (b) { c = c[b] }); return c } function C(b, c, d, g) { c = Error(c + "\nhttp://requirejs.org/docs/errors.html#" + b); c.requireType = b; c.requireModules = g; d && (c.originalError = d); return c } function ha(b) {
+        function c(a, e, b) {
+            var f, n, c, d, g, h, i, I = e && e.split("/"); n = I; var m = l.map, k = m && m["*"]; if (a && "." === a.charAt(0)) if (e) {
+                n =
+                I.slice(0, I.length - 1); a = a.split("/"); e = a.length - 1; l.nodeIdCompat && R.test(a[e]) && (a[e] = a[e].replace(R, "")); n = a = n.concat(a); d = n.length; for (e = 0; e < d; e++) if (c = n[e], "." === c) n.splice(e, 1), e -= 1; else if (".." === c) if (1 === e && (".." === n[2] || ".." === n[0])) break; else 0 < e && (n.splice(e - 1, 2), e -= 2); a = a.join("/")
+            } else 0 === a.indexOf("./") && (a = a.substring(2)); if (b && m && (I || k)) {
+                n = a.split("/"); e = n.length; a: for (; 0 < e; e -= 1) {
+                    d = n.slice(0, e).join("/"); if (I) for (c = I.length; 0 < c; c -= 1) if (b = j(m, I.slice(0, c).join("/"))) if (b = j(b, d)) {
+                        f = b;
+                        g = e; break a
+                    } !h && (k && j(k, d)) && (h = j(k, d), i = e)
+                } !f && h && (f = h, g = i); f && (n.splice(0, g, f), a = n.join("/"))
+            } return (f = j(l.pkgs, a)) ? f : a
+        } function d(a) { z && v(document.getElementsByTagName("script"), function (e) { if (e.getAttribute("data-requiremodule") === a && e.getAttribute("data-requirecontext") === i.contextName) return e.parentNode.removeChild(e), !0 }) } function g(a) { var e = j(l.paths, a); if (e && H(e) && 1 < e.length) return e.shift(), i.require.undef(a), i.require([a]), !0 } function u(a) {
+            var e; return [e, a];
+        } function m(a, e, b, f) { var n, d, g = null, h = e ? e.name : null, l = a, m = !0, k = ""; a || (m = !1, a = "_@r" + (M += 1)); a = u(a); g = a[0]; a = a[1]; g && (g = c(g, h, f), d = j(p, g)); a && (g ? k = d && d.normalize ? d.normalize(a, function (a) { return c(a, h, f) }) : c(a, h, f) : (k = c(a, h, f), a = u(k), g = a[0], k = a[1], b = !0, n = i.nameToUrl(k))); b = g && !d && !b ? "_unnormalized" + (Q += 1) : ""; return { prefix: g, name: k, parentMap: e, unnormalized: !!b, url: n, originalName: l, isDefine: m, id: (g ? g + "!" + k : k) + b } } function q(a) {
+            var e = a.id, b = j(k, e); b || (b = k[e] = new i.Module(a));
+            return b
+        } function r(a, e, b) { var f = a.id, n = j(k, f); if (s(p, f) && (!n || n.defineEmitComplete)) "defined" === e && b(p[f]); else if (n = q(a), n.error && "error" === e) b(n.error); else n.on(e, b) } function w(a, e) { var b = a.requireModules, f = !1; if (e) e(a); else if (v(b, function (e) { if (e = j(k, e)) e.error = a, e.events.error && (f = !0, e.emit("error", a)) }), !f) h.onError(a) } function x() { S.length && (ia.apply(A, [A.length, 0].concat(S)), S = []) } function y(a) { delete k[a]; delete W[a] } function F(a, e, b) {
+            var f = a.map.id; a.error ? a.emit("error", a.error) : (e[f] =
+            !0, v(a.depMaps, function (f, c) { var d = f.id, g = j(k, d); g && (!a.depMatched[c] && !b[d]) && (j(e, d) ? (a.defineDep(c, p[d]), a.check()) : F(g, e, b)) }), b[f] = !0)
+        } function D() {
+            var a, e, b = (a = 1E3 * l.waitSeconds) && i.startTime + a < (new Date).getTime(), f = [], c = [], h = !1, k = !0; if (!X) {
+                X = !0; B(W, function (a) { var i = a.map, m = i.id; if (a.enabled && (i.isDefine || c.push(a), !a.error)) if (!a.inited && b) g(m) ? h = e = !0 : (f.push(m), d(m)); else if (!a.inited && (a.fetched && i.isDefine) && (h = !0, !i.prefix)) return k = !1 }); if (b && f.length) return a = C("timeout", "Load timeout for modules: " +
+                f, null, f), a.contextName = i.contextName, w(a); k && v(c, function (a) { F(a, {}, {}) }); if ((!b || e) && h) if ((z || fa) && !Y) Y = setTimeout(function () { Y = 0; D() }, 50); X = !1
+            }
+        } function E(a) { s(p, a[0]) || q(m(a[0], null, !0)).init(a[1], a[2]) } function K(a) { var a = a.currentTarget || a.srcElement, e = i.onScriptLoad; a.detachEvent && !Z ? a.detachEvent("onreadystatechange", e) : a.removeEventListener("load", e, !1); e = i.onScriptError; (!a.detachEvent || Z) && a.removeEventListener("error", e, !1); return { node: a, id: a && a.getAttribute("data-requiremodule") } } function L() {
+            var a;
+            for (x() ; A.length;) { a = A.shift(); if (null === a[0]) return w(C("mismatch", "Mismatched anonymous define() module: " + a[a.length - 1])); E(a) }
+        } var X, $, i, N, Y, l = { waitSeconds: 7, baseUrl: "./", paths: {}, bundles: {}, pkgs: {}, shim: {}, config: {} }, k = {}, W = {}, aa = {}, A = [], p = {}, T = {}, ba = {}, M = 1, Q = 1; N = {
+            require: function (a) { return a.require ? a.require : a.require = i.makeRequire(a.map) }, exports: function (a) { a.usingExports = !0; if (a.map.isDefine) return a.exports ? p[a.map.id] = a.exports : a.exports = p[a.map.id] = {} }, module: function (a) {
+                return a.module ?
+                a.module : a.module = { id: a.map.id, uri: a.map.url, config: function () { return j(l.config, a.map.id) || {} }, exports: a.exports || (a.exports = {}) }
+            }
+        }; $ = function (a) { this.events = j(aa, a.id) || {}; this.map = a; this.shim = j(l.shim, a.id); this.depExports = []; this.depMaps = []; this.depMatched = []; this.pluginMaps = {}; this.depCount = 0 }; $.prototype = {
+            init: function (a, e, b, f) {
+                f = f || {}; if (!this.inited) {
+                    this.factory = e; if (b) this.on("error", b); else this.events.error && (b = t(this, function (a) { this.emit("error", a) })); this.depMaps = a && a.slice(0); this.errback =
+                    b; this.inited = !0; this.ignore = f.ignore; f.enabled || this.enabled ? this.enable() : this.check()
+                }
+            }, defineDep: function (a, e) { this.depMatched[a] || (this.depMatched[a] = !0, this.depCount -= 1, this.depExports[a] = e) }, fetch: function () { if (!this.fetched) { this.fetched = !0; i.startTime = (new Date).getTime(); var a = this.map; if (this.shim) i.makeRequire(this.map, { enableBuildCallback: !0 })(this.shim.deps || [], t(this, function () { return a.prefix ? this.callPlugin() : this.load() })); else return a.prefix ? this.callPlugin() : this.load() } }, load: function () {
+                var a =
+                this.map.url; T[a] || (T[a] = !0, i.load(this.map.id, a))
+            }, check: function () {
+                if (this.enabled && !this.enabling) {
+                    var a, e, b = this.map.id; e = this.depExports; var f = this.exports, c = this.factory; if (this.inited) if (this.error) this.emit("error", this.error); else {
+                        if (!this.defining) {
+                            this.defining = !0; if (1 > this.depCount && !this.defined) {
+                                if (G(c)) {
+                                    if (this.events.error && this.map.isDefine || h.onError !== da) try { f = i.execCb(b, c, e, f) } catch (d) { a = d } else f = i.execCb(b, c, e, f); this.map.isDefine && void 0 === f && ((e = this.module) ? f = e.exports : this.usingExports &&
+                                    (f = this.exports)); if (a) return a.requireMap = this.map, a.requireModules = this.map.isDefine ? [this.map.id] : null, a.requireType = this.map.isDefine ? "define" : "require", w(this.error = a)
+                                } else f = c; this.exports = f; if (this.map.isDefine && !this.ignore && (p[b] = f, h.onResourceLoad)) h.onResourceLoad(i, this.map, this.depMaps); y(b); this.defined = !0
+                            } this.defining = !1; this.defined && !this.defineEmitted && (this.defineEmitted = !0, this.emit("defined", this.exports), this.defineEmitComplete = !0)
+                        }
+                    } else this.fetch()
+                }
+            }, callPlugin: function () {
+                var a =
+                this.map, b = a.id, d = m(a.prefix); this.depMaps.push(d); r(d, "defined", t(this, function (f) {
+                    var d, g; g = j(ba, this.map.id); var J = this.map.name, u = this.map.parentMap ? this.map.parentMap.name : null, p = i.makeRequire(a.parentMap, { enableBuildCallback: !0 }); if (this.map.unnormalized) {
+                        if (f.normalize && (J = f.normalize(J, function (a) { return c(a, u, !0) }) || ""), f = m(a.prefix + "!" + J, this.map.parentMap), r(f, "defined", t(this, function (a) { this.init([], function () { return a }, null, { enabled: !0, ignore: !0 }) })), g = j(k, f.id)) {
+                            this.depMaps.push(f);
+                            if (this.events.error) g.on("error", t(this, function (a) { this.emit("error", a) })); g.enable()
+                        }
+                    } else g ? (this.map.url = i.nameToUrl(g), this.load()) : (d = t(this, function (a) { this.init([], function () { return a }, null, { enabled: !0 }) }), d.error = t(this, function (a) { this.inited = !0; this.error = a; a.requireModules = [b]; B(k, function (a) { 0 === a.map.id.indexOf(b + "_unnormalized") && y(a.map.id) }); w(a) }), d.fromText = t(this, function (f, c) {
+                        var g = a.name, J = m(g), k = O; c && (f = c); k && (O = !1); q(J); s(l.config, b) && (l.config[g] = l.config[b]); try { h.exec(f) } catch (j) {
+                            return w(C("fromtexteval",
+                            "fromText eval for " + b + " failed: " + j, j, [b]))
+                        } k && (O = !0); this.depMaps.push(J); i.completeLoad(g); p([g], d)
+                    }), f.load(a.name, p, d, l))
+                })); i.enable(d, this); this.pluginMaps[d.id] = d
+            }, enable: function () {
+                W[this.map.id] = this; this.enabling = this.enabled = !0; v(this.depMaps, t(this, function (a, b) {
+                    var c, f; if ("string" === typeof a) {
+                        a = m(a, this.map.isDefine ? this.map : this.map.parentMap, !1, !this.skipMap); this.depMaps[b] = a; if (c = j(N, a.id)) { this.depExports[b] = c(this); return } this.depCount += 1; r(a, "defined", t(this, function (a) {
+                            this.defineDep(b,
+                            a); this.check()
+                        })); this.errback && r(a, "error", t(this, this.errback))
+                    } c = a.id; f = k[c]; !s(N, c) && (f && !f.enabled) && i.enable(a, this)
+                })); B(this.pluginMaps, t(this, function (a) { var b = j(k, a.id); b && !b.enabled && i.enable(a, this) })); this.enabling = !1; this.check()
+            }, on: function (a, b) { var c = this.events[a]; c || (c = this.events[a] = []); c.push(b) }, emit: function (a, b) { v(this.events[a], function (a) { a(b) }); "error" === a && delete this.events[a] }
+        }; i = {
+            config: l, contextName: b, registry: k, defined: p, urlFetched: T, defQueue: A, Module: $, makeModuleMap: m,
+            nextTick: h.nextTick, onError: w, configure: function (a) {
+                a.baseUrl && "/" !== a.baseUrl.charAt(a.baseUrl.length - 1) && (a.baseUrl += "/"); var b = l.shim, c = { paths: !0, bundles: !0, config: !0, map: !0 }; B(a, function (a, b) { c[b] ? (l[b] || (l[b] = {}), V(l[b], a, !0, !0)) : l[b] = a }); a.bundles && B(a.bundles, function (a, b) { v(a, function (a) { a !== b && (ba[a] = b) }) }); a.shim && (B(a.shim, function (a, c) { H(a) && (a = { deps: a }); if ((a.exports || a.init) && !a.exportsFn) a.exportsFn = i.makeShimExports(a); b[c] = a }), l.shim = b); a.packages && v(a.packages, function (a) {
+                    var b,
+                    a = "string" === typeof a ? { name: a } : a; b = a.name; a.location && (l.paths[b] = a.location); l.pkgs[b] = a.name + "/" + (a.main || "main").replace(ja, "").replace(R, "")
+                }); B(k, function (a, b) { !a.inited && !a.map.unnormalized && (a.map = m(b)) }); if (a.deps || a.callback) i.require(a.deps || [], a.callback)
+            }, makeShimExports: function (a) { return function () { var b; a.init && (b = a.init.apply(ca, arguments)); return b || a.exports && ea(a.exports) } }, makeRequire: function (a, e) {
+                function g(f, c, d) {
+                    var j, l; e.enableBuildCallback && (c && G(c)) && (c.__requireJsBuild =
+                    !0); if ("string" === typeof f) { if (G(c)) return w(C("requireargs", "Invalid require call"), d); if (a && s(N, f)) return N[f](k[a.id]); if (h.get) return h.get(i, f, a, g); j = m(f, a, !1, !0); j = j.id; return !s(p, j) ? w(C("notloaded", 'Module name "' + j + '" has not been loaded yet for context: ' + b + (a ? "" : ". Use require([])"))) : p[j] } L(); i.nextTick(function () { L(); l = q(m(null, a)); l.skipMap = e.skipMap; l.init(f, c, d, { enabled: !0 }); D() }); return g
+                } e = e || {}; V(g, {
+                    isBrowser: z, toUrl: function (b) {
+                        var e, d = b.lastIndexOf("."), g = b.split("/")[0]; if (-1 !==
+                        d && (!("." === g || ".." === g) || 1 < d)) e = b.substring(d, b.length), b = b.substring(0, d); return i.nameToUrl(c(b, a && a.id, !0), e, !0)
+                    }, defined: function (b) { return s(p, m(b, a, !1, !0).id) }, specified: function (b) { b = m(b, a, !1, !0).id; return s(p, b) || s(k, b) }
+                }); a || (g.undef = function (b) { x(); var c = m(b, a, !0), e = j(k, b); d(b); delete p[b]; delete T[c.url]; delete aa[b]; U(A, function (a, c) { a[0] === b && A.splice(c, 1) }); e && (e.events.defined && (aa[b] = e.events), y(b)) }); return g
+            }, enable: function (a) { j(k, a.id) && q(a).enable() }, completeLoad: function (a) {
+                var b,
+                c, f = j(l.shim, a) || {}, d = f.exports; for (x() ; A.length;) { c = A.shift(); if (null === c[0]) { c[0] = a; if (b) break; b = !0 } else c[0] === a && (b = !0); E(c) } c = j(k, a); if (!b && !s(p, a) && c && !c.inited) { if (l.enforceDefine && (!d || !ea(d))) return g(a) ? void 0 : w(C("nodefine", "No define call for " + a, null, [a])); E([a, f.deps || [], f.exportsFn]) } D()
+            }, nameToUrl: function (a, b, c) {
+                var f, d, g; (f = j(l.pkgs, a)) && (a = f); if (f = j(ba, a)) return i.nameToUrl(f, b, c); if (h.jsExtRegExp.test(a)) f = a + (b || ""); else {
+                    f = l.paths; a = a.split("/"); for (d = a.length; 0 < d; d -= 1) if (g = a.slice(0,
+                    d).join("/"), g = j(f, g)) { H(g) && (g = g[0]); a.splice(0, d, g); break } f = a.join("/"); f += b || (/^data\:|\?/.test(f) || c ? "" : ".js"); f = ("/" === f.charAt(0) || f.match(/^[\w\+\.\-]+:/) ? "" : l.baseUrl) + f
+                } return l.urlArgs ? f + ((-1 === f.indexOf("?") ? "?" : "&") + l.urlArgs) : f
+            }, load: function (a, b) { h.load(i, a, b) }, execCb: function (a, b, c, d) { return b.apply(d, c) }, onScriptLoad: function (a) { if ("load" === a.type || ka.test((a.currentTarget || a.srcElement).readyState)) P = null, a = K(a), i.completeLoad(a.id) }, onScriptError: function (a) {
+                var b = K(a); if (!g(b.id)) return w(C("scripterror",
+                "Script error for: " + b.id, a, [b.id]))
+            }
+        }; i.require = i.makeRequire(); return i
+    } var h, x, y, D, K, E, P, L, q, Q, la = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, ma = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, R = /\.js$/, ja = /^\.\//; x = Object.prototype; var M = x.toString, ga = x.hasOwnProperty, ia = Array.prototype.splice, z = !!("undefined" !== typeof window && "undefined" !== typeof navigator && window.document), fa = !z && "undefined" !== typeof importScripts, ka = z && "PLAYSTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/,
+    Z = "undefined" !== typeof opera && "[object Opera]" === opera.toString(), F = {}, r = {}, S = [], O = !1; if ("undefined" === typeof define) {
+        if ("undefined" !== typeof requirejs) { if (G(requirejs)) return; r = requirejs; requirejs = void 0 } "undefined" !== typeof require && !G(require) && (r = require, require = void 0); h = requirejs = function (b, c, d, g) { var u, m = "_"; !H(b) && "string" !== typeof b && (u = b, H(c) ? (b = c, c = d, d = g) : b = []); u && u.context && (m = u.context); (g = j(F, m)) || (g = F[m] = h.s.newContext(m)); u && g.configure(u); return g.require(b, c, d) }; h.config = function (b) { return h(b) };
+        h.nextTick = "undefined" !== typeof setTimeout ? function (b) { setTimeout(b, 4) } : function (b) { b() }; require || (require = h); h.version = "2.1.11"; h.jsExtRegExp = /^\/|:|\?|\.js$/; h.isBrowser = z; x = h.s = { contexts: F, newContext: ha }; h({}); v(["toUrl", "undef", "defined", "specified"], function (b) { h[b] = function () { var c = F._; return c.require[b].apply(c, arguments) } }); if (z && (y = x.head = document.getElementsByTagName("head")[0], D = document.getElementsByTagName("base")[0])) y = x.head = D.parentNode; h.onError = da; h.createNode = function (b) {
+            var c =
+            b.xhtml ? document.createElementNS("http://www.w3.org/1999/xhtml", "html:script") : document.createElement("script"); c.type = b.scriptType || "text/javascript"; c.charset = "utf-8"; c.async = !0; return c
+        }; h.load = function (b, c, d) {
+            var g = b && b.config || {}; if (z) return g = h.createNode(g, c, d), g.setAttribute("data-requirecontext", b.contextName), g.setAttribute("data-requiremodule", c), g.attachEvent && !(g.attachEvent.toString && 0 > g.attachEvent.toString().indexOf("[native code")) && !Z ? (O = !0, g.attachEvent("onreadystatechange", b.onScriptLoad)) :
+            (g.addEventListener("load", b.onScriptLoad, !1), g.addEventListener("error", b.onScriptError, !1)), g.src = d, L = g, D ? y.insertBefore(g, D) : y.appendChild(g), L = null, g; if (fa) try { importScripts(d), b.completeLoad(c) } catch (j) { b.onError(C("importscripts", "importScripts failed for " + c + " at " + d, j, [c])) }
+        }; z && !r.skipDataMain && U(document.getElementsByTagName("script"), function (b) {
+            y || (y = b.parentNode); if (K = b.getAttribute("data-main")) return q = K, r.baseUrl || (E = q.split("/"), q = E.pop(), Q = E.length ? E.join("/") + "/" : "./", r.baseUrl =
+            Q), q = q.replace(R, ""), h.jsExtRegExp.test(q) && (q = K), r.deps = r.deps ? r.deps.concat(q) : [q], !0
+        }); define = function (b, c, d) {
+            var g, h; "string" !== typeof b && (d = c, c = b, b = null); H(c) || (d = c, c = null); !c && G(d) && (c = [], d.length && (d.toString().replace(la, "").replace(ma, function (b, d) { c.push(d) }), c = (1 === d.length ? ["require"] : ["require", "exports", "module"]).concat(c))); if (O) {
+                if (!(g = L)) P && "interactive" === P.readyState || U(document.getElementsByTagName("script"), function (b) { if ("interactive" === b.readyState) return P = b }), g = P; g && (b ||
+                (b = g.getAttribute("data-requiremodule")), h = F[g.getAttribute("data-requirecontext")])
+            } (h ? h.defQueue : S).push([b, c, d])
+        }; define.amd = { jQuery: !0 }; h.exec = function (b) { return eval(b) }; h(r)
+    }
+})(this);/* require end */
+
+/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
+
+/*
+* Copyright MadCap Software
+* http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+*
+ * v11.0.0.0
+*/
+var MadCap={};MadCap.CreateNamespace=function(b){var d=b.split(".");var e=MadCap;for(var a=0,c=d.length;a<c;a++){var b=d[a];if(b=="MadCap"){continue}if(typeof(e[b])!="undefined"){e=e[b];continue}e[b]={};e=e[b]}return e};if(!Object.create){Object.create=function(b){if(arguments.length>1){throw new Error("Object.create implementation only accepts the first parameter.")}function a(){}a.prototype=b;return new a()}}if(typeof String.prototype.trim!=="function"){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}MadCap.Extend=function(a,b){b.prototype=Object.create(a.prototype);b.prototype.constructor=b;b.prototype.base=a.prototype};MadCap.Exception=function(b,a){this.Number=b;this.Message=a};MadCap.IsIOS=function(){return MadCap.String.Contains(navigator.userAgent,"iphone")||MadCap.String.Contains(navigator.userAgent,"ipad")};MadCap.IsIBooks=function(){return MadCap.HasEpubReadingSystem()&&navigator.epubReadingSystem.name=="iBooks"};MadCap.HasEpubReadingSystem=function(){return"epubReadingSystem" in navigator};MadCap.IsSafari=function(){return MadCap.String.Contains(navigator.userAgent,"safari")&&!MadCap.String.Contains(navigator.userAgent,"chrome")};(function(){var a=MadCap.CreateNamespace("String");a.IsNullOrEmpty=function(b){if(b==null){return true}if(b.length==0){return true}return false};a.StartsWith=function(f,e,c){if(e==null){return false}if(f.length<e.length){return false}var d=f;var b=e;if(!c){d=d.toLowerCase();b=b.toLowerCase()}if(d.substring(0,b.length)==b){return true}else{return false}};a.EndsWith=function(f,e,c){if(e==null){return false}if(f.length<e.length){return false}var d=f;var b=e;if(!c){d=d.toLowerCase();b=b.toLowerCase()}if(d.substring(d.length-b.length)==b){return true}else{return false}};a.Contains=function(h,g,c){var d=c?h:h.toLowerCase();if($.isArray(g)){for(var e=0,f=g.length;e<f;e++){var b=c?g[e]:g[e].toLowerCase();if(d.indexOf(b)!=-1){return true}}return false}var b=c?g:g.toLowerCase();return d.indexOf(b)!=-1};a.Trim=function(b){return a.TrimRight(a.TrimLeft(b))};a.TrimLeft=function(d){var b=0;var c=d.length;for(b=0;b<c&&d.charAt(b)==" ";b++){}return d.substring(b,d.length)};a.TrimRight=function(c){var b=0;for(b=c.length-1;b>=0&&c.charAt(b)==" ";b--){}return c.substring(0,b+1)};a.ToBool=function(e,c){var b=c;if(e!=null){var d=e.toLowerCase();if(d!="true"&&d!="false"&&d!="1"&&d!="0"&&d!="yes"&&d!="no"){throw new MadCap.Exception(-1,"The string can not be converted to a boolean value.")}b=d=="true"||d=="1"||d=="yes"}return b};a.ToInt=function(d,b){var c=b;if(d!=null){c=parseInt(d)}return c};a.ToDashed=function(b){return b.replace(/([A-Z])/g,function(c){return"-"+c.toLowerCase()})};a.Compare=function(f,e){var h=f.length;var g=e.length;for(var d=0;d<h&&d<g;d++){var c=f.charCodeAt(d);var b=e.charCodeAt(d);if(c<b){return -1}else{if(c>b){return 1}}}if(h<g){return -1}else{if(h>g){return 1}else{return 0}}}})();(function(){MadCap.CreateNamespace("DEBUG");var a=MadCap.DEBUG;a.Log={};a.Log.Create=function(){var e=document.createElement("div");e.setAttribute("id","DEBUG_Log");var f=document.createElement("div");$(f).addClass("MCDebugLogHeader");f.appendChild(document.createTextNode("Log Console"));e.appendChild(f);var d=document.createElement("div");$(d).addClass("MCDebugLogBody");e.appendChild(d);var c=document.createElement("div");$(c).addClass("MCDebugLogFooter");e.appendChild(c);document.body.appendChild(e);var b=new MadCap.DragDrop(e,f)};a.Log._LoadTime=new Date();a.Log.AddLine=function(d){if(parent!=window){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"DEBUG-AddLine",[d],null);return}var f=document.getElementById("DEBUG_Log");if(f==null){return}var c=new Date();var h=c-a.Log._LoadTime;var e=document.createElement("p");$(e).addClass("MCDebugLogEntryTime");e.appendChild(document.createTextNode(h+"ms "+c.toLocaleTimeString()));var b=document.createElement("div");$(b).addClass("MCDebugLogEntry");b.appendChild(e);b.appendChild(document.createTextNode(d));var g=MadCap.Dom.GetElementsByClassName("MCDebugLogBody","div",f)[0];g.insertBefore(b,g.firstChild)}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("Dom");var a=MadCap.Dom;a.Dataset=function(c,b){return c.getAttribute("data-"+MadCap.String.ToDashed(b))};a.GetElementsByClassName=function(g,b,c){b=b||"*";c=c||document;var d=new Array();var j=c.getElementsByTagName(b);for(var e=0,h=j.length;e<h;e++){var f=j[e];if($(f).hasClass(g)){d[d.length]=f}}return d};a.GetElementsByAttribute=function(h,k,l,j){l=l||"*";j=j||document;var c=new Array();var b=j.getElementsByTagName(l);for(var g=0,e=b.length;g<e;g++){var d=b[g];var f=a.GetAttribute(d,h);if(f==k){c[c.length]=d}}return c};a.GetChildNodeByTagName=function(d,f,e){var c=null;var g=-1;for(var b=d.firstChild;b!=null;b=b.nextSibling){if(b.nodeName.toLowerCase()==f.toLowerCase()){g++;if(g==e){c=b;break}}}return c};a.GetAncestorNodeByTagName=function(d,e,f){f=f||document.body;var c=null;var b=d.parentNode;while(b!=null&&b!=f){if(b.nodeName.toLowerCase()==e.toLowerCase()){c=b;break}b=b.parentNode}return c};a.GetAttribute=function(b,e){var d=b.getAttribute(e);if(d==null){d=b.getAttribute(e.toLowerCase());if(d==null){var c=e.indexOf(":");if(c!=-1){d=b.getAttribute(e.substring(c+1,e.length))}}}return d};a.GetAttributeInt=function(e,c,b){var d=b;var f=a.GetAttribute(e,c);if(f!=null){d=parseInt(f)}return d};a.GetAttributeBool=function(e,d,c){var b=c;var f=a.GetAttribute(e,d);if(f!=null){b=MadCap.String.ToBool(f,c)}return b};a.GetScrollPosition=function(){var b=0;var c=0;if(typeof(window.pageYOffset)!="undefined"){b=window.pageXOffset;c=window.pageYOffset}else{if(typeof(document.documentElement.scrollTop)!="undefined"&&document.documentElement.scrollTop>0){b=document.documentElement.scrollLeft;c=document.documentElement.scrollTop}}return{X:b,Y:c}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("Utilities");MadCap.Utilities.Dictionary=function(f){this._Map=new Object();this._Overflows=new Array();this._Length=0;this._IgnoreCase=f==true};var a=MadCap.Utilities.Dictionary;a.prototype.GetLength=function(f){return this._Length};a.prototype.ForEach=function(j){var f=this._Map;for(var n in f){var m=f[n];var l=j(n,m);if(l!=undefined&&!l){return}}var h=this._Overflows;for(var k=0,g=h.length;k<g;k++){var o=h[k];var l=j(o.Key,o.Value);if(l!=undefined&&!l){return}}};a.prototype.GetItem=function(g){if(this._IgnoreCase){g=g.toLowerCase()}var h=null;if(typeof(this._Map[g])=="function"){var f=this.GetItemOverflowIndex(g);if(f>=0){h=this._Overflows[f].Value}}else{h=this._Map[g];if(typeof(h)=="undefined"){h=null}}return h};a.prototype.GetItemOverflowIndex=function(g){if(this._IgnoreCase){g=g.toLowerCase()}var j=this._Overflows;for(var f=0,h=j.length;f<h;f++){if(j[f].Key==g){return f}}return -1};a.prototype.Remove=function(g){if(this._IgnoreCase){g=g.toLowerCase()}if(typeof(this._Map[g])=="function"){var f=this.GetItemOverflowIndex(g);if(f>=0){this._Overflows.splice(f,1);this._Length--}}else{if(typeof(this._Map[g])!="undefined"){delete (this._Map[g]);this._Length--}}};a.prototype.Add=function(f,h){if(this._IgnoreCase){f=f.toLowerCase()}if(typeof(this._Map[f])=="function"){var g=this.GetItem(f);if(g!=null){this.Remove(f)}this._Overflows[this._Overflows.length]={Key:f,Value:h}}else{this._Map[f]=h}this._Length++};a.prototype.AddUnique=function(f,h){if(this._IgnoreCase){f=f.toLowerCase()}var g=this.GetItem(f);if(typeof(g)=="undefined"||!g){this.Add(f,h)}};MadCap.Utilities.DateTime=function(h){var g=/\/Date\(([0-9]+)\)\//i;var f=g.exec(h);if(f!=null){this.Date=new Date(parseInt(f[1]))}else{this.Date=new Date(h)}};var c=MadCap.Utilities.DateTime;c.Months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];MadCap.Utilities.TimeSpan=function(g,f){if(typeof g=="undefined"){g=new Date()}if(typeof f=="undefined"){f=new Date()}if(g>f){this.FromDate=f;this.ToDate=g}else{this.FromDate=g;this.ToDate=f}this.Ticks=this.ToDate-this.FromDate;this.Seconds=this.Ticks/1000;this.Minutes=this.Seconds/60;this.Hours=this.Minutes/60;this.Days=this.Hours/24};var b=MadCap.Utilities.TimeSpan;b.prototype.ToDurationString=function(){if(this.Minutes<1){return"Just now"}if(this.Hours<1){return parseInt(this.Minutes)+" minutes ago"}if(this.Days<1){return parseInt(this.Hours)+" hours ago"}if(this.Days<30){return parseInt(this.Days)+" days ago"}var f=c.Months[this.FromDate.getMonth()]+" "+this.FromDate.getDate();if(this.FromDate.getFullYear()!=this.ToDate.getFullYear()){f+=", "+this.FromDate.getFullYear()}return f};MadCap.Utilities.Url=function(g){var f=this;this._Segments=[];this.FullPath=null;this.Path=null;this.PlainPath=null;this.Name=null;this.Extension=null;this.NameWithExtension=null;this.Fragment=null;this.Query=null;this.IsAbsolute=false;this.IsFolder=false;this.QueryMap=new MadCap.Utilities.Dictionary(true);this.HashMap=new MadCap.Utilities.Dictionary(true);(function(){var p="";var s="";var q=g.indexOf("#");var n=g.indexOf("?");if(q!=-1){if(q>n){p=g.substring(q)}else{p=g.substring(q,n)}}if(n!=-1){if(n>q){s=g.substring(n)}else{s=g.substring(n,q)}}var t=q>-1?(n>-1?Math.min(q,n):q):n;var o=g.substring(0,t==-1?g.length:t);t=o.lastIndexOf("/");var v=o.substring(0,t+1);var m=o.substring(t+1);t=m.lastIndexOf(".");var h=m.substring(0,t);var k=m.substring(t+1);var j="";t=g.indexOf(":");if(t>=0){j=g.substring(0,t)}if(!MadCap.String.IsNullOrEmpty(g)){var r=g;if(MadCap.String.EndsWith(r,"/")){r=r.substring(0,r.length-1)}f._Segments=r.split("/")}f.FullPath=g;f.Path=v;f.PlainPath=o;f.Name=h;f.Extension=k;f.NameWithExtension=m;f.Scheme=j;f.IsAbsolute=!MadCap.String.IsNullOrEmpty(j);f.IsFolder=MadCap.String.EndsWith(o,"/");f.Fragment=p;f.Query=s;var u=f.Query;if(!MadCap.String.IsNullOrEmpty(u)){u=u.substring(1);u=u.replace(/\+/g," ");i(u,"&",f.QueryMap)}var l=f.Fragment;if(!MadCap.String.IsNullOrEmpty(l)){l=l.substring(1);i(l,"|",f.HashMap)}function i(F,x,w){var C=F.split(x);for(var A=0,y=C.length;A<y;A++){var z=C[A];var B=z.indexOf("=");var E=null;var D=null;if(B>=0){E=decodeURIComponent(z.substring(0,B));D=decodeURIComponent(z.substring(B+1))}else{E=z}w.Add(E,D)}}})()};var e=MadCap.Utilities.Url;e.StripInvalidCharacters=function(f){return f.replace(/(javascript:|data:|[<>])/gi,"")};e.prototype.AddFile=function(i){if(typeof(i)=="string"){i=new e(i)}if(i.IsAbsolute){return i}var h=i.FullPath;if(h.charAt(0)=="/"){var j=document.location;var k=j.href.lastIndexOf(j.pathname);var g=j.href.substring(0,k);return new e(g+h)}var f=this.FullPath;if(!MadCap.String.EndsWith(f,"/")){f=f+"/"}return new e(f+h)};e.prototype.CombinePath=function(l){if(typeof(l)=="string"){l=new e(l)}if(l.IsAbsolute){throw new MadCap.Exception(-1,"Cannot combine two absolute paths.")}var j=l.FullPath;var k=l.FullPath.split("/");var o=this.FullPath;var m="";if(this.Scheme=="mk"){var n=o.indexOf("::");m=o.substring(0,n+"::".length);o=o.substring(n+"::".length)}for(var h=0,f=k.length;h<f;h++){var g=k[h];if(o.length>1&&MadCap.String.EndsWith(o,"/")){o=o.substring(0,o.length-1)}if(g=="."){o+="/"}else{if(g==".."){o=o.substring(0,o.lastIndexOf("/")+1)}else{if(o!=""&&!MadCap.String.EndsWith(o,"/")){o+="/"}o+=g}}}o=m+o;return new e(o)};e.prototype.ToQuery=function(g){var f=this.PlainPath+"?"+g+this.Fragment;return new e(f)};e.prototype.ToFolder=function(){var f=this.PlainPath;if(MadCap.String.EndsWith(f,"/")){f=f.substring(0,f.length-1)}var h=f.lastIndexOf("/");var g=f.substring(0,h+1);return new e(g)};e.prototype.ToRelative=function(n){if(typeof(n)=="string"){n=new e(n)}if(this.IsAbsolute!=n.IsAbsolute){return this}var k=0;var l=n._Segments.length;for(;k<l;k++){var g=this._Segments[k];var f=n._Segments[k];if(g!=f){break}}var m="";var o=MadCap.String.EndsWith(n.FullPath,"/")?0:1;for(var h=0;h<l-k-o;h++){m+="../"}for(var h=k;h<this._Segments.length;h++){if(h>k){m+="/"}m+=this._Segments[h]}return new e(m)};e.prototype.ToExtension=function(j){var h=this.FullPath;var i=h.lastIndexOf(".");var g=h.substring(0,i);var f=g+"."+j;return new e(f)};e.prototype.ToScheme=function(f){var h=this.FullPath;pos=h.indexOf(":");if(pos<0){return this}var g=f+":"+h.substring(pos);return new e(g)};e.prototype.ToPath=function(){return new e(this.Path)};e.prototype.ToPlainPath=function(){return new e(this.PlainPath)};e.prototype.ToNoQuery=function(){return new e(this.PlainPath+this.Fragment)};MadCap.Utilities.CrossFrame={};var d=MadCap.Utilities.CrossFrame;d.MESSAGE_SEPARATOR="%%%%%";d.DATA_SEPARATOR="^^^^^";d._MessageID=0;d._MessageInfos=new Array();d._MessageHandlerFuncs=new Array();d._PostMessage=function(h,f){if(typeof h=="undefined"){return}if(h.postMessage!=null){h.postMessage(f,"*");return}var g={data:f,source:window};h.MadCap.Utilities.CrossFrame.OnMessage(g)};d.AddMessageHandler=function(h,g){var f=d._MessageHandlerFuncs.length;d._MessageHandlerFuncs[f]={HandlerFunc:h,ContextObj:g}};d.PostMessageRequest=function(n,k,l,f){d._MessageInfos[d._MessageID]=f;var h="";if(l!=null){for(var g=0,j=l.length;g<j;g++){if(g>0){h+=d.DATA_SEPARATOR}h+=l[g]}}var m="request"+d.MESSAGE_SEPARATOR+k+d.MESSAGE_SEPARATOR+h+d.MESSAGE_SEPARATOR+d._MessageID;d._PostMessage(n,m);d._MessageID++};d._PostMessageResponse=function(n,k,l,f){var h="";if(l!=null){for(var g=0,j=l.length;g<j;g++){if(g>0){h+=d.DATA_SEPARATOR}h+=l[g]}}var m="response"+d.MESSAGE_SEPARATOR+k+d.MESSAGE_SEPARATOR+h+d.MESSAGE_SEPARATOR+f;d._PostMessage(n,m);d._MessageID++};d.OnMessage=function(t){var s=t.originalEvent;var o=s.data.split(d.MESSAGE_SEPARATOR);var m=o[0];var l=o[1];var j=o[2];var f=parseInt(o[3]);var h=null;if(!MadCap.String.IsNullOrEmpty(j)){h=j.split(d.DATA_SEPARATOR);for(var p=0,g=h.length;p<g;p++){if(h[p]=="null"){h[p]=null}}}if(m=="request"){var k=false;var x=true;var v=new Array();for(var p=0,g=d._MessageHandlerFuncs.length;p<g;p++){var w=d._MessageHandlerFuncs[p];var u=w.HandlerFunc;var q=w.ContextObj;var r=null;if(q!=null){r=u.call(q,l,h,v,s.source,f)}else{r=u(l,h,v,s.source,f)}k=r.Handled;x=r.FireResponse;if(k){break}}if(!k){if(l=="DEBUG-AddLine"){var l=h[0];MadCap.DEBUG.Log.AddLine(l);k=true}else{if(l=="url"){v[v.length]=document.location.href;k=true}else{if(l=="get-title"){v[v.length]=document.title;k=true}else{if(l=="navigate"){var n=h[0];document.location.href=n;k=true}}}}}if(x){d._PostMessageResponse(s.source,l,v.length>0?v:null,f)}}else{if(m=="response"){if(d._MessageInfos[f]!=null){d._MessageInfos[f](h)}}}};if(window.postMessage!="undefined"){$(window).bind("message",d.OnMessage)}else{}MadCap.Utilities.PreventDefault=function(f){f.preventDefault?f.preventDefault():event.returnValue=false};MadCap.Utilities.AsyncForeach=function(i,g,h){i=i.slice(0);function f(){var j=i.shift();g(j,function(k){if(i.length>0){f()}else{h()}})}if(i.length>0){f()}else{h()}};MadCap.Utilities.Now=Date.now||function(){return new Date().getTime()};MadCap.Utilities.Debounce=function(h,j,g){var m,l,f,k,n;var i=function(){var o=MadCap.Utilities.Now()-k;if(o<j&&o>0){m=setTimeout(i,j-o)}else{m=null;if(!g){n=h.apply(f,l);if(!m){f=l=null}}}};return function(){f=this;l=arguments;k=MadCap.Utilities.Now();var o=g&&!m;if(!m){m=setTimeout(i,j)}if(o){n=h.apply(f,l);f=l=null}return n}};MadCap.Utilities.IsRuntimeFileType=function(f){return MadCap.Dom.Dataset(document.documentElement,"mcRuntimeFileType")==f};MadCap.Utilities.HasRuntimeFileType=function(g){var f=MadCap.Dom.Dataset(document.documentElement,"mcRuntimeFileType");return f&&f.split(";").indexOf(g)>-1};MadCap.Utilities.CreateStylesheet=function(i,j){var g=i||document,f;var h=g.createElement("style");if(j){h.setAttribute("media",j)}g.getElementsByTagName("head")[0].appendChild(h);f=g.styleSheets[g.styleSheets.length-1];return f};MadCap.Utilities.AsyncForeachParallel=function(l,j,k){var h=0;if(l.length===0){k()}var f=l.length;for(var g=0;g<f;g++){j(l[g],function(){h++;if(h===l.length){k()}})}};MadCap.Utilities.FixLink=function(h,g,i,f){if(!h.IsAbsolute){h=g.CombinePath(h);var j=h.FullPath;if(!MadCap.String.IsNullOrEmpty(i)&&i!=null&&f){h=h.ToRelative(f);j=i+h.FullPath}return j}};MadCap.Utilities.IsRTL=function(){return $("html").css("direction")==="rtl"};MadCap.Utilities.ToggleButtonState=function(f){var i=$(f);var g=i.attr("data-current-state")||"1";var h=g=="1"?2:1;MadCap.Utilities.SetButtonState(f,h)};MadCap.Utilities.SetButtonState=function(g,j){var k=$(g);var h=j==1?2:1;var i=k.attr("data-state"+j+"-class");var f=k.attr("data-state"+h+"-class");k.attr("data-current-state",j);k.removeClass(f).addClass(i);k.attr("title",k.attr("data-state"+j+"-title"))};MadCap.Utilities.LoadHandlers=Object.create(null);MadCap.Utilities.LoadScript=function(i,h,g){var f=document.createElement("script");f.src=i;f.type="text/javascript";if(f.addEventListener){$(f).error(g);$(f).load(h)}else{if(f.readyState){f.onreadystatechange=function(){if(f.readyState=="loaded"||f.readyState=="complete"){h()}}}}document.getElementsByTagName("head")[0].appendChild(f);return f};MadCap.Utilities.LoadRegisteredScript=function(m,j,i,h){var k=false;var f;$("script").each(function(n,o){var p=$(o).attr("src");if(!MadCap.String.IsNullOrEmpty(p)&&p.toLowerCase()==m.toLowerCase()){k=true;f=o}});if(k){var g=new MadCap.Utilities.Url(m).Name;var l=MadCap.Utilities.LoadHandlers[g];if(l){l(h)}j()}};MadCap.Utilities.LoadScripts=function(f,i,h,g){MadCap.Utilities.AsyncForeach(f,function(j,k){if(!MadCap.String.IsNullOrEmpty(j)){MadCap.Utilities.LoadRegisteredScript(j,k,h,g)}else{k()}},i)};MadCap.Utilities.TopicUniqueStyleSheets=Object.create(null);MadCap.Utilities.LoadStyleSheets=function(g,f){$.each(g,function(i,h){if(!MadCap.String.IsNullOrEmpty(h)){MadCap.Utilities.LoadStyleSheetUnique(h,f)}})};MadCap.Utilities.LoadStyleSheetUnique=function(i,g){var h=false;$("link").each(function(k,l){var j=$(l).attr("href");if(!MadCap.String.IsNullOrEmpty(j)&&j.toLowerCase()==i.toLowerCase()){h=true}});if(!h){var f='<link rel="stylesheet" type="text/css" href="{0}" />';cssLink=f.replace("{0}",i);if($('link[href*="'+i+'"]').length==0||!MadCap.String.Contains(i,"/Topic.css",false)){if(g){$(cssLink).insertAfter(g)}else{$("head").append(insertIndex,cssLink)}}}MadCap.Utilities.TopicUniqueStyleSheets[i]=$('link[href*="'+i+'"]')};MadCap.Utilities.RemoveTopicStylesheets=function(){$.each(MadCap.Utilities.TopicUniqueStyleSheets,function(f,g){$(g).remove()})};MadCap.Utilities.CombineRelevancy=function(h,g){var f=MadCap.Utilities.CapNumber(h,g,16,0,2);for(var j=2;j<7;j++){f=MadCap.Utilities.CapNumber(f,g,16,j,1)}f=MadCap.Utilities.CapNumber(f,g,16,7,1,7);return f};MadCap.Utilities.CalculateScore=function(g,f,h){return(Math.log(g)/Math.log(2147483647)*h)+(f*(1-h))};MadCap.Utilities.CapNumber=function(j,i,p,l,f,n){if(!n){n=Math.pow(p,f)-1}var g=Math.pow(p,l);var m=g*Math.pow(p,f);var o=~~(j%m/g);var k=~~(i%m/g);var h=Math.min(o+k,n);return j+((h-o)*g)};MadCap.Utilities.Require=function(h,i){if(!MadCap.Utilities._requireCache){MadCap.Utilities._requireCache=Object.create(null)}var f=MadCap.Utilities._requireCache;var g=h[0];var j=f[g];if(j&&j.data){i(j.data)}else{if(j&&j.callbacks){j.callbacks.push(i)}else{f[g]={callbacks:[i]};require([g],function(l){j=f[g];j.data=l;for(var k=0;k<j.callbacks.length;k++){j.callbacks[k](l)}j.callbacks=null;require.undef(g)})}}};MadCap.Utilities.GetChunkId=function(f,l,k){for(var h=0;h<f.length;h++){var g=f[h];var j=k(l,g);if(j===0){return h}else{if(j===-1){return h-1}}}return f.length-1};MadCap.Utilities.ClearRequireCache=function(){MadCap.Utilities._requireCache=null};MadCap.Utilities.StopWords=Array("a","an","the","to","of","is","for","and","or","do","be","by","he","she","on","in","at","it","not","no","are","as","but","her","his","its","non","only","than","that","then","they","this","we","were","which","with","you","into","about","after","all","also","been","can","come","from","had","has","have","me","made","many","may","more","most","near","over","some","such","their","there","these","under","use","was","when","where","against","among","became","because","between","during","each","early","found","however","include","late","later","med","other","several","through","until","who","your");MadCap.Utilities.Store=(function(){try{if(window.localStorage){return window.localStorage}}catch(h){if(console&&console.log){console.log("window.localStorage not available")}}var g="MadCap";var i=document.createElement("div");i.style.display="none";document.getElementsByTagName("head")[0].appendChild(i);if(typeof i.addBehavior=="function"){i.addBehavior("#default#userdata");i.load(g);return{getItem:function(j){return i.XMLDocument.documentElement.getAttribute(j)},setItem:function(j,k){i.XMLDocument.documentElement.setAttribute(j,k);i.save(g)},removeItem:function(j){i.removeAttribute(j);i.save(g)}}}var f="data-"+g+"-";return{getItem:function(j){var k=i.getAttribute(f+j);return k?decodeURIComponent(k):k},setItem:function(j,k){i.setAttribute(f+j,k?encodeURIComponent(k):null)},removeItem:function(j){i.removeAttribute(f+j)}}})()})();Array.prototype.Remove=function(a){if(a<0||a>this.length){throw"Index out of bounds."}this.splice(a,1)};Array.prototype.RemoveValue=function(b){for(var a=this.length-1;a>=0;a--){if(this[a]==b){this.Remove(a)}}};Array.prototype.Union=function(b){var a=[].concat(this);if(b){for(var c=0;c<b.length;c++){if(this.indexOf(b[c])===-1){a.push(b[c])}}}return a};Array.prototype.Intersect=function(b){var a=[];for(var c=0;c<b.length;c++){if(this.indexOf(b[c])!==-1){a.push(b[c])}}return a};/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.Utilities.Xhr=function(d,b,c){var e=this;this._XmlDoc=null;this._XmlHttp=null;this._Args=d;this._LoadFunc=b;this._LoadContextObj=c;this.OnreadystatechangeLocal=function(){if(e._XmlDoc.readyState==4){e._XmlDoc.onreadystatechange=a._Noop;var f=null;if(e._XmlDoc.documentElement!=null){f=e._XmlDoc}if(e._LoadContextObj==null){e._LoadFunc(f,e._Args)}else{e._LoadFunc.call(e._LoadContextObj,f,e._Args)}}};this.OnreadystatechangeRemote=function(){if(e._XmlHttp.readyState==4){e._XmlHttp.onreadystatechange=a._Noop;var f=null;if(e._XmlHttp.responseXML!=null&&e._XmlHttp.responseXML.documentElement!=null){f=e._XmlHttp.responseXML}if(e._LoadContextObj==null){e._LoadFunc(f,e._Args)}else{e._LoadFunc.call(e._LoadContextObj,f,e._Args)}}}};var a=MadCap.Utilities.Xhr;a.prototype._LoadLocal=function(b,c){if(window.ActiveXObject){this._XmlDoc=a._GetMicrosoftXmlDomObject();this._XmlDoc.async=c;if(this._LoadFunc){this._XmlDoc.onreadystatechange=this.OnreadystatechangeLocal}try{if(!this._XmlDoc.load(b)){this._XmlDoc=null}}catch(d){this._XmlDoc=null}}else{if(window.XMLHttpRequest){this._LoadRemote(b,c)}}return this._XmlDoc};a.prototype._LoadRemote=function(b,c){this._XmlHttp=a._GetXhrObject();if(this._LoadFunc){this._XmlHttp.onreadystatechange=this.OnreadystatechangeRemote}try{this._XmlHttp.open("GET",b,c);this._XmlHttp.send(null);if(!c&&(this._XmlHttp.status==0||this._XmlHttp.status==200)){this._XmlDoc=this._XmlHttp.responseXML}}catch(d){this._XmlHttp.abort();if(this._LoadFunc){if(this._LoadContextObj==null){this._LoadFunc(null,this._Args)}else{this._LoadFunc.call(this._LoadContextObj,null,this._Args)}}}return this._XmlDoc};a.prototype.Load=function(b,d){var e=null;var c=document.location.protocol;if(c=="file:"||c=="mk:"||c=="ms-its:"||c=="app:"){e=this._LoadLocal(b,d)}else{if(c=="http:"||c=="https:"){e=this._LoadRemote(b,d)}}return e};a.LoadXmlString=function(c){var b=null;if(window.ActiveXObject){b=a._GetMicrosoftXmlDomObject();b.async=false;b.loadXML(c)}else{if(DOMParser){var d=new DOMParser();b=d.parseFromString(c,"text/xml")}}return b};a.CreateXmlDocument=function(b){var c="<"+b+" />";var d=a.LoadXmlString(c);return d};a.GetOuterXml=function(d){var b=null;if(window.ActiveXObject){b=d.xml}else{if(window.XMLSerializer){var c=new XMLSerializer();b=c.serializeToString(d)}}return b};a.ImportNode=function(c,b){if(typeof(c.importNode)=="function"){return c.importNode(b,true)}return b.cloneNode(true)};a.CallWebService=function(e,d,f,b){var c=new a(b,f,null);var g=c.Load(e,d);return g};a._MicrosoftXmlDomProgIDs=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument","Microsoft.XMLDOM"];a._MicrosoftXmlHttpProgIDs=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];a._MicrosoftXmlDomProgID=null;a._MicrosoftXmlHttpProgID=null;a._FilePathToXmlStringMap=new MadCap.Utilities.Dictionary();a._LoadingFilesPathMap=new MadCap.Utilities.Dictionary();a._LoadingFromQueue=false;a.ForceUseJS=false;a.Load=function(g,e,b,h,c){function l(){a._LoadingFilesPathMap.Remove(j.FullPath);var n=a._FilePathToXmlStringMap.GetItem(j.Name);if(n!=null){a._FilePathToXmlStringMap.Remove(j.Name);m=a.LoadXmlString(n)}a._LoadingFilesPathMap.ForEach(function(q,r){var p=new MadCap.Utilities.Url(q);var o=r;if(p.Name==f&&p.FullPath!=j.FullPath){a._LoadingFilesPathMap.Remove(p.FullPath);a._LoadingFromQueue=true;a.Load(p.FullPath,o.async,o.LoadFunc,o.args,o.loadContextObj);return false}return true});if(c==null){b(m,h)}else{b.call(c,m,h)}}var m=null;if(a.ForceUseJS||(Boolean(!window.ActiveXObject)&&MadCap.String.StartsWith(document.location.protocol,"file"))){var i=new MadCap.Utilities.Url(g);var j=i.ToExtension("js");var f=j.Name;a._LoadingFilesPathMap.Add(j.FullPath,{async:e,LoadFunc:b,args:h,loadContextObj:c});var k=false;a._LoadingFilesPathMap.ForEach(function(p,q){var o=new MadCap.Utilities.Url(p);var n=q;if(o.Name==f&&o.FullPath!=j.FullPath){k=true;return false}return true});if(a._LoadingFromQueue||!k){a._LoadingFromQueue=false;MadCap.Utilities.LoadScript(j.FullPath,l,l)}}else{var d=new a(h,b,c);m=d.Load(g,e)}return m};a._Noop=function(){};a._GetMicrosoftXmlDomObject=function(){var e=null;if(a._MicrosoftXmlDomProgID==null){for(var c=0;c<a._MicrosoftXmlDomProgIDs.length;c++){var d=a._MicrosoftXmlDomProgIDs[c];try{e=new ActiveXObject(d);a._MicrosoftXmlDomProgID=d;break}catch(b){}}}else{e=new ActiveXObject(a._MicrosoftXmlDomProgID)}return e};a._GetXhrObject=function(){if(window.XMLHttpRequest){return function(){return new window.XMLHttpRequest()}}else{if(window.ActiveXObject){return function(){var e=null;if(a._MicrosoftXmlHttpProgID==null){for(var c=0;c<a._MicrosoftXmlHttpProgIDs.length;c++){var d=a._MicrosoftXmlHttpProgIDs[c];try{e=new ActiveXObject(d);a._MicrosoftXmlHttpProgID=d;break}catch(b){}}}else{e=new ActiveXObject(a._MicrosoftXmlHttpProgID)}return e}}}}()})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.CreateNamespace("TextEffects");var a=MadCap.TextEffects;a.Init=function(b){a.ExpandingControl.Load(b);a.DropDownControl.Load(b);a.TogglerControl.Load(b);a.TextPopupControl.Load(b);a.TopicPopupControl.Load(b)};a.Dispose=function(b){a.ExpandingControl.UnLoad(b);a.DropDownControl.UnLoad(b);a.TogglerControl.UnLoad(b);a.TextPopupControl.UnLoad(b);a.TopicPopupControl.UnLoad(b)};$(function(){MadCap.Utilities.LoadHandlers.MadCapTextEffects=a.Init;a.Init(document)});a.TextEffectControl=function(d,c){if(this._rootEl==null){this._rootEl=d}this._hotSpotEl=null;this._bodyEls=null;this._className=c;a.TextEffectControl.Controls[a.TextEffectControl.Controls.length]=this;var b=this;(function(){b._hotSpotEl=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl)[0];b._bodyEls=MadCap.Dom.GetElementsByClassName(b._className+"Body",null,b._rootEl);var g=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl);for(var e=g.length-1;e>=0;e--){var f=g[e].parentNode;while(f!=null){if($(f).hasClass(b._className)){if(f==b._rootEl){$(g[e]).click(function(h){b.Toggle.call(b)})}else{break}}f=f.parentNode}}})()};a.UnbindTextEffectControl=function(d,c){if(this._rootEl==null){this._rootEl=d}this._hotSpotEl=null;this._bodyEls=null;this._className=c;var b=this;(function(){b._hotSpotEl=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl)[0];var g=MadCap.Dom.GetElementsByClassName(b._className+"HotSpot",null,b._rootEl);for(var e=g.length-1;e>=0;e--){var f=g[e].parentNode;while(f!=null){if($(f).hasClass(b._className)){if(f==b._rootEl){$(g[e]).unbind()}else{break}}f=f.parentNode}}$(b._hotSpotEl).unbind()})()};a.TextEffectControl.Controls=new Array();a.TextEffectControl.FindControl=function(c){for(var b=0;b<a.TextEffectControl.Controls.length;b++){if(a.TextEffectControl.Controls[b]._rootEl==c){return a.TextEffectControl.Controls[b]}}return null};a.TextEffectControl.ExpandAll=function(b){for(var c=0,d=a.TextEffectControl.Controls.length;c<d;c++){var e=a.TextEffectControl.Controls[c];if(b=="open"){e.Open(false)}else{if(b=="close"){e.Close(false)}}}};a.TextEffectControl.prototype.Open=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}d.removeClass(this._className+"_Closed");d.addClass(this._className+"_Open");var c=null;if(d.hasClass("MCToggler")){c=$(".MCToggler_Image_Icon")}else{if(d.hasClass("MCDropDown")){c=$(".MCDropDown_Image_Icon")}else{if(d.hasClass("MCExpanding")){c=$(".MCExpanding_Image_Icon")}}}var b=d.find(c);this.ToggleAltText(b[0],d,"closed");d.attr("data-mc-state","open")};a.TextEffectControl.prototype.Close=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}d.removeClass(this._className+"_Open");d.addClass(this._className+"_Closed");var c=null;if(d.hasClass("MCToggler")){c=$(".MCToggler_Image_Icon")}else{if(d.hasClass("MCDropDown")){c=$(".MCDropDown_Image_Icon")}else{if(d.hasClass("MCExpanding")){c=$(".MCExpanding_Image_Icon")}}}var b=d.find(c);this.ToggleAltText(b[0],d,"open");d.attr("data-mc-state","closed")};a.TextEffectControl.prototype.ToggleAltText=function(g,c,d){if(g!=null){var b=$(g);var f=b.attr("data-mc-alt2");var e=b.attr("alt");if(c!=null&&c.attr("data-mc-state")==d){b.attr("alt",f);b.attr("data-mc-alt2",e)}}};a.TextEffectControl.prototype.Toggle=function(){var d=$(this._rootEl);if(d.hasClass("MCToggler")){d=$(this._rootEl.parentNode.children[0])}var b=d.attr("data-mc-state")||"closed";var c=null;if(b=="open"){this.Close(true)}else{if(b=="closed"){this.Open(true)}}$(d.find("a")[0]).focus()};a.TextEffectControl.prototype.ResizeSlideshow=function(f,d){if(f){var e=$(f);var c=e.closest('div[class^="mc-viewport"]');if(c){var b=0;e.children().each(function(){b=b+$(this).outerHeight()});if(d){b=c.height()+Math.max(b,e.outerHeight())}else{b=c.height()-Math.max(b,e.outerHeight())}c.animate({height:b})}}};a.ExpandingControl=function(b){a.TextEffectControl.call(this,b,"MCExpanding")};MadCap.Extend(a.TextEffectControl,a.ExpandingControl);a.ExpandingControl.Load=function(c){var d=$(".MCExpanding",c);for(var b=0,e=d.length;b<e;b++){var g=d[b];var f=new a.ExpandingControl(g);f.Init()}};a.ExpandingControl.UnLoad=function(c){var d=$(".MCExpanding",c);for(var b=0,e=d.length;b<e;b++){a.UnbindTextEffectControl(d[b])}};a.ExpandingControl.prototype.Init=function(){this.Close(false)};a.ExpandingControl.prototype.Open=function(b){this.base.Open.call(this);var c=$(this._bodyEls[0]);this.ResizeSlideshow(c,true);if(b){c.css({"white-space":"nowrap"});c.hide().animate({width:"show"},function(){$(this).css({"white-space":"normal"})})}else{c.show()}};a.ExpandingControl.prototype.Close=function(c){if(!c){$(this._bodyEls[0]).hide();this.base.Close.call(this);return}var b=this;this.ResizeSlideshow(this._bodyEls[0],false);$(this._bodyEls[0]).css({"white-space":"nowrap"}).animate({width:"hide"},function(){$(this).css({"white-space":"normal"});b.base.Close.call(b)})};a.DropDownControl=function(b){a.TextEffectControl.call(this,b,"MCDropDown")};MadCap.Extend(a.TextEffectControl,a.DropDownControl);a.DropDownControl.Load=function(e){var d=$(".MCDropDown",e);for(var c=0,f=d.length;c<f;c++){var b=d[c];var g=new a.DropDownControl(b);g.Init(false)}};a.DropDownControl.UnLoad=function(d){var c=$(".MCDropDown",d);for(var b=0,e=c.length;b<e;b++){a.UnbindTextEffectControl(c[b])}};a.DropDownControl.prototype.Init=function(){this.Close(false)};a.DropDownControl.prototype.Open=function(b){this.base.Open.call(this);var c=$(this._bodyEls[0]);if(b){c.hide().slideDown()}else{c.show()}this.ResizeSlideshow(c,true)};a.DropDownControl.prototype.Close=function(c){if(!c){$(this._bodyEls[0]).hide();this.base.Close.call(this);return}var b=this;this.ResizeSlideshow(this._bodyEls[0],false);$(this._bodyEls[0]).slideUp(function(){b.base.Close.call(b)})};a.TogglerControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=new Array();this._className="MCToggler";a.TextEffectControl.Controls[a.TextEffectControl.Controls.length]=this;var b=this;(function(){var h=MadCap.Dom.Dataset(b._rootEl,"mcTargets");var d=h.split(";");for(var f=0,g=d.length;f<g;f++){var j=d[f];var e=MadCap.Dom.GetElementsByAttribute("data-mc-target-name",j,null,document.body);b._bodyEls=b._bodyEls.concat(e)}$(b._hotSpotEl).click(function(i){b.Toggle.call(b)})})()};MadCap.Extend(a.TextEffectControl,a.TogglerControl);a.TogglerControl.Load=function(c){var e=$(".MCToggler",c);for(var b=0,d=e.length;b<d;b++){var g=e[b];var f=new a.TogglerControl(g);f.Init()}};a.TogglerControl.UnLoad=function(c){var e=$(".MCToggler",c);for(var b=0,d=e.length;b<d;b++){a.UnbindTextEffectControl(e[b])}};a.TogglerControl.prototype.Init=function(){this.Close(false)};a.TogglerControl.prototype.Open=function(b){this.base.Open.call(this);for(var c=0,d=this._bodyEls.length;c<d;c++){if(b){$(this._bodyEls[c]).css({opacity:0,display:""});$(this._bodyEls[c]).animate({opacity:1},200)}else{$(this._bodyEls[c]).css({opacity:1,display:""})}}this.ResizeSlideshow(this._bodyEls[0],true)};a.TogglerControl.prototype.Close=function(c){this.base.Close.call(this);this.ResizeSlideshow(this._bodyEls[0],false);function f(g){$(g).css("display","none")}for(var d=0,e=this._bodyEls.length;d<e;d++){var b=this;if(c){$(this._bodyEls[d]).animate({opacity:0},200,function(){f(this)})}else{f(this._bodyEls[d])}}};a.TextPopupControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=null;this._className="MCTextPopup";var b=this;(function(){b._bodyEls=$("."+b._className+"Body",b._rootEl).toArray();if(jQuery.browser.mobile){$(b._hotSpotEl).click(function(d){if($(this).attr("data-mc-state")==="closed"){b.Open()}else{b.Close()}})}else{$(b._hotSpotEl).mouseover(function(d){b.Open()});$(b._hotSpotEl).mouseleave(function(d){b.Close()})}})()};MadCap.Extend(a.TextEffectControl,a.TextPopupControl);a.TextPopupControl.Load=function(d){var b=$(".MCTextPopup",d);for(var c=0,f=b.length;c<f;c++){var g=b[c];var e=new a.TextPopupControl(g);e.Init()}};a.TextPopupControl.UnLoad=function(d){var b=$(".MCTextPopup",d);for(var c=0,e=b.length;c<e;c++){a.UnbindTextEffectControl(b[c])}};a.TextPopupControl.prototype.Init=function(){this.Close(false)};a.TextPopupControl.prototype.Open=function(){this.base.Open.call(this);var z=$(this._rootEl);var j=$(this._bodyEls[0]);var e=$(".MCTextPopupArrow",z);var s=$(window);j.css("top","0");j.css("left","0");j.css("height","auto");var h=13;var m=j.offset().top;var n=j.offset().left;var w=z.offset().top-m;var k=z.offset().left-n;var l=w+this._rootEl.offsetHeight;var v=j[0].offsetWidth;var o=j[0].offsetHeight;var B=k+(z[0].offsetWidth/2);var f=B-(v/2);var y=f+v;var r=l+h;var d=s.scrollTop();var u=s.scrollLeft();var c=-e[0].offsetWidth/2;var b=s.width();var q=d+s.height()-l;if((o+h)>q){var A=w-d;if((o+h)>A){r=l;var p=parseInt(j.css("border-top-width"));var g=parseInt(j.css("border-bottom-width"));var x=parseInt(j.css("padding-top"));var i=parseInt(j.css("padding-bottom"));j.css("height",(q-p-g-x-i)+"px");j.css("overflow","auto")}else{j.addClass("MCTextPopupBodyBottom");r=w-o-h}}else{j.removeClass("MCTextPopupBodyBottom")}j.css("top",r+"px");if(y>=b+u){c+=(y-b-u)}if(f<u){c+=(f-u)}f=Math.min(f,u+b-v);f=Math.max(f,u);var t=z.closest("body");if(MadCap.HasEpubReadingSystem()){f=z.offset().left;c=-((j[0].offsetWidth/2)-(e[0].offsetWidth/2))}j.css("left",f+"px");e.css("margin-left",c+"px");j.animate({opacity:1},200)};a.TextPopupControl.prototype.Close=function(){this.base.Close.call(this);var b=$(this._bodyEls[0]);b.css("opacity",0)};a.TopicPopupControl=function(c){this._rootEl=c;this._hotSpotEl=c;this._bodyEls=null;this._className="MCTopicPopup";var b=this;(function(){b._bodyEls=$("."+b._className+"Body",b._rootEl).toArray();$(b._hotSpotEl).click(function(d){b.Open();$(document.documentElement).click(function(f){b.Close();$(document.documentElement).off("click",arguments.callee)});d.stopPropagation();MadCap.Utilities.PreventDefault(d)})})()};MadCap.Extend(a.TextEffectControl,a.TopicPopupControl);a.TopicPopupControl.Load=function(d){var g=$(".MCTopicPopup",d);for(var c=0,e=g.length;c<e;c++){var b=g[c];var f=new a.TopicPopupControl(b);f.Init()}};a.TopicPopupControl.UnLoad=function(c){var e=$(".MCTopicPopup",c);for(var b=0,d=e.length;b<d;b++){a.UnbindTextEffectControl(e[b])}};a.TopicPopupControl.prototype.Init=function(){this.Close(false)};a.TopicPopupControl.prototype.Open=function(){this.base.Open.call(this);var f=$("<div></div>");f.addClass("MCTopicPopupContainer needs-pie");var b=MadCap.Dom.GetAttribute(this._hotSpotEl,"href");var k=document.createElement("iframe");$(k).addClass("MCTopicPopupBody");k.setAttribute("src",b);k.setAttribute("name","MCPopup");f.append(k);var i=document.body;f.appendTo(i);var h=$(this._rootEl);var c=h.attr("data-mc-width");var o=h.attr("data-mc-height");if(c!=null||o!=null){f.css({top:"50%",left:"50%",width:c,height:o});var e=f.width();var g=f.height();var d=$(window);var n=d.width()-100;var m=d.height()-100;if(e>n){f.css({width:n+"px"});e=n}if(g>m){f.css({height:m+"px"});g=m}f.css({"margin-top":(-g/2)+"px","margin-left":(-e/2)+"px"})}$(k).css("height","100%");if($("html").attr("data-mc-target-type")=="EPUB"){var j=($(this._hotSpotEl).offset().top-f.offset().top)-f[0].offsetHeight/2;f.css({"margin-top":j+"px",left:$(this._hotSpotEl).offset().left,"margin-left":$(this._hotSpotEl).offset().left})}f.animate({opacity:1},200);var l=a.AddBackgroundTint("dark",i);$(l).animate({opacity:0.5},200)};a.TopicPopupControl.prototype.Close=function(){this.base.Close.call(this);var b=$(".MCTopicPopupContainer");var c=b.parent();b.remove();a.RemoveBackgroundTint();if($("#topicContent").length>0){c.css("overflow","auto")}};a.CreateLinkListTree=function(q,h,e,g,o){a.RemoveLinkListTrees();if(!g){g=""}var b=$("<ul class='responsive-link-list tree inner'></ul>");var j=$(e).attr("target");for(var f=0,c=q.length;f<c;f++){var p=q[f];var m=$("<li class='IndexEntry IndexEntryLink tree-node tree-node-leaf'></li>").appendTo(b);var l=$("<div class='IndexTerm'></div>").appendTo(m);var k=$("<span class='label'></span>").appendTo(l);var d=$("<a/>").appendTo(k);d.text(p.Title);var n=p.Link;d.attr("href",g+n);m.click(o)}b.appendTo(h)};a.CreateLinkListPopup=function(l,j,q,h,x,u){a.RemoveLinkListPopups();if(!u){u=""}var k=$("<div class='link-list-popup needs-pie'><ul></ul></div>");var r=k.children("ul");var y=$(x).attr("target");for(var v=0,g=l.length;v<g;v++){var w=l[v];var n=$("<li><a></a></li>").appendTo(r);var f=$("a",n);f.attr("target",y);if(y=="_popup"){f.click(a.TopicPopup_Click)}f.text(w.Title);var m=w.Link;f.attr("href",u+m);n.click(a.Item_Click)}k.appendTo(j);var p=k.closest(".popup-container");if(p.length==0){p=$(window)}var b=p.width();var d=p.height();var c=p.scrollTop();var t=p.scrollLeft();var s=k[0].offsetWidth;var o=k[0].offsetHeight;q=Math.min(q,c+d-o);q=Math.max(q,c);h=Math.min(h,t+b-s);h=Math.max(h,t);if((q==0&&h==0)||MadCap.IsIBooks()){h=$(x).offset().left+$(x).width();q=$(x).offset().top+$(x).height()}if(MadCap.IsIBooks()){k.css("display","inline-block");h=h-x.offsetWidth;q=q-(k[0].offsetHeight/2)}if(MadCap.Utilities.IsRTL()){var e=Math.min($(window).width()-($(x).offset().left+$(x).width()),k.width());h=h-e}k.css("top",q);k.css("left",h);k.hide().fadeIn(200);$([document,x]).click(function(i){k.remove();$([document,x]).off("click",arguments.callee)});$([document,x]).keydown(function(i){var i=i||windows.event;if(i.keyCode!=27&&i.keyCode!=13){return}if(!k.is(":focus")){return}k.remove();$([document,x]).off("keydown",arguments.callee)});k.attr("tabindex",0);k.focus()};a.Item_Click=function(d){var c=$("a",this);var b=c.attr("href");var f=c.attr("target");if(b&&!MadCap.String.IsNullOrEmpty(b)){if(f){window.open(b,f)}else{document.location.href=b}}MadCap.Utilities.PreventDefault(d)};a.RemoveLinkListTrees=function(){$(".responsive-link-list").remove()};a.RemoveLinkListPopups=function(){$(".link-list-popup").remove()};a.AddBackgroundTint=function(c,d){if(!d){d=document.body}var b=$("<div id='mc-background-tint'></div>");b.addClass(c);b.appendTo(d);return b[0]};a.RemoveBackgroundTint=function(){$("#mc-background-tint").remove()}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(a){a.fn.fitVids=function(c){var e={customSelector:null};var d=document.createElement("div"),b=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0];d.className="fit-vids-style";d.innerHTML="<style>.fluid-width-video-wrapper {width: 100%;position: relative;padding: 0;} .fluid-width-video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } </style>";b.parentNode.insertBefore(d,b);if(c){a.extend(e,c)}return this.each(function(){var f=["iframe[src*='player.vimeo.com']","iframe[src*='www.youtube.com']","iframe[src*='www.kickstarter.com']"];if(e.customSelector){f.push(e.customSelector)}var g=a(this).find(f.join(","));g.each(function(){var j=a(this);if(j.parent(".fluid-width-video-wrapper").length){return}var m=j.attr("height")&&!isNaN(parseInt(j.attr("height"),10))?parseInt(j.attr("height"),10):j.height(),l=!isNaN(parseInt(j.attr("width"),10))?parseInt(j.attr("width"),10):j.width(),h=m/l;if(!j.attr("id")){var k="fitvid"+Math.floor(Math.random()*999999);j.attr("id",k)}j.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top",h*100+"%");j.removeAttr("height").removeAttr("width")})})}})(jQuery);!function(a){var c={},b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4000,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){},slideshowClass:""};a.fn.MCSlider=function(aq){if(0==this.length){return this}if(this.length>1){return this.each(function(){a(this).MCSlider(aq)}),this}var ap={},am=this;c.el=this;var aB=a(window).width(),at=a(window).height(),ay=function(){ap.settings=a.extend({},b,aq),ap.settings.slideWidth=parseInt(ap.settings.slideWidth),ap.children=am.children(ap.settings.slideSelector),ap.children.length<ap.settings.minSlides&&(ap.settings.minSlides=ap.children.length),ap.children.length<ap.settings.maxSlides&&(ap.settings.maxSlides=ap.children.length),ap.settings.randomStart&&(ap.settings.startSlide=Math.floor(Math.random()*ap.children.length)),ap.active={index:ap.settings.startSlide},ap.carousel=ap.settings.minSlides>1||ap.settings.maxSlides>1,ap.carousel&&(ap.settings.preloadImages="all"),ap.minThreshold=ap.settings.minSlides*ap.settings.slideWidth+(ap.settings.minSlides-1)*ap.settings.slideMargin,ap.maxThreshold=ap.settings.maxSlides*ap.settings.slideWidth+(ap.settings.maxSlides-1)*ap.settings.slideMargin,ap.working=!1,ap.controls={},ap.interval=null,ap.animProp="vertical"==ap.settings.mode?"top":"left",ap.usingCSS=ap.settings.useCSS&&"fade"!=ap.settings.mode&&function(){var f=document.createElement("div"),g=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var d in g){if(void 0!==f.style[g[d]]){return ap.cssPrefix=g[d].replace("Perspective","").toLowerCase(),ap.animProp="-"+ap.cssPrefix+"-transform",!0}}return !1}(),"vertical"==ap.settings.mode&&(ap.settings.maxSlides=ap.settings.minSlides),am.data("origStyle",am.attr("style")),am.children(ap.settings.slideSelector).each(function(){a(this).data("origStyle",a(this).attr("style"))}),az()},az=function(){am.wrap('<div class="mc-wrapper"><div class="mc-viewport '+ap.settings.slideshowClass+'"></div></div>'),ap.viewport=am.parent(),ap.loader=a('<div class="mc-loading" />'),ap.viewport.prepend(ap.loader),am.css({width:"horizontal"==ap.settings.mode?100*ap.children.length+215+"%":"auto",position:"relative"}),ap.usingCSS&&ap.settings.easing?am.css("-"+ap.cssPrefix+"-transition-timing-function",ap.settings.easing):ap.settings.easing||(ap.settings.easing="swing"),ax(),ap.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),ap.viewport.parent().css({maxWidth:ak()}),ap.settings.pager||ap.viewport.parent().css({margin:"0 auto 0px"}),ap.children.css({"float":"horizontal"==ap.settings.mode?"left":"none",listStyle:"none",position:"relative"}),ap.children.css("width",al()),"horizontal"==ap.settings.mode&&ap.settings.slideMargin>0&&ap.children.css("marginRight",ap.settings.slideMargin),"vertical"==ap.settings.mode&&ap.settings.slideMargin>0&&ap.children.css("marginBottom",ap.settings.slideMargin),"fade"==ap.settings.mode&&(ap.children.css({position:"absolute",zIndex:0,display:"none"}),ap.children.eq(ap.settings.startSlide).css({zIndex:50,display:"block"})),ap.controls.el=a('<div class="mc-controls" />'),ap.settings.captions&&J(),ap.active.last=ap.settings.startSlide==ai()-1,ap.settings.video&&am.fitVids();var d=ap.children.eq(ap.settings.startSlide);"all"==ap.settings.preloadImages&&(d=ap.children),ap.settings.ticker?ap.settings.pager=!1:(ap.settings.pager&&F(),ap.settings.controls&&ad(),ap.settings.auto&&ap.settings.autoControls&&ab(),(ap.settings.controls||ap.settings.autoControls||ap.settings.pager)&&ap.viewport.after(ap.controls.el)),aw(d,av)},aw=function(h,f){var g=h.find('img:not([src=""])').length;if(0===g){return void f()}var d=0;h.find('img:not([src=""])').each(function(){$(this).one("load error",function(){++d===g&&f()}).each(function(){this.complete&&$(this).load()})})},av=function(){if(ap.settings.infiniteLoop&&"fade"!=ap.settings.mode&&!ap.settings.ticker){var g="vertical"==ap.settings.mode?ap.settings.minSlides:ap.settings.maxSlides,d=ap.children.slice(0,g).clone().addClass("mc-clone"),f=ap.children.slice(-g).clone().addClass("mc-clone");am.append(d).prepend(f)}ap.loader.remove(),G(),"vertical"==ap.settings.mode&&(ap.settings.adaptiveHeight=!0),ap.viewport.height(ao()),am.redrawSlider(),ap.settings.onSliderLoad(ap.active.index),ap.initialized=!0,ap.settings.responsive&&a(window).bind("resize",ae),ap.settings.auto&&ap.settings.autoStart&&aa(),ap.settings.ticker&&U(),ap.settings.pager&&Z(ap.settings.startSlide),ap.settings.controls&&s(),ap.settings.touchEnabled&&!ap.settings.ticker&&K()},ao=function(){var f=0,d=a();if("vertical"==ap.settings.mode||ap.settings.adaptiveHeight){if(ap.carousel){var g=1==ap.settings.moveSlides?ap.active.index:ap.active.index*ar();for(d=ap.children.eq(g),i=1;i<=ap.settings.maxSlides-1;i++){d=g+i>=ap.children.length?d.add(ap.children.eq(i-1)):d.add(ap.children.eq(g+i))}}else{d=ap.children.eq(ap.active.index)}}else{d=ap.children}return"vertical"==ap.settings.mode?(d.each(function(){f+=a(this).outerHeight()}),ap.settings.slideMargin>0&&(f+=ap.settings.slideMargin*(ap.settings.minSlides-1))):f=Math.max.apply(Math,d.map(function(){return a(this).outerHeight(!1)}).get()),f},ak=function(){var d="100%";return ap.settings.slideWidth>0&&(d="horizontal"==ap.settings.mode?ap.settings.maxSlides*ap.settings.slideWidth+(ap.settings.maxSlides-1)*ap.settings.slideMargin:ap.settings.slideWidth),d},al=function(){var d=ap.settings.slideWidth,f=ap.viewport.width();return 0==ap.settings.slideWidth||ap.settings.slideWidth>f&&!ap.carousel||"vertical"==ap.settings.mode?d=(f/ap.settings.minSlides):ap.settings.maxSlides>1&&"horizontal"==ap.settings.mode&&(f>ap.maxThreshold||f<ap.minThreshold&&(d=(f-ap.settings.slideMargin*(ap.settings.minSlides-1))/ap.settings.minSlides)),d},ax=function(){var d=1;if("horizontal"==ap.settings.mode&&ap.settings.slideWidth>0){if(ap.viewport.width()<ap.minThreshold){d=ap.settings.minSlides}else{if(ap.viewport.width()>ap.maxThreshold){d=ap.settings.maxSlides}else{var f=ap.children.first().width();d=Math.floor(ap.viewport.width()/f)}}}else{"vertical"==ap.settings.mode&&(d=ap.settings.minSlides)}return d},ai=function(){var f=0;if(ap.settings.moveSlides>0){if(ap.settings.infiniteLoop){f=ap.children.length/ar()}else{for(var g=0,d=0;g<ap.children.length;){++f,g=d+ax(),d+=ap.settings.moveSlides<=ax()?ap.settings.moveSlides:ax()}}}else{f=Math.ceil(ap.children.length/ax())}return f},ar=function(){return ap.settings.moveSlides>0&&ap.settings.moveSlides<=ax()?ap.settings.moveSlides:ax()},G=function(){if(ap.children.length>ap.settings.maxSlides&&ap.active.last&&!ap.settings.infiniteLoop){if("horizontal"==ap.settings.mode){var f=ap.children.last(),g=f.position();aA(-(g.left-(ap.viewport.width()-f.width())),"reset",0)}else{if("vertical"==ap.settings.mode){var d=ap.children.length-ap.settings.minSlides,g=ap.children.eq(d).position();aA(-g.top,"reset",0)}}}else{var g=ap.children.eq(ap.active.index*ar()).position();ap.active.index==ai()-1&&(ap.active.last=!0),void 0!=g&&("horizontal"==ap.settings.mode?aA(-g.left,"reset",0):"vertical"==ap.settings.mode&&aA(-g.top,"reset",0))}},aA=function(g,k,f,h){if(ap.usingCSS){var l="vertical"==ap.settings.mode?"translate3d(0, "+g+"px, 0)":"translate3d("+g+"px, 0, 0)";am.css("-"+ap.cssPrefix+"-transition-duration",f/1000+"s"),"slide"==k?(am.css(ap.animProp,l),am.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){am.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),ac()})):"reset"==k?am.css(ap.animProp,l):"ticker"==k&&(am.css("-"+ap.cssPrefix+"-transition-timing-function","linear"),am.css(ap.animProp,l),am.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){am.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),aA(h.resetValue,"reset",0),Q()}))}else{var d={};d[ap.animProp]=g,"slide"==k?am.animate(d,f,ap.settings.easing,function(){ac()}):"reset"==k?am.css(ap.animProp,g):"ticker"==k&&am.animate(d,speed,"linear",function(){aA(h.resetValue,"reset",0),Q()})}},aj=function(){for(var g="",d=ai(),f=0;d>f;f++){var h="";ap.settings.buildPager&&a.isFunction(ap.settings.buildPager)?(h=ap.settings.buildPager(f),ap.pagerEl.addClass("mc-custom-pager")):(h=f+1,ap.pagerEl.addClass("mc-default-pager")),g+='<div class="mc-pager-item"><a data-slide-index="'+f+'" class="mc-pager-link">'+h+"</a></div>"}ap.pagerEl.html(g)},F=function(){ap.settings.pagerCustom?ap.pagerEl=a(ap.settings.pagerCustom):(ap.pagerEl=a('<div class="mc-pager" />'),ap.settings.pagerSelector?a(ap.settings.pagerSelector).html(ap.pagerEl):ap.controls.el.addClass("mc-has-pager").append(ap.pagerEl),aj()),ap.pagerEl.delegate("a","click",an)},ad=function(){ap.controls.next=a('<a class="mc-next">'+ap.settings.nextText+"</a>"),ap.controls.prev=a('<a class="mc-prev">'+ap.settings.prevText+"</a>"),ap.controls.next.bind("click",ah),ap.controls.prev.bind("click",ag),ap.settings.nextSelector&&a(ap.settings.nextSelector).append(ap.controls.next),ap.settings.prevSelector&&a(ap.settings.prevSelector).append(ap.controls.prev),ap.settings.nextSelector||ap.settings.prevSelector||(ap.controls.directionEl=a('<div class="mc-controls-direction" />'),ap.controls.directionEl.append(ap.controls.prev).append(ap.controls.next),ap.controls.el.addClass("mc-has-controls-direction").append(ap.controls.directionEl))},ab=function(){ap.controls.start=a('<div class="mc-controls-auto-item"><a class="mc-start">'+ap.settings.startText+"</a></div>"),ap.controls.stop=a('<div class="mc-controls-auto-item"><a class="mc-stop">'+ap.settings.stopText+"</a></div>"),ap.controls.autoEl=a('<div class="mc-controls-auto" />'),ap.controls.autoEl.delegate(".mc-start","click",au),ap.controls.autoEl.delegate(".mc-stop","click",R),ap.settings.autoControlsCombine?ap.controls.autoEl.append(ap.controls.start):ap.controls.autoEl.append(ap.controls.start).append(ap.controls.stop),ap.settings.autoControlsSelector?a(ap.settings.autoControlsSelector).html(ap.controls.autoEl):ap.controls.el.addClass("mc-has-controls-auto").append(ap.controls.autoEl),af(ap.settings.autoStart?"stop":"start")},J=function(){ap.children.each(function(){var d=a(this).attr("title");void 0!=d&&(""+d).length&&a(this).append('<div class="mc-caption"><div>'+d+"</div></div>")})},ah=function(d){ap.settings.auto&&am.stopAuto(),am.goToNextSlide(),d.preventDefault()},ag=function(d){ap.settings.auto&&am.stopAuto(),am.goToPrevSlide(),d.preventDefault()},au=function(d){am.startAuto(),d.preventDefault()},R=function(d){am.stopAuto(),d.preventDefault()},an=function(g){ap.settings.auto&&am.stopAuto();var d=a(g.currentTarget),f=parseInt(d.attr("data-slide-index"));f!=ap.active.index&&am.goToSlide(f),g.preventDefault()},Z=function(f){var d=ap.children.length;return"short"==ap.settings.pagerType?(ap.settings.maxSlides>1&&(d=Math.ceil(ap.children.length/ap.settings.maxSlides)),ap.pagerEl.html(f+1+ap.settings.pagerShortSeparator+d),void 0):(ap.pagerEl.find("a").removeClass("active"),ap.pagerEl.each(function(g,h){a(h).find("a").eq(f).addClass("active")}),void 0)},ac=function(){if(ap.settings.infiniteLoop){var d="";0==ap.active.index?d=ap.children.eq(0).position():ap.active.index==ai()-1&&ap.carousel?d=ap.children.eq((ai()-1)*ar()).position():ap.active.index==ap.children.length-1&&(d=ap.children.eq(ap.children.length-1).position()),"horizontal"==ap.settings.mode?aA(-d.left,"reset",0):"vertical"==ap.settings.mode&&aA(-d.top,"reset",0)}ap.working=!1,ap.settings.onSlideAfter(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index)},af=function(d){ap.settings.autoControlsCombine?ap.controls.autoEl.html(ap.controls[d]):(ap.controls.autoEl.find("a").removeClass("active"),ap.controls.autoEl.find("a:not(.mc-"+d+")").addClass("active"))},s=function(){1==ai()?(ap.controls.prev.addClass("disabled"),ap.controls.next.addClass("disabled")):!ap.settings.infiniteLoop&&ap.settings.hideControlOnEnd&&(0==ap.active.index?(ap.controls.prev.addClass("disabled"),ap.controls.next.removeClass("disabled")):ap.active.index==ai()-1?(ap.controls.next.addClass("disabled"),ap.controls.prev.removeClass("disabled")):(ap.controls.prev.removeClass("disabled"),ap.controls.next.removeClass("disabled")))},aa=function(){ap.settings.autoDelay>0?setTimeout(am.startAuto,ap.settings.autoDelay):am.startAuto(),ap.settings.autoHover&&am.hover(function(){ap.interval&&(am.stopAuto(!0),ap.autoPaused=!0)},function(){ap.autoPaused&&(am.startAuto(!0),ap.autoPaused=null)})},U=function(){var f=0;if("next"==ap.settings.autoDirection){am.append(ap.children.clone().addClass("mc-clone"))}else{am.prepend(ap.children.clone().addClass("mc-clone"));var d=ap.children.first().position();f="horizontal"==ap.settings.mode?-d.left:-d.top}aA(f,"reset",0),ap.settings.pager=!1,ap.settings.controls=!1,ap.settings.autoControls=!1,ap.settings.tickerHover&&!ap.usingCSS&&ap.viewport.hover(function(){am.stop()},function(){var k=0;ap.children.each(function(){k+="horizontal"==ap.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)});var g=ap.settings.speed/k,h="horizontal"==ap.settings.mode?"left":"top",l=g*(k-Math.abs(parseInt(am.css(h))));Q(l)}),Q()},Q=function(g){speed=g?g:ap.settings.speed;var k={left:0,top:0},f={left:0,top:0};"next"==ap.settings.autoDirection?k=am.find(".mc-clone").first().position():f=ap.children.first().position();var h="horizontal"==ap.settings.mode?-k.left:-k.top,l="horizontal"==ap.settings.mode?-f.left:-f.top,d={resetValue:l};aA(h,"ticker",speed,d)},K=function(){ap.touch={start:{x:0,y:0},end:{x:0,y:0}},ap.viewport.bind("touchstart",j)},j=function(d){if(ap.working){d.preventDefault()}else{ap.touch.originalPos=am.position();var f=d.originalEvent;ap.touch.start.x=f.changedTouches[0].pageX,ap.touch.start.y=f.changedTouches[0].pageY,ap.viewport.bind("touchmove",e),ap.viewport.bind("touchend",t)}},e=function(f){var k=f.originalEvent,d=Math.abs(k.changedTouches[0].pageX-ap.touch.start.x),g=Math.abs(k.changedTouches[0].pageY-ap.touch.start.y);if(3*d>g&&ap.settings.preventDefaultSwipeX?f.preventDefault():3*g>d&&ap.settings.preventDefaultSwipeY&&f.preventDefault(),"fade"!=ap.settings.mode&&ap.settings.oneToOneTouch){var l=0;if("horizontal"==ap.settings.mode){var h=k.changedTouches[0].pageX-ap.touch.start.x;l=ap.touch.originalPos.left+h}else{var h=k.changedTouches[0].pageY-ap.touch.start.y;l=ap.touch.originalPos.top+h}aA(l,"reset",0)}},t=function(f){ap.viewport.unbind("touchmove",e);var h=f.originalEvent,d=0;if(ap.touch.end.x=h.changedTouches[0].pageX,ap.touch.end.y=h.changedTouches[0].pageY,"fade"==ap.settings.mode){var g=Math.abs(ap.touch.start.x-ap.touch.end.x);g>=ap.settings.swipeThreshold&&(ap.touch.start.x>ap.touch.end.x?am.goToNextSlide():am.goToPrevSlide(),am.stopAuto())}else{var g=0;"horizontal"==ap.settings.mode?(g=ap.touch.end.x-ap.touch.start.x,d=ap.touch.originalPos.left):(g=ap.touch.end.y-ap.touch.start.y,d=ap.touch.originalPos.top),!ap.settings.infiniteLoop&&(0==ap.active.index&&g>0||ap.active.last&&0>g)?aA(d,"reset",200):Math.abs(g)>=ap.settings.swipeThreshold?(0>g?am.goToNextSlide():am.goToPrevSlide(),am.stopAuto()):aA(d,"reset",200)}ap.viewport.unbind("touchend",t)},ae=function(){var f=a(window).width(),d=a(window).height();if(!(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))){(aB!=f||at!=d)&&(aB=f,at=d,am.redrawSlider())}};return am.goToSlide=function(o,k){if(!ap.working&&ap.active.index!=o){if(ap.working=!0,ap.oldIndex=ap.active.index,ap.active.index=0>o?ai()-1:o>=ai()?0:o,ap.settings.onSlideBefore(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index),"next"==k?ap.settings.onSlideNext(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index):"prev"==k&&ap.settings.onSlidePrev(ap.children.eq(ap.active.index),ap.oldIndex,ap.active.index),ap.active.last=ap.active.index>=ai()-1,ap.settings.pager&&Z(ap.active.index),ap.settings.controls&&s(),"fade"==ap.settings.mode){ap.settings.adaptiveHeight&&ap.viewport.height()!=ao()&&ap.viewport.animate({height:ao()},ap.settings.adaptiveHeightSpeed),ap.children.filter(":visible").fadeOut(ap.settings.speed).css({zIndex:0}),ap.children.eq(ap.active.index).css("zIndex",51).fadeIn(ap.settings.speed,function(){a(this).css("zIndex",50),ac()})}else{ap.settings.adaptiveHeight&&ap.viewport.height()!=ao()&&ap.viewport.animate({height:ao()},ap.settings.adaptiveHeightSpeed);var u=0,f={left:0,top:0};if(!ap.settings.infiniteLoop&&ap.carousel&&ap.active.last){if("horizontal"==ap.settings.mode){var r=ap.children.eq(ap.children.length-1);f=r.position(),u=ap.viewport.width()-r.outerWidth()}else{var h=ap.children.length-ap.settings.minSlides;f=ap.children.eq(h).position()}}else{if(ap.carousel&&ap.active.last&&"prev"==k){var p=1==ap.settings.moveSlides?ap.settings.maxSlides-ar():(ai()-1)*ar()-(ap.children.length-ap.settings.maxSlides),r=am.children(".mc-clone").eq(p);f=r.position()}else{if("next"==k&&0==ap.active.index){f=am.find("> .mc-clone").eq(ap.settings.maxSlides).position(),ap.active.last=!1}else{if(o>=0){var q=o*ar();f=ap.children.eq(q).position()}}}}if("undefined"!=typeof f){var m="horizontal"==ap.settings.mode?-(f.left-u):-f.top;aA(m,"slide",ap.settings.speed)}}}},am.goToNextSlide=function(){if(ap.settings.infiniteLoop||!ap.active.last){var d=parseInt(ap.active.index)+1;am.goToSlide(d,"next")}},am.goToPrevSlide=function(){if(ap.settings.infiniteLoop||0!=ap.active.index){var d=parseInt(ap.active.index)-1;am.goToSlide(d,"prev")}},am.startAuto=function(d){ap.interval||(ap.interval=setInterval(function(){"next"==ap.settings.autoDirection?am.goToNextSlide():am.goToPrevSlide()},ap.settings.pause),ap.settings.autoControls&&1!=d&&af("stop"))},am.stopAuto=function(d){ap.interval&&(clearInterval(ap.interval),ap.interval=null,ap.settings.autoControls&&1!=d&&af("start"))},am.getCurrentSlide=function(){return ap.active.index},am.getSlideCount=function(){return ap.children.length},am.redrawSlider=function(){ap.children.add(am.find(".mc-clone")).outerWidth(al()),ap.viewport.css("height",ao()),ap.settings.ticker||G(),ap.active.last&&(ap.active.index=ai()-1),ap.active.index>=ai()&&(ap.active.last=!0),ap.settings.pager&&!ap.settings.pagerCustom&&(aj(),Z(ap.active.index))},am.destroySlider=function(){ap.initialized&&(ap.initialized=!1,a(".mc-clone",this).remove(),ap.children.each(function(){void 0!=a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!=a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),ap.controls.el&&ap.controls.el.remove(),ap.controls.next&&ap.controls.next.remove(),ap.controls.prev&&ap.controls.prev.remove(),ap.pagerEl&&ap.pagerEl.remove(),a(".mc-caption",this).remove(),ap.controls.autoEl&&ap.controls.autoEl.remove(),clearInterval(ap.interval),ap.settings.responsive&&a(window).unbind("resize",ae))},am.reloadSlider=function(d){void 0!=d&&(aq=d),am.destroySlider(),ay()},ay(),this}}(jQuery);(function(){var a=MadCap.CreateNamespace("Slideshow");$(function(){if(MadCap.Utilities!=null&&MadCap.Utilities.LoadHandlers!=null){MadCap.Utilities.LoadHandlers.MadCapSlideshow=a.Init;a.Init(document)}});a.Init=function(b){var c;if($("html").attr("data-mc-target-type")){c=function(e,d){return e.attr("data-mc-"+d)}}else{c=function(e,d){return e.attr("madcap:"+d.replace("-",""))}}$(".MCSlider",b).each(function(q,h){var I=$(h);var l={};var u=h.className;var f=c(I,"random-start");var z=c(I,"infinite-loop");var r=c(I,"show-captions");var w=c(I,"controls");var y=c(I,"slide-width");var x=c(I,"adaptive-height");var k=c(I,"responsive");var j=c(I,"navigation");var s=true;var e=false;l.pagerCustom=null;if(j){if(j=="Thumbnails"){e=true;l.pagerCustom="#mc-pager"+(q+1).toString()}if(j=="None"){s=false}}var F=c(I,"auto-hover");var m=c(I,"auto-start");var H=c(I,"auto-controls");var d=c(I,"combine-controls");var D=c(I,"auto-direction");var E=+c(I,"auto-delay");var t=c(I,"mode");var A=+c(I,"speed");var o=+c(I,"pause");var C=+c(I,"slides-displayed");var B=c(I,"video");if(u){l.slideshowClass=u}if(f){if("true"==f.toString().toLowerCase()){l.randomStart=true}else{if("false"==f.toString().toLowerCase()){l.randomStart=false}}}if(z){if("true"==z.toString().toLowerCase()){l.infiniteLoop=true}else{if("false"==z.toString().toLowerCase()){l.infiniteLoop=false;l.hideControlOnEnd=true}}}if(r){if("true"==r.toString().toLowerCase()){l.captions=true}else{if("false"==r.toString().toLowerCase()){l.captions=false}}}if(w){if("true"==w.toString().toLowerCase()){l.controls=true}else{if("false"==w.toString().toLowerCase()){l.controls=false}}}l.pager=s;l.thumbnails=e;if(y){l.slideWidth=y}if(x){if("true"==x.toString().toLowerCase()){l.adaptiveHeight=true}else{if("false"==x.toString().toLowerCase()){l.adaptiveHeight=false}}}if(k){if("true"==k.toString().toLowerCase()){l.responsive=true}else{if("false"==k.toString().toLowerCase()){l.responsive=false}}}var p=false;if(F){if("true"==F.toString().toLowerCase()){l.autoHover=true;p=true}else{if("false"==F.toString().toLowerCase()){l.autoHover=false}}}if(m){if("true"==m.toString().toLowerCase()){l.autoStart=true;p=true}else{if("false"==m.toString().toLowerCase()){l.autoStart=false}}}if(H){if("true"==H.toString().toLowerCase()){l.autoControls=true;l.autoControlsCombine=true;p=true}else{if("false"==H.toString().toLowerCase()){l.autoControls=false;l.autoControlsCombine=false}}}if(p){l.auto=true}if(D){l.autoDirection=D}if(E){l.autoDelay=E}if(t){l.mode=t}if(A){l.speed=A}if(o){l.pause=o}if(C){l.minSlides=C;l.maxSlides=C;l.moveSlides=1;if(y){var G=y.match(/\d+/);var v=y.replace(/\d/g,"");l.slideWidth=(G/C)+v}}if(navigator.userAgent.indexOf("MSIE")!==-1){l.preloadImages="all"}l.video=true;l.useCSS=false;if(B){l.video=false}l.onSliderLoad=function(J){$(".MCSlide").css("visibility","visible")};var g;var n;if(MadCap.Utilities!=null&&MadCap.Utilities.HasRuntimeFileType("Topic")){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(O){if(O){var K=new MadCap.Utilities.Url(decodeURIComponent(O[0]));var J=new MadCap.Utilities.Url(K.Fragment.substring(1));g=J.Fragment;n=K.QueryMap.GetItem("Highlight");if(g){g=g.substring(1);g=g.replace(".","\\.");try{l.startSlide=$("[name="+g+"]").closest(".MCSlide").index();if(l.startSlide<0){l.startSlide=0}}catch(N){l.startSlide=0}}else{if(n){var M=n.replace('"',"").split(" ");for(var L=0;L<M.length;L++){if(M[L]==""){M.splice(M[L],1);L--}}$(".MCSlide",b).each(function(P,S){for(var R=0;R<M.length;R++){if(M[R]!=""){var Q=new RegExp("\\b"+M[R]+"\\b","i");var U=$(S).attr("title");if(U!=null&&U.match(Q)){l.startSlide=P;return false}var T=$(S).text();if(T!=null&&T.match(Q)){l.startSlide=P;return false}}}if(l.startSlide<0){l.startSlide=0}})}}}I.MCSlider(l)})}else{I.MCSlider(l)}})}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.FeedbackController=function(i){if(MadCap.WebHelp.FeedbackController.Shared!=null){return MadCap.WebHelp.FeedbackController.Shared}MadCap.WebHelp.FeedbackController.Shared=this;var d=false;var h=false;var f=new Array();var k=0;var b=this;var g=3000;this.Server=i;this.FeedbackServer=j(i);this.Version=-1;this.FeedbackActive=false;this.PulseServer=null;this.PulseEnabled=false;this.PulseActive=false;this.PulseUserGuid=null;function c(){for(var m=0;m<f.length;m++){f[m](b)}d=true}function j(o,n){if(o==null){return null}if(typeof n=="undefined"){n=""}var m=new MadCap.Utilities.Url(o);m=m.CombinePath(n+"Service.FeedbackExplorer/FeedbackJsonService.asmx/");return m.FullPath}function l(A,z,s,o){var D=document.createElement("script");var p=document.getElementsByTagName("head")[0];var w="MCLiveHelpScript_"+k++;var q=b.FeedbackServer+A+"?";q+="OnComplete="+z+"&ScriptID="+w+"&UniqueID="+(new Date()).getTime();if(s!=null){for(var B=0,n=s.length;B<n;B++){var x=s[B];var F=x[0];var y=encodeURIComponent(x[1]);q+=("&"+F+"="+y)}}if(document.body.currentStyle!=null){var u=2083;if(q.length>u){var v=q.length-u;var E={ExceedAmount:v};var C=new MadCap.FeedbackException(-1,"URL limit exceeded.",E);throw C}}var r=2048;var t=q.indexOf("?");var m=q.substring(t+1).length;if(m>r){var v=m-r;var E={ExceedAmount:v};var C=new MadCap.FeedbackException(-1,"Query string limit exceeded.",E);throw C}D.id=w;D.setAttribute("type","text/javascript");D.setAttribute("src",q);p.appendChild(D);return w}function e(m){window.setTimeout(function(){var n=document.getElementById(m);n.parentNode.removeChild(n)},10)}this.Init=function(m){if(d){m(this);return}if(m!=null){f.push(m)}if(h){return}h=true;b.GetVersion(function(){if(b.PulseEnabled){b.GetPulseServerActivated(function(n){b.PulseActive=n&&n.toLowerCase()==="true";c()})}else{c()}});window.setTimeout(function(){if(!d){c()}},g)};this.GetUserGuid=function(){return b.PulseEnabled?b.PulseUserGuid:MadCap.Utilities.Store.getItem("LiveHelpUserGuid")};this.LogTopic=function(n,o,m){this.LogTopicOnComplete=function(p){if(m!=null){m()}e(p);this.LogTopicOnComplete=null};this.GetVersion(function(p){if(p==1){l("LogTopic","MadCap.WebHelp.FeedbackController.Shared.LogTopicOnComplete",[["TopicID",n]])}else{l("LogTopic2","MadCap.WebHelp.FeedbackController.Shared.LogTopicOnComplete",[["TopicID",n],["CSHID",o]])}})};this.LogSearch=function(m,p,n,q,o){this.LogSearchOnComplete=function(r){e(r);this.LogSearchOnComplete=null};l("LogSearch","MadCap.WebHelp.FeedbackController.Shared.LogSearchOnComplete",[["ProjectID",m],["UserGuid",p],["ResultCount",n],["Language",q],["Query",o]])};this.AddComment=function(o,q,p,n,s,r,m){this.AddCommentOnComplete=function(t){if(m!=null){m()}e(t);this.AddCommentOnComplete=null};l("AddComment","MadCap.WebHelp.FeedbackController.Shared.AddCommentOnComplete",[["TopicID",o],["UserGuid",q],["Username",p],["Subject",n],["Comment",s],["ParentCommentID",r]])};this.GetAverageRating=function(o,m,n){this.GetAverageRatingOnComplete=function(r,q,p){if(m!=null){m(q,p,n)}e(r);this.GetAverageRatingOnComplete=null};l("GetAverageRating","MadCap.WebHelp.FeedbackController.Shared.GetAverageRatingOnComplete",[["TopicID",o]])};this.SubmitRating=function(o,p,r,m,n){this.SubmitRatingOnComplete=function(s){if(m!=null){m(n)}e(s);this.SubmitRatingOnComplete=null};var q=l("SubmitRating","MadCap.WebHelp.FeedbackController.Shared.SubmitRatingOnComplete",[["TopicID",o],["Rating",p],["Comment",r]])};this.GetTopicComments=function(o,q,p,m,n){this.GetTopicCommentsOnComplete=function(t,s){if(m!=null){m(s,n)}e(t);this.GetTopicCommentsOnComplete=null};var r=l("GetTopicComments","MadCap.WebHelp.FeedbackController.Shared.GetTopicCommentsOnComplete",[["TopicID",o],["UserGuid",q],["Username",p]])};this.GetAnonymousEnabled=function(n,m,o){this.GetAnonymousEnabledOnComplete=function(q,p){if(m!=null){m(p,o)}e(q);this.GetAnonymousEnabledOnComplete=null};l("GetAnonymousEnabled","MadCap.WebHelp.FeedbackController.Shared.GetAnonymousEnabledOnComplete",[["ProjectID",n]])};this.StartActivateUser=function(r,w,u){this.StartActivateUserOnComplete=function(F,E){if(w!=null){w(E,u)}e(F);this.StartActivateUserOnComplete=null};var D=FMCGetChildNodeByAttribute(r.documentElement,"Name","Username");var o=FMCGetAttribute(D,"Value");var s=FMCGetChildNodeByAttribute(r.documentElement,"Name","EmailAddress");var n=FMCGetAttribute(s,"Value");var y=FMCGetChildNodeByAttribute(r.documentElement,"Name","FirstName");var m=FMCGetAttribute(y,"Value");var C=FMCGetChildNodeByAttribute(r.documentElement,"Name","LastName");var x=FMCGetAttribute(C,"Value");var B=FMCGetChildNodeByAttribute(r.documentElement,"Name","Country");var A=FMCGetAttribute(B,"Value");var z=FMCGetChildNodeByAttribute(r.documentElement,"Name","PostalCode");var t=FMCGetAttribute(z,"Value");var p=FMCGetChildNodeByAttribute(r.documentElement,"Name","Gender");var v=FMCGetAttribute(p,"Value");var q="";l("StartActivateUser","MadCap.WebHelp.FeedbackController.Shared.StartActivateUserOnComplete",[["Username",o],["EmailAddress",n],["FirstName",m],["LastName",x],["Country",A],["Zip",t],["Gender",v],["UILanguageOrder",q]])};this.StartActivateUser2=function(p,m,o,q){var n=MadCap.Utilities.Xhr.GetOuterXml(p);this.StartActivateUser2OnComplete=function(s,r){if(m!=null){if(q!=null){m.call(q,r,o)}else{m(r,o)}}e(s);this.StartActivateUser2OnComplete=null};l("StartActivateUser2","MadCap.WebHelp.FeedbackController.Shared.StartActivateUser2OnComplete",[["Xml",n]])};this.UpdateUserProfile=function(p,q,m,o,r){var n=MadCap.Utilities.Xhr.GetOuterXml(q);this.UpdateUserProfileOnComplete=function(t,s){if(m!=null){if(r!=null){m.call(r,s,o)}else{m(s,o)}}e(t);this.UpdateUserProfileOnComplete=null};l("UpdateUserProfile","MadCap.WebHelp.FeedbackController.Shared.UpdateUserProfileOnComplete",[["Guid",p],["Xml",n]])};this.GetUserProfile=function(o,m,n,p){this.GetUserProfileOnComplete=function(r,q){if(m!=null){if(p!=null){m.call(p,q,n)}else{m(q,n)}}e(r);this.GetUserProfileOnComplete=null};l("GetUserProfile","MadCap.WebHelp.FeedbackController.Shared.GetUserProfileOnComplete",[["Guid",o]])};this.CheckUserStatus=function(o,m,n){this.CheckUserStatusOnComplete=function(q,p){if(m!=null){m(p,n)}e(q);this.CheckUserStatusOnComplete=null};l("CheckUserStatus","MadCap.WebHelp.FeedbackController.Shared.CheckUserStatusOnComplete",[["PendingGuid",o]])};this.GetSynonymsFile=function(n,p,m,o){this.GetSynonymsFileOnComplete=function(r,q){if(m!=null){m(q,o)}e(r)};l("GetSynonymsFile","MadCap.WebHelp.FeedbackController.Shared.GetSynonymsFileOnComplete",[["ProjectID",n],["UpdatedSince",p]])};this.GetVersion=function(m,n,o){this.GetVersionOnComplete=function(q,p){if(p==null){b.Version=1}else{if(b.Version==-1&&p>4){b.FeedbackServer=j(b.Server,"Feedback/");b.PulseServer=b.Server;b.PulseEnabled=true}b.FeedbackActive=true;b.Version=p}if(m!=null){if(o!=null){m.call(o,b.Version,n)}else{m(b.Version,n)}}if(q!=null){e(q)}this.GetVersionOnComplete=null};if(b.Version==-1){l("GetVersion","MadCap.WebHelp.FeedbackController.Shared.GetVersionOnComplete")}else{this.GetVersionOnComplete(null,b.Version)}};this.GetPulseServerActivated=function(n,m,o){this.GetPulseServerActivatedOnComplete=function(q,p){if(n!=null){if(o!=null){n.call(o,p,m)}else{n(p,m)}}if(q!=null){e(q)}this.GetPulseServerActivatedOnComplete=null};l("GetPulseServerActivated","MadCap.WebHelp.FeedbackController.Shared.GetPulseServerActivatedOnComplete")};this.GetPulseStreamID=function(n,o,m,p){this.GetPulseStreamIDOnComplete=function(r,q){if(o!=null){if(p!=null){o.call(p,q,m)}else{o(q,m)}}if(r!=null){e(r)}this.GetPulseStreamIDOnComplete=null};l("GetPulseStreamID","MadCap.WebHelp.FeedbackController.Shared.GetPulseStreamIDOnComplete",[["TopicID",n]])};this.GetTopicPathByStreamID=function(o,n,m,p){this.GetTopicPathByStreamIDOnComplete=function(q,r){if(n!=null){if(p!=null){n.call(p,r,m)}else{n(r,m)}}if(q!=null){e(q)}this.GetTopicPathByStreamIDOnComplete=null};l("GetTopicPathByStreamID","MadCap.WebHelp.FeedbackController.Shared.GetTopicPathByStreamIDOnComplete",[["StreamID",o]])};this.GetTopicPathByPageID=function(m,o,n,p){this.GetTopicPathByPageIDOnComplete=function(q,r){if(o!=null){if(p!=null){o.call(p,r,n)}else{o(r,n)}}if(q!=null){e(q)}this.GetTopicPathByPageIDOnComplete=null};l("GetTopicPathByPageID","MadCap.WebHelp.FeedbackController.Shared.GetTopicPathByPageIDOnComplete",[["PageID",m]])};this.GetPulseSearchResults=function(o,q,n,m){var p=$.Deferred();this.GetPulseSearchResultsOnComplete=function(s,r){p.resolve(r);if(s!=null){e(s)}this.GetPulseSearchResultsOnComplete=null};l("GetPulseSearchResults","MadCap.WebHelp.FeedbackController.Shared.GetPulseSearchResultsOnComplete",[["ProjectID",o],["SearchQuery",q],["PageSize",n],["PageIndex",m]]);return p.promise()}};MadCap.WebHelp.FeedbackController.Shared=null;MadCap.CreateNamespace("Feedback");MadCap.Feedback.LoginDialog=function(c,b){this._FeedbackController=c;this._TimeoutID=-1;this._Mode=b;this._UserGuid=null;this._El=null};var a=MadCap.Feedback.LoginDialog;a.prototype._Init=function(){var c=this;this._El=$(".login-dialog");$(".login-dialog-buttons .submit-button").click(function(d){c.Submit()});$(".login-dialog-buttons .cancel-button").click(function(d){c.Hide(false)});if(this._Mode=="edit"){this._UserGuid=this._FeedbackController.GetUserGuid();this._FeedbackController.GetUserProfile(this._UserGuid,function(f,d){var e=MadCap.Utilities.Xhr.LoadXmlString(f);$(e.documentElement).children("Item").each(function(h,i){var k=$(this);var g=k.attr("Name");var j=k.attr("Value");var m=$(".login-dialog input[name='"+g+"']");if(m.attr("type")=="checkbox"){var l=MadCap.String.ToBool(j,false);m.prop("checked",l)}else{m.val(j)}})},null,this)}else{if(this._Mode=="pulse"){var b=$("#pulse-login-frame");if(b.length==0){c._El.addClass("pulse");c._El.empty();c._El.append('<iframe id="pulse-login-frame" name="pulse-login-html5" style="visibility:hidden;" onload="this.style.visibility=\'visible\';"></iframe>');c._El.append('<button class="close-dialog"></button>');$(".close-dialog",c._El).click(function(d){c.Hide(true)});$("#pulse-login-frame").attr("src",c._FeedbackController.PulseServer+"Login")}}}};a.prototype._Cleanup=function(){$(".login-dialog-buttons .submit-button").off("click");$(".login-dialog-buttons .cancel-button").off("click");$(".submit-button").attr("disabled",null);$(".status-message-box").hide();$(".profile-item-wrapper.error").removeClass("error");window.clearTimeout(this._TimeoutID)};a.prototype.Show=function(){this._Init();var b=MadCap.TextEffects.AddBackgroundTint("light");$(b).animate({opacity:0.5},200);this._El.fadeIn(200)};a.prototype.Hide=function(b){this._Cleanup();MadCap.TextEffects.RemoveBackgroundTint();if(b){this._El.fadeOut()}else{this._El.hide()}$(this).trigger("closed")};a.prototype.Submit=function(){$(".status-message-box").hide();$(".profile-item-wrapper.error").removeClass("error");if(this._CheckErrors()){this._SetStatusMessage("required-fields-missing-message","error");return}var c=this._LoginItemsToXml();var b=this;if(this._Mode=="new"){this._FeedbackController.StartActivateUser2(c,function(d){b._CheckUserStatus(d)});this._SetStatusMessage("verification-email-sent-message")}else{if(this._Mode=="edit"){this._FeedbackController.UpdateUserProfile(this._UserGuid,c,function(d){if(d=="00000000-0000-0000-0000-000000000000"){b.Hide(true)}else{b._CheckUserStatus(d);b._SetStatusMessage("verification-email-sent-message")}})}}$(".submit-button").attr("disabled","disabled")};a.prototype._CheckUserStatus=function(c){var b=this;this._FeedbackController.CheckUserStatus(c,function(d){if(d=="Pending"){b._TimeoutID=setTimeout(function(){b._CheckUserStatus(c)},5000)}else{MadCap.Utilities.Store.setItem("LiveHelpUserGuid",d);b.Hide(true)}})};a.prototype._CheckErrors=function(){var e=false;var d=$(".login-dialog .profile-item-wrapper input, .login-dialog .profile-item-wrapper select");for(var c=0,f=d.length;c<f;c++){var b=d[c];var j=$(b);var g=j.val();var h=MadCap.String.ToBool(MadCap.Dom.Dataset(b,"required"),false);if(h&&MadCap.String.IsNullOrEmpty(g)){j.closest(".profile-item-wrapper").addClass("error");e=true}}return e};a.prototype._LoginItemsToXml=function(){var m=MadCap.Utilities.Xhr.CreateXmlDocument("FeedbackUserProfile");var h=m.documentElement;var b=$(".login-dialog .profile-item-wrapper input");for(var e=0,d=b.length;e<d;e++){var j=b[e];var g=$(j);var c=g.attr("name");var f=g.attr("type");var k=f=="checkbox"?j.checked:g.val();var l=m.createElement("Item");l.setAttribute("Name",c);l.setAttribute("Value",k.toString());h.appendChild(l)}return m};a.prototype._SetStatusMessage=function(b,c){var d=$(".status-message-box");if(c=="error"){d.addClass("error")}else{d.removeClass("error")}$(".message").hide();$("."+b).show();d.fadeIn()};MadCap.FeedbackException=function(c,b,d){MadCap.Exception.call(this,c,b);this.Data=d};MadCap.FeedbackException.prototype=new MadCap.Exception();MadCap.FeedbackException.prototype.constructor=MadCap.FeedbackException;MadCap.FeedbackException.prototype.base=MadCap.Exception.prototype})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.HelpSystem=function(v,m,n,c,E){var d=this;var r=v;var e=new MadCap.Utilities.Url(n).ToFolder().ToFolder().FullPath;var o=null;var l=new Array();var w=c;var k=E;var q=null;var C=[];var t=new MadCap.Utilities.Dictionary();var A=null;var G=new MadCap.Utilities.Dictionary();var b=false;var p=new MadCap.WebHelp.AliasFile(e+"Data/Alias.xml",this);var H=new MadCap.WebHelp.TocFile(this,MadCap.WebHelp.TocFile.TocType.Toc);var h=null;var s=new MadCap.WebHelp.TocFile(this,MadCap.WebHelp.TocFile.TocType.BrowseSequence);var u=new MadCap.Utilities.Dictionary();this.TargetType=null;this.DefaultStartTopic=null;this.InPreviewMode=null;this.LiveHelpOutputId=null;this.LiveHelpServer=null;this.LiveHelpEnabled=false;this.IsWebHelpPlus=false;this.ContentFolder=null;this.UseCustomTopicFileExtension=false;this.CustomTopicFileExtension=null;this.GlossaryUrl=null;this.SearchFilterSetUrl=null;this.SyncTOC=null;this.DefaultSkin=null;this.IsAutoMerged=false;this.LanguageUrl=null;this.BreakpointsUrl=null;this.PreventExternalUrls=false;this.IsResponsive=false;this.SearchUrl=null;(function(){})();this.Load=function(J){MadCap.Utilities.Xhr.Load(n,true,function(Y){var Q=0;function M(){Q++;if(Q==l.length){J()}}function Z(ac,aa){if(l.length>0){for(var ab=0;ab<l.length;ab++){l[ab].Load(ac)}}else{aa()}}b=Y!=null;if(!b){J();return}this.TargetType=Y.documentElement.getAttribute("TargetType");this.DefaultStartTopic=Y.documentElement.getAttribute("DefaultUrl");this.InPreviewMode=MadCap.Dom.GetAttributeBool(Y.documentElement,"InPreviewMode",false);this.LiveHelpOutputId=Y.documentElement.getAttribute("LiveHelpOutputId");this.LiveHelpServer=Y.documentElement.getAttribute("LiveHelpServer");this.LiveHelpEnabled=this.LiveHelpOutputId!=null;this.MoveContentToRoot=MadCap.Dom.GetAttributeBool(Y.documentElement,"MoveOutputContentToRoot",false);this.PreventExternalUrls=MadCap.Dom.GetAttributeBool(Y.documentElement,"PreventExternalUrls",false);this.IsResponsive=MadCap.Dom.GetAttributeBool(Y.documentElement,"EnableResponsiveOutput",false);this.ResultsPerPage=MadCap.Dom.GetAttributeInt(Y.documentElement,"ResultsPerPage",20);var O=MadCap.Dom.GetAttributeBool(Y.documentElement,"ServerEnabled",false);this.IsWebHelpPlus=(this.TargetType=="WebHelpPlus"||O)&&MadCap.String.StartsWith(document.location.protocol,"http",false);var W=MadCap.Dom.GetAttributeBool(Y.documentElement,"MakeFileLowerCase",false);var K="";if(!this.MoveContentToRoot){K="Content/"}if(W){K=K.toLowerCase()}this.ContentFolder=K;this.UseCustomTopicFileExtension=MadCap.Dom.GetAttributeBool(Y.documentElement,"UseCustomTopicFileExtension",false);this.CustomTopicFileExtension=MadCap.Dom.GetAttribute(Y.documentElement,"CustomTopicFileExtension");this.GlossaryUrl=F(Y,"Glossary");this.TocUrl=F(Y,"Toc");this.SearchUrl=F(Y,"SearchUrl");this.BrowseSequencesUrl=F(Y,"BrowseSequence");this.IndexUrl=F(Y,"Index");this.SearchFilterSetUrl=F(Y,"SearchFilterSet");this.LanguageUrl=e+"Data/Language.js";this.BreakpointsUrl=e+"Data/Breakpoints.js";this.HasBrowseSequences=Y.documentElement.getAttribute("BrowseSequence")!=null;this.HasToc=Y.documentElement.getAttribute("Toc")!=null;I.call(this,Y);this.DefaultSkin=this.GetSkin($(Y.documentElement).attr("SkinName"));this.SyncTOC=this.DefaultSkin!=null&&MadCap.String.ToBool(this.DefaultSkin.AutoSyncTOC,false);this.DisplayCommunitySearchResults=this.DefaultSkin==null||MadCap.String.ToBool(this.DefaultSkin.DisplayCommunitySearchResults,true);this.CommunitySearchResultsCount=3;if(this.DefaultSkin!=null){this.CommunitySearchResultsCount=MadCap.String.ToInt(this.DefaultSkin.CommunitySearchResultsCount,3)}var R=Y.getElementsByTagName("Subsystems");if(R.length>0&&R[0].getElementsByTagName("Url").length>0){var X=Y.getElementsByTagName("Subsystems")[0].getElementsByTagName("Url");for(var P=0;P<X.length;P++){var T=X[P];if(!T){continue}var L=T.getAttribute("Source");var N=L.substring(0,L.lastIndexOf("/")+1);var V=T.getAttribute("TocPath");var S=T.getAttribute("BrowseSequencePath");var U=new MadCap.WebHelp.HelpSystem(this,e+N,e+N+"Data/HelpSystem.xml",V,S);l.push(U)}}this.LoadBreakpoints(function(){d.LoadLanguage(function(){if(!d.IsAutoMerged&&d.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(d.GetPath()+"Service/Service.asmx/GetSubsystems",true,function(ab,aa){$.each(ab.documentElement.childNodes,function(ac,ad){if(ad.nodeName=="Subsystems"){$.each(ad.childNodes,function(ah,ai){if(ai.nodeName=="Url"){var ag=ai.getAttribute("Source");var ae=ag.substring(0,ag.lastIndexOf("/")+1);if(ae){var af=new MadCap.WebHelp.HelpSystem(d,e+ae,e+ae+"Data/HelpSystem.xml",null,null);af.IsAutoMerged=true;l.push(af)}}})}});Z(M,J)})}else{Z(M,J)}})})},null,this)};this.GetExists=function(){return b};this.GetMasterHelpsystem=function(){var J=this;for(var K=J.GetParentSubsystem();K!=null;K=K.GetParentSubsystem()){J=K}return J};this.GetParentSubsystem=function(){return r};this.GetPath=function(){return e};this.GetAbsolutePath=function(){if(o==null){var J=new MadCap.Utilities.Url(e);o=J.IsAbsolute?J.FullPath:new MadCap.Utilities.Url(document.location.href).Path}return o};this.GetContentPath=function(){return e+this.ContentFolder};this.GetSkin=function(J){return u.GetItem(J)};this.GetTocPath=function(J){return J=="toc"?w:k};this.GetFullTocPath=function(J,L){var M=this.GetHelpSystem(L);if(M==null){return null}var K=new Object();K.tocPath=this.GetTocPath(J);M.ComputeTocPath(J,K);return K.tocPath};this.GetTopicPath=function(J){var P=this.GetPath();var M=!this.IsRoot;var O=this.GetMasterHelpsystem();if(M&&!masterHelpsystem.MoveContentToRoot){P="../"+P}if(MadCap.Utilities.HasRuntimeFileType("Search")){var N=new MadCap.Utilities.Url(document.location.href);var L=N.ToFolder().CombinePath(P+"Data/").CombinePath(J);var K=L.ToRelative(N);J=K}else{P+="Data/";J=new MadCap.Utilities.Url(P).CombinePath(J);if(!M&&!O.MoveContentToRoot){J=J.ToRelative(O.ContentFolder)}}return J};this.ComputeTocPath=function(J,K){if(r){var L=this.GetTocPath(J);if(!MadCap.String.IsNullOrEmpty(L)){K.tocPath=K.tocPath?L+"|"+K.tocPath:L}r.ComputeTocPath(J,K)}};this.GetHelpSystem=function(K){var L=null;for(var J=0;J<l.length;J++){L=l[J].GetHelpSystem(K);if(L!=null){return L}}if(MadCap.String.StartsWith(K,e,false)){return this}return null};this.GetSubsystem=function(J){return l[J]};this.GetMergedAliasIDs=function(J){p.Load(function(){function P(R){for(var Q=0,S=R.length;Q<S;Q++){O[O.length]=R[Q]}M++;if(M==N+1){J(O)}}var O=new Array();var N=l.length;var M=0;var L=p.GetIDs();P(L);for(var K=0;K<N;K++){l[K].GetMergedAliasIDs(P)}})};this.GetMergedAliasNames=function(J){p.Load(function(){function O(R){for(var Q=0,S=R.length;Q<S;Q++){K[K.length]=R[Q]}M++;if(M==N+1){J(K)}}var K=new Array();var N=l.length;var M=0;var P=p.GetNames();O(P);for(var L=0,N=l.length;L<N;L++){l[L].GetMergedAliasNames(O)}})};this.LookupCSHID=function(K,J){p.Load(function(){function L(R){if(Q){return}N++;if(R.Found){Q=true;J(R);return}if(N==O){J(P)}}var P=p.LookupID(K);if(P.Found){P.Topic=d.GetPath()+P.Topic;J(P);return}if(l.length==0){J(P);return}var Q=false;var N=0;for(var M=0,O=l.length;M<O;M++){l[M].LookupCSHID(K,L)}})};this.GetTocFile=function(){return H};this.GetBrowseSequenceFile=function(){return s};this.IsMerged=function(){return(l.length>0)};this.IsRoot=function(){return r==null};this.IsTabletLayout=function(K){if(this.IsResponsive&&this.Breakpoints){var J=this.Breakpoints.mediums.Tablet;var L=this.Breakpoints.prop;if(L=="max-width"){if(!K){K=window.innerWidth}return K<=J}else{return window.matchMedia("("+L+": "+J+"px)").matches}}return false};this.LoadLanguage=function(L,J){var K=this;require([this.LanguageUrl],function(M){K.Language=M;L.call(J,M)})};this.LoadBreakpoints=function(L,J){if(this.IsResponsive&&this.IsRoot()){var K=this;require([this.BreakpointsUrl],function(M){K.Breakpoints=M;L.call(J,M)})}else{L.call(J,null)}};this.LoadConcepts=function(){var J=$.Deferred();require([e+"Data/Concepts.js"],function(K){A=K;J.resolve(A)});return J.promise()};this.LoadAllConcepts=function(J){function O(){L++;if(L==M+1){J()}}var L=0;var M=l.length;this.LoadConcepts().then(O);for(var K=0;K<M;K++){var N=l[K];if(!N.GetExists()){O();continue}N.LoadAllConcepts(O)}};this.GetConceptsLinks=function(K){var Q=$.Deferred();var P=[];if(this.IsWebHelpPlus){function J(Y,V){var T=Y.documentElement.getElementsByTagName("Url");var S=T.length;for(var W=0;W<S;W++){var X=T[W];var Z=X.getAttribute("Title");var U=X.getAttribute("Source");U=e+((U.charAt(0)=="/")?U.substring(1,U.length):U);P[P.length]={Title:Z,Link:U}}Q.resolve(P)}MadCap.Utilities.Xhr.CallWebService(e+"Service/Service.asmx/GetTopicsForConcepts?Concepts="+K,true,J)}else{function N(S){P=P.Union(S)}K=K.replace("\\;","%%%%%");if(K==""){Q.resolve(P)}else{var M=K.split(";");var R=[];R.push(this.GetConceptsLinksLocal(M).then(N));for(var O=0;O<l.length;O++){var L=l[O];if(L.GetExists()){R.push(L.GetConceptsLinks(K).then(N))}}$.when.apply(this,R).done(function(){Q.resolve(P)})}}return Q.promise()};this.GetConceptsLinksLocal=function(O){var K=[];var N=[];for(var L=0;L<O.length;L++){var M=O[L];M=M.replace("%%%%%",";");N.push(this.GetConceptLinks(M).then(function(P){K=K.concat(P)}))}var J=$.Deferred();$.when.apply(this,N).done(function(){J.resolve(K)});return J.promise()};this.LoadTopicChunk=function(K){var J=$.Deferred();MadCap.Utilities.Require([e+"Data/SearchTopic_Chunk"+K+".js"],function(L){J.resolve(L)});return J.promise()};this.GetSearchChunkIds=function(K){var J=$.Deferred();MadCap.Utilities.Require([e+"Data/Search.js"],function(N){var L=N.t;var O=[];for(var M=0;M<K.length;M++){O.push(MadCap.Utilities.GetChunkId(L,K[M],function(Q,P){if(Q<P){return -1}else{if(Q===P){return 0}else{return 1}}}))}J.resolve(O)});return J.promise()};this.GetConceptLinks=function(L){var K=$.Deferred();var J=this;this.LoadConcepts().done(function(){var M=[];var N=A[L];if(!N){K.resolve(M)}else{J.GetSearchChunkIds(N).then(function(R){var Q=[];for(var P=0;P<R.length;P++){var O=R[P];Q.push(J.LoadTopicChunk(O).then(function(U){for(var T=0;T<N.length;T++){var S=U[N[T]];if(S){S.Url=J.GetTopicPath(S.u);M.push(S)}}}))}$.when.apply(this,Q).done(function(){K.resolve(M)})})}});return K.promise()};this.LoadToc=function(L,M,J){var K=this;var N=K[L];if(typeof N!=="undefined"){M.call(J,N)}else{this.GetToc(L,function(O){M.call(J,O)})}};this.GetToc=function(M,J){var K=this;var L=this[M+"Url"];require([L],function(R){if(typeof R=="undefined"){J(R);return}K[M]=R;R.type=M;R.helpSystem=K;R.chunks=[];R.entries=[];R.nodes={};var O=new MadCap.Utilities.Url(L).ToFolder();for(var U=0;U<R.numchunks;U++){R.chunks[U]={path:O.AddFile(R.prefix+U+".js").FullPath,loaded:false}}var Q=R.tree;var V={};R.automerge=R.tree;while(Q!=null){Q.toc=R;Q.childrenLoaded=false;R.nodes[Q.i]=Q;if(typeof Q.m!=="undefined"){V[Q.m]=Q}if(typeof Q.a!=="undefined"){R.automerge=Q}if(typeof Q.n!=="undefined"){for(var T=0;T<Q.n.length;T++){Q.n[T].parent=Q;if(T<Q.n.length-1){Q.n[T].next=Q.n[T+1]}if(T>0){Q.n[T].previous=Q.n[T-1]}}}Q=B(Q)}var P=[];var S=false;for(var T=0;T<l.length;T++){var N=l[T];if(N.GetExists()){if(!N.IsAutoMerged){N.MergeNode=V[T]}else{S=true}if(N.IsAutoMerged||typeof N.MergeNode!=="undefined"){P.push(N)}}else{f(V[T])}}if(!S&&R.automerge.a=="replace"){f(R.automerge)}if(P.length==0){J(R);return}MadCap.Utilities.AsyncForeach(P,function(W,X){i(R,W,X)},function(){J(R)})})};function f(N){var L=N.parent;var M=N.previous;var K=N.next;if(M){M.next=K;N.previous=null}if(K){K.previous=M;N.next=null}if(L){var J=N.parent.n.indexOf(N);L.n.splice(J,1);N.parent=null}}function B(K){var J=null;if(typeof K.n!="undefined"){J=K.n[0]}else{if(typeof K.next!="undefined"){J=K.next}else{J=K;while(typeof J.parent!="undefined"){if(typeof J.parent.next!="undefined"){J=J.parent.next;break}else{J=J.parent}}if(typeof J.parent=="undefined"){J=null}}}return J}function j(K){var J=null;if(typeof K.previous!="undefined"){J=K.previous;while(typeof J.n!=="undefined"&&J.n.length>0){J=J.n[J.n.length-1]}}else{if(typeof K.parent!="undefined"){J=K.parent}}return J}function y(P,O){var N="";var M=-1;var L=null;if(P.n&&P.n.length>0){N=P.toc.entries[P.i].title;if(O){N=encodeURIComponent(N)}M=0}else{M=P.parent.n.indexOf(P)+1}if(N.length>0){N+="|"}N+=("_____"+M);for(var J=P.parent;J&&typeof J.i!=="undefined";J=J.parent){if(N==null){N=""}if(N.length>0){N="|"+N}var K=J.toc.entries[J.i].title;if(O){K=encodeURIComponent(K)}N=K+N}return N}function i(K,L,J){L.GetToc(K.type,function(P){if(typeof P=="undefined"){J();return}var O=L.IsAutoMerged?K.automerge:L.MergeNode;var W=P.tree;if(typeof W.n!=="undefined"){var N=O.r==1||(L.IsAutoMerged&&O.a=="replace");var U=N||(L.IsAutoMerged&&(O.a=="before-head"||O.a=="after-head"));var Q=N||(L.IsAutoMerged&&(O.a=="before-head"||O.a=="after-tail"));var V=Q?O.parent:O;if(typeof V.n=="undefined"){V.n=[]}var R=Q?V.n.indexOf(O)+(U?0:1):U?0:V.n.length;var M=W.n.length;for(var S=0;S<M;S++){W.n[S].parent=V;V.n.splice(R+S,0,W.n[S])}if(N){V.n.splice(R+M,1)}if(R>0){V.n[R].previous=V.n[R-1];V.n[R-1].next=V.n[R]}var T=R+M-(N?1:0)-1;if(T>=0&&T+1<V.n.length){V.n[T].next=V.n[T+1];V.n[T+1].previous=V.n[T]}if(L.IsAutoMerged){K.automerge=V.n[R+M-1];K.automerge.a="after-tail"}}J()})}this.LoadTocChunk=function(L,J,K){require([L.chunks[J].path],function(M){if(!L.chunks[J].loaded){for(var O in M){for(var N=0;N<M[O].i.length;N++){L.entries[M[O].i[N]]={link:O,title:M[O].t[N],bookmark:M[O].b[N]}}}L.chunks[J].loaded=true}if(K){K(M)}})};this.GetTocEntryHref=function(W,O,S){var N=W.toc;var R=N.entries[W.i];var V=R.link+R.bookmark;var L=null;if(typeof W.m=="undefined"&&V!="___"){var K=null;var Q=new MadCap.Utilities.Url(V);var J=N.helpSystem;var P=J.GetPath();var U=J.GetMasterHelpsystem().GetContentPath();var M=typeof W.f!="undefined";if(!Q.IsAbsolute){if(!MadCap.String.IsNullOrEmpty(P)){Q=new MadCap.Utilities.Url(P).CombinePath(V);K=Q.ToRelative(U)}else{K=Q.ToRelative("/"+U)}}else{K=Q}if(M||!S){if(K.IsAbsolute){L=K.FullPath}else{L=U+K.FullPath}}else{L="#"+K.FullPath}}if(L!=null&&O){var T=y(W,true);L+=encodeURIComponent("?"+O+"Path="+T)}return L};this.FindTocNode=function(L,J,K){d.FindNode("Toc",L,J,K)};this.FindBrowseSequenceNode=function(L,J,K){d.FindNode("BrowseSequences",L,J,K)};this.FindNode=function(J,L,K,M){d.LoadToc(J,function(S){var O=new MadCap.Utilities.Url(d.GetMasterHelpsystem().GetContentPath());var P=K;var R=0;var N;if(!K.IsAbsolute){var P=!MadCap.String.IsNullOrEmpty(O.FullPath)?O.CombinePath(K):K;P=P.ToRelative(d.GetPath());P=new MadCap.Utilities.Url("/"+P.FullPath)}for(var Q=1;Q<S.chunkstart.length;Q++){if(S.chunkstart[Q]<=P.PlainPath){R++}}d.LoadTocChunk(S,R,function(T){var V=T[P.PlainPath];if(typeof V!=="undefined"){var W=null;if(!N){N=S.nodes[V.i[0]]}if(L){for(var U=0;U<V.i.length;U++){if(y(S.nodes[V.i[U]],false)==L){W=V.i[U];break}}}else{for(var U=0;U<V.i.length;U++){if(V.b[U].toLowerCase()==P.Fragment.toLowerCase()){W=V.i[U];break}}}if(W!=null){M(S.nodes[W]);return}}if(l.length>0){MadCap.Utilities.AsyncForeach(l,function(X,Y){X.FindNode(J,L,K,function(Z){if(typeof Z!=="undefined"){M(Z);return}Y()})},function(){M(N)})}else{M(N)}})})};this.LoadGlossary=function(L,J){var K=this;this.GetGlossary(function(M){K.Glossary=M;L.call(J,M)})};this.GetGlossary=function(J){require([this.GlossaryUrl],function(K){function M(){O++;if(O==P){J(K)}}if(typeof K=="undefined"){J(K);return}var O=0;var P=0;K.chunks=[];var N=new MadCap.Utilities.Url(d.GlossaryUrl).ToFolder();for(var R=0;R<K.numchunks;R++){K.chunks.push(N.AddFile(K.prefix+R+".js").FullPath)}for(var L=0;L<l.length;L++){var Q=l[L];if(!Q.GetExists()){continue}P++}if(P==0){J(K);return}for(var L=0;L<l.length;L++){var Q=l[L];if(!Q.GetExists()){continue}a(K,Q,M)}})};this.LoadIndex=function(L,J){if(typeof this.Index!=="undefined"){L.call(J,this.Index);return}var K=this;this.GetIndex(function(M){K.Index=M;L.call(J,M)})};this.GetIndex=function(J){require([this.IndexUrl],function(L){function K(){O++;if(O==P){J(L)}}if(typeof L=="undefined"){J(L);return}var O=0;var P=0;L.chunks=[];var N=new MadCap.Utilities.Url(d.IndexUrl).ToFolder().ToRelative(document.location.href);for(var R=0;R<L.numchunks;R++){L.chunks.push(N.AddFile(L.prefix+R+".js").FullPath)}for(var M=0;M<l.length;M++){var Q=l[M];if(!Q.GetExists()){continue}P++}if(P==0){J(L);return}for(var M=0;M<l.length;M++){var Q=l[M];if(!Q.GetExists()){continue}D(L,Q,K)}})};this.LoadRootIndexEntry=function(J,K){if(J.loaded){if(K){K(J)}return}this.LoadIndex(function(L){var M=typeof J.c=="number"?[J.c]:J.c;MadCap.Utilities.AsyncForeach(M,function(P,O){var N=L.chunks[P];require([N],function(Q){var S=Q[J.t];var R=new MadCap.Utilities.Url(N).ToFolder().ToFolder().FullPath;if(MadCap.String.EndsWith(R,"/")){R=R.slice(0,-1)}d.SetIndexEntryRoot(S,R);d.MergeIndexEntries(J,S);O()})},function(){d.LoadIndexEntry(J);if(K){K(J)}})})};this.SetIndexEntryRoot=function(K,J){if(K.l){$.each(K.l,function(L,M){M.root=J})}if(K.e){$.each(K.e,function(L,M){d.SetIndexEntryRoot(M,J)})}};this.LoadIndexEntry=function(K){if(K.l){var J=[];$.each(K.l,function(M,L){var N={Title:L.t,Link:d.GetIndexLinkPath(L)};J[J.length]=N});K.linkList=d.SortLinkList(J)}if(K.e){$.each(K.e,function(L,M){d.LoadIndexEntry(M)})}K.loaded=true};this.GetIndexLinkPath=function(K){var M=K.root+K.u;if(MadCap.String.StartsWith(M,"/")){M=M.substring(1)}var J=new MadCap.Utilities.Url(d.GetMasterHelpsystem().GetAbsolutePath());var L=new MadCap.Utilities.Url(document.location.href);if(J.Path.toLowerCase()==L.Path.toLowerCase()){M=J.AddFile(M).ToRelative(J.Path+d.GetMasterHelpsystem().GetContentPath()).FullPath}return M};this.MergeIndexEntries=function(K,J){if(J.l){if(typeof K.l=="undefined"){K.l=J.l}else{K.l=K.l.concat(J.l)}}if(J.r){if(typeof K.r=="undefined"){K.r=J.r}else{if(K.r=="SeeAlso"||J.r=="SeeAlso"){K.r="SeeAlso"}}if(typeof K.f=="undefined"){K.f=J.f}else{var M=K.f.split(";");var L=J.f.split(";");$.each(L,function(O,N){if($.inArray(M,N)){M.push(N)}});M.sort(function(Q,O){var P=Q.toLowerCase();var N=O.toLowerCase();return P<N?-1:P>N?1:0});K.f=M.join("; ")}}if(J.e){if(typeof K.e=="undefined"){K.e={}}$.each(J.e,function(N,O){if(typeof K.e[N]!=="undefined"){d.MergeIndexEntries(K.e[N],O)}else{K.e[N]=O}})}};this.FindIndexEntry=function(K,J){d.LoadIndex(function(L){if(!L.entries){L.entries={};$.each(L.terms,function(P,Q){L.entries[Q.t]=Q})}var N=K.split(":");var O=N.length;var M=L.entries[N[0]];if(M){d.LoadRootIndexEntry(M,function(Q){var R=Q;for(var P=1;P<O;P++){R=R.e[N[P]];if(!R){break}}if(J){J(Q,R)}})}else{if(J){J()}}})};this.SortLinkList=function(J){J.sort(function(L,K){var N=L.Title.toLowerCase();var M=K.Title.toLowerCase();return N<M?-1:N>M?1:0});return J};this.GetSearchDBs=function(J){var L=new Array();var K=this;require([e+"Data/Search.js"],function(Q){function N(S){if(S!=null){for(var R=0;R<S.length;R++){L[L.length]=S[R]}}O++;if(O==P){J(L)}}var O=0;var P=l.length;var M=new MadCap.WebHelp.Search.SearchDB(K);L[L.length]=M;M.Load(Q,function(){var R=Q.pm;if(R||P==0){J(L)}else{for(var S=0;S<P;S++){var T=l[S];if(!T.GetExists()){N(null);continue}T.GetSearchDBs(N)}}})})};this.GetConcepts=function(){return A};this.GetSearchFilters=function(){return q.map};this.ParseSearchFilterDoc=function(P){filterMap=Object.create(null);if(P!=null){var O=P.getElementsByTagName("SearchFilter");for(var L=0;L<O.length;L++){var M=O[L];var K=M.getAttribute("Name");var J=M.getAttribute("Order");var N=M.getAttribute("Concepts");if(!N){continue}filterMap[K]={c:N,o:J,group:0,}}}return filterMap};this.LoadSearchFiltersLocal=function(){var J=$.Deferred();require([this.SearchFilterSetUrl],function(L){var K=null;if(L){K={map:L,count:1}}J.resolve(K)});return J.promise()};this.LoadSearchFilters=function(){var L=$.Deferred();if(!this.IsWebHelpPlus){function K(V){if(V){if(!J){J=V;for(var S in V.map){V.map[S].group=0}}else{J.count+=V.count;for(var S in V.map){if(!J.map[S]){J.map[S]=V.map[S];J.map[S].group+=V.count}else{var U=J.map[S];var T=V.map[S];var R=U.c.split(";");var Q=T.c.split(";");U.c=R.Union(Q).join(";");if(MadCap.String.IsNullOrEmpty(U.cm)){U.cm=T.cm}}}}}}var J;var O=[];O.push(this.LoadSearchFiltersLocal().then(K));for(var N=0;N<l.length;N++){var P=l[N];if(P.GetExists()){O.push(P.LoadSearchFilters().then(K))}}$.when.apply(this,O).done(function(){q=J;L.resolve(J)})}else{var M=this;MadCap.Utilities.Xhr.CallWebService(e+"Service/Service.asmx/GetSearchFilters",true,function(R,Q){var S=M.ParseSearchFilterDoc(R);L.resolve({map:S})})}return L.promise()};this.AdvanceTopic=function(J,O,N,K,L){var M=null;d.FindNode(J,N,K,function(Q){if(Q){function P(S,R){S=R=="next"?B(S):j(S);if(S&&typeof S.i!=="undefined"){d.LoadTocChunk(S.toc,S.c,function(T){var V=S.toc.entries[S.i];var U=d.GetTocEntryHref(S,J,true);if(U){if(MadCap.String.StartsWith(U,"#")){U=U.substring(1)}L(U)}else{P(S,R)}})}}P(Q,O)}})};this.SetBrowseSequencePath=function(K,J){var L=$(".current-topic-index-button");if(K!=null){this.FindBrowseSequenceNode(K,J,function(M){if(M&&M.parent){L.removeClass("disabled");$(".sequence-index").text(M.parent.n.indexOf(M)+1);$(".sequence-total").text(M.parent.n.length)}else{L.addClass("disabled")}})}else{L.addClass("disabled")}};function F(M,K){var L=M.documentElement.getAttribute(K);if(L==null){return null}var J=new MadCap.Utilities.Url(e);if(!J.IsAbsolute){return e+L}return J.AddFile(L).ToRelative(document.location.href).FullPath}function I(Y){var Z=$("CatapultSkin",Y.documentElement);for(var U=0,P=Z.length;U<P;U++){var V=Z[U];var Q=$(V);var S=Q.attr("Name");var X={};for(var T=0,N=V.attributes.length;T<N;T++){var W=V.attributes[T];X[W.name]=W.value}var O=Q.children();for(var T=0,N=O.length;T<N;T++){var J=O[T];var L=J.nodeName;var M={};X[L]=M;for(var R=0,K=J.attributes.length;R<K;R++){var W=J.attributes[R];M[W.name]=W.value}}u.Add(S,X)}}function x(L,M){if(L.nodeName.toLowerCase()=="madcap:glossarychunkref"){var O=$(L);var J=O.attr("src");if(!MadCap.String.IsNullOrEmpty(J)){var K=new MadCap.Utilities.Url(M).CombinePath("../../Data/").CombinePath(J);O.attr("src","../"+K.FullPath)}}else{var N=L.getElementsByTagName("a")[0];var J=$(N).attr("href");if(!MadCap.String.IsNullOrEmpty(J)){var K=new MadCap.Utilities.Url(M).CombinePath("../../Content/").CombinePath(J);$(N).attr("href","../"+K.FullPath)}}}function g(N){for(var L=0;L<N.childNodes.length;L++){var J=N.childNodes[L];if(J.nodeName=="Entries"){for(var K=0;K<J.childNodes.length;K++){g(J.childNodes[K])}}else{if(J.nodeName=="Links"){for(var K=0;K<J.childNodes.length;K++){if(J.childNodes[K].nodeType==1){var M=MadCap.Dom.GetAttribute(J.childNodes[K],"Link");M=e+((M.charAt(0)=="/")?M.substring(1,M.length):M);J.childNodes[K].setAttribute("Link",M)}}}}}}function z(K,J){if(!J){return}for(var L=0;L<J.length;L++){K[K.length]=J[L]}}function a(K,L,J){L.GetGlossary(function(Q){if(typeof Q=="undefined"){J();return}K.chunks=K.chunks.concat(Q.chunks);for(var P=0,N=0;P<K.terms.length&&N<Q.terms.length;){var O=K.terms[P];var M=Q.terms[N];var T=O.t;var R=M.t;if(T.toLowerCase()==R.toLowerCase()){P++;N++}else{if(T.toLowerCase()>R.toLowerCase()){M.c+=K.numchunks;K.terms.splice(P,0,M);N++}else{P++}}}for(;N<Q.terms.length;N++){var S=Q.terms[N];S.c+=K.numchunks;K.terms.push(S)}K.numchunks=K.chunks.length;J()})}function D(L,K,J){K.GetIndex(function(R){if(typeof R=="undefined"){J();return}L.chunks=L.chunks.concat(R.chunks);for(var P=0,O=0;P<L.terms.length&&O<R.terms.length;){var T=L.terms[P];var S=R.terms[O];var N=T.s||T.t;var M=S.s||S.t;if(N==M&&T.t==S.t){if(typeof T.c=="number"){T.c=[T.c]}var Q=S.c;if(typeof S.c=="number"){Q=[S.c]}$.each(Q,function(W,V){T.c.push(V+L.numchunks)});T.$=(T.$===1&&S.$===1)?1:0;P++;O++}else{if(N.toLowerCase()>M.toLowerCase()||(N.toLowerCase()==M.toLowerCase()&&T.t.toLowerCase()>S.t.toLowerCase())){S.c+=L.numchunks;L.terms.splice(P,0,S);O++}else{P++}}}for(;O<R.terms.length;O++){var U=R.terms[O];U.c+=L.numchunks;L.terms.push(U)}L.numchunks=L.chunks.length;J()})}};(function(){var a=null;MadCap.WebHelp.HelpSystem.GetHelpSystem=function(){return a};MadCap.WebHelp.HelpSystem.LoadHelpSystem=function(c,b){a=new MadCap.WebHelp.HelpSystem(null,null,c,null,null);a.Load(function(){b(a)})}})();MadCap.WebHelp.TocFile=function(r,l){var b=this;var h=r;var e=l;var c=false;var i=null;var n=new Array();var j=null;var o=null;var a=new Array();(function(){})();this.Init=function(t){if(c){if(t!=null){t()}return}if(t!=null){n.push(t)}var v=null;if(l==MadCap.WebHelp.TocFile.TocType.Toc){v="Toc.xml"}else{if(l==MadCap.WebHelp.TocFile.TocType.BrowseSequence){v="BrowseSequences.xml"}}this.LoadToc(h.GetPath()+"Data/"+v,u);function u(w){c=true;i=w.documentElement;g()}};this.LoadToc=function(u,t){if(e==MadCap.WebHelp.TocFile.TocType.Toc&&h.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(h.GetPath()+"Service/Service.asmx/GetToc",true,w,null)}else{if(e==MadCap.WebHelp.TocFile.TocType.BrowseSequence&&h.IsWebHelpPlus){MadCap.Utilities.Xhr.CallWebService(h.GetPath()+"Service/Service.asmx/GetBrowseSequences",true,w,null)}else{var v=(u.indexOf("/")==-1)?h.GetPath()+"Data/"+u:u;MadCap.Utilities.Xhr.Load(v,false,w,null,null)}}function w(y,x){if(!y||!y.documentElement){if(t!=null){t(y)}return}if(t!=null){t(y)}}};this.LoadChunk=function(u,v,t){var w=(v.indexOf("/")==-1)?h.GetPath()+"Data/"+v:v;MadCap.Utilities.Xhr.Load(v,true,x,null,null);function x(E,z){if(!E||!E.documentElement){if(t!=null){t(u)}return}u.removeAttribute("Chunk");var y=E.documentElement;for(var B=0,D=y.childNodes.length;B<D;B++){var A=y.childNodes[B];if(A.nodeType!=1){continue}var C=null;if(typeof(E.importNode)=="function"){C=E.importNode(A,true)}else{C=A.cloneNode(true)}u.appendChild(C)}if(t!=null){t(u)}}};this.LoadMerge=function(y,t){var x=MadCap.Dom.GetAttributeInt(y,"MergeHint",-1);if(x==-1){t(y,false,null,null);return}y.removeAttribute("MergeHint");var A=k(y);var u=A.GetSubsystem(x);var v=MadCap.Dom.GetAttributeBool(y,"ReplaceMergeNode",false);if(!v){y.setAttribute("ownerHelpSystemIndex",a.length)}a[a.length]=u;var z=u.GetPath()+"Data/"+(e==MadCap.WebHelp.TocFile.TocType.Toc?"Toc.xml":"BrowseSequences.xml");var B=MadCap.Utilities.Xhr.Load(z,true,w);function w(N,K){if(!N||!N.documentElement){if(t!=null){t(y,false,null,null)}return}var G=N.documentElement;var J=null;var H=true;var D=null;var E=null;var L=y.ownerDocument;for(var I=0,F=G.childNodes.length;I<F;I++){var C=G.childNodes[I];if(C.nodeType!=1){continue}var M=null;if(typeof(L.importNode)=="function"){M=L.importNode(C,true)}else{M=C.cloneNode(true)}if(v){M.setAttribute("ownerHelpSystemIndex",a.length-1);if(H){H=false;y.parentNode.replaceChild(M,y);D=M;E=D}else{J.parentNode.insertBefore(M,J.nextSibling);E=M}J=M}else{y.appendChild(M)}}if(t!=null){t(y,v,D,E)}}};this.AdvanceTopic=function(x,w,u,v){this.GetTocNode(w,u,t);function t(y){if(y==null){v(null);return}var z=null;q(x,y,A);function A(E){var B=null;if(E!=null){B=MadCap.Dom.GetAttribute(E,"Link");B=B.substring("/".length);var H=new MadCap.Utilities.Url(B);var G=null;if(e==MadCap.WebHelp.TocFile.TocType.Toc){G="TocPath"}else{if(e==MadCap.WebHelp.TocFile.TocType.BrowseSequence){G="BrowseSequencePath"}}var D=m(E,false);var C=H.ToQuery(G+"="+encodeURIComponent(D));B=C.FullPath;var F=k(E);B=F.GetPath()+B;v(B)}else{v(B)}}}};this.GetRootNode=function(u){this.Init(t);function t(){u(i)}};this.GetTocNode=function(v,t,x){this.Init(w);function w(){j=v;o=t;var F=(v=="")?new Array(0):v.split("|");var B=-1;if(F.length>0){var z=F[F.length-1];if(MadCap.String.StartsWith(z,"_____")){B=parseInt(z.substring("_____".length));F.splice(F.length-1,1)}}var H=i;for(var D=0,A=F.length;D<A;D++){if(y(H)){return}if(u(H)){return}H=d(H,decodeURIComponent(F[D]))}if(H==null){x(null);return}if(y(H)){return}if(u(H)){return}if(B>=0){if(B==0){C=H}else{C=$(H).children("TocEntry")[B-1]}}else{var E=k(H);var G=t.ToRelative(new MadCap.Utilities.Url(E.GetPath()));var C=s(H,G.FullPath.toLowerCase(),true);if(!C){C=s(H,G.PlainPath.toLowerCase(),false)}}j=null;o=null;x(C)}function y(z){var A=MadCap.Dom.GetAttribute(z,"Chunk");if(A!=null){b.LoadChunk(z,A,function(B){b.GetTocNode(j,o,x)});return true}return false}function u(z){var A=$(z).attr("MergeHint")||-1;if(A>=0){b.LoadMerge(z,function(B){b.GetTocNode(j,o,x)});return true}return false}};this.GetEntrySequenceIndex=function(u,t,w){this.GetTocNode(u,t,v);function v(y){var x=-1;if(y!=null){x=f(y)}w(x)}};this.GetIndexTotalForEntry=function(u,t,w){this.GetTocNode(u,t,v);function v(y){var z=-1;if(y!=null){var x=y;while(x.parentNode!=i){x=x.parentNode}z=MadCap.Dom.GetAttributeInt(x,"DescendantCount",-1)}w(z)}};function g(){for(var t=0,u=n.length;t<u;t++){n[t]()}}function d(u,w){var t=null;for(var v=0;v<u.childNodes.length;v++){if(u.childNodes[v].nodeName=="TocEntry"&&MadCap.Dom.GetAttribute(u.childNodes[v],"Title")==w){t=u.childNodes[v];break}}return t}function s(v,t,x){var y=null;var B=MadCap.Dom.GetAttribute(v,"Link");if(B!=null){B=B.substring("/".length);B=B.replace(/%20/g," ");B=B.toLowerCase()}if(B==t){y=v}else{for(var w=0;w<v.childNodes.length;w++){var z=v.childNodes[w];if(z.nodeType!=1){continue}var A=MadCap.Dom.GetAttribute(z,"Link");if(A==null){continue}A=A.substring("/".length);A=A.replace(/%20/g," ");A=A.toLowerCase();if(!x){var C=A.indexOf("#");if(C!=-1){A=A.substring(0,C)}var u=A.indexOf("?");if(u!=-1){A=A.substring(0,u)}}if(A==t){y=z;break}}}return y}function q(w,t,x){if(w=="previous"){v(t)}else{if(w=="next"){z(t)}}function A(F){var B=null;if(F!=null){var E=MadCap.Dom.GetAttribute(F,"Link");if(E==null){q(w,F,x);return}var C=new MadCap.Utilities.Url(E);var D=C.Extension.toLowerCase();var G=h.GetMasterHelpsystem();if(G.UseCustomTopicFileExtension){if(D!=G.CustomTopicFileExtension){q(w,F,x);return}}else{if(D!="htm"&&D!="html"){q(w,F,x);return}}B=F}x(B)}function v(E){function F(H){var G=p(H,"TocEntry");if(G==null){D=H}else{D=G;if(y(G,F)){return}if(u(G,C)){return}}A(D)}function C(H,I,J,G){if(I){F(G)}else{F(H)}}var D=null;for(var B=E.previousSibling;B!=null;B=B.previousSibling){if(B.nodeName=="TocEntry"){D=B;break}}if(D!=null){if(y(D,F)){return}if(u(D,C)){return}F(D);return}else{if(E.parentNode.nodeType==1){D=E.parentNode}}A(D)}function z(D){function E(H){var G=$(H).children("TocEntry")[0];for(var F=H;F!=null&&G==null;F=F.parentNode){G=$(F).next("TocEntry")[0]}A(G)}function C(G,H,I,F){if(H){A(I);return}E(G)}var B=null;if(y(D,E)){return}if(u(D,C)){return}E(D)}function y(C,B){var D=MadCap.Dom.GetAttribute(C,"Chunk");if(D!=null){b.LoadChunk(C,D,B);return true}return false}function u(C,B){var D=$(C).attr("MergeHint")||-1;if(D>=0){b.LoadMerge(C,B);return true}return false}}function p(t,w){var v=$(t).children(w+":last")[0];if(v!=null){var u=p(v,w);if(u!=null){return u}return v}return null}function k(u){var w=null;var t=u;while(true){if(t==t.ownerDocument.documentElement){w=h;break}var v=MadCap.Dom.GetAttributeInt(t,"ownerHelpSystemIndex",-1);if(v>=0){w=a[v];break}t=t.parentNode}return w}function m(u){var x="";var w=-1;var v=$(u).children("TocEntry")[0];if(v!=null){x=encodeURIComponent(MadCap.Dom.GetAttribute(u,"Title"));w=0}else{w=$(u).index()+1}if(x.length>0){x+="|"}x+=("_____"+w);for(var t=u.parentNode;t!=null&&t.parentNode.nodeType==1;t=t.parentNode){if(x==null){x=""}if(x.length>0){x="|"+x}x=encodeURIComponent(MadCap.Dom.GetAttribute(t,"Title"))+x}return x}function f(w){if(w.parentNode==w.ownerDocument.documentElement){return 0}var v=0;var z=MadCap.Dom.GetAttribute(w,"Link");if(z!=null){v++}for(var t=w.previousSibling;t!=null;t=t.previousSibling){if(t.nodeType!=1){continue}var y=MadCap.Dom.GetAttributeInt(t,"DescendantCount",0);v+=y;var z=MadCap.Dom.GetAttribute(t,"Link");if(z!=null){var u=new MadCap.Utilities.Url(z);var x=u.Extension.toLowerCase();if(x=="htm"||x=="html"){v++}}}return v+f(w.parentNode)}};MadCap.WebHelp.TocFile.TocType={Toc:0,BrowseSequence:1};MadCap.WebHelp.AliasFile=function(h,a,e){var d=null;var f=a;var i=null;var g=null;(function(){})();this.Load=function(j){MadCap.Utilities.Xhr.Load(h,true,function k(l){if(l){d=l.documentElement}j()})};this.GetIDs=function(){var j=new Array();c();g.ForEach(function(k,l){j[j.length]=k;return true});return j};this.GetNames=function(){var j=new Array();c();i.ForEach(function(k,l){j[j.length]=k;return true});return j};this.LookupID=function(o){var l=false;var j=null;var m=null;if(o){if(typeof(o)=="string"&&o.indexOf(".")!=-1){var k=o.indexOf("|");if(k!=-1){j=o.substring(0,k);m=o.substring(k+1)}else{j=o}l=true}else{var n=b(o);if(n!=null){l=true;j=n.Topic;m=n.Skin}}}else{l=true}if(j){j=f.ContentFolder+j}return{Found:l,Topic:j,Skin:m}};function b(k){var j=null;c();if(i!=null){if(typeof(k)=="string"){j=i.GetItem(k);if(j==null){j=g.GetItem(k)}}else{if(typeof(k)=="number"){j=g.GetItem(k.toString())}}}return j}function c(){if(i==null){if(d){i=new MadCap.Utilities.Dictionary();g=new MadCap.Utilities.Dictionary();var p=d.getElementsByTagName("Map");for(var m=0;m<p.length;m++){var k=p[m].getAttribute("Link");var o=p[m].getAttribute("Skin");var l={Topic:k,Skin:o};var j=p[m].getAttribute("Name");if(j!=null){i.Add(j,l)}var n=p[m].getAttribute("ResolvedId");if(n!=null){g.Add(n,l)}}}}}};MadCap.WebHelp.IndexEntry=function(g,f){var e=MadCap.Dom.GetChildNodeByTagName(g,"Links",0).childNodes;var d=e.length;var b=0;this.Term=MadCap.Dom.GetAttribute(g,"Term");this.IndexLinks=new Array();this.Level=f;this.GeneratedReferenceType=MadCap.Dom.GetAttribute(g,"GeneratedReferenceType");for(var c=0;c<d;c++){var a=e[c];if(a.nodeType!=1){continue}this.IndexLinks[b]=new MadCap.WebHelp.IndexLink(a);b++}};MadCap.WebHelp.IndexLink=function(a){this.Title=MadCap.Dom.GetAttribute(a,"Title");this.Link=MadCap.Dom.GetAttribute(a,"Link")};/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Default")){return}var I=MadCap.Utilities.HasRuntimeFileType("TriPane");var a=I||MadCap.Utilities.IsRuntimeFileType("Default");var j=null;var af="search-";var C=null;function ac(aJ){MadCap.DEBUG.Log.AddLine(window.name+"onload");MadCap.DEBUG.Log.AddLine(window.name+"hash: "+document.location.hash);MadCap.DEBUG.Log.AddLine(window.name+"search: "+document.location.search);if($.browser.msie&&$.browser.version<=9){var aG=$("#search-field");if(aG.css("direction")=="rtl"){aG.css({"border-top-left-radius":aG.css("border-top-right-radius"),"border-top-right-radius":aG.css("border-top-left-radius"),"border-bottom-left-radius":aG.css("border-bottom-right-radius"),"border-bottom-right-radius":aG.css("border-bottom-left-radius")})}var aK=$("#contentBody");if(aK.css("direction")=="rtl"){aK.css({"border-top-left-radius":aK.css("border-top-right-radius"),"border-top-right-radius":aK.css("border-top-left-radius")})}}$("input, textarea").placeholder();$(".tabs .tabs-nav li").click(s);$("ul.navigation ul li").mouseenter(p);$("#home").click(z);$(".search-submit").click(function(aL){Z(aL)});$("#search-field, #search-field-sidebar, .search-field").keypress(function(aL){if(aL.which!=13){return}Z(aL);aL.preventDefault()});$(".search-filter").click(function(aM){var aN=$(this);var aL=$(".search-filter-content",this);if(aN.hasClass("open")){h(0,0,aL,aN)}else{$(this).addClass("open");if(window.PIE){$(".search-submit-wrapper").each(function(){PIE.detach(this);PIE.attach(this)})}aL.fadeIn(200);aL.css("max-height",$(window).height()-aL.offset().top)}});if(!$.browser.mobile){$(".search-filter").mouseenter(function(aL){clearTimeout(C)});$(".search-filter").mouseleave(function(aM){var aL=$(this);var aN=$(".search-filter-content",this);h(200,500,aN,aL)})}$("#navigationResizeBar").mousedown(ad);$("#show-hide-navigation").click(B);P(parseInt($("#navigation").css("width")));var aI=$("title");aI.attr("data-title",document.title);$("#topic").load(function(){ai(0);MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-title",null,function(aM){var aL=aI.attr("data-title");var aN=aL;if(!MadCap.String.IsNullOrEmpty(aL)){aN+=" - "}document.title=aN+aM[0]});MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-topic-id",null,function(aL){aE=aL[0];if(aE!=null){au()}})});if(I){$(".print-button").click(function(aL){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"print")});$(".expand-all-button").click(function(aM){var aL=$(this);if(aL.hasClass("expand-all-button")){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"expand-all")}else{if(aL.hasClass("collapse-all-button")){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"collapse-all")}}MadCap.Utilities.ToggleButtonState(this)});$(".remove-highlight-button").click(function(aL){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"remove-highlight")})}$(".previous-topic-button").click(function(aL){V()});$(".next-topic-button").click(function(aL){x()});$(".side-menu-button").click(function(aL){aL.preventDefault();$(".off-canvas").toggleClass("active")});j=$(document).find(".tab")[0];var aH=$(document.documentElement).attr("data-mc-path-to-help-system");var aF="Data/HelpSystem.xml";if(aH){aF=aH+aF}MadCap.WebHelp.HelpSystem.LoadHelpSystem(aF,function(aL){an=aL;i=new MadCap.WebHelp.SearchPane(an,$("#searchPane"));if(an.LiveHelpEnabled){aa=new MadCap.WebHelp.FeedbackController(an.LiveHelpServer);aa.Init(function(){if(aa.PulseActive){$(document.documentElement).addClass("pulse-active");P(parseInt($("#navigation").css("width")))}if(aa.FeedbackActive){$(document.documentElement).addClass("feedback-active");o()}})}if(I&&!MadCap.String.IsNullOrEmpty(an.DefaultSkin.Tabs)){w()}ak();if(document.location.hash.length>1){ao()}else{D(an.DefaultStartTopic)}if(I){R(an.DefaultSkin)}if(!an.IsResponsive){$("html").addClass("web")}else{if(an.IsTabletLayout()){z()}}an.LoadSearchFilters().then(function(aP){var aM=aP?aP.map:null;var aT=[];var aX=false;if(aM){for(var aQ in aM){var aN=aM[aQ];if(!MadCap.String.IsNullOrEmpty(aN.c)){aT.push(aQ);aX|=aN.o!=-1}}}if(aT.length==0){if(window.PIE){$(".search-submit-wrapper").each(function(){PIE.attach(this)})}$("#SearchTab").closest("div").empty();return}$(".search-filter-wrapper").show();if(window.PIE){$(".search-filter, .search-submit-wrapper").each(function(){PIE.attach(this)})}aT.sort(function(aY,a1){var a0=aM[aY];var aZ=aM[a1];if(aX&&a0.group!=aZ.group){return a0.group-aZ.group}else{if(a0.o==-1||aZ.o==-1||a0.o==aZ.o){return aY.localeCompare(a1)}else{return a0.o-aZ.o}}});if(I&&$(".search-bar").css("display")=="none"){$("#SearchTab").closest(".tab").remove();return}var aS=$("#search ul");for(var aR=0,aO=aT.length;aR<aO;aR++){$(".search-filter-content ul").append($("<li></li>").text(aT[aR]));var aV=$("<li/>");aV.addClass("SearchFilterEntry tree-node tree-node-leaf");var aW=$('<div class="SearchFilter" />');var aU=$('<span class="label" />');aU.text(aT[aR]);aW.append(aU);aV.append(aW);aS.append(aV)}$(".search-filter-content li").click(function(a3){var aY=$(a3.target);var a1=aY.text().trim();var aZ=aY.closest(".search-bar").children(".search-field");var a2=aZ.val();var a0=aY.closest(".search-filter");var a4=aY.closest(".search-filter-content");Y(a1);f(a1,a0);h(0,0,a4,a0);aq(a2,a1)});$(".SearchFilter").click(function(a2){var aY=$(a2.target).closest(".SearchFilterEntry");var a1=$("#search-field-sidebar").val();$(".SearchFilterEntry.tree-node-selected").removeClass("tree-node-selected");if(aY.hasClass("SearchFilterEntry")){aY.addClass("tree-node-selected");var a0=aY.find(".SearchFilter").text().trim();var aZ=$("#search-field-sidebar");if(!aZ.attr("data-placeholder")){aZ.attr("data-placeholder",aZ.attr("placeholder"))}aZ.attr("placeholder",aZ.attr("data-placeholder")+" "+a0);Y(a0,this);aq(a1,a0)}})});ax(aJ)})}function h(aH,aI,aF,aG){if(C){clearTimeout(C)}C=setTimeout(function(){$(aF).fadeOut(aH,function(){$(aG).removeClass("open")})},aI)}function J(aF){$(".search-field").val(aF);$("#search-field-sidebar").val(aF)}function Y(aG){$(".search-filter").data("filter",aG);if(!I){var aF=$(".search-field");if(!aF.attr("data-placeholder")){aF.attr("data-placeholder",aF.attr("placeholder"))}aF.attr("placeholder",aF.attr("data-placeholder")+" "+aG)}else{$(".search-filter > span").text(aG)}}function f(aI,aH){var aJ=$(".search-filter-content",aH);var aF=aJ.children()[0];var aG=$(aF).children()[0];aI!==$(aG).text()?$(".search-filter").addClass("selected"):$(".search-filter").removeClass("selected")}var b=window.innerWidth;var ax=MadCap.Utilities.Debounce(function(){var aH=window.innerWidth;if(an.IsResponsive){var aK=an.IsTabletLayout();var aG=an.IsTabletLayout(b);if(!aK){$("#navigation").removeAttr("role");$("body").removeClass("active");$("html").addClass("web");if(aG){z()}if(j){var aI=$(j);if(!aI.hasClass("active")){var aF=aI.find("li");var aJ=$(aF[0]);aJ.removeClass("tabs-nav-inactive");aJ.addClass("tabs-nav-active");aI.addClass("active")}}else{if(!j&&$(document).find(".tab.active").length==0){j=$($(document).find(".tab")[0]);G("Toc",j)}}}else{if($("#navigation").attr("role")!=="undefined"){$("#navigation").attr("role","complementary")}if(!aG){var aI=$(".tab.active");j=aI.length&&aI.find("li").text()!="SearchTab"?$(".tab.active"):j;$(".tab .tabs-nav-active").removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");$(".tab.active").removeClass("active")}$("html").removeClass("web")}if((aK&&!aG)||(!aK&&aG)){aA()}}P(parseInt($("#navigation").css("width")));b=aH},50);function aA(){var aH=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aM=$("#navigation");var aL=$("#contentBody");var aG=$("#navigationResizeBar");var aI=!aM.attr("style")||!aL.attr("style");var aK=!aM.attr("data-mc-last-width")||!aL.attr("data-mc-last-width");if(aI&&aK){return}if(!an.IsTabletLayout()){var aJ=aM.attr("data-mc-last-width");if(aJ){aM.css("width",aJ);var aF=aL.attr("data-mc-last-width");if(aF){aL.css(aH,aF)}}}else{var aJ=aM.css("width");if(aJ){aM.attr("data-mc-last-width",aJ);aM.removeAttr("style");var aF=aL.css(aH);if(aF){aL.attr("data-mc-last-width",aF)}aL.removeAttr("style")}}}function u(aF){MadCap.DEBUG.Log.AddLine(window.name+"onhashchange: "+document.location.hash);if(document.location.hash.length>1){ao()}else{D(an.DefaultStartTopic)}}function o(){$(".star-buttons").click(O);M();$(".buttons").on("click",".login-button",function(aF){L=new MadCap.Feedback.LoginDialog(aa,aa.PulseEnabled?"pulse":"new");if(!aa.PulseEnabled){$(L).bind("closed",function(){M()})}L.Show()});$(".buttons").on("click",".edit-user-profile-button",function(aF){if(aa.PulseEnabled){document.location.hash="pulse-#!streams/"+aa.PulseUserGuid+"/settings"}else{L=new MadCap.Feedback.LoginDialog(aa,"edit");$(L).bind("closed",function(){M()});L.Show()}})}function Z(aH){var aG=av(aH);if(!MadCap.String.IsNullOrEmpty(aG.Query)){var aF=af+aG.ToString();if(I){document.location.hash=aF}else{document.location=an.SearchUrl+"#"+aF}}}function av(aL){var aO=$(aL.target).closest(".search-bar-container");var aM=$("input",aO).first();var aG=$(".search-filter",aO);var aP=aM.val();if(aP){aP=MadCap.Utilities.Url.StripInvalidCharacters(aP)}var aN;var aJ=aO.attr("id");if(I&&aJ&&aJ.indexOf("sidebar")!=-1){aN=$(".SearchFilterEntry.tree-node-selected").text()}else{aN=aG.data("filter")}if(!aN){var aI=document.location.hash;var aK=aI.lastIndexOf("?f=");if(aK!==-1){var aF=aI.substr(aK+3);if(aF){aN=aF}}}aN=aN?aN.trim():aN;var aH=E(aN,aO);return new MadCap.WebHelp.Search.SearchQuery(aP,aH,null)}function E(aG,aH){var aF=$.trim($(".search-filter li",aH).first().text());if(aG&&aG!=aF){return MadCap.Utilities.Url.StripInvalidCharacters(aG)}return null}function aB(aG){var aF=MadCap.WebHelp.Search.SearchQuery.Parse(aG);if(!I&&!MadCap.Utilities.HasRuntimeFileType("Search")){document.location=an.SearchUrl+"#"+af+aF.ToString()}else{J(aF.Query);if(!MadCap.String.IsNullOrEmpty(aF.Filter)){Y(aF.Filter);f(aF.Filter,document)}k(aF.Query,aF.Filter,aF.PageIndex)}}function aq(aG,aF){if($("#searchPane").is(":visible")&&!MadCap.String.IsNullOrEmpty(aG)){at(new MadCap.WebHelp.Search.SearchQuery(aG,E(aF),null))}}function k(aI,aG,aM,aL,aJ,aK,aH){if(typeof aL=="undefined"){aL=true}if(typeof aJ=="undefined"){aJ=an.DisplayCommunitySearchResults}if(typeof aK=="undefined"){aK=an.CommunitySearchResultsCount}if(typeof aH=="undefined"){aH=0}if(!aM){aM=1}$("#resultList").remove();ag("search");var aF={};if(aL){aF.searchContent=true;aF.content={filterName:aG}}if(aJ){aF.searchCommunity=true;aF.community={pageSize:aK,pageIndex:aH}}i.Search(aI,aF).then(function(aN){K(aI,aN.includedTerms,aN.content,aN.community,aM)});$("body").removeClass("active")}function r(aM,aH){if($("pagination")){$("#pagination").remove()}var aJ=aH.length;if(aJ>0){var aP=$("<div id='pagination'></div>");var aL=Math.ceil(aJ/an.ResultsPerPage);var aN=10;var aO=5;var aQ=Math.max(Math.min(aM-aO,aL-aN+1),1);var aK=Math.min(aQ+aN-1,aL);if(aM>1){aF=$("<a>Previous</a>");aP.append(aF);aF.on("click",{value:aM-1},A)}for(var aG=aQ;aG<=aK;aG++){var aI="<a id='selected'>"+aG+"</a>";if(aG!=aM){aI="<a>"+aG+"</a>"}var aF=$(aI);aP.append(aF);aF.on("click",{value:aG},A)}if(aM<aL){aF=$("<a>Next</a>");aP.append(aF);aF.on("click",{value:aM+1},A)}$("#searchPane").append(aP)}}function A(aH){aH.preventDefault();var aG="#"+af;if(document.location.hash.indexOf(aG)==0){var aF=MadCap.WebHelp.Search.SearchQuery.Parse(document.location.hash.substring(aG.length));aF.PageIndex=aH.data.value;at(aF)}}function at(aI,aG,aF){var aH=aI.ToString();aH=MadCap.Utilities.Url.StripInvalidCharacters(aH);document.location.hash="#"+af+aH}function K(aY,aZ,aV,aL,aN){var aK=$("#results-heading")[0];var aJ=(aV!=null?aV.length:0);var aR=aJ+(aL!=null?aL.TotalRecords:0);var aP=I?"#":"";$(".query",aK).text('"'+decodeURIComponent(aY)+'"');$(".total-results",aK).text(aR);if(aN<1||aN>Math.ceil(aR/an.ResultsPerPage)){$("#pagination").remove();return}var aT=document.createElement("ul");aT.setAttribute("id","resultList");if(aV==null){aT.setAttribute("class","communitySearch")}var aG=an.ResultsPerPage;if(aL!=null&&aL.Activities.length>0){U(aT,aY,aL);aG-=1}if(aV!=null&&aG>0){var aU=(aN-1)*an.ResultsPerPage;var a0=aU+aG>aV.length?aV.length:aU+aG;for(var aX=aU;aX<a0;aX++){var aQ=aV[aX];var a2=aQ.Title;var aO=aQ.Link;var aF=aQ.AbstractText;var aS=document.createElement("li");aT.appendChild(aS);var aM=document.createElement("h3");$(aM).addClass("title");aS.appendChild(aM);var a1=document.createElement("a");a1.setAttribute("href",aP+aO+"?Highlight="+aY);a1.appendChild(document.createTextNode(a2));d(a1,aZ);aM.appendChild(a1);if(aF!=null){var aW=document.createElement("div");$(aW).addClass("description");aW.appendChild(document.createTextNode(aF));d(aW,aZ);aS.appendChild(aW)}var aH=document.createElement("div");$(aH).addClass("url");aS.appendChild(aH);var aI=document.createElement("cite");aI.appendChild(document.createTextNode(aO));aH.appendChild(aI)}}$(aT).appendTo($("#searchPane"));if(an.LiveHelpEnabled){aa.LogSearch(an.LiveHelpOutputId,null,aJ,null,aY)}if(aR>an.ResultsPerPage){r(aN,aV)}else{$("#pagination").remove()}if(MadCap.IsIOS()){$(".off-canvas-wrap").scrollTop(1)}$("#contentBodyInner, .off-canvas-wrap").scrollTop(0);$("#resultList a").first().focus()}function d(aF,aH){var aI=$(aF);if(aH){for(var aG=0;aG<aH.length;aG++){aI.highlight(aH[aG],null,"b")}}}function U(aQ,aX,aI){var aP=document.createElement("li");aP.setAttribute("id","community-results");aQ.appendChild(aP);var aK=document.createElement("h3");aK.setAttribute("class","title");var aT=document.createElement("a");aT.setAttribute("href","#communitysearch-"+aX);aT.appendChild(document.createTextNode("Community Results"));aK.appendChild(aT);var aH=document.createElement("span");aH.appendChild(document.createTextNode(" ("+aI.TotalRecords+")"));aK.appendChild(aH);var aM=document.createElement("ul");aM.setAttribute("id","communityResultList");aP.appendChild(aK);aP.appendChild(aM);var aF=new Date();var aG=new Date(aF.getUTCFullYear(),aF.getUTCMonth(),aF.getUTCDate(),aF.getUTCHours(),aF.getUTCMinutes(),aF.getUTCSeconds());for(var aW=0;aW<aI.Activities.length;aW++){var a0=aI.Activities[aW];var aL=document.createElement("li");aM.appendChild(aL);var aR=document.createElement("a");aR.setAttribute("class","activityText");aR.setAttribute("href","#pulse-#!streams/"+a0.FeedId+"/activities/"+a0.Id);aR.appendChild(document.createTextNode(a0.Text));var aY=document.createElement("div");aY.setAttribute("class","activityInfo");var aJ=document.createElement("a");aJ.setAttribute("class","activityCreator");aJ.setAttribute("href","#pulse-#!streams/"+a0.CreatedBy+"/activities");aJ.appendChild(document.createTextNode(a0.CreatedByDisplayName));var aV=document.createElement("span");aV.appendChild(document.createTextNode(" to "));var aN=a0.FeedUrl!=null?"#"+a0.FeedUrl:"#pulse-#!streams/"+a0.FeedId+"/activities";var aO=document.createElement("a");aO.setAttribute("class","activityFeed");aO.setAttribute("href",aN);aO.appendChild(document.createTextNode(a0.FeedName));var aZ=new MadCap.Utilities.DateTime(a0.PostedUtc);var aS=new MadCap.Utilities.TimeSpan(aZ.Date,aG);var aU=document.createElement("span");aU.setAttribute("class","activityTime");aU.appendChild(document.createTextNode(aS.ToDurationString()));aY.appendChild(aJ);aY.appendChild(aV);aY.appendChild(aO);aY.appendChild(aU);aL.appendChild(aR);aL.appendChild(aY)}}function ad(aG){MadCap.DEBUG.Log.AddLine("nav resizeBar : mousedown");if($(aG.target).attr("id")=="show-hide-navigation"){return}if($(this).hasClass("nav-closed")){return}var aF=document.createElement("div");aF.setAttribute("id","mousemove-sheet");document.body.appendChild(aF);$(document).mousemove(m);$(document).mouseup(n);$(document).bind("selectstart",al);aG.preventDefault()}function al(aF){return false}function m(aH){MadCap.DEBUG.Log.AddLine("nav resizeBar : mousemove : "+aH.pageX);var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aG=aH.pageX;if(aF=="right"){aG=window.innerWidth-aH.pageX}e(aG)}function n(aG){MadCap.DEBUG.Log.AddLine("nav resizeBar : mouseup");$(document).off("mousemove",m);$(document).off("mouseup",n);$(document).off("selectstart",al);var aF=$("#mousemove-sheet")[0];window.setTimeout(function(){aF.parentNode.removeChild(aF)},1)}function e(aG){var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";if(aF=="left"){if(aG<175||aG>(window.innerWidth*0.85)){return}}else{if(aF=="right"){if(aG<(window.innerWidth*0.15)||aG>(window.innerWidth-175)){return}}}P(aG);$("#navigationResizeBar").css(aF,aG+"px");$("#navigation").css("width",aG+"px");$("#contentBody").css(aF,(aG+5)+"px")}function P(aI){var aH=$(".tabs-nav li");if(ay()===0){return}$.each(aH,function(aK,aL){var aJ=$(aL);if(aJ.hasClass("tab-collapsed")){aJ.removeClass("tab-collapsed")}});if(aI<ay()+4){for(var aG=aH.length-1;aG>=0;aG--){var aF=$(aH[aG]);aF.addClass("tab-collapsed");if(aI>ay()+18){break}}}}function ay(){var aG=0;var aF=$(".tabs-nav li");aF.each(function(aI,aH){var aJ=$(aH);if(aJ.is(":visible")){aG+=parseInt(aJ.css("width"))}});return aG}function z(){var aG=$(document).find(".tab");for(var aF=0;aF<aG.length;aF++){var aH=$(aG[aF]);aH.show();aH.removeClass("active")}$("#search-sidebar").removeClass("index").removeClass("glossary");$(".tabs-nav-active").removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");$(".responsive-link-list").remove()}function p(aI){var aL=$(aI.currentTarget).closest("li");var aK=aL.children("ul").first();if(aK.length){var aH=aK.width();var aG=$("html").attr("dir")=="rtl";var aJ=aG?aL.offset().left:$(window).width()-aL.offset().left-aL.width();var aF=aG?"openRight":"openLeft";aK.toggleClass(aF,aH>aJ)}}function B(aF){var aG=$("#navigation");if(!aG.hasClass("nav-closed")){l("hide")}else{l("show")}}function l(aI){var aF=$(document.documentElement).hasClass("left-layout")?"left":$(document.documentElement).hasClass("right-layout")?"right":"left";var aK=$("#navigation");var aG=$("#navigationResizeBar");var aJ=$("#contentBody");if(aI=="show"){aG.css(aF,aG.attr("data-mc-last-width"));var aH=aJ.attr("data-mc-last-width");if(aH==aJ.css("left")){aH=aK.innerWidth()+aG.innerWidth()+1;aJ.attr("data-mc-last-width",aH+"px")}else{aJ.css(aF,aH)}aK.removeClass("nav-closed");aG.removeClass("nav-closed");aJ.removeClass("nav-closed");if(an.IsResponsive){aA()}}else{if(aI=="hide"){aJ.attr("data-mc-last-width",aJ.css(aF));aJ.removeAttr("style");aG.attr("data-mc-last-width",aG.css(aF));aG.css(aF,0);aK.attr("data-mc-last-width",aK.css("width"));aK.addClass("nav-closed");aG.addClass("nav-closed");aJ.addClass("nav-closed")}}}function ao(){if(document.location.hash.length==0){return}var aI=MadCap.Utilities.Url.StripInvalidCharacters(document.location.hash);if(MadCap.String.IsNullOrEmpty(aI)){document.location.hash="";return}var aG=aI.substring(1);var aJ=decodeURIComponent(aG);aJ=MadCap.Utilities.Url.StripInvalidCharacters(aJ);if(MadCap.String.Contains(aJ,"cshid=")||MadCap.String.Contains(aJ,"searchQuery=")||MadCap.String.Contains(aJ,"skinName=")){aw();return}else{if(MadCap.String.StartsWith(aG,af)){aB(aG.substring(af.length));return}else{if(MadCap.String.StartsWith(aJ,"communitysearch-")){var aH=aJ.substring("communitysearch-".length);J(aH);k(aH,null,1,false,true,-1,0);return}else{if(MadCap.String.StartsWith(aJ,"pulse-")){var aF=aJ.substring("pulse-".length);t(aF);return}}}}ab(aJ)}function ab(aH){var aJ=new MadCap.Utilities.Url(aH);if(aJ.IsAbsolute){if(an.PreventExternalUrls){aH=an.DefaultStartTopic}else{var aI=aJ.Query.indexOf("?");var aG=aJ.Query.lastIndexOf("?");var aF="";if(aI!=aG){aF=aJ.Query.substr(aI,aG)}if(aJ.FullPath.indexOf("http://")!=0){aH=an.ContentFolder+aJ.ToNoQuery().FullPath+(MadCap.String.IsNullOrEmpty(aF)?"":aF)}else{aH=aJ.ToNoQuery().FullPath+(MadCap.String.IsNullOrEmpty(aF)?"":aF)}}}else{aH=an.ContentFolder+aJ.ToNoQuery().FullPath}D(aH)}function D(aQ){if(!a){return}var aG=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));if(!I){var aP=new MadCap.Utilities.Url(aG.PlainPath);if(!aP.IsFolder){aP=aP.ToFolder()}var aF=aP.CombinePath(aQ);var aH=MadCap.Utilities.Url.StripInvalidCharacters(aF.FullPath);document.location=aH}else{$(document.documentElement).addClass("has-topic");ag("topic");try{frames.topic.location.replace(aQ)}catch(aJ){document.getElementById("topic").src=aQ}var aM=null,aO=null,aL=null;if(!MadCap.String.IsNullOrEmpty(aG.Fragment)&&aG.Fragment.length>1){aO=aG.QueryMap.GetItem("TocPath");if(aO!=null){aM="Toc"}else{aL=aG.QueryMap.GetItem("BrowseSequencesPath");if(aL!=null){aM="BrowseSequences"}}if(aG.HashMap.GetItem("cshid")==null){var aK=aG.Query.indexOf("?");var aI=aG.Query.lastIndexOf("?");var aN="";if(aK!=aI){aN=aG.Query.substr(aK,aI)}aG=new MadCap.Utilities.Url(aG.Fragment.substr(1));if(!MadCap.String.IsNullOrEmpty(aN)){aG.Query=aN}}}else{aG=new MadCap.Utilities.Url(an.DefaultStartTopic).ToRelative(an.GetContentPath())}an.SetBrowseSequencePath(aL,aG);if(an.SyncTOC){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"sync-toc",[aM,aM=="Toc"?aO:aL,aG.FullPath],null)}}}function t(aF){$(document.documentElement).removeClass("has-topic");ag("pulse");var aG=aF.substring(aF.indexOf("#"));MadCap.Utilities.CrossFrame.PostMessageRequest(frames["community-frame-html5"],"pulse-hash-changed",[aG]);aa.Init(function(){if(aa.PulseActive){frames.pulse.location.replace(aa.PulseServer+aG)}})}function aw(){var aL=document.location.hash.substring(1);var aM=new MadCap.Utilities.Dictionary();var aI=aL.split("&");$(aI).each(function(aO,aP){var aN=aI[aO].split("=");aM.Add(aN[0].toLowerCase(),aN[1])});var aH=aM.GetItem("searchQuery".toLowerCase());if(aH!=null){J(decodeURIComponent(aH));var aG=MadCap.String.ToBool(aM.GetItem("firstPick".toLowerCase()),false);if(aG){i.Search(aH,{searchContent:true}).then(function(aN){var aO=aN.content;if(aO.length>=1){ab(aO[0].Link)}})}else{aB(aH)}}else{var aK=aM.GetItem("cshid");if(aK!=null){ar=aK;an.LookupCSHID(aK,function(aO){if(aO.Found){D(aO.Topic)}else{D(an.DefaultStartTopic)}var aN=aM.GetItem("skinName".toLowerCase())||aO.Skin;if(aN!=null){var aP=an.GetSkin(aN);c(aP)}});return}else{D(an.DefaultStartTopic)}}var aF=aM.GetItem("skinName".toLowerCase());if(aF!=null){var aJ=an.GetSkin(aF);c(aJ)}}function aj(){if(document.location.hash.indexOf("#pulse-")!=0){return""}return document.location.hash.substring("#pulse-".length)}function c(aQ){R(aQ);if(MadCap.String.IsNullOrEmpty(aQ.Tabs)){$("#navigation").remove();$("#navigationResizeBar").remove();$(document.documentElement).removeClass("left-layout").removeClass("right-layout")}else{if(aQ.WebHelpOptions!=null&&aQ.WebHelpOptions.HideNavigationOnStartup!=null&&(MadCap.String.ToBool(aQ.WebHelpOptions.HideNavigationOnStartup,false))){l("hide")}if(aQ.NavigationPanePosition!=null&&aQ.NavigationPanePosition=="Right"){$(document.documentElement).removeClass("left-layout").addClass("right-layout")}if(aQ.NavigationPaneWidth!=null){var aP=MadCap.String.ToInt(aQ.NavigationPaneWidth,300);e(aP)}var aM=aQ.Tabs.split(",");var aK=["TOC","Index","Glossary","BrowseSequences","Community"];var aI=$(".tabs");for(var aJ=0,aG=aK.length;aJ<aG;aJ++){var aH=aK[aJ];if($.inArray(aH,aM)>=0){continue}if(aH=="TOC"){aH="Toc"}var aO=$("#"+aH+"Tab");if(aO.length==0){continue}var aF=aI.children(".tabs-nav").children("li").index(aO);var aN=aI.children(".tabs-panels").children(":eq("+aF+")");aO.remove();aN.remove()}var aL=aQ.DefaultTab;if(aL=="TOC"){aL="Toc"}G(aL,aI);T(aL)}if(aQ.Toolbar!=null&&MadCap.String.IsNullOrEmpty(aQ.Toolbar.Buttons)){$(".buttons").remove()}if(aQ.DisplaySearchBar=="false"){$(".search-bar").hide()}}function ag(aF){$("#topic").css("display",aF=="topic"?"block":"none");$("#topicContent").css("display",aF=="topic"?"block":"none");$("#pulse").css("display",aF=="pulse"?"block":"none");$("#searchPane").css("display",aF=="search"?"block":"none")}var q=null;function s(aL){var aF=$(this).attr("id");var aH=aF.substring(0,aF.length-"Tab".length);q=aH;G(aH,$(this).closest(".tabs"));if(an.IsTabletLayout()&&an.IsResponsive){var aJ=$(document).find(".tab");for(var aI=0;aI<aJ.length;aI++){var aK=$(aJ[aI]);if(!aK.hasClass("active")){aK.hide()}else{aK.show()}}var aG=$("#search-sidebar");var aM=aH.toLowerCase();aG.removeClass("index").removeClass("glossary");if(aM=="index"||aM=="glossary"){aG.addClass(aM)}}T(aH)}function G(aH,aK){var aG=$(".tabs-nav-active",aK);var aI=$("#"+aH+"Tab");var aJ=aG.closest(".tab");var aF=aI.closest(".tab");aG.removeClass("tabs-nav-active");$(".tabs-nav li").addClass("tabs-nav-inactive");if(aJ!=null){aJ.removeClass("active")}aI.removeClass("tabs-nav-inactive");aI.addClass("tabs-nav-active");if(aF!=null){aF.addClass("active")}if(an.IsResponsive&&aH!="Search"){j=$(".tab.active")}else{j=null}}function ak(){var aF=$("ul[data-mc-toc]");aF.each(function(){var aG=new MadCap.WebHelp.TocPane("Toc",an,this,false);aG.Init()})}function w(){var aF=an.DefaultSkin.DefaultTab;if(aF=="TOC"){T("Toc")}else{T(aF)}}function T(aF){var aG=null;if(aF=="Toc"){aG=aD()}else{if(aF=="Index"){aG=W()}else{if(aF=="Glossary"){aG=F()}else{if(aF=="BrowseSequences"){aG=g()}else{if(aF=="Community"){aG=aC()}}}}}if(aG||(aG&&an.IsResponsive&&!an.IsTabletLayout())){G(aF,aG)}}function aD(){if(S!=null){return}var aG=$("#toc");if(!aG.length){return}aG.addClass("loading");var aF=$('<ul class="tree" />');aG.append(aF);S=new MadCap.WebHelp.TocPane("Toc",an,aF[0],true);S.Init(function(){aG.removeClass("loading")});return aG.parent()}function W(){if(ah!=null){return}var aF=$("#index");aF.addClass("loading");ah=new MadCap.WebHelp.IndexPane(an);ah.Init($("#index .index-wrapper")[0],function(){aF.removeClass("loading")});return aF.parent()}function F(){if(N!=null){return}var aF=$("#glossary");aF.addClass("loading");N=new MadCap.WebHelp.GlossaryPane(an);N.Init(aF[0],function(){aF.removeClass("loading")});return aF.parent()}function g(){if(az!=null){return}var aG=$("#browseSequences");if(!aG.length){return}aG.addClass("loading");var aF=$('<ul class="tree" />');aG.append(aF);az=new MadCap.WebHelp.TocPane("BrowseSequences",an,aF[0],true);az.Init(function(){aG.removeClass("loading")});return aG.parent()}function aC(){if(H){return}H=true;var aF=$("#community-frame-html5");aa.Init(function(){if(aa.PulseActive){aF.attr("src",aa.PulseServer+"streams/my")}});return $pane.parent()}function R(aS){var aT=MadCap.String.ToBool(aS.UseBrowserDefaultSize,false);if(aT){return}var aI=MadCap.String.ToInt(aS.Top,0);var aQ=MadCap.String.ToInt(aS.Left,0);var aR=MadCap.String.ToInt(aS.Bottom,0);var aG=MadCap.String.ToInt(aS.Right,0);var aJ=MadCap.String.ToInt(aS.Width,800);var aK=MadCap.String.ToInt(aS.Height,600);var aF=aS.Anchors;if(aF){var aM=(aF.indexOf("Top")>-1)?true:false;var aH=(aF.indexOf("Left")>-1)?true:false;var aP=(aF.indexOf("Bottom")>-1)?true:false;var aL=(aF.indexOf("Right")>-1)?true:false;var aN=(aF.indexOf("Width")>-1)?true:false;var aO=(aF.indexOf("Height")>-1)?true:false}if(aH&&aL){aJ=screen.availWidth-(aQ+aG)}else{if(!aH&&aL){aQ=screen.availWidth-(aJ+aG)}else{if(aN){aQ=(screen.availWidth/2)-(aJ/2)}}}if(aM&&aP){aK=screen.availHeight-(aI+aR)}else{if(!aM&&aP){aI=screen.availHeight-(aK+aR)}else{if(aO){aI=(screen.availHeight/2)-(aK/2)}}}if(window==top){window.resizeTo(aJ,aK);window.moveTo(aQ,aI)}}function au(){$(".star-buttons").addClass("loading");aa.GetAverageRating(aE,function(aG,aF){$(".star-buttons").removeClass("loading");ai(aG)})}function ai(aJ){var aF=$(".star-buttons");var aM=$(".star-button",aF);var aL=aM.length;var aK=Math.ceil(aJ*aL/100);aM.css("opacity",0);for(var aH=0;aH<aL;aH++){var aI=aM[aH];var aG=$(aI);window.setTimeout((function(aO,aN){return function(){if(aO<=aK-1){MadCap.Utilities.SetButtonState(aN[0],2)}else{MadCap.Utilities.SetButtonState(aN[0],1)}aN.animate({opacity:1})}})(aH,aG),aH*50)}}function O(aI){var aF=$(aI.target);if(aI.target.tagName=="IMG"){aF=aF.closest(".star-button")}if(aF.hasClass("star-button")){var aH=$(".star-button",this).length;var aG=(aF.index()+1)*100/aH;aa.SubmitRating(aE,aG,null,function(){au()})}}function v(aF){ae(aF,function(aG){if(aG){document.location.hash=aG}})}function V(){v("previous")}function x(){v("next")}function ae(aG,aF){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-topic-url",null,function(aM){var aJ=new MadCap.Utilities.Url(decodeURIComponent(aM[0]));var aI=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));var aK=aI.QueryMap.GetItem("TocPath");var aL=aI.QueryMap.GetItem("BrowseSequencesPath");aI=aI.ToPlainPath();if(!aI.IsFolder){aI=aI.ToFolder()}var aH=aI.CombinePath(an.GetMasterHelpsystem().GetContentPath());aJ=aJ.ToRelative(aH);if(aL!=null){an.AdvanceTopic("BrowseSequences",aG,aL,aJ,aF)}else{an.AdvanceTopic("Toc",aG,aK,aJ,aF)}})}function y(){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"get-bs-path",null,function(aM){function aJ(aN){var aO=$(".current-topic-index-button");if(aN==-1){aO.addClass("disabled");return}aO.removeClass("disabled");$(".sequence-index").text(aN);aG.GetIndexTotalForEntry(aI,aF,function(aP){$(".sequence-total").text(aP)})}var aI=aM[0];var aF=new MadCap.Utilities.Url(decodeURIComponenet(aM[1]));var aL=new MadCap.Utilities.Url(decodeURIComponent(document.location.href));aL=new MadCap.Utilities.Url(aL.PlainPath);var aH=MadCap.String.EndsWith(aL.FullPath,"/")?aL:aL.ToFolder();aF=aF.ToRelative(aH);if(aI!=null){var aK=an.GetFullTocPath("browsesequences",aF.FullPath);if(aK){aI=aI?aK+"|"+aI:aK}}if(MadCap.String.IsNullOrEmpty(aI)||MadCap.String.StartsWith(aI,"_____")){aJ(-1);return}var aG=an.GetBrowseSequenceFile();aG.GetEntrySequenceIndex(aI,aF,aJ)})}function M(){Q=aa.GetUserGuid();var aF=$(".login-button");if(aF.length==0){aF=$(".edit-user-profile-button")}MadCap.Utilities.SetButtonState(aF[0],Q==null?1:2)}function ap(){if(L!=null){L.Hide(true)}}function am(aM){var aO=$("#topicContent");if(aO.length==0){var aJ=$("#topic").parent();aJ.append("<div id='topicContent'></div>");aO=$("#topicContent")}else{aO.empty()}aO.append(aM[2]);var aN=$(aM[1]);var aK=[],aP=[],aT=[];var aV=new MadCap.Utilities.Url(aM[0]);var aQ=new MadCap.Utilities.Url(document.location.href);var aG=aQ.ToFolder().ToRelative(aV);$.each(aN,function(aX,aY){if(!MadCap.String.IsNullOrEmpty(aY.localName)){var aW=aY.localName.toLowerCase();if(aW=="script"){var aZ=new MadCap.Utilities.Url($(aY).attr("src"));if(!aZ.IsAbsolute){aZ=aZ.ToRelative(aG)}aK.push(aZ.FullPath)}else{if(aW=="link"){aT.push(aY)}}}});var aI=aV.ToFolder().ToRelative(aQ.PlainPath);X(aT,aI,"href");$.each(aT,function(aX,aY){if($(aY).attr("mc-topic-css")){var aW=$(aY).attr("href");aW=aW.replace(".css","-topic.css");aP.push(aW)}else{aP.push($(aY).attr("href"))}});MadCap.Utilities.LoadStyleSheets(aP,$('link[href*="Styles.css"]')[0]);MadCap.Utilities.LoadScripts(aK,function(){},function(){},aO);var aR=new MadCap.Utilities.Url(document.location.href);aG=aV.ToFolder().ToRelative(aR.PlainPath);var aF=aO.find('a[href][href!="javascript:void(0);"]');aF=aF.not('[class*="MCPopupThumbnailLink"]').not('[class*="MCTopicPopup"]');var aL=aO.find('[class*="MCTopicPopup"]');var aS=aO.find('a[class="MCPopupThumbnailLink"]');var aU=aO.find("img[src]");var aH=aO.find("area[href]");X(aF,aG,"href","#");X(aL,aG,"href");X(aU,aG,"src");X(aS,aG,"href");X(aH,aG,"href","#");$(".MCWebHelpFramesetLink",aO).hide()}function X(aF,aG,aH,aI){$.each(aF,function(aL,aM){var aK=$(aM);var aJ=new MadCap.Utilities.Url(aK.attr(aH));if(!aJ.IsAbsolute){var aN=MadCap.Utilities.FixLink(aJ,aG,aI,an.ContentFolder);aK.attr(aH,aN)}})}MadCap.Utilities.CrossFrame.AddMessageHandler(function(aN,aK,aY,aZ,aF){var aT={Handled:false,FireResponse:true};if(aN=="get-href"){aY[aY.length]=document.location.href;aT.Handled=true;aT.FireResponse=true}if(aN=="get-return-url"){var aJ=new MadCap.Utilities.Url(document.location.href);var aX=null;if(aJ.Fragment.length>1){var aW=new MadCap.Utilities.Url(aJ.Fragment.substring(1));aX=aJ.QueryMap.GetItem("returnUrl")}aY[aY.length]=aX;aT.Handled=true;aT.FireResponse=true}else{if(aN=="navigate"){var aS=aK[0];if(aS){document.location.hash=MadCap.Utilities.Url.StripInvalidCharacters(aS)}aT.Handled=true;aT.FireResponse=true}else{if(aN=="navigate-topic"){var aS=aK[0];var aW=new MadCap.Utilities.Url(aS);if(aW.IsAbsolute){var aI=new MadCap.Utilities.Url(document.location.href);aI=new MadCap.Utilities.Url(aI.PlainPath);var aR=MadCap.String.EndsWith(aI.FullPath,"/")?aI:aI.ToFolder();var aO=aR.CombinePath(an.ContentFolder);aW=aW.ToRelative(aO)}if(aW.FullPath){var aP=MadCap.Utilities.Url.StripInvalidCharacters(aW.FullPath);if(document.location.hash.substring(1)==aP){document.location.hash=null}document.location.hash=aP}aT.Handled=true}else{if(aN=="navigate-home"){var aJ=new MadCap.Utilities.Url(document.location.href);document.location.href=aJ.PlainPath;aT.Handled=true}else{if(aN=="navigate-pulse"){var aS=aK[0];if(document.location.hash.length>1&&aS){var aV=aS.toLowerCase();if(aV==="feedback/account/register"||aS.toLowerCase()==="forgotpassword"){var aJ=new MadCap.Utilities.Url(document.location.hash.substring(1));var aX=aJ.QueryMap.GetItem("returnUrl");if(aX!=null){aX=escape(aX)}else{aX=document.location.hash.substring(1)}aS+="?returnUrl="+aX}}if(aS){document.location.hash="pulse-"+MadCap.Utilities.Url.StripInvalidCharacters(aS)}aT.Handled=true}else{if(aN=="navigate-previous"){V();aT.Handled=true}else{if(aN=="navigate-next"){x();aT.Handled=true}else{if(aN=="login-user"||aN=="login-pulse"){if(Q==null){var aQ=aN=="login-pulse"?"pulse":"new";L=new MadCap.Feedback.LoginDialog(aa,aQ);if(aQ=="new"){$(L).bind("closed",function(){M();aY[aY.length]=Q;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)})}L.Show();aT.Handled=true;aT.FireResponse=false}else{aY[aY.length]=Q;aT.Handled=true;aT.FireResponse=true}}else{if(aN=="get-csh-id"){aY[aY.length]=ar;aT.Handled=true;aT.FireResponse=true}else{if(aN=="get-user-guid"){aY[aY.length]=Q;aT.Handled=true;aT.FireResponse=true}else{if(aN=="get-topic-path-by-stream-id"){var aL=aK[0];aa.GetTopicPathByStreamID(aL,function(a1){aY[aY.length]=a1;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)},null,null);aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-topic-path-by-page-id"){var aH=aK[0];aa.GetTopicPathByPageID(aH,function(a1){aY[aY.length]=a1;MadCap.Utilities.CrossFrame._PostMessageResponse(aZ,aN,aY.length>0?aY:null,aF)},null,null);aT.Handled=true;aT.FireResponse=false}else{if(aN=="hash-changed"){var aP=aK[0];aP=aP.substring(1);history.pushState(null,null,document.location.pathname+document.location.hash+"$"+aP);aT.Handled=true;aT.FireResponse=false}else{if(aN=="forward-ajax-open-success"){var a0=aK[0];var aU=parseInt(aK[1]);var aM=aK[2];ag("pulse");MadCap.Utilities.CrossFrame.PostMessageRequest(frames.pulse,"ajax-open-success",[a0,aU,aM]);aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-pulse-hash"){var aG="";if(document.location.hash.indexOf("#pulse-")==0){aG=document.location.hash.substring("#pulse-".length)}aY[aY.length]=aG;aT.Handled=true;aT.FireResponse=true}else{if(aN=="login-complete"||aN=="logout-complete"){MadCap.Utilities.CrossFrame.PostMessageRequest(frames.pulse,"reload");MadCap.Utilities.CrossFrame.PostMessageRequest(frames["community-frame-html5"],"reload");MadCap.Utilities.CrossFrame.PostMessageRequest(frames.topic,"reload-pulse");ap();M();aT.Handled=true;aT.FireResponse=false}else{if(aN=="close-login-dialog"){ap();aT.Handled=true;aT.FireResponse=false}else{if(aN=="set-pulse-login-id"){if(aa!=null){aa.PulseUserGuid=aK[0]}M();aT.Handled=true;aT.FireResponse=false}else{if(aN=="get-parent-window-width"){aY[aY.length]=window.innerWidth;aT.Handled=true;aT.FireResponse=true}else{if(aN=="set-topic-content"){am(aK);aT.Handled=true;aT.FireResponse=false}}}}}}}}}}}}}}}}}}}}return aT},null);$(ac);$(window).resize(ax);$(window).hashchange(u);var S=null;var ah=null;var i=null;var N=null;var az=null;var H=null;var an=null;var aa=null;var aE=null;var Q=null;var ar=null;var L=null})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Default")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");var b=window.external&&window.external.attached&&window.external.attached();MadCap.WebHelp.TocPane=function(e,i,g,d){var f=this;this._Init=false;this._RuntimeFileType=e;this._RootUl=g;this._CanSync=d;this._HelpSystem=i;this._TocFile=this._RuntimeFileType=="Toc"?this._HelpSystem.GetTocFile():this._HelpSystem.GetBrowseSequenceFile();this._LoadedNodes=[];var h=null;var c=null;MadCap.Utilities.CrossFrame.AddMessageHandler(this.OnMessage,this);this._Initializing=false;this._InitOnCompleteFuncs=new Array();this.TreeNode_Expand=function(r){var s=r.target;var v=$(s).closest("li")[0];if(v==null){return}var u=$(v);var n=u.hasClass(f._TreeNodeLeafClass);if(!n){u.toggleClass(f._TreeNodeExpandedClass).toggleClass(f._TreeNodeCollapsedClass)}var k=u.find("> div img");var t=k.attr("data-mc-alt2");var q=k.attr("alt");if(t!=""){k.attr("alt",t);k.attr("data-mc-alt2",q)}if(f._IncludeIndicator){var w=u.find("> div a");if(w[0]!=null){var j=w.attr("href");if(!MadCap.String.IsNullOrEmpty(j)){f._SelectNode(v)}if(w[0]!=s){var p=w.attr("target");if(!MadCap.String.IsNullOrEmpty(j)){if(p!=null){window.open(j,p)}else{document.location.href=j}}}}}var m=f._LoadedNodes[u.attr("data-mc-id")];if(typeof m.n=="undefined"||m.n.length==0){m.childrenLoaded=true}if(!m.childrenLoaded){var l=$("a",u).first();var o=$("<ul/>");o.addClass(f._SubMenuClass);if(b){o.attr("data-mc-style","Navigation Panel Item")}f.LoadTocChildren(m,o,function(){u.append(o);if(f._DeferExpandEvent){setTimeout(function(){l.trigger(f._ExpandEvent)},100)}});if(f._DeferExpandEvent){r.stopImmediatePropagation();return false}}if(n){$("body").removeClass("active")}}};var a=MadCap.WebHelp.TocPane;a.prototype.OnMessage=function(i,f,h){var g={Handled:false,FireResponse:true};if(i=="sync-toc"){var c=f[0];var e=f[1];var d=new MadCap.Utilities.Url(f[2]);if(this._CanSync&&(c==null||c==this._RuntimeFileType)){this.SyncTOC(e,d);g.Handled=true}}return g};a.prototype.Init=function(c){if(this._Init){if(c!=null){c()}return}if(c!=null){this._InitOnCompleteFuncs.push(c)}if(this._Initializing){return}this._Initializing=true;var e=$(this._RootUl);this._SubMenuClass=e.attr("data-mc-css-sub-menu")||"tree inner";this._TreeNodeClass=e.attr("data-mc-css-tree-node")||"tree-node";this._TreeNodeCollapsedClass=e.attr("data-mc-css-tree-node-collapsed")||"tree-node-collapsed";this._TreeNodeExpandedClass=e.attr("data-mc-css-tree-node-expanded")||"tree-node-expanded";this._TreeNodeLeafClass=e.attr("data-mc-css-tree-node-leaf")||"tree-node-leaf";this._TreeNodeSelectedClass=e.attr("data-mc-css-tree-node-leaf")||"tree-node-selected";this._IncludeBack=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-back",false);this._IncludeParentLink=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-parent-link",false);this._IncludeIcon=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-icon",true);this._IncludeIndicator=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-include-indicator",true);this._DeferExpandEvent=MadCap.Dom.GetAttributeBool(this._RootUl,"data-mc-defer-expand-event",false);this._ExpandEvent=e.attr("data-mc-expand-event")||"click";this._BackLink=e.attr("data-mc-back-link")||"Back";var d=this;e.attr("data-mc-chunk","Data/"+this._RuntimeFileType+".xml");this.CreateToc(this._RootUl,function(){d._Init=true;for(var f=0;f<d._InitOnCompleteFuncs.length;f++){d._InitOnCompleteFuncs[f]()}})};a.prototype.CreateToc=function(e,c){var f=true;if(this._RuntimeFileType=="Toc"){f=this._HelpSystem.HasToc}else{f=this._HelpSystem.HasBrowseSequences}if(!f){if(c!=null){c()}return}var d=this;d._HelpSystem.LoadToc(this._RuntimeFileType,function(i,h){var g=$(e);if(b){g.attr("data-mc-style","Navigation Panel Item")}d.LoadTocChildren(i.tree,g,function(){this._Init=true;if(c!=null){c()}})},null)};a.prototype.LoadTocChildren=function(h,f,d){var e=typeof h.n!=="undefined"?h.n.length:0;var k=0;if(e==0){h.childrenLoaded=true}if(h.childrenLoaded){if(d){d()}return}if(h.parent){if(this._IncludeBack){var l=$('<li class="back"/>');l.addClass(this._TreeNodeClass);var g=$('<a href="#" />');g.text(this._BackLink);l.append(g);f.append(l)}if(this._IncludeParentLink&&this._HelpSystem.GetTocEntryHref(h)!=null){var l=$("<li/>");l.addClass(this._TreeNodeClass);f.append(l);this.LoadTocNode(h,l,null)}}for(var j=0;j<e;j++){var c=h.n[j];var l=$("<li/>");l.addClass(this._TreeNodeClass);l.addClass(this._TreeNodeCollapsedClass);f.append(l);this.LoadTocNode(c,l,function(){k++;if(k==e){h.childrenLoaded=true;if(d!=null){d()}}})}};a.prototype.LoadTocNode=function(f,e,c){var d=this;var g=f.toc;this._HelpSystem.LoadTocChunk(g,f.c,function(q){var r=g.entries[f.i];var l=typeof f.f!="undefined";var j=typeof f.n=="undefined"||f.n.length==0;var n=d._CanSync&&!l?d._RuntimeFileType:null;var i=d._HelpSystem.GetTocEntryHref(f,n,d._CanSync);var k=$("<a/>");if(l){k.attr("target",f.f)}if(i!=null){k.attr("href",i)}else{k.attr("href","javascript:void(0);")}k.text(r.title);if(typeof f.s!="undefined"){e.addClass(f.s)}if(j){e.removeClass(d._TreeNodeCollapsedClass);e.addClass(d._TreeNodeLeafClass)}if(d._IncludeIcon){var s="default";var m=d._HelpSystem.Language;for(className in m){if(e.hasClass(className)){s=className;break}}var h=$("<img/>");h.attr("src","Skins/Default/Stylesheets/Images/transparent.gif");h.addClass("toc-icon");if(d._IncludeIndicator){h.attr("alt",m[s]["MarkAsNewIconAlternateText"])}else{if(e.hasClass(d._TreeNodeLeafClass)){h.attr("alt",m[s]["TopicIconAlternateText"])}else{h.attr("alt",m[s]["ClosedBookIconAlternateText"]);h.attr("data-mc-alt2",m[s]["OpenBookIconAlternateText"])}}if(h.prop("src")!=""){k.prepend(h)}}if(d._IncludeIndicator){var p=$("<div/>");if(typeof f.w!=="undefined"&&f.w==1){p.append("<span class='new-indicator'></span>")}var o=$('<span class="label" />');o.append(k);p.append(o);k=p}k.on(d._ExpandEvent,d.TreeNode_Expand);f.el=e;e.append(k);e.attr("data-mc-id",d._LoadedNodes.length);d._LoadedNodes.push(f);if(c!=null){c()}})};a.prototype.SyncTOC=function(e,d){var c=this;var f=$("."+this._TreeNodeSelectedClass+" a",this._RootUl);if(f.length>0){var g=f[0];if(g.href===document.location.href){return}}this.Init(function(){function j(l){if(typeof l!=="undefined"&&l!=null){var k=[];var m=l;while(typeof m!=="undefined"&&!m.childrenLoaded){k.unshift(m);m=m.parent}MadCap.Utilities.AsyncForeach(k,function(q,p){var o=$(q.el);var n=$("<ul/>");n.addClass(c._SubMenuClass);c.LoadTocChildren(q,n,function(){o.append(n);p()})},function(){var n=l.el[0];c._UnhideNode(n);c._SelectNode(n)})}}function h(k){c._HelpSystem.FindNode(c._RuntimeFileType,e,k,function(m){if(!m){if(!MadCap.String.IsNullOrEmpty(k.Fragment)||!MadCap.String.IsNullOrEmpty(k.Query)){var l=new MadCap.Utilities.Url(k.PlainPath);c._HelpSystem.FindNode(c._RuntimeFileType,e,l,j)}}else{j(m)}})}var i=d.HashMap.GetItem("cshid");if(i!=null){c._HelpSystem.LookupCSHID(i,function(l){var k=l.Found?new MadCap.Utilities.Url(l.Topic).ToRelative(c._HelpSystem.GetContentPath()):new MadCap.Utilities.Url(c._HelpSystem.DefaultStartTopic);h(k)})}else{h(d)}})};a.prototype._UnhideNode=function(c){var e=MadCap.Dom.GetAncestorNodeByTagName(c,"li",this._RootUl);while(e!=null){var d=$(e);d.removeClass(this._TreeNodeCollapsedClass);d.addClass(this._TreeNodeExpandedClass);e=MadCap.Dom.GetAncestorNodeByTagName(e,"li",this._RootUl)}};a.prototype.NavigateTopic=function(f){var g=$("."+this._TreeNodeSelectedClass,this._RootUl)[0];if(g==null){g=$("."+this._TreeNodeClass,this._RootUl)[0]}if(this.NeedsCreateToc(g)){var e=this;this.CreateToc(g,function(){e.NavigateTopic(f)});return}var c=f=="previous"?this._GetPrevious(g):this._GetNext(g);if(c==null){return}this._SelectNode(c);var d=$("> div a",c)[0];if(d!=null){document.location.href=$(d).attr("href")}this._UnhideNode(c)};a.prototype._SelectNode=function(d){var c=$(d);$("."+this._TreeNodeSelectedClass,this._RootUl).removeClass(this._TreeNodeSelectedClass);c.addClass(this._TreeNodeSelectedClass);c.scrollintoview()};a.prototype._GetNext=function(e){var d=$(e);var f="."+this._TreeNodeClass;if(d.find(f).length>0){return d.find(f)[0]}if(d.next(f).length>0){return d.next(f)[0]}var c=d;while(true){var g=$(c.parent().closest(f,this._RootUl));if(g.length==0){break}if(g.next(f).length>0){return g.next(f)[0]}c=g}return null};a.prototype._GetPrevious=function(e){var d=$(e);var f="."+this._TreeNodeClass;var c=d.prev(f);if(c.length==0){if(d.parent().closest(f,this._RootUl).length>0){return d.parent().closest(f,this._RootUl)[0]}else{return null}}if(c.find(f).length>0){return c.find(f).last()[0]}return c[0]}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("TriPane")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.IndexPane=function(c){var b=this;this._Init=false;this._ContainerEl=null;this._HelpSystem=c;this._EntryHeight=-1;this._IndexEntryCount=0;this._IndexEntries=Object.create(null);this._IndexDivs=new Array();this._XmlDoc=null;this._Chunks=null;this._AlphaMap=new MadCap.Utilities.Dictionary();this._LiCached=null;this._SeePrefix=null;this._SeeAlsoPrefix=null;this.GetPath=function(d,e){return MadCap.String.IsNullOrEmpty(d)?new MadCap.Utilities.Url(e).ToRelative("/Content/").FullPath:"../"+new MadCap.Utilities.Url(d+e).FullPath};this.LoadRootEntry=function(e,d){var g=$(e);var f=g.data("entry");b._HelpSystem.LoadRootIndexEntry(f,function(i){if(i.e&&!i.childrenLoaded){var h=$("<ul/>");h.addClass("tree inner");b.LoadEntries(h,i.e);g.append(h)}i.childrenLoaded=true;g.data("entry",i);if(d){d(i,g)}})};this.LoadEntries=function(g,d){var f=this;if(!$.isArray(d)){var e=[];$.each(d,function(h,i){if(!i.t){i.t=h}e.push(i)});e.sort(function(i,h){var k=(i.s||i.t).toLowerCase();var j=(h.s||h.t).toLowerCase();return k<j?-1:k>j?1:0});d=e}$.each(d,function(q,v){var r=$("<li/>");r.addClass("IndexEntry tree-node tree-node-collapsed");var l=v.t;var o=v.r=="See";var h=v.r=="SeeAlso";var j=$("<div/>");j.addClass("IndexTerm");var t=$("<span/>").addClass("label");j.append(t);var u=true;if(o){l=f._SeePrefix+": "+v.f;j.addClass("see");v.seeAlsoLinks=[v.f]}else{if(h){l=f._SeeAlsoPrefix+": ";v.seeAlsoLinks=[];seeAlsoLinks=v.f.split("; ");if(seeAlsoLinks.length>1){var k=$("<a/>").text(l);t.append(k);for(var n=0;n<seeAlsoLinks.length;n++){var s=seeAlsoLinks[n];var p=$("<a/>").addClass("seeAlsoLink").text(s);t.append(p);v.seeAlsoLinks.push(s);if(n<seeAlsoLinks.length-1){t.append("; ")}}u=false}else{l+=v.f;v.seeAlsoLinks.push(v.f)}j.addClass("see-also")}}if(u){var k=$("<a/>").text(l);t.append(k)}r.append(j);v.isRoot=typeof v.$!=="undefined";if(v.e){var m=$("<ul/>");m.addClass("tree inner");f.LoadEntries(m,v.e);r.append(m)}else{if(v.$===1||!v.isRoot){r.removeClass("tree-node-collapsed");r.addClass("tree-node-leaf")}}g.append(r);v.el=r[0];r.data("entry",v);if(!o&&!h){if(typeof f._IndexEntries[l]=="undefined"){f._IndexEntries[l]=[v]}else{f._IndexEntries[l].push(v)}}})};this.FindEntry=function(e,d){b._HelpSystem.FindIndexEntry(e,function(f,g){if(!g){return}b.LoadRootEntry(f.el,function(){if(d){d(g)}})})};this.SelectEntry=function(i,m,j,k,n){$(".tree-node-selected",b._ContainerEl).removeClass("tree-node-selected");j.addClass("tree-node-selected");if(!m){return}MadCap.TextEffects.RemoveLinkListTrees();var l=i.pageY-k.offset().top;var d=i.pageX-k.offset().left;var f=!this._HelpSystem.IsTabletLayout()||!this._HelpSystem.IsResponsive;if(m.r&&!n){var h=$(".seeAlsoLink",j).index(i.target);var g=m.seeAlsoLinks[0];if(h>=0){g=m.seeAlsoLinks[h]}g=g.replace(", ",":");this.FindEntry(g,function(e){j=$(e.el);$container=f?$(b._ContainerEl).parent():$("#navigation");b._UnhideNode(j[0]);b.SelectEntry(i,e,j,k,true);$container.animate({scrollTop:$container.scrollTop()+j.offset().top-$container.offset().top})});return}else{if(m.linkList&&m.linkList.length>1&&!n){if(f){MadCap.TextEffects.CreateLinkListPopup(m.linkList,b._ContainerEl,l,d,this,"#")}else{MadCap.TextEffects.CreateLinkListTree(m.linkList,j,this,"#",function(o){b.TreeNode_Click(o);MadCap.TextEffects.Item_Click.call(this,[o])})}MadCap.Utilities.PreventDefault(i);i.stopPropagation()}else{if(m.linkList&&m.linkList.length==1){document.location.href="#"+m.linkList[0].Link}}}if(j.hasClass("tree-node-expanded")&&!n){j.removeClass("tree-node-expanded");j.addClass("tree-node-collapsed")}else{if(j.hasClass("tree-node-collapsed")){j.removeClass("tree-node-collapsed");j.addClass("tree-node-expanded")}}};this.TreeNode_Click=function(h){var d=MadCap.Dom.GetAncestorNodeByTagName(h.target,"li");if(d==null){return}if($(h.target).closest(".link-list-popup").length>0){return}var g=$(this);var i=$(d);MadCap.Utilities.PreventDefault(h);var f=i.data("entry");if(!i.hasClass("IndexEntryLink")&&(!f||f.isRoot)){b.LoadRootEntry(d,function(e,j){b.SelectEntry(h,e,j,g)})}else{b.SelectEntry(h,f,i,g)}};this.Search=function(){var d=this.value.toLowerCase();b._Terms.each(function(){var e=$(this);var f=e.parent().parent();var g=e.text().toLowerCase().indexOf(d)!=-1;f.css("display",g?"block":"none");e.removeHighlight("highlightIndex");if(g){e.highlight(d,"highlightIndex")}})}};var a=MadCap.WebHelp.IndexPane;a.prototype.Init=function(e,b){if(this._Init){if(b!=null){b()}return}var d=this;d._ContainerEl=e;var c=$(this._ContainerEl.parentNode);this._SeePrefix=c.attr("data-see-prefix")||"See";this._SeeAlsoPrefix=c.attr("data-see-also-prefix")||"See Also";d._HelpSystem.LoadIndex(function(h,g){var f=$("<ul/>");f.addClass("tree");d.LoadEntries(f,h.terms);var j=$(d._ContainerEl);j.click(d.TreeNode_Click);j.append(f);var i=$("#search-index");i.bind("keyup",d.Search);$("#responsive-search-index").bind("keyup",d.Search);d._Terms=$(".IndexEntry a",this._ContainerEl);d._Init=true;if(b!=null){b()}},null)};a.prototype._UnhideNode=function(c){var b=MadCap.Dom.GetAncestorNodeByTagName(c,"li",this._ContainerEl);while(b!=null){var d=$(b);d.removeClass("tree-node-collapsed");d.addClass("tree-node-expanded");b=MadCap.Dom.GetAncestorNodeByTagName(b,"li",this._ContainerEl)}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("TriPane")){return}MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.GlossaryPane=function(c){var b=this;this._Init=false;this._ContainerEl=null;this._HelpSystem=c;MadCap.Utilities.CrossFrame.AddMessageHandler(this.OnMessage,this);this.TreeNode_Click=function(j){var d=MadCap.Dom.GetAncestorNodeByTagName(j.target,"li");if(d==null){return}var l=$(d);var i=$("a",l);var h=i.text();var k=l.attr("data-chunk");var f=b._HelpSystem.Glossary.chunks[k];var g=new MadCap.Utilities.Url(f).ToFolder().ToFolder();MadCap.Utilities.PreventDefault(j);require([f],function(n){var o=n[h];$(".tree-node-selected",b._ContainerEl).removeClass("tree-node-selected");l.addClass("tree-node-selected");var e=$(".GlossaryPageTerm",d);if(!MadCap.String.IsNullOrEmpty(o.d)&&!e.hasClass("MCDropDownHead")){e.addClass("MCDropDownHead MCDropDownHotSpot");var s=$("<div/>");s.addClass("GlossaryPageDefinition MCDropDownBody");s.append(o.d);l.addClass("MCDropDown");l.append(e);l.append(s);var p=new MadCap.TextEffects.DropDownControl(l[0]);p.Init(false);p.Open(true)}if(!MadCap.String.IsNullOrEmpty(o.l)){var m=i.attr("href");if(MadCap.String.IsNullOrEmpty(m)){var q=g.CombinePath(o.l).ToRelative(b._HelpSystem.GetContentPath()).FullPath;m=encodeURI(q);i.attr("href",m)}document.location.href="#"+m}else{if(l.hasClass("tree-node-expanded")){l.removeClass("tree-node-expanded");l.addClass("tree-node-collapsed")}else{if(l.hasClass("tree-node-collapsed")){l.removeClass("tree-node-collapsed");l.addClass("tree-node-expanded");if($("li",l.parent()).last()[0]==l[0]){var r=$(b._ContainerEl);r.animate({scrollTop:r[0].scrollHeight},500)}}}}})};this.Search=function(){var d=this.value.toLowerCase();b._Terms.each(function(){var e=$(this);var f=e.parent().parent();var g=e.text().toLowerCase().indexOf(d)!=-1;f.css("display",g?"block":"none");e.removeHighlight("highlightGlossary");if(g){e.highlight(d,"highlightGlossary")}})}};var a=MadCap.WebHelp.GlossaryPane;a.prototype.OnMessage=function(e,b,d){var c={Handled:false,FireResponse:true};return c};a.prototype.Init=function(d,b){if(this._Init){if(b!=null){b()}return}var c=this;c._ContainerEl=d;c._HelpSystem.LoadGlossary(function(f,k){var h=$("<ul/>");h.addClass("tree");for(var g=0;g<f.terms.length;g++){var m=f.terms[g];var l=$("<li/>");l.addClass("GlossaryPageEntry tree-node tree-node-collapsed");l.attr("data-chunk",m.c);var e=$("<div/>");e.addClass("GlossaryPageTerm");e.append('<span class="label"><a>'+m.t+"</a></span>");l.append(e);h.append(l)}var n=$(c._ContainerEl);n.click(c.TreeNode_Click);n.append(h);var j=$("#search-glossary");j.bind("keyup",c.Search);$("#responsive-search-glossary").bind("keyup",c.Search);c._Terms=$(".GlossaryPageTerm a",c._ContainerEl);c._Init=true;if(b!=null){b()}},null)};a.prototype._SelectNode=function(b){$(".tree-node-selected",this._ContainerEl).removeClass("tree-node-selected");$(b).addClass("tree-node-selected")}})();(function(){var b=(function(){var j={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},g={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},k="[^aeiou]",m="[aeiouy]",d=k+"[^aeiouy]*",i=m+"[aeiou]*",h="^("+d+")?"+i+d,e="^("+d+")?"+i+d+"("+i+")?$",f="^("+d+")?"+i+d+i+d,l="^("+d+")?"+m;return function(s){s=s.toLowerCase();var n,u,t,v,q,p,o,c=s;if(s.length<3){return s.toLowerCase()}t=s.substr(0,1);if(t=="y"){s=t.toUpperCase()+s.substr(1)}v=/^(.+?)(ss|i)es$/;q=/^(.+?)([^s])s$/;if(v.test(s)){s=s.replace(v,"$1$2")}else{if(q.test(s)){s=s.replace(q,"$1$2")}}v=/^(.+?)eed$/;q=/^(.+?)(ed|ing)$/;if(v.test(s)){var r=v.exec(s);v=new RegExp(h);if(v.test(r[1])){v=/.$/;s=s.replace(v,"")}}else{if(q.test(s)){var r=q.exec(s);n=r[1];q=new RegExp(l);if(q.test(n)){s=n;q=/(at|bl|iz)$/;p=new RegExp("([^aeiouylsz])\\1$");o=new RegExp("^"+d+m+"[^aeiouwxy]$");if(q.test(s)){s=s+"e"}else{if(p.test(s)){v=/.$/;s=s.replace(v,"")}else{if(o.test(s)){s=s+"e"}}}}}}v=/^(.+?)y$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(l);if(v.test(n)){s=n+"i"}}v=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;if(v.test(s)){var r=v.exec(s);n=r[1];u=r[2];v=new RegExp(h);if(v.test(n)){s=n+j[u]}}v=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;if(v.test(s)){var r=v.exec(s);n=r[1];u=r[2];v=new RegExp(h);if(v.test(n)){s=n+g[u]}}v=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;q=/^(.+?)(s|t)(ion)$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(f);if(v.test(n)){s=n}}else{if(q.test(s)){var r=q.exec(s);n=r[1]+r[2];q=new RegExp(f);if(q.test(n)){s=n}}}v=/^(.+?)e$/;if(v.test(s)){var r=v.exec(s);n=r[1];v=new RegExp(f);q=new RegExp(e);p=new RegExp("^"+d+m+"[^aeiouwxy]$");if(v.test(n)||(q.test(n)&&!(p.test(n)))){s=n}}v=/ll$/;q=new RegExp(f);if(v.test(s)&&q.test(s)){v=/.$/;s=s.replace(v,"")}if(t=="y"){s=t.toLowerCase()+s.substr(1)}return s.toLowerCase()}})();var a=MadCap.CreateNamespace("WebHelp.Search");a.Stemmer=b})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){var a=MadCap.CreateNamespace("WebHelp.Search");a.Tokenizer=function(){var i="";var f=-1;var c=new Array();this.Tokenize=function(n){var m=null;i=n;f=-1;for(var l=0;m=k();l++){c[l]=m}return c};function h(l){if(!l){return false}else{if(l=='"'){return false}else{if(l=="+"){return false}else{if(l=="^"){return false}else{if(l=="|"){return false}else{if(l=="&"){return false}else{if(l=="("){return false}else{if(l==")"){return false}else{if(d(l)){return false}else{return true}}}}}}}}}}function d(l){if(!l){return false}else{if(l==" "){return true}else{if(l.charCodeAt(0)==12288){return true}else{return false}}}}function e(){return i.charAt(f+1)}function g(){f++}function j(){var l="";for(;;){var m=e();if(!m){return(l=="")?null:l}if(m=="\\"){g();if(!e()){return null}g();continue}if(m=='"'){g();break}else{g();l+=m}}return l}function k(){var p=e();var m=null;var l="";if(!p){m=null}else{if(d(p)){for(p=e();d(p);p=e()){g();l+=p}m=new a.Token(l,a.Token.WhiteSpace)}else{if(p=="("){g();m=new a.Token(p,a.Token.LeftParen)}else{if(p==")"){g();m=new a.Token(p,a.Token.RightParen)}else{if(p=="^"||p=="!"){g();m=new a.Token(p,a.Token.Not)}else{if(p=="+"||p=="&"){g();m=new a.Token(p,a.Token.And)}else{if(p=="|"){g();m=new a.Token(p,a.Token.Or)}else{if(p=='"'){g();var o=j();if(MadCap.String.Contains(o,a.Tokenizer.Connectors)){o=o.replace(a.Tokenizer.ConnectorRegex," ");o=$.trim(o)}m=new a.Token(o,(o==null)?a.Token.Error:a.Token.Phrase)}else{for(p=e();h(p);p=e()){g();l+=p}if(l=="and"||l=="AND"){m=new a.Token(l,a.Token.And)}else{if(l=="or"||l=="OR"){m=new a.Token(l,a.Token.Or)}else{if(l=="not"||l=="NOT"){m=new a.Token(l,a.Token.Not)}else{var n=a.Token.Word;if(MadCap.WebHelp.SearchPane.SearchDBs[0].SearchType=="NGram"){n=a.Token.Phrase}if(MadCap.String.Contains(l,a.Tokenizer.Connectors)){l=l.replace(a.Tokenizer.ConnectorRegex," ");l=$.trim(l);m=new a.Token(l,a.Token.Phrase)}else{m=new a.Token(l,n)}}}}}}}}}}}}return m}};a.Tokenizer.Connectors=[".",",","/",":",";","\\\\","*","<",">","!","@","\\[","\\]","(",")","{","}"];a.Tokenizer.ConnectorRegex=new RegExp("["+a.Tokenizer.Connectors.join("")+"]","g");a.Token=function(c,e){var d=c;var f=e;this.GetTokenText=function(){return d};this.GetType=function(){return f}};var b=a.Token;b.Eof=0;b.Error=1;b.WhiteSpace=2;b.Phrase=3;b.Word=4;b.RightParen=5;b.LeftParen=6;b.Not=7;b.And=8;b.Or=9;b.ImplicitAnd=10;a.Parser=function(g){var i=this;var k=g;var d=-1;var h=new a.Tokenizer();var c=h.Tokenize(k);this.ParseExpression=function(){var n=j();f();if(e()==a.Token.Eof){return n}else{if(e()==a.Token.And||e()==a.Token.Or||e()==a.Token.Not){l();var m=new a.Node(c[d],n,this.ParseExpression());return m}else{if(e()==a.Token.Word||e()==a.Token.Phrase||e()==a.Token.Not||e()==a.Token.LeftParen){var m=new a.Node(new a.Token(n.GetToken().GetTokenText()+" "+c[d+1].GetTokenText(),a.Token.ImplicitAnd),n,this.ParseExpression());return m}else{if(e()==a.Token.RightParen){return n}}}}throw gInvalidTokenLabel};function l(){d++}function j(){f();if(e()==a.Token.Word){l();return new a.Node(c[d],null,null)}else{if(e()==a.Token.Phrase){l();return new a.Node(c[d],null,null)}else{if(e()==a.Token.LeftParen){l();var m=c[d];var n=new a.Node(m,i.ParseExpression(),null);if(e()!=a.Token.RightParen){throw"Missing right paren ')'."}l();return n}}}throw gInvalidTokenLabel}function e(){if(c[d+1]==null){return a.Token.Eof}else{return c[d+1].GetType()}}function f(){for(;e()==a.Token.WhiteSpace;){l()}}};a.Node=function(e,f,d){var c=e;var h=f;var g=d;this.Evaluate=function(k,i){var j=this;var l=c.GetType();if(l==a.Token.Word||l==a.Token.Phrase){this.EvaluatePhrase(k).then(i)}else{if(l==a.Token.And||l==a.Token.ImplicitAnd||l==a.Token.Or||l==a.Token.Not){h.Evaluate(k,function(m){g.Evaluate(k,function(n){if(c.GetType()==a.Token.And||c.GetType()==a.Token.ImplicitAnd){i(a.IntersectResults(m,n))}else{if(c.GetType()==a.Token.Or){i(a.UnionResults(m,n))}else{if(c.GetType()==a.Token.Not){i(a.SubtractResults(m,n))}}}})})}else{if(l==a.Token.LeftParen){if(h){h.Evaluate(k,i)}else{i(null)}}else{i(null)}}}};this.EvaluatePhrase=function(n){var q=this;var r=$.Deferred();var i=c.GetTokenText();var k=c.GetType()==a.Token.Phrase;var p=[];var o=Object.create(null);o.results=Object.create(null);o.terms=[];o.ignore=MadCap.Utilities.StopWords.indexOf(i)>-1;if(!o.ignore){o.terms.push(i);for(var m=0;m<MadCap.WebHelp.SearchPane.SearchDBs.length;m++){var l=MadCap.WebHelp.SearchPane.SearchDBs[m];p.push(l.LookupPhrase(i,k,n).then(function(j,s){if(s){dbIndex=MadCap.WebHelp.SearchPane.SearchDBs.indexOf(j);o.results[dbIndex]={data:s}}}))}}$.when.apply(this,p).done(function(){r.resolve(o)});return r.promise()};this.GetToken=function(){return c}};a.LoadResultData=function(h){var k=[];var i=0;var d=h.results;for(var f in d){var e=MadCap.WebHelp.SearchPane.SearchDBs[f];var g=d[f];k.push(e.LoadTopics(g).then(function(m){i+=m.count}))}var l=MadCap.WebHelp.SearchPane.SearchDBs[0].RelevanceWeight;var j=$.Deferred();var c=[];$.when.apply(this,k).done(function(){for(var r in d){var n=MadCap.WebHelp.SearchPane.SearchDBs[r];var p=d[r];for(var o in p.data){var t=p.data[o];var q=n.HelpSystem.GetTopicPath(t.u).FullPath;var m=t.i*p.count/i;var s=MadCap.Utilities.CalculateScore(t.r,m,l);c.push(new a.SearchResult(s,t.t,q,t.a))}}j.resolve(c,h.terms)});return j.promise()};a.SplitPhrase=function(f){var e=null;var c=MadCap.WebHelp.SearchPane.SearchDBs[0];if(c.SearchType=="NGram"){e=new Array(Math.max(0,f.length-(c.NGramSize+1)));for(var d=0;d<f.length-c.NGramSize+1;d++){e[d]=f.substring(d,d+c.NGramSize)}}else{e=f.split(" ")}return e};a.FilterResults=function(e,d,j,c){if((e.ignore&&d.ignore)||d.ignore){return e}else{if(e.ignore){return d}}var i=Object.create(null);i.results=Object.create(null);var k=i.results;for(var h in e.results){k[h]=Object.create(null);k[h].data=Object.create(null);var g=e.results[h].data;var f=d.results[h];if(f){f=f.data}j(g,f,k[h].data)}i.terms=c(e.terms,d.terms);return i};a.UnionResults=function(d,c){return a.FilterResults(d,c,function(f,j,e){for(var h in f){e[h]=f[h]}if(j){for(var h in j){var i=f[h];var g=j[h];if(i){e[h]={r:MadCap.Utilities.CombineRelevancy(i.r,g.r)}}else{e[h]=g}}}},function(f,e){return f.Union(e)})};a.IntersectResults=function(d,c){return a.FilterResults(d,c,function(f,i,e){if(i){for(var h in f){var g=i[h];if(g){e[h]={r:MadCap.Utilities.CombineRelevancy(f[h].r,g.r)}}}}},function(f,e){return f.Union(e)})};a.SubtractResults=function(d,c){if(d.ignore||c.ignore){return d}return a.FilterResults(d,c,function(f,i,e){if(i){for(var h in f){var g=i[h];if(!g){e[h]=f[h]}}}},function(f,e){return f})}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){MadCap.WebHelp=MadCap.CreateNamespace("WebHelp");MadCap.WebHelp.SearchPane=function(f,e){this._Init=false;this._Container=e;this._HelpSystem=f;this._FeedbackController=null;this._Parser=null;this._Filters=null;this._Set=null;this._FilteredSet=null;this._Highlight="";this._DownloadedSynonymXmlDocRootNode=null};var c=MadCap.WebHelp.SearchPane;c.SearchDBs=new Array();c.prototype.Init=function(e){if(this._Init){if(e){e.call(this)}return}var h=this;if(this._HelpSystem.LiveHelpEnabled){this._FeedbackController=new MadCap.WebHelp.FeedbackController(this._HelpSystem.LiveHelpServer);this._FeedbackController.Init(function(){if(h._FeedbackController.FeedbackActive){h._FeedbackController.GetSynonymsFile(h._HelpSystem.LiveHelpOutputId,null,function(k,i){var j=MadCap.Utilities.Xhr.LoadXmlString(k);if(j!=null){h._DownloadedSynonymXmlDocRootNode=j.documentElement}g()},null)}else{g()}})}else{g()}function g(){if(!h._HelpSystem.IsWebHelpPlus){h._HelpSystem.GetSearchDBs(f)}else{f(null)}}function f(i){c.SearchDBs=i;h._Filters=new b.Filters(h._HelpSystem);h._Filters.Load(function(){h._Init=true;if(e){e.call(h)}})}};c.prototype.Search=function(g,f){if(MadCap.String.IsNullOrEmpty(MadCap.String.Trim(g))){return}this._Container.addClass("loading");var e=$.Deferred();this.Init(function(){var j={};var h=[];if(f.searchContent){var i=f.content?f.content.filterName:null;var k=!this._HelpSystem.IsWebHelpPlus?this.DoSearch(g,i):this.DoSearchWebHelpPlus(g,i);h.push(k.then(function(m,n){j.content=m;j.includedTerms=n}))}if(f.searchCommunity){if(this._FeedbackController&&this._FeedbackController.PulseActive){var l=this._FeedbackController.GetPulseSearchResults(this._HelpSystem.LiveHelpOutputId,g,f.community.pageSize,f.community.pageIndex);h.push(l.then(function(m){j.community=m}))}}$.when.apply(this,h).done($.proxy(function(){this._Container.removeClass("loading");e.resolve(j)},this))});return e.promise()};c.prototype.DoSearch=function(j,h){var f=$.Deferred();this._Parser=new b.Parser(j);var e=null;try{e=this._Parser.ParseExpression()}catch(i){alert("Ensure that the search string is properly formatted.");e=null}if(!e){return f.resolve()}if(this._DownloadedSynonymXmlDocRootNode!=null&&c.SearchDBs[0].DownloadedSynonymFile==null){c.SearchDBs[0].DownloadedSynonymFile=new b.SynonymFile(this._DownloadedSynonymXmlDocRootNode)}var g=this;e.Evaluate(h,function(k){b.LoadResultData(k).then(function(l,m){g._Set=l;if(g._Set){g._Set.sort(function(o,n){return n.Score-o.Score})}MadCap.Utilities.ClearRequireCache();f.resolve(g._Set,m)})});return f.promise()};c.prototype.DoSearchWebHelpPlus=function(m,k){var h=this;var g=$.Deferred();function f(A,v){var y=[];var p=A.getElementsByTagName("Result");var s=p.length;var u=new MadCap.Utilities.Url(document.location.pathname);if(!h._HelpSystem.SearchUrl){if(!MadCap.String.EndsWith(document.location.pathname,"/")){u=u.ToFolder()}u=u.CombinePath(h._HelpSystem.ContentFolder)}for(var q=0;q<s;q++){var z=p[q];var o=MadCap.Dom.GetAttributeInt(z,"Rank",-1);var x=z.getAttribute("Title");var w=z.getAttribute("Link");var t=new MadCap.Utilities.Url(w).ToRelative(u);var n=z.getAttribute("AbstractText");if(MadCap.String.IsNullOrEmpty(x)){x=z.getAttribute("Filename")}var r=new b.SearchResult(o,x,t.FullPath,unescape(n));y.push(r)}g.resolve(y)}MadCap.Utilities.Xhr.CallWebService(h._HelpSystem.GetPath()+"Service/Service.asmx/GetSearchResults?SearchString="+encodeURIComponent(m)+"&FilterName="+encodeURIComponent(k),true,f,null);var l=m.split(" ");var e=true;this._Highlight="?Highlight=";for(var j=0;j<l.length;j++){if(!e){this._Highlight+="||"}else{e=false}this._Highlight+=l[j]}return g.promise()};var b=MadCap.CreateNamespace("WebHelp.Search");MadCap.WebHelp.Search.SearchDB=function(e){this.RelevanceWeight=0;this.TopicChunkMap=null;this.StemChunkMap=null;this.PhraseChunkMap=null;this.HelpSystem=e;this.SearchType=null;this.NGramSize=0;this.SynonymFile=null;this.DownloadedSynonymFile=null;this.LoadChunkCompleteFuncs=new MadCap.Utilities.Dictionary()};var a=b.SearchDB;a.prototype.Load=function(f,e){MadCap.Utilities.Xhr.Load(this.HelpSystem.GetPath()+"Data/Synonyms.xml",true,function(g){if(g!=null){this.SynonymFile=new b.SynonymFile(g.documentElement)}this._LoadSearchDB(f,e)},null,this)};a.prototype.GetTermPhrases=function(h,f,i){var o=this;var k=new MadCap.Utilities.Dictionary();var g=b.Stemmer(h);var l=new MadCap.Utilities.Dictionary();k.Add(g,true);if(!f){if(this.SynonymFile!=null){this.SynonymFile.AddSynonymStems(h,g,k)}if(this.DownloadedSynonymFile!=null){this.DownloadedSynonymFile.AddSynonymStems(h,g,k)}}var e=Object.create(null);var j=[];k.ForEach(function(r,s){if(o.SearchType=="NGram"){for(var q=0;q<r.length-o.NGramSize+1;q++){var p=r.substring(q,q+o.NGramSize);j.push(p)}}else{j.push(r)}});var n=[];$.each(j,function(p,q){n.push(o.LoadStem(q).then(function(s){for(var r in s){if(!f||r==h.toLowerCase()){var t=s[r];if(i){t=i.Intersect(t)}l.Add(r,t)}}}))});var m=$.Deferred();$.when.apply(this,n).done(function(){m.resolve(h,l)});return m.promise()};a.prototype.LookupPhrase=function(m,k,e){var o=this;var w=$.Deferred();var f=b.SplitPhrase(m);var h=null;var n=[];var l=new MadCap.Utilities.Dictionary();if(m){m=m.trim()}if(!m||MadCap.Utilities.StopWords.indexOf(m)>-1){w.resolve(o,null);return w.promise()}var j;if(e){j=[];var r=this.HelpSystem.GetMasterHelpsystem().GetSearchFilters();if(r){var u=r[e];if(u){var g=u.c;var v=g.split(";");var t=this.HelpSystem.GetConcepts();for(var q=0;q<v.length;q++){var s=v[q];j=j.Union(t[s])}}}}for(var q=0;q<f.length;q++){var p=f[q];n.push(this.GetTermPhrases(p,k,j).then(function(i,x){l.Add(i,x)}))}$.when.apply(o,n).done(function(){var A;l.ForEach(function(C,B){var D=[];B.ForEach(function(E,F){D=D.Union(F)});if(!A){A=D}else{A=A.Intersect(D)}});var x=Object.create(null);var z=[];l.ForEach(function(C,B){x[C]=Object.create(null);B.ForEach(function(D,F){var E=F.Intersect(A);$.each(E,function(G,H){z.push(o.LoadPhrase(D,H).then(function(I,K){var J=x[C][I];if(K){if(!J){x[C][I]=K}else{J.r=MadCap.Utilities.CombineRelevancy(J.r,K.r);$.extend(true,J.w,K.w)}}}))})})});var y=Object.create(null);var i=Object.create(null);$.when.apply(this,z).done(function(){$.each(A,function(G,J){var L=0;if(!k){L=x[f[0]][J].r}else{var K=x[f[0]][J].w;for(var C in K){var D=K[C];for(var I=1;I<f.length;I++){var H=parseInt(C);var F=f[I];var E=x[F][J].w;var B=E[H+I];if(B){D=Math.max(D,B)}else{D=0;break}}L=MadCap.Utilities.CombineRelevancy(L,D)}}if(L>0){i[J]={r:L}}});w.resolve(o,i)})});return w.promise()};a.prototype.LoadTopics=function(h){var e=[];var i=h.data;for(var g in i){e.push(this.LoadTopic(g).then(function(j,k){$.extend(i[j],k)}))}h.count=e.length;var f=$.Deferred();$.when.apply(this,e).done(function(){f.resolve(h)});return f.promise()};a.prototype._LoadSearchDB=function(f,e){this.TopicChunkMap=f.t;this.StemChunkMap=f.s;this.PhraseChunkMap=f.p;this.RelevanceWeight=f.r;this.SearchType=f.st;this.NGramSize=f.n;if(e){e()}};a.prototype.LookupPhraseChunkId=function(e,j){var f=this.PhraseChunkMap.length;for(var g=0;g<f;g++){var h=this.PhraseChunkMap[g][0];var k=MadCap.String.Compare(e,h);if(k==0){if(j<this.PhraseChunkMap[g][1]){return g-1}else{if(j==this.PhraseChunkMap[g][1]){return g}}}else{if(k==-1){return g-1}}}return f-1};a.prototype.LoadTopic=function(g){var f=$.Deferred();var e=MadCap.Utilities.GetChunkId(this.TopicChunkMap,g,function(i,h){if(i<h){return -1}else{if(i==h){return 0}else{return 1}}});if(e==-1){f.resolve()}else{MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchTopic_Chunk"+e],function(h){f.resolve(g,h[g])})}return f.promise()};a.prototype.LoadStem=function(h){var f=$.Deferred();var e=MadCap.Utilities.GetChunkId(this.StemChunkMap,h,function(j,i){return MadCap.String.Compare(j,i)});if(e==-1){f.resolve()}else{var g=h;MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchStem_Chunk"+e],function(i){f.resolve(i[g])})}return f.promise()};a.prototype.LoadPhrase=function(e,h){var g=$.Deferred();var f=this.LookupPhraseChunkId(e,h);MadCap.Utilities.Require([this.HelpSystem.GetPath()+"Data/SearchPhrase_Chunk"+f],function(j){var i;if(j[e]){i=j[e][h]}g.resolve(h,i)});return g.promise()};b.SearchQuery=function(g,f,e){function h(m,o){var l=false;if(MadCap.IsSafari()){m=encodeURIComponent(m)}for(var k=0;k<o.length;k++){var j=o[k][0];var n=o[k][1];if(!MadCap.String.IsNullOrEmpty(n)){m+=(l?"&":"?")+j+"="+encodeURIComponent(n);l=true}}return m}this.Query=g;this.Filter=f;this.PageIndex=e;this.ToString=function(){return h(this.Query,[[b.SearchQuery._filter,this.Filter],[b.SearchQuery._pageIndex,this.PageIndex]])}};b.SearchQuery._filter="f";b.SearchQuery._pageIndex="p";b.SearchQuery.Parse=function(i){var g=new MadCap.Utilities.Url(i);var h=g.PlainPath;if(!MadCap.String.IsNullOrEmpty(h)){h=decodeURIComponent(h)}var f=g.QueryMap.GetItem(b.SearchQuery._filter);if(f){f=decodeURIComponent(f)}var e=g.QueryMap.GetItem(b.SearchQuery._pageIndex);if(e!=null){e=parseInt(e)}return new b.SearchQuery(h,f,e)};b.SearchResult=function(h,g,f,e){this.Score=h;this.Title=g;this.Link=f;this.AbstractText=e};b.Filters=function(f){var e=f;this.Load=function(g){e.LoadSearchFilters().then(function(){e.LoadAllConcepts(function(){g()})},null,null)}};b.SynonymFile=function(e){this.WordToStem=new MadCap.Utilities.Dictionary();this.Directionals=new MadCap.Utilities.Dictionary();this.DirectionalStems=new MadCap.Utilities.Dictionary();this.DirectionalStemSources=new MadCap.Utilities.Dictionary();this.Groups=new MadCap.Utilities.Dictionary();this.GroupStems=new MadCap.Utilities.Dictionary();this.GroupStemSources=new MadCap.Utilities.Dictionary();this.LoadSynonymFile(e)};var d=b.SynonymFile;d.prototype.LoadSynonymFile=function(E){var D=MadCap.Dom.GetChildNodeByTagName(E,"Groups",0);var l=MadCap.Dom.GetChildNodeByTagName(E,"Directional",0);if(l!=null){var o=l.childNodes.length;for(var A=0;A<o;A++){var n=l.childNodes[A];if(n.nodeName=="DirectionalSynonym"){var y=MadCap.Dom.GetAttribute(n,"From");var m=MadCap.Dom.GetAttribute(n,"To");var r=MadCap.Dom.GetAttributeBool(n,"Stem",false);var g=MadCap.Dom.GetAttribute(n,"FromStem");var p=MadCap.Dom.GetAttribute(n,"ToStem");if(r){if(g==null){g=b.Stemmer(y)}}if(p==null){p=b.Stemmer(m)}if(y!=null&&m!=null){if(r){this.DirectionalStemSources.Add(y,p);this.DirectionalStems.Add(g,p);this.WordToStem.Add(y,g);this.WordToStem.Add(m,p)}else{this.Directionals.Add(y,p);this.WordToStem.Add(m,p)}}}}}if(D!=null){var o=D.childNodes.length;for(var A=0;A<o;A++){var n=D.childNodes[A];if(n.nodeName=="SynonymGroup"){var v=new Array();var w=new Array();var r=MadCap.Dom.GetAttributeBool(n,"Stem",false);var t=n.childNodes.length;for(var z=0;z<t;z++){var C=n.childNodes[z];if(C.nodeType!=1){continue}v.push(C.firstChild.nodeValue)}for(var z=0;z<t;z++){var C=n.childNodes[z];if(C.nodeType!=1){continue}var F=MadCap.Dom.GetAttribute(C,"Stem");if(F==null){F=b.Stemmer(C.firstChild.nodeValue)}this.WordToStem.Add(C.firstChild.nodeValue,F);w.push(F)}var u=v.length;for(var z=0;z<u;z++){var B=v[z];var f=w[z];for(var x=0;x<u;x++){var e=v[x];if(r){var s=this.GroupStemSources.GetItem(B);if(s==null){s=new MadCap.Utilities.Dictionary();this.GroupStemSources.Add(B,s)}s.Add(e,f)}else{var s=this.GroupStemSources.GetItem(B);if(s==null){s=new MadCap.Utilities.Dictionary();this.Groups.Add(B,s)}s.Add(e,f)}}}var q=w.length;for(var z=0;z<q;z++){var f=w[z];for(var x=0;x<q;x++){var h=w[x];var s=this.GroupStems.GetItem(f);if(s==null){s=new MadCap.Utilities.Dictionary();this.GroupStems.Add(f,s)}s.Add(h,f)}}}}}};d.prototype.AddSynonymStems=function(e,i,g){var f=this.Directionals.GetItem(e);if(f!=null){g.AddUnique(f)}f=this.DirectionalStems.GetItem(i);if(f!=null){g.AddUnique(f)}var h=this.Groups.GetItem(e);if(h!=null){h.ForEach(function(j,k){g.AddUnique(j);return true})}h=this.GroupStems.GetItem(i);if(h!=null){h.ForEach(function(j,k){g.AddUnique(j);return true})}}})();/*
+ * Copyright MadCap Software
+ * http://www.madcapsoftware.com/
+ * Unlicensed use is strictly prohibited
+ *
+ * v11.0.0.0
+ */
+(function(){if(!MadCap.Utilities.HasRuntimeFileType("Topic")){return}MadCap.CreateNamespace("Topic");var C=MadCap.Topic;var e=MadCap.TextEffects;C.Expand=function(G){var H=new e.ExpandingControl(G.parentNode);H.Toggle()};C.DropDown=function(G){var H=new e.DropDownControl(G.parentNode.parentNode);H.Toggle()};C.Toggle=function(G){var H=new e.TogglerControl(G);H.Toggle()};C.ThumbPopup_Click=function(G){var H=C.ShowThumbnailPopup(G,this,"click");if(G.preventDefault){G.preventDefault()}};C.ThumbPopup_Hover=function(G){var H=C.ShowThumbnailPopup(G,this,"mouseleave")};C.ShowThumbnailPopup=function(ai,aj,ae){var ad=10;var Y=1;var U=10;var K=$(aj).children("img")[0];var X=parseInt(MadCap.Dom.Dataset(K,"mcWidth"));var R=parseInt(MadCap.Dom.Dataset(K,"mcHeight"));var G=R/X;var ag=document.documentElement.clientWidth-((ad+Y+U)*2);var ac=document.documentElement.clientHeight-((ad+Y+U)*2);if(R>ac){R=ac;X=R/G}if(X>ag){X=ag;R=X*G}var M=new MadCap.Utilities.Url(document.location.href);var ah=$(K).offset().top;var al=$(K).offset().left;var ao=MadCap.Dom.GetAttribute(aj,"href");var ab=MadCap.Dom.GetAttribute(aj,"data-mc-popup-alt");var W=R+((Y+U)*2);var T=X+((Y+U)*2);var S=(ah+(K.offsetHeight/2))-(W/2);var O=(al+(K.offsetWidth/2))-(T/2);var N=MadCap.Dom.GetScrollPosition();var Z=N.Y;var I=Z+document.documentElement.clientHeight;var ak=N.X;var H=ak+document.documentElement.clientWidth;var P=Z+ad;var aa=ak+ad;var Q=I-ad;var J=H-ad;if(S<P){S=P}if(O<aa){O=aa}if(S+W>Q){S=Q-W}if(O+T>J){O=J-T}var L=$("<div></div>");L.addClass("MCPopupContainer");var af=document.createElement("img");$(af).addClass("MCPopupFullImage");af.setAttribute("src",ao);af.setAttribute("alt",ab);af.setAttribute("tabindex","0");L.bind(ae,function(){MadCap.DEBUG.Log.AddLine(ae);L.animate({top:an,left:V},200,function(){L.remove()});$(af).animate({width:K.offsetWidth,height:K.offsetHeight},200);$(am).animate({opacity:0},200,function(){MadCap.TextEffects.RemoveBackgroundTint()})});L.bind("keydown",function(ap){var ap=ap||window.event;if(ap.keyCode!=27&&ap.keyCode!=13){return}L.remove();MadCap.TextEffects.RemoveBackgroundTint()});L.append(af);document.body.appendChild(L[0]);var an=ah-(Y+U);var V=al-(Y+U);if(MadCap.IsIBooks()){$idealContainer=$(aj).parentsUntil("body").last();X=$idealContainer[0].offsetWidth*0.9;R=X*G;O=$idealContainer.offset().left;L.css({top:an,left:V}).animate({top:S,left:O,width:X,height:R},200)}else{L.css({top:an,left:V}).animate({top:S,left:O},200)}$(af).css({width:K.offsetWidth,height:K.offsetHeight}).animate({width:X,height:R},200);var am=MadCap.TextEffects.AddBackgroundTint(null,document.body);$(am).animate({opacity:0.5},200);af.focus()};C.HelpControl_Click=function(H){var G=this;C.GetHelpControlLinks(this,function(O){var J=new MadCap.Utilities.Url(document.location.href);for(var K=O.length-1;K>=0;K--){var I=O[K];I.Title="t" in I?I.t:"Title" in I?I.Title:null;var L="Url" in I?I.Url:"Link" in I?I.Link:null;if(L!=null&&typeof L!="string"){if(L.FullPath==J.FullPath){O.Remove(K)}L=L.ToRelative(J);I.Link=L.FullPath}}if(!$(G).hasClass("MCHelpControl-Related")){O.sort(function(Q,P){return Q.Title.localeCompare(P.Title)})}var M=new MadCap.Utilities.Dictionary();for(var K=O.length-1;K>=0;K--){var N=O[K];var L=N.Link;if(M.GetItem(L)){O.Remove(K);continue}M.Add(N.Link,true)}e.CreateLinkListPopup(O,document.body,H.pageY,H.pageX,G)},null);H.preventDefault();H.stopPropagation()};C.GetHelpControlLinks=function(M,Q){var P=new Array();var I=$(M);if(v&&!v.InPreviewMode){if(k()){var L=I.attr("data-mc-keywords");if(L!=null){if(L==""){Q(P)}var O=L.split(";");MadCap.Utilities.AsyncForeach(O,function(R,S){v.FindIndexEntry(R,function(T,U){if(U!=null&&U.linkList){P=P.concat(U.linkList)}S()})},function(){Q(v.SortLinkList(P))});return}else{var K=I.attr("data-mc-concepts");if(K!=null){v.GetConceptsLinks(K).then(Q);return}}}}var H=I.attr("data-mc-topics");if(H!=null){topicPairs=H.split("||");if(topicPairs==""){Q(P)}for(var N=0,J=topicPairs.length;N<J;N++){var G=topicPairs[N].split("|");P[P.length]={Title:G[0],Link:G[1]}}}Q(P)};C.Hyperlink_Onclick=function(K){var J=$(this);if(J.hasClass("MCTopicPopup")||J.hasClass("MCPopupThumbnailLink")||J.hasClass("MCHelpControl")||J.hasClass("reply-comment-button")){return}var G=MadCap.Dom.GetAttribute(this,"href");if(G==null||MadCap.String.StartsWith(G,"http:")||MadCap.String.StartsWith(G,"https:")){return}var I=MadCap.Dom.GetAttribute(this,"target");if(I!=null){return}if(k()){var H=new MadCap.Utilities.Url(document.location.href);if(MadCap.String.StartsWith(G,"#")){H=new MadCap.Utilities.Url(H.PlainPath+G)}else{if(MadCap.String.Contains(G,"javascript")){return}else{H=H.ToFolder().CombinePath(G)}}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-topic",[H.FullPath],null);K.preventDefault()}};C.ScrollToBookmark=function(I){var G=$("#"+I);if(G.length==0){G=$("[name = '"+I+"']")}if(G.length>0){if(u(G[0],false)){var H=G.offset().top;$("html, body").animate({scrollTop:H})}}};$(function(G){MadCap.Utilities.LoadHandlers.MadCapTopic=C.Init;E(G)});function l(G){g()}function g(){var G=$(".feedback-comments-wrapper");if(v&&v.IsResponsive&&parent!=window){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-parent-window-width",null,function(I){var H=parseInt(I[0]);if(v.IsTabletLayout(H)){if(!G.hasClass("responsive")){G.addClass("responsive")}}else{if(G.hasClass("responsive")){G.removeClass("responsive")}}})}else{if(G.hasClass("responsive")){G.removeClass("responsive")}}}function E(G){$(window).resize(l);$(window).hashchange(F);C.Init(document)}C.Init=function(J){v=MadCap.WebHelp.HelpSystem.GetHelpSystem();$("input, textarea",J).placeholder();if(document.location.hash.length>0){var I=new MadCap.Utilities.Url(document.location.hash.substring(1));y(I.ToNoQuery().FullPath)}if(k()||b()){$(".MCWebHelpFramesetLink",J).hide()}$(J).on("click","a, area",MadCap.Topic.Hyperlink_Onclick);$(".MCPopupThumbnailPopup",J).click(MadCap.Topic.ThumbPopup_Click);$(".MCPopupThumbnailHover",J).mouseover(MadCap.Topic.ThumbPopup_Hover);$("a.MCHelpControl",J).click(MadCap.Topic.HelpControl_Click);$(".print-button",J).click(function(P){window.print()});$(".expand-all-button",J).click(function(Q){var P=$(this);if(P.hasClass("expand-all-button")){MadCap.TextEffects.TextEffectControl.ExpandAll("open")}else{if(P.hasClass("collapse-all-button")){MadCap.TextEffects.TextEffectControl.ExpandAll("close")}}MadCap.Utilities.ToggleButtonState(this)});$(".remove-highlight-button",J).click(function(P){r()});$(".previous-topic-button",J).click(function(P){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-previous")});$(".next-topic-button",J).click(function(P){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"navigate-next")});if(MadCap.String.Contains(navigator.userAgent,"iphone",false)){window.scrollTo(0,1)}if(MadCap.IsIOS()){var H=$("<div id='ios-wrapper'></div>").appendTo(document.body);var N=H[0];for(var M=document.body.childNodes.length-2;M>=0;M--){var K=document.body.childNodes[M];N.insertBefore(K,N.firstChild)}}w();var O=parent;if(b()){O=parent.parent}if(v==null){var L=$(document.documentElement).attr("data-mc-path-to-help-system");if(!L){return}var G=new MadCap.Utilities.Url(document.location.href).CombinePath(L).ToFolder().CombinePath("Data/HelpSystem.xml");v=new MadCap.WebHelp.HelpSystem(null,null,G.FullPath,null,null);v.Load(A)}else{A()}};function A(){z();if(v&&v.LiveHelpEnabled){q=new MadCap.WebHelp.FeedbackController(v.LiveHelpServer);q.Init(function(){if(q.FeedbackActive){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-csh-id",null,function(G){var H=G!=null?G[0]:null;if(c!=null){q.LogTopic(c,H,function(){var I=$(".feedback-comments-wrapper");if(!b()){if(!q.PulseEnabled){I.removeClass("hidden");t=$("#new-comment-form").attr("data-comment-length-exceeded-message")||"The maximum comment length was exceeded by {n} characters.";q.GetAnonymousEnabled(v.LiveHelpOutputId,function(K){B=K;if(K){$(document.documentElement).addClass("feedback-anonymous-enabled")}});var J=MadCap.Utilities.Store.getItem("LiveHelpUsername");$(".username").val(J);$(".comment-submit").click(p);$(".feedback-comments-wrapper .comments").on("click",".reply-comment-button",m);a()}else{if(q.PulseActive){o(function(K){if(K){var L=q.PulseServer+K;j(L)}else{q.GetPulseStreamID(c,function(M){if(M=="00000000-0000-0000-0000-000000000000"){return}var N=q.PulseServer+"streams/"+M+"/activities?frame=stream";j(N)})}})}}}})}})}});g()}}function F(H){var G=new MadCap.Utilities.Url(document.location.href);if(!MadCap.String.IsNullOrEmpty(G.Fragment)){var I=G.Fragment.substring(1);I=MadCap.Utilities.Url.StripInvalidCharacters(I);C.ScrollToBookmark(I)}}function y(G){G=MadCap.Utilities.Url.StripInvalidCharacters(G);var H=$("[name='"+G+"']");if(H.length>0){u(H[0],false)}}function k(){return window.name=="topic"&&!MadCap.Utilities.HasRuntimeFileType("Default")}function b(){return window.name=="MCPopup"&&!MadCap.Utilities.HasRuntimeFileType("Default")}function z(){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(J){if(J){var H=new MadCap.Utilities.Url(decodeURIComponent(J[0]));var G=new MadCap.Utilities.Url(H.Fragment.substring(1));var I=H.QueryMap.GetItem("BrowseSequencesPath");v.SetBrowseSequencePath(I,G)}})}function p(J){var G=$(this).closest(".comment-form-wrapper");var I=null;var N=G.children(".username-field").val();var H=G.children(".subject-field").val();var M=G.find(".body-field").val();var K=null;var L=G.parent();if(L.hasClass("comment")){K=L.attr("data-mc-comment-id")}x(N,H,M,K)}function x(L,H,K,J){if(B){MadCap.Utilities.Store.setItem("LiveHelpUsername",L);try{q.AddComment(c,null,L,H,K,J,a)}catch(G){var I=t.replace(/{n}/g,G.Data.ExceedAmount);alert(I)}}else{MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"login-user",null,function(P){var O=P[0];if(O!=null){try{q.AddComment(c,O,L,H,K,J,a)}catch(M){var N=t.replace(/{n}/g,M.Data.ExceedAmount);alert(N)}}})}}function m(H){H.preventDefault();var I=$(this).closest(".comment");if(I.children(".comment-form-wrapper")[0]!=null){return}var G=$("#new-comment-form").clone();G.attr("id",null);G.children(".comment-submit").click(p);I.children(".buttons").after(G);G.hide().slideDown()}function a(){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-user-guid",null,function(H){var G=H[0];q.GetTopicComments(c,G,null,function(I){var K=MadCap.Utilities.Xhr.LoadXmlString(I);var J=$(".comments");J.children().not(".mc-template").remove();s(K.documentElement,J)})})}function s(R,O){var Q=$(R).children("Comment");var G=$(".comments .comment.mc-template");for(var N=0,J=Q.length;N<J;N++){var S=$(Q[N]);var M=S.attr("User");var P=S.attr("DateUTC")||S.attr("Date");var K=S.attr("Subject");var I=S.attr("CommentID");var H=S.children("Body").text();var L=G.clone();L.removeClass("mc-template");L.attr("data-mc-comment-id",I);$(".username",L).text(M);$(".timestamp",L).text(P);$(".subject",L).text(K);$(".body",L).text(H);$(O).append(L);s(S.children("Comments")[0],L)}}function o(G){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(K){var H=null;if(K){var J=new MadCap.Utilities.Url(decodeURIComponent(K[0]));var I=new MadCap.Utilities.Url(J.Fragment.substring(1));H=J.QueryMap.GetItem("PulsePath")}G(H)})}function j(I){var G=$(".feedback-comments-wrapper");G.empty();var H=$("<iframe name='topiccomments-html5' class='pulse-frame pulse-loading' title='Topic Comments' frameborder='0'></iframe>");H.appendTo(G);if(!($.browser.msie&&parseInt($.browser.version,10)===7)){H.attr("onload","this.className='pulse-frame';")}H.attr("src",I);G.removeClass("hidden")}function r(){for(var G=1;G<=10;G++){$("body").removeHighlight("SearchHighlight"+G)}}function w(){function G(H){if(typeof H.nextElementSibling=="undefined"){return H.nextSibling==null||H.nextSibling.nodeType==1?H.nextSibling:G(H.nextSibling)}else{return H.nextElementSibling}}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"get-href",null,function(P){if(P){var I=new MadCap.Utilities.Url(decodeURIComponent(P[0]));var L=I.QueryMap.GetItem("Highlight");if(MadCap.String.IsNullOrEmpty(L)){return}var M=L.match(/"[^"]*"/g);if(M!=null){for(var N=0;N<M.length;N++){L=L.replace(M[N],"")}}var Q=L.replace('"',"").split(" ");for(var O=0;O<Q.length;O++){if(Q[O]==""){Q.splice(Q[O],1);O--}}if(M!=null){for(var N=0;N<M.length;N++){Q.push(M[N].replace(/"/g,""))}}for(var O=0;O<Q.length;O++){if($.inArray(Q[O].toLowerCase(),MadCap.Utilities.StopWords)!=-1){Q.splice(O,1);O--}}for(var R=0;R<Q.length;R++){var J=Array("*[class*='MCExpandingBody']","*[class*='MCDropDownHotSpot']","*[data-mc-target-name]");for(var T=0;T<J.length;T++){var H=$(J[T]);for(var K=0;K<H.length;K++){var S=G(H[K].parentElement);if((H[K].textContent!=null&&H[K].textContent.toLowerCase().indexOf(Q[R].toLowerCase())>=0)||(S!=null&&S.textContent!=null&&S.textContent.toLowerCase().indexOf(Q[R].toLowerCase())>=0)){u(T!=2?H[K]:H[K].firstChild)}}}$("body").highlight(Q[R],"SearchHighlight SearchHighlight"+(R+1))}}})}function i(J,H,G,I){if(J==""){return}h(document.body,J,H,G,I);if(f&&f.offsetTop>document.documentElement.clientHeight){document.documentElement.scrollTop=f.offsetTop}}function d(J){for(var I=J.childNodes.length-1;I>=1;I--){var G=J.childNodes[I];var H=G.previousSibling;if(G.nodeType==3&&H.nodeType==3){H.nodeValue=H.nodeValue+G.nodeValue;J.removeChild(G)}}for(var I=0;I<J.childNodes.length;I++){d(J.childNodes[I])}}function h(S,J,K,Q,P){var V=null;if(P=="NGram"){V=new RegExp(J,"g"+(Q?"":"i"))}else{var H=J.replace(/([*^$+?.()[\]{}|\\])/g,"\\$1");V=new RegExp("(^|\\s|[.,;!#$/:?'\"()[\\]{}|=+*_\\-\\\\])"+H+"($|\\s|[.,;!#$/:?'\"()[\\]{}|=+*_\\-\\\\])","g"+(Q?"":"i"))}for(var N=S.childNodes.length-1;N>=0;N--){var I=S.childNodes[N];h(I,J,K,Q,P);if(I.nodeType!=3||I.parentNode.nodeName=="SCRIPT"){continue}var M=I;var U=M.nodeValue;for(var O=V.exec(U);O!=null;O=V.exec(U)){var R=O.index+(P=="NGram"?0:O[1].length);var G=R+J.length;var T=document.createElement("span");T.className="highlight";T.style.fontWeight="bold";T.style.backgroundColor=K.split(",")[0];T.style.color=K.split(",")[1];var L=document.createElement("span");L.className="SearchHighlight"+(D+1);L.appendChild(document.createTextNode(U.substring(R,G)));T.appendChild(L);M.nodeValue=U.substring(0,R);M.parentNode.insertBefore(T,M.nextSibling);M.parentNode.insertBefore(document.createTextNode(U.substring(G,U.length)),T.nextSibling);M=M.nextSibling.nextSibling;U=M.nodeValue;if(f==null||T.offsetTop<f.offsetTop){f=T}u(T)}}}function u(I,G){if(typeof G=="undefined"){G=true}var O=false;for(var N=I.parentNode;N.nodeName!="BODY";N=N.parentNode){var R=$(N);if(R.hasClass("MCExpanding")){var L=e.TextEffectControl.FindControl(R[0]);if(L==null){L=new MadCap.Topic.ExpandingControl(N)}L.Open(G);O=true}else{if(R.hasClass("MCDropDown")){var L=e.TextEffectControl.FindControl(R[0]);if(L==null){L=new MadCap.Topic.DropDownControl(N)}L.Open(G);O=true}else{var M=$(N).attr("data-mc-target-name");if(M!=null){var Q=MadCap.Dom.GetElementsByClassName("MCToggler",null,document.body);for(var K=0,H=Q.length;K<H;K++){var P=$(Q[K]).attr("data-mc-targets").split(";");var S=false;for(var J=0;J<P.length;J++){if(P[J]==M){S=true;break}}if(!S){continue}var L=e.TextEffectControl.FindControl(Q[K]);if(L==null){L=new MadCap.Topic.TogglerControl(Q[K])}L.Open(G);O=true;break}}}}}return O}MadCap.Utilities.CrossFrame.AddMessageHandler(function(L,H,K){var J={Handled:false,FireResponse:true};if(L=="print"){window.focus();window.print();J.Handled=true}else{if(L=="expand-all"){MadCap.TextEffects.TextEffectControl.ExpandAll("open");J.Handled=true}else{if(L=="collapse-all"){MadCap.TextEffects.TextEffectControl.ExpandAll("close");J.Handled=true}else{if(L=="get-topic-id"){K[K.length]=c;J.Handled=true}else{if(L=="get-topic-url"){K[K.length]=document.location.href;J.Handled=true}else{if(L=="remove-highlight"){r();J.Handled=true}else{if(L=="get-bs-path"){var G=new MadCap.Utilities.Url(document.location.href);var I=G.QueryMap.GetItem("BrowseSequencePath");if(I==null){I=MadCap.Dom.Dataset(document.documentElement,"mcBrowseSequencePath")}K[K.length]=I;K[K.length]=G.FullPath;J.Handled=true}else{if(L=="reload-pulse"){MadCap.Utilities.CrossFrame.PostMessageRequest(frames["topiccomments-html5"],"reload");J.Handled=true}else{if(L=="logout-complete"){MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"logout-complete");J.Handled=true}else{if(L=="set-pulse-login-id"){if(q!=null){q.PulseUserGuid=H[0]}MadCap.Utilities.CrossFrame.PostMessageRequest(parent,"set-pulse-login-id",H);J.Handled=true}}}}}}}}}}return J},null);var n=new Array("#ffff66,#000000","#a0ffff,#000000","#99ff99,#000000","#ff9999,#000000","#ff66ff,#000000","#880000,#ffffff","#00aa00,#ffffff","#886800,#ffffff","#004699,#ffffff","#990099,#ffffff");var D=0;var f=null;var v=null;var q=null;var B=false;var c=MadCap.Dom.Dataset(document.documentElement,"mcLiveHelp");var t=null})();
+
+//    Syntax:
+//    function MadCap.OpenHelp(id, skinName, searchQuery, firstPick)
+//
+//    id          - Identifier that was created in Flare. This can be either the identifier name or value. The topic and skin
+//                  that is associated with the id will be used. If no skin is associated with the id, skinName will be used.
+//                  Alternatively, id may contain a topic path. In this case, the specified topic will be loaded with the skin
+//                  that is specified in skinName. Specify null to use the help system's default starting topic.
+//    skinName    - This is a string indicating the name of the skin to use when opening the help system. Specify null to use
+//                  the default skin or to use the skin that is associated with id. If a skin is associated with id AND a skin
+//                  is specified in skinName, skinName will take precedence.
+//    searchQuery - This is a string indicating the search query used when opening the help system. If a search query is specified,
+//                  the help system will start with the search pane open and the search query executed. Specify null to open
+//                  the help system without a search query.
+//    firstPick   - This is a boolean indicating whether to automatically open the topic from the first search result that is
+//                  returned by the search query (see searchQuery parameter). Use null if no search query was specified.
+//
+//    Examples:
+//
+//    In the following example, topic and skin associated with "FILE_NEW" will be used:
+//    MadCap.OpenHelp('FILE_NEW', null, null, null);
+//
+//    In the following example, topic associated with "FILE_NEW" will be used. "BlueSkin" will override the skin associated with "FILE_NEW":
+//    MadCap.OpenHelp('FILE_NEW', 'BlueSkin', null, null);
+//
+//    In the following example, topic and skin associated with identifier value 1 will be used:
+//    MadCap.OpenHelp(1, null, null, null);
+//
+//    In the following example, topic associated with identifier value 1 will be used. "BlueSkin" will override the skin associated with identifier value 1:
+//    MadCap.OpenHelp(1, 'BlueSkin', null, null);
+//
+//    In the following example, "Company/Employees.htm" will be used with the default skin:
+//    MadCap.OpenHelp('Company/Employees.htm', null, null, null);
+//
+//    In the following example, both the default topic and skin will be used:
+//    MadCap.OpenHelp(null, null, null, null);
+//
+//    In the following example, the default topic will be used with "BlueSkin":
+//    MadCap.OpenHelp(null, 'BlueSkin', null, null);
+//
+//    In the following example, both the default topic and skin will be used. The help system will be started with the search pane
+//    displaying the search results for the query 'quarterly report'. The topic from the first result will not be opened:
+//    MadCap.OpenHelp(null, null, 'quarterly report', false);
+//
+//    In the following example, both the default topic and skin will be used. The help system will be started with the search pane
+//    displaying the search results for the query 'quarterly report'. The topic from the first result will be opened:
+//    MadCap.OpenHelp(null, null, 'quarterly report', true);
+
+(function ()
+{
+var helpSystemName = "gtf_manuel_utilisateur.htm";
+
+    MadCap.OpenHelp = function (id, skinName, searchQuery, firstPick, pathToHelpSystem)
+    {
+        var cshFileName = helpSystemName.substring(0, helpSystemName.lastIndexOf(".")) + ".js";
+        var webHelpPath = null;
+        var webHelpFile = null;
+        var cshFileUrl = new MadCap.Utilities.Url(helpSystemName);
+
+        if (pathToHelpSystem == null)
+        {
+            var scriptNodes = document.getElementsByTagName("script");
+            var found = false;
+
+            for (var i = 0; i < scriptNodes.length; i++)
+            {
+                var src = scriptNodes[i].src;
+                var srcUrl = new MadCap.Utilities.Url(MadCap.String.Trim(src));
+
+                if (srcUrl.NameWithExtension.toLowerCase() == cshFileName.toLowerCase())
+                {
+                    var locUrl = new MadCap.Utilities.Url(document.location.href).ToFolder();
+
+                    webHelpPath = locUrl.AddFile(srcUrl);
+                    webHelpPath = webHelpPath.ToFolder();
+
+                    found = true;
+
+                    break;
+                }
+            }
+
+            if (!found)
+                throw "CSH failed: could not find MadCap CSH script in page.";
+        }
+        else
+        {
+            webHelpPath = new MadCap.Utilities.Url(pathToHelpSystem);
+        }
+
+        webHelpFile = webHelpPath.AddFile(cshFileUrl);
+
+        var webHelpPath = webHelpFile.ToFolder().FullPath;
+        var helpSystemFile = webHelpPath + "Data/HelpSystem.xml";
+        var helpSystem = new MadCap.WebHelp.HelpSystem(null, null, helpSystemFile, null, null);
+
+        helpSystem.Load(function ()
+        {
+            helpSystem.LookupCSHID(id, function (idInfo)
+            {
+                function OnGetSkinComplete()
+                {
+                    var cshString = webHelpFile.FullPath;
+
+                    if (id)
+                        cshString += "#cshid=" + id;
+
+                    if (skinName)
+                    {
+                        if (cshString.indexOf("#") != -1)
+                            cshString += "&";
+                        else
+                            cshString += "#";
+
+                        cshString += "skinName=" + skinName;
+                    }
+
+                    if (searchQuery)
+                    {
+                        if (cshString.indexOf("#") != -1)
+                            cshString += "&";
+                        else
+                            cshString += "#";
+
+                        cshString += "searchQuery=" + searchQuery;
+
+                        if (firstPick)
+                            cshString += "&firstPick=true";
+                    }
+
+                    var win = window.open(cshString, "_MCWebHelpCSH", browserOptions + size);
+
+                    // Bug 32051: Windows 7 64-bit is returning null from the call to window.open().
+                    if (win != null)
+                        win.focus();
+                }
+
+                skinName = skinName || idInfo.Skin;
+
+                // Browser setup options
+
+                var browserOptions = "";
+                var size = "";
+
+                if (skinName)
+                {
+                    var skin = helpSystem.GetSkin(skinName);
+
+                    if (skin)
+                    {
+                        var useDefault = MadCap.String.ToBool(skin.UseDefaultBrowserSetup, false);
+
+                        if (!useDefault)
+                        {
+                            var toolbar = "no";
+                            var menu = "no";
+                            var locationBar = "no";
+                            var statusBar = "no";
+                            var resizable = "no";
+                            var setup = skin.BrowserSetup;
+
+                            if (setup)
+                            {
+                                toolbar = (setup.indexOf("Toolbar") > -1) ? "yes" : "no";
+                                menu = (setup.indexOf("Menu") > -1) ? "yes" : "no";
+                                locationBar = (setup.indexOf("LocationBar") > -1) ? "yes" : "no";
+                                statusBar = (setup.indexOf("StatusBar") > -1) ? "yes" : "no";
+                                resizable = (setup.indexOf("Resizable") > -1) ? "yes" : "no";
+                            }
+
+                            browserOptions = "toolbar=" + toolbar + ", menubar=" + menu + ", location=" + locationBar + ", status=" + statusBar + ", resizable=" + resizable;
+                        }
+
+                        var windowSize = LoadSize(skin);
+
+                        if (windowSize)
+                            size = ", top=" + windowSize.topPx + ", left=" + windowSize.leftPx + ", width=" + windowSize.widthPx + ", height=" + windowSize.heightPx;
+                    }
+
+                    OnGetSkinComplete();
+                }
+                else
+                {
+                    OnGetSkinComplete();
+                }
+            });
+        });
+    }
+
+    function LoadSize(skin)
+    {
+        var useDefaultSize = MadCap.String.ToBool(skin.UseBrowserDefaultSize, false);
+
+        if (useDefaultSize)
+            return null;
+
+        var topPx = MadCap.String.ToInt(skin.Top, 0);
+        var leftPx = MadCap.String.ToInt(skin.Left, 0);
+        var bottomPx = MadCap.String.ToInt(skin.Bottom, 0);
+        var rightPx = MadCap.String.ToInt(skin.Right, 0);
+        var widthPx = MadCap.String.ToInt(skin.Width, 800);
+        var heightPx = MadCap.String.ToInt(skin.Height, 600);
+
+        var anchors = skin.Anchors;
+
+        if (anchors)
+        {
+            var aTop = (anchors.indexOf("Top") > -1) ? true : false;
+            var aLeft = (anchors.indexOf("Left") > -1) ? true : false;
+            var aBottom = (anchors.indexOf("Bottom") > -1) ? true : false;
+            var aRight = (anchors.indexOf("Right") > -1) ? true : false;
+            var aWidth = (anchors.indexOf("Width") > -1) ? true : false;
+            var aHeight = (anchors.indexOf("Height") > -1) ? true : false;
+        }
+
+        if (aLeft && aRight)
+            widthPx = screen.width - (leftPx + rightPx);
+        else if (!aLeft && aRight)
+            leftPx = screen.width - (widthPx + rightPx);
+        else if (aWidth)
+            leftPx = (screen.width / 2) - (widthPx / 2);
+
+        if (aTop && aBottom)
+            heightPx = screen.height - (topPx + bottomPx);
+        else if (!aTop && aBottom)
+            topPx = screen.height - (heightPx + bottomPx);
+        else if (aHeight)
+            topPx = (screen.height / 2) - (heightPx / 2);
+
+        //
+
+        var windowSize = {};
+        windowSize.topPx = topPx;
+        windowSize.leftPx = leftPx;
+        windowSize.widthPx = widthPx;
+        windowSize.heightPx = heightPx;
+
+        return windowSize;
+    }
+})();
diff --git a/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.mcwebhelp b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.mcwebhelp
new file mode 100755
index 0000000000000000000000000000000000000000..32240e3c3c2b2612eecc123cba5af0ff18c43713
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur.mcwebhelp
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<WebHelpSystem DefaultUrl="content/gtf_manuel_utilisateur/bienvenue_dans_gtf.2016.htm" Toc="Data/Toc.js" Index="Data/Index.js" Concepts="Data/Concepts.js" BrowseSequence="Data/BrowseSequence.js" Glossary="Data/Glossary.js" SearchDatabase="Data/Search.js" Alias="Data/Alias.xml" Synonyms="Data/Synonyms.xml" SearchFilterSet="Data/Filters.js" SearchUrl="content/search.htm" SkinName="HTML5 - Top Navigation" Skins="HTML5 - Top Navigation" BuildTime="22/02/2017 10:40:03" BuildVersion="11.0.0.32808" TargetType="WebHelp2" SkinTemplateFolder="Skin/" InPreviewMode="false" MoveOutputContentToRoot="false" MakeFileLowerCase="true" UseCustomTopicFileExtension="false" CustomTopicFileExtension="" PreventExternalUrls="false" EnableResponsiveOutput="true" ResultsPerPage="20">
+    <CatapultSkin Version="2" SkinType="WebHelp2" ComponentType="MasterPage" TemplateName="Fluid" Comment="HTML5 Top Navigation skin" EnableResponsiveOutput="True" Name="HTML5 - Top Navigation">
+        <WebHelpOptions NavigationPanePosition="Left" TopMenuDepth="4" />
+    </CatapultSkin>
+</WebHelpSystem>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur_CSH.htm b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur_CSH.htm
new file mode 100755
index 0000000000000000000000000000000000000000..4eaac7f249da05728ade7dd7642fcfbe48ff55a0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/admin/gtf_manuel_utilisateur_CSH.htm
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html data-mc-runtime-file-type="CSH">
+    <!-- saved from url=(0016)http://localhost -->
+    <head>
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta charset="utf-8" /><title></title>
+        <script src="Resources/Scripts/jquery.min.js">
+        </script>
+        <script src="Resources/Scripts/MadCapAll.js">
+        </script>
+        <script>
+        //<![CDATA[
+        $(Init);
+
+        function Init()
+        {
+            var cshid = null;
+            var skinName = null;
+            var searchQuery = null;
+            var firstPick = null;
+
+            if (document.location.hash.length > 0)
+            {
+                var hash = document.location.hash.substring(1);
+                var parts = hash.split("|");
+
+                cshid = parts[0];
+
+                if (parts.length == 2)
+                    skinName = parts[1];
+            }
+
+            if (document.location.search.length > 0)
+            {
+                var search = document.location.search.substring(1);
+                var parts = search.split("|");
+
+                searchQuery = parts[0];
+
+                if (parts.length == 2)
+                    firstPick = parts[1];
+            }
+
+            var url = new MadCap.Utilities.Url(document.location.href);
+            var urlName = url.Name.substring(0, url.Name.length - "_CSH".length);
+            url = url.ToFolder().AddFile(urlName + "." + url.Extension);
+            var path = url.PlainPath;
+
+            var isFirst = true;
+
+            if (!MadCap.String.IsNullOrEmpty(cshid))
+            {
+                if (isFirst)
+                    path += "#";
+
+                isFirst = false;
+
+                path += "cshid=" + cshid;
+            }
+
+            if (!MadCap.String.IsNullOrEmpty(skinName))
+            {
+                if (isFirst)
+                    path += "#";
+                else
+                    path += "&";
+
+                isFirst = false;
+
+                path += "skinName=" + skinName;
+            }
+
+            if (!MadCap.String.IsNullOrEmpty(searchQuery))
+            {
+                if (isFirst)
+                    path += "#";
+                else
+                    path += "&";
+
+                path += "searchQuery=" + searchQuery;
+
+                if (!MadCap.String.IsNullOrEmpty(firstPick))
+                    path += "&firstPick=true";
+            }
+
+            document.location.replace(path);
+        }
+        //]]></script>
+    </head>
+    <body>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/Doxyfile b/src/module_gtf/module/gtf.doc/api_form/Doxyfile
new file mode 100755
index 0000000000000000000000000000000000000000..3c524778866a476dff093889257c2fd8a268cc1d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/Doxyfile
@@ -0,0 +1,2382 @@
+# Doxyfile 1.8.7
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = "Librairies Php Veremes"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = 
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          = "Documentation des librairies internes de Veremes"
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+# the documentation. The maximum height of the logo should not exceed 55 pixels
+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+# to the output directory.
+
+PROJECT_LOGO           = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = 
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = French
+
+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = NO
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = NO
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+# new page for each member. If set to NO, the documentation of a member will be
+# part of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                = 
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      = 
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO these classes will be included in the various overviews. This option has
+# no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+# todo list. This list is created by putting \todo commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = NO
+
+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+# test list. This list is created by putting \test commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = NO
+
+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = NO
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES the list
+# will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    = 
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            = 
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. Do not use file names with spaces, bibtex cannot handle them. See
+# also \cite for info how to create references.
+
+CITE_BIB_FILES         = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
+# documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = C:/serveurs/Apache2/htdocs/lib/vmlib/HtmlForm.class.inc \
+                         C:/serveurs/Apache2/htdocs/lib/gtf_lib/gtf_object
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
+
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.idl \
+                         *.ddl \
+                         *.odl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.cs \
+                         *.d \
+                         *.php \
+                         *.php4 \
+                         *.php5 \
+                         *.phtml \
+                         *.inc \
+                         *.m \
+                         *.markdown \
+                         *.md \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.f90 \
+                         *.f \
+                         *.for \
+                         *.tcl \
+                         *.vhd \
+                         *.vhdl \
+                         *.ucf \
+                         *.qsf \
+                         *.as \
+                         *.js \
+                         *.class.inc
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = 
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER ) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS = 
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# compiled with the --with-libclang option.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS          = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        = 
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-
+# defined cascading style sheet that is included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefor more robust against future updates.
+# Doxygen will copy the style sheet file to the output directory. For an example
+# see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  = 
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       = 
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the stylesheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               = 
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           = 
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
+# YES) or that it should be included in the master .chm file ( NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     = 
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated (
+# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               = 
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   = 
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  = 
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  = 
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           = 
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = YES
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = YES
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 200
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     = 
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       = 
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       = 
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     = 
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. To get the times font for
+# instance you can specify
+# EXTRA_PACKAGES=times
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will
+# replace them by respectively the title of the page, the current date and time,
+# only the current date, the version number of doxygen, the project name (see
+# PROJECT_NAME), or the project number (see PROJECT_NUMBER).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           = 
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           = 
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             = 
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
+# Definitions (see http://autogen.sf.net) file that captures the structure of
+# the code including all documentation. Note that this feature is still
+# experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
+# in the source code. If set to NO only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES the includes files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+# class index. If set to NO only the inherited external classes will be listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+# the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            = 
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               = 
+
+# If set to YES, the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font n the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           = 
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot.
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif and svg.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           = 
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           = 
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           = 
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES
diff --git a/src/module_gtf/module/gtf.doc/api_form/_category_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_category_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..36aa503a486b04aba1d78d73726c878aa889075a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_category_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Category.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_category_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Category.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_category.html">Category</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_category_8class_8inc.html">Category.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_category_8class_8sql_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_category_8class_8sql_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..30def4d9d7093cc3b68f4156eb5b95ea9d6a9041
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_category_8class_8sql_8inc.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Category.class.sql.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_category_8class_8sql_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Category.class.sql.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:acf6ca91b10f5bccf837c39782c135bac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_category_8class_8sql_8inc.html#acf6ca91b10f5bccf837c39782c135bac">$aSql</a> ['pgsql']['getCategoryParameters'] = 'SELECT [sSchemaGtf].category.* FROM [sSchemaGtf].category WHERE [sSchemaGtf].category.category_id=[category_id]'</td></tr>
+<tr class="separator:acf6ca91b10f5bccf837c39782c135bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des variables</h2>
+<a class="anchor" id="acf6ca91b10f5bccf837c39782c135bac"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$aSql['pgsql']['getCategoryParameters'] = 'SELECT [sSchemaGtf].category.* FROM [sSchemaGtf].category WHERE [sSchemaGtf].category.category_id=[category_id]'</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_category_8class_8sql_8inc.html">Category.class.sql.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_category_8class_8sql_8inc.js b/src/module_gtf/module/gtf.doc/api_form/_category_8class_8sql_8inc.js
new file mode 100755
index 0000000000000000000000000000000000000000..7271bb3a349e4fbb58d04c7c39fd4f264233fb58
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_category_8class_8sql_8inc.js
@@ -0,0 +1,4 @@
+var _category_8class_8sql_8inc =
+[
+    [ "$aSql", "_category_8class_8sql_8inc.html#acf6ca91b10f5bccf837c39782c135bac", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/_email_option_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_email_option_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..4dd54a7f00f7317b1479ce4be17e45bdec3ccab2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_email_option_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier EmailOption.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_email_option_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier EmailOption.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classemail_option.html">emailOption</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_email_option_8class_8inc.html">EmailOption.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_email_options_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_email_options_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..b47ad79aa794e72cf3900281d9c9bbc58b8edefa
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_email_options_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier EmailOptions.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_email_options_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier EmailOptions.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classemail_options.html">emailOptions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_email_options_8class_8inc.html">EmailOptions.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_error_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_error_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..b6d7ad9f04c588494506ba0abde6b166a20eabd4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_error_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Error.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_error_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Error.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerror.html">error</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_error_8class_8inc.html">Error.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_fme_engine_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_fme_engine_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..03672369e9af8697d95af62af3c94336d5b9a757
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_fme_engine_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier FmeEngine.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_fme_engine_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier FmeEngine.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfme_engine.html">fmeEngine</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_fme_engine_8class_8inc.html">FmeEngine.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_form_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_form_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..9b66fdc52140696f3e18703644f98fb018e60160
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_form_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Form.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_form_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Form.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_form.html">Form</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_form_8class_8inc.html">Form.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_gtf_engine_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_gtf_engine_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..4349b92e3c9245ef59d41375820f27f74c00a1b4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_gtf_engine_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier GtfEngine.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_gtf_engine_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier GtfEngine.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgtf_engine.html">gtfEngine</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_gtf_engine_8class_8inc.html">GtfEngine.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_gtf_engines_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_gtf_engines_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..8e477c50d8255911c3ccbf35e2f9d3fb4fea9660
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_gtf_engines_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier GtfEngines.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_gtf_engines_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier GtfEngines.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgtf_engines.html">gtfEngines</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_gtf_engines_8class_8inc.html">GtfEngines.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_html_form_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_html_form_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..f1de406e549340960cd62fe0f320f92d8d06714f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_html_form_8class_8inc.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier HtmlForm.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_html_form_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier HtmlForm.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a>.  
+<a href="#details">Plus de détails...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html">HtmlForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a>.  <a href="class_html_form.html#details">Plus de détails...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description détaillée</h2>
+<div class="textblock"><dl class="section author"><dt>Auteur</dt><dd>Philippe Rigaux <a href="#" onclick="location.href='mai'+'lto:'+'rig'+'au'+'x@l'+'am'+'sad'+'e.'+'dau'+'ph'+'ine'+'.f'+'r'; return false;">rigau<span style="display: none;">.nosp@m.</span>x@la<span style="display: none;">.nosp@m.</span>msade<span style="display: none;">.nosp@m.</span>.dau<span style="display: none;">.nosp@m.</span>phine<span style="display: none;">.nosp@m.</span>.fr</a>. Olivier Gayte <a href="#" onclick="location.href='mai'+'lto:'+'oli'+'vi'+'er.'+'ga'+'yte'+'@v'+'ere'+'me'+'s.c'+'om'; return false;">olivi<span style="display: none;">.nosp@m.</span>er.g<span style="display: none;">.nosp@m.</span>ayte@<span style="display: none;">.nosp@m.</span>vere<span style="display: none;">.nosp@m.</span>mes.c<span style="display: none;">.nosp@m.</span>om</a>. Yoann Perollet <a href="#" onclick="location.href='mai'+'lto:'+'yoa'+'nn'+'.pe'+'ro'+'lle'+'t@'+'ver'+'em'+'es.'+'co'+'m'; return false;">yoann<span style="display: none;">.nosp@m.</span>.per<span style="display: none;">.nosp@m.</span>ollet<span style="display: none;">.nosp@m.</span>@ver<span style="display: none;">.nosp@m.</span>emes.<span style="display: none;">.nosp@m.</span>com</a>.</dd></dl>
+<p>Cette classe à été élaborée par Philippe Rigaux. Elle permet de générer dynamiquement et simplement les champs html. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_200837d96101eeec8a3925a5b2f8156c.html">vmlib</a></li><li class="navelem"><a class="el" href="_html_form_8class_8inc.html">HtmlForm.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_inbox_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_inbox_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..5046c3bf43e2d0f7a9af7dc156638eefb7fc186e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_inbox_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Inbox.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_inbox_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Inbox.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classinbox.html">inbox</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_inbox_8class_8inc.html">Inbox.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_inboxes_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_inboxes_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..32dee449fb646c16c12da363af0639f1cb6c171c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_inboxes_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Inboxes.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_inboxes_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Inboxes.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classinboxes.html">inboxes</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_inboxes_8class_8inc.html">Inboxes.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_ldap_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_ldap_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..18db0b6d3f2d05da8011edd4c57e0892fa192e38
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_ldap_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Ldap.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_ldap_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Ldap.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html">Ldap</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_ldap_8class_8inc.html">Ldap.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_order_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_order_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..8cb5b7f7ebcfdcde962e589190c80734b1a977d3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_order_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Order.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_order_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Order.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html">order</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_order_8class_8inc.html">Order.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_order_statu_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_order_statu_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..fc166e1bde3754a797b7e447202abcd0a3911454
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_order_statu_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier OrderStatu.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_order_statu_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier OrderStatu.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder_statu.html">orderStatu</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_order_statu_8class_8inc.html">OrderStatu.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_order_status_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_order_status_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..34fec6c1d9d4d74d2aa80a539bad5ad5956adb30
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_order_status_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier OrderStatus.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_order_status_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier OrderStatus.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder_status.html">orderStatus</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_order_status_8class_8inc.html">OrderStatus.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_orders_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_orders_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..a1b05b46e920beb91ea4608d29c874bf4394c074
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_orders_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Orders.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_orders_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Orders.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorders.html">orders</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_orders_8class_8inc.html">Orders.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:23 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_period_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_period_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..c754f93c2b442b8d7de572742b4a8c77a5c35692
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_period_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Period.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_period_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Period.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classperiod.html">period</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_period_8class_8inc.html">Period.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_periods_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_periods_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..27e1593fa19bae63becf15c31a7671799f6e1132
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_periods_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Periods.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_periods_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Periods.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classperiods.html">periods</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_periods_8class_8inc.html">Periods.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_priorities_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_priorities_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..35dfcf0654c29451df3216d815a2a238365bdcf4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_priorities_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Priorities.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_priorities_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Priorities.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpriorities.html">priorities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_priorities_8class_8inc.html">Priorities.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_priority_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_priority_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..3f9bf79af2ad09a214c4f64381a01e8c77cf808e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_priority_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Priority.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_priority_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Priority.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpriority.html">priority</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_priority_8class_8inc.html">Priority.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_subscription_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_subscription_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..f8ba71ce93f4a8e756ed865ef4a48755bf6664a8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_subscription_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Subscription.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_subscription_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Subscription.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscription.html">subscription</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_subscription_8class_8inc.html">Subscription.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_subscriptions_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_subscriptions_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..d98b183936e40c6830e37ff9db12c589b24a0769
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_subscriptions_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Subscriptions.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_subscriptions_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Subscriptions.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscriptions.html">subscriptions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_subscriptions_8class_8inc.html">Subscriptions.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_survey_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_survey_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..a9b0180940c3504438aff4677bbdc8d834eef3bd
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_survey_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Survey.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_survey_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Survey.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey.html">survey</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_survey_8class_8inc.html">Survey.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_survey_type_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_survey_type_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..3319e6c9d21eff15c833cea8a138098fa9f3c47e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_survey_type_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier SurveyType.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_survey_type_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier SurveyType.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey_type.html">surveyType</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_survey_type_8class_8inc.html">SurveyType.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_survey_types_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_survey_types_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..2d87586cfaa4dc1e340d2ba937c23eb19939c34f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_survey_types_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier SurveyTypes.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_survey_types_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier SurveyTypes.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey_types.html">surveyTypes</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_survey_types_8class_8inc.html">SurveyTypes.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_surveys_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_surveys_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..51c9a4e206e03d1c65b820b0d107fd87139eaac2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_surveys_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Surveys.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_surveys_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Surveys.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurveys.html">surveys</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_surveys_8class_8inc.html">Surveys.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_token_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_token_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..f2dcb46f1907a5bc0a9e40942285cd69d9ecf2bd
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_token_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Token.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_token_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Token.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoken.html">token</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_token_8class_8inc.html">Token.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_user_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_user_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..711ab3a85e3b08d3f7ad3798bd5a54ea42a19a9a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_user_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier User.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_user_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier User.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_user.html">User</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_user_8class_8inc.html">User.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_user_8class_8sql_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_user_8class_8sql_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..9206f32f31811965abc6ef47bef7e4fa3feb31a8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_user_8class_8sql_8inc.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier User.class.sql.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_user_8class_8sql_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier User.class.sql.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ad04f154542c7e2805c3486312944b091"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_user_8class_8sql_8inc.html#ad04f154542c7e2805c3486312944b091">$aSql</a> ['pgsql']['getUserParameters'] = 'SELECT [sSchemaFramework].user.* FROM [sSchemaFramework].user WHERE [sSchemaFramework].user.user_id=[user_id]'</td></tr>
+<tr class="separator:ad04f154542c7e2805c3486312944b091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des variables</h2>
+<a class="anchor" id="ad04f154542c7e2805c3486312944b091"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$aSql['pgsql']['getUserParameters'] = 'SELECT [sSchemaFramework].user.* FROM [sSchemaFramework].user WHERE [sSchemaFramework].user.user_id=[user_id]'</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_user_8class_8sql_8inc.html">User.class.sql.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_user_8class_8sql_8inc.js b/src/module_gtf/module/gtf.doc/api_form/_user_8class_8sql_8inc.js
new file mode 100755
index 0000000000000000000000000000000000000000..22960a955628ccab5d22fd1fa675fa5af0c33d17
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_user_8class_8sql_8inc.js
@@ -0,0 +1,4 @@
+var _user_8class_8sql_8inc =
+[
+    [ "$aSql", "_user_8class_8sql_8inc.html#ad04f154542c7e2805c3486312944b091", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/_workspace_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_workspace_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..9eb5d15abd7cbdea97a050880fa7cd0f519aacfa
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_workspace_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Workspace.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_workspace_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Workspace.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspace.html">workspace</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_workspace_8class_8inc.html">Workspace.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/_workspaces_8class_8inc.html b/src/module_gtf/module/gtf.doc/api_form/_workspaces_8class_8inc.html
new file mode 100755
index 0000000000000000000000000000000000000000..19ae6a1ed4cc588d461fa83cb02f80a45b850287
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/_workspaces_8class_8inc.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence du fichier Workspaces.class.inc</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_workspaces_8class_8inc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Structures de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence du fichier Workspaces.class.inc</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Structures de données</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspaces.html">workspaces</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li><li class="navelem"><a class="el" href="_workspaces_8class_8inc.html">Workspaces.class.inc</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/annotated.html b/src/module_gtf/module/gtf.doc/api_form/annotated.html
new file mode 100755
index 0000000000000000000000000000000000000000..e4a7a1e672ea0efcbda26751a75095d9c6dfa37f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/annotated.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Structures de données</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('annotated.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Structures de données</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Liste des structures de données avec une brève description :</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_category.html" target="_self">Category</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classemail_option.html" target="_self">emailOption</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classemail_options.html" target="_self">emailOptions</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classerror.html" target="_self">error</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfme_engine.html" target="_self">fmeEngine</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_form.html" target="_self">Form</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgtf_engine.html" target="_self">gtfEngine</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgtf_engines.html" target="_self">gtfEngines</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_html_form.html" target="_self">HtmlForm</a></td><td class="desc">Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a> </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classinbox.html" target="_self">inbox</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classinboxes.html" target="_self">inboxes</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ldap.html" target="_self">Ldap</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorder.html" target="_self">order</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorders.html" target="_self">orders</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorder_statu.html" target="_self">orderStatu</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorder_status.html" target="_self">orderStatus</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classperiod.html" target="_self">period</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classperiods.html" target="_self">periods</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpriorities.html" target="_self">priorities</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpriority.html" target="_self">priority</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsubscription.html" target="_self">subscription</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsubscriptions.html" target="_self">subscriptions</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurvey.html" target="_self">survey</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurveys.html" target="_self">surveys</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurvey_type.html" target="_self">surveyType</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurvey_types.html" target="_self">surveyTypes</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtoken.html" target="_self">token</a></td><td class="desc"></td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_user.html" target="_self">User</a></td><td class="desc"></td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classworkspace.html" target="_self">workspace</a></td><td class="desc"></td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classworkspaces.html" target="_self">workspaces</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/annotated.js b/src/module_gtf/module/gtf.doc/api_form/annotated.js
new file mode 100755
index 0000000000000000000000000000000000000000..bd83037d118ebe9c28f72e33aae5c78fff262c06
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/annotated.js
@@ -0,0 +1,33 @@
+var annotated =
+[
+    [ "Category", "class_category.html", "class_category" ],
+    [ "emailOption", "classemail_option.html", "classemail_option" ],
+    [ "emailOptions", "classemail_options.html", "classemail_options" ],
+    [ "error", "classerror.html", "classerror" ],
+    [ "fmeEngine", "classfme_engine.html", "classfme_engine" ],
+    [ "Form", "class_form.html", "class_form" ],
+    [ "gtfEngine", "classgtf_engine.html", "classgtf_engine" ],
+    [ "gtfEngines", "classgtf_engines.html", "classgtf_engines" ],
+    [ "HtmlForm", "class_html_form.html", "class_html_form" ],
+    [ "inbox", "classinbox.html", "classinbox" ],
+    [ "inboxes", "classinboxes.html", "classinboxes" ],
+    [ "Ldap", "class_ldap.html", "class_ldap" ],
+    [ "order", "classorder.html", "classorder" ],
+    [ "orders", "classorders.html", "classorders" ],
+    [ "orderStatu", "classorder_statu.html", "classorder_statu" ],
+    [ "orderStatus", "classorder_status.html", "classorder_status" ],
+    [ "period", "classperiod.html", "classperiod" ],
+    [ "periods", "classperiods.html", "classperiods" ],
+    [ "priorities", "classpriorities.html", "classpriorities" ],
+    [ "priority", "classpriority.html", "classpriority" ],
+    [ "subscription", "classsubscription.html", "classsubscription" ],
+    [ "subscriptions", "classsubscriptions.html", "classsubscriptions" ],
+    [ "survey", "classsurvey.html", "classsurvey" ],
+    [ "surveys", "classsurveys.html", "classsurveys" ],
+    [ "surveyType", "classsurvey_type.html", "classsurvey_type" ],
+    [ "surveyTypes", "classsurvey_types.html", "classsurvey_types" ],
+    [ "token", "classtoken.html", "classtoken" ],
+    [ "User", "class_user.html", "class_user" ],
+    [ "workspace", "classworkspace.html", "classworkspace" ],
+    [ "workspaces", "classworkspaces.html", "classworkspaces" ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/bc_s.png b/src/module_gtf/module/gtf.doc/api_form/bc_s.png
new file mode 100755
index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/bc_s.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/bdwn.png b/src/module_gtf/module/gtf.doc/api_form/bdwn.png
new file mode 100755
index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/bdwn.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_category.html b/src/module_gtf/module/gtf.doc/api_form/class_category.html
new file mode 100755
index 0000000000000000000000000000000000000000..fefdf816e421eaa6c1442a79f48bb4ca7b437ae1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_category.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe Category</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_category.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe Category</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de Category:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_category.png" usemap="#Category_map" alt=""/>
+  <map id="Category_map" name="Category_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:aec8d7f8f3574462d98c6cc97c5f65632"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_category.html#aec8d7f8f3574462d98c6cc97c5f65632">__construct</a> ($oBd, $iCategorydId)</td></tr>
+<tr class="separator:aec8d7f8f3574462d98c6cc97c5f65632"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:ac018cfa750b4f5ee92b9b331a54ad989"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_category.html#ac018cfa750b4f5ee92b9b331a54ad989">$sSchemaGtf</a> = &quot;s_gtf&quot;</td></tr>
+<tr class="separator:ac018cfa750b4f5ee92b9b331a54ad989"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f9b558d76a2d1d580a9c610c49d8219"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_category.html#a2f9b558d76a2d1d580a9c610c49d8219">$aFields</a> = array()</td></tr>
+<tr class="separator:a2f9b558d76a2d1d580a9c610c49d8219"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des constructeurs et destructeur</h2>
+<a class="anchor" id="aec8d7f8f3574462d98c6cc97c5f65632"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iCategorydId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="a2f9b558d76a2d1d580a9c610c49d8219"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$aFields = array()</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac018cfa750b4f5ee92b9b331a54ad989"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sSchemaGtf = &quot;s_gtf&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_category_8class_8inc.html">Category.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="class_category.html">Category</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_category.js b/src/module_gtf/module/gtf.doc/api_form/class_category.js
new file mode 100755
index 0000000000000000000000000000000000000000..474a1140d2b9e4baa81991043c1d380a2800762a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_category.js
@@ -0,0 +1,6 @@
+var class_category =
+[
+    [ "__construct", "class_category.html#aec8d7f8f3574462d98c6cc97c5f65632", null ],
+    [ "$aFields", "class_category.html#a2f9b558d76a2d1d580a9c610c49d8219", null ],
+    [ "$sSchemaGtf", "class_category.html#ac018cfa750b4f5ee92b9b331a54ad989", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_category.png b/src/module_gtf/module/gtf.doc/api_form/class_category.png
new file mode 100755
index 0000000000000000000000000000000000000000..eb328279baf693442b3e40611e833a81f187792d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/class_category.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_form.html b/src/module_gtf/module/gtf.doc/api_form/class_form.html
new file mode 100755
index 0000000000000000000000000000000000000000..8c828132ca914f230f25c9bce9a28dd1b9f52cee
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_form.html
@@ -0,0 +1,208 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe Form</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_form.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe Form</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a9f280c6ba52f3872b4fa7acf3049acd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_form.html#a9f280c6ba52f3872b4fa7acf3049acd5">Form</a> ($properties, $oBd)</td></tr>
+<tr class="separator:a9f280c6ba52f3872b4fa7acf3049acd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8cd240613fa8c7375195e521330b7f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_form.html#ad8cd240613fa8c7375195e521330b7f8">displayForm</a> ($URLGTF, $sEmail_type, $sNotificationsType, $captcha_key, $workspace_id, $<a class="el" href="classtoken.html">token</a>, $workspace_key, $css)</td></tr>
+<tr class="separator:ad8cd240613fa8c7375195e521330b7f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="ad8cd240613fa8c7375195e521330b7f8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">displayForm </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$URLGTF</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sEmail_type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sNotificationsType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$captcha_key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$workspace_id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$token</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$workspace_key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$css</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9f280c6ba52f3872b4fa7acf3049acd5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_form.html">Form</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$properties</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_form_8class_8inc.html">Form.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="class_form.html">Form</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_form.js b/src/module_gtf/module/gtf.doc/api_form/class_form.js
new file mode 100755
index 0000000000000000000000000000000000000000..bbf3ba81b6b19d44cee37d82ee5aa42356378864
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_form.js
@@ -0,0 +1,5 @@
+var class_form =
+[
+    [ "displayForm", "class_form.html#ad8cd240613fa8c7375195e521330b7f8", null ],
+    [ "Form", "class_form.html#a9f280c6ba52f3872b4fa7acf3049acd5", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_html_form.html b/src/module_gtf/module/gtf.doc/api_form/class_html_form.html
new file mode 100755
index 0000000000000000000000000000000000000000..a4f2f3cfcf86d62126c612bcfaf996a4f85030c2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_html_form.html
@@ -0,0 +1,3007 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe HtmlForm</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_html_form.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe HtmlForm</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a>.  
+ <a href="class_html_form.html#details">Plus de détails...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a659dfa8e5e6c9a29cdd15c0f23586c4e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a659dfa8e5e6c9a29cdd15c0f23586c4e">HtmlForm</a> ($pMethode, $pScript, $pClasse=&quot;&quot;, $pNom=&quot;Form&quot;, $sCssLabel=&quot;&quot;, $sCssValue=&quot;attributeFormIdValue&quot;, $lang=&quot;fr&quot;, $onSubmit=&quot;&quot;, $externUrl=&quot;&quot;, $autoComplete=&quot;Off&quot;)</td></tr>
+<tr class="separator:a659dfa8e5e6c9a29cdd15c0f23586c4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26713a5b61f9467ddd83eef17cc38028"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a26713a5b61f9467ddd83eef17cc38028">formStart</a> ($border=0)</td></tr>
+<tr class="separator:a26713a5b61f9467ddd83eef17cc38028"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8baa8a713f9595edf9524a6c26f94a63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a8baa8a713f9595edf9524a6c26f94a63">formEnd</a> ()</td></tr>
+<tr class="separator:a8baa8a713f9595edf9524a6c26f94a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86c30fa8203e438971ebccc1cc735055"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a86c30fa8203e438971ebccc1cc735055">noMessageFormEnd</a> ()</td></tr>
+<tr class="separator:a86c30fa8203e438971ebccc1cc735055"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad27804427679f63b2d9a18d12faf3086"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ad27804427679f63b2d9a18d12faf3086">end</a> ($affiche=TRUE, $bMessage=true)</td></tr>
+<tr class="separator:ad27804427679f63b2d9a18d12faf3086"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5e4346541e9f1e251deabf312cfb463"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ac5e4346541e9f1e251deabf312cfb463">buttonField</a> ($pLibelle, $pNom, $pOnClick)</td></tr>
+<tr class="separator:ac5e4346541e9f1e251deabf312cfb463"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16039eee38f5285c684312e84e036e78"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a16039eee38f5285c684312e84e036e78">hiddenField</a> ($pNom, $pValeur)</td></tr>
+<tr class="separator:a16039eee38f5285c684312e84e036e78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad916f8b421be10005737e7a7232a5aac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ad916f8b421be10005737e7a7232a5aac">textField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pTailleMax=0, $pOnBlur=&quot;&quot;, $sClass=&quot;&quot;)</td></tr>
+<tr class="separator:ad916f8b421be10005737e7a7232a5aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab125c825127bd28060ee2ed2505a9d3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ab125c825127bd28060ee2ed2505a9d3d">cascadeTextField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pOnKeyUp, $pTailleMax=0, $pOnBlur=&quot;&quot;)</td></tr>
+<tr class="separator:ab125c825127bd28060ee2ed2505a9d3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6458f60182c9b9e6d8800d80856d42e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#aa6458f60182c9b9e6d8800d80856d42e">IntegerField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pTailleMax=0, $pOnBlur=&quot;&quot;)</td></tr>
+<tr class="separator:aa6458f60182c9b9e6d8800d80856d42e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0789d82fcd257f4164f715ba7dbc4863"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a0789d82fcd257f4164f715ba7dbc4863">numberField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pTailleMax=0, $pOnBlur=&quot;&quot;)</td></tr>
+<tr class="separator:a0789d82fcd257f4164f715ba7dbc4863"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7998d85ff93ecdbae8732b5dd9f0f1f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a7998d85ff93ecdbae8732b5dd9f0f1f8">cascadeNumberField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pOnKeyUp, $pTailleMax=0, $pOnBlur=&quot;&quot;)</td></tr>
+<tr class="separator:a7998d85ff93ecdbae8732b5dd9f0f1f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79df46a7b4638a3ee5db4aa9d3ec49e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a79df46a7b4638a3ee5db4aa9d3ec49e4">cascadeINTEGERField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pOnKeyUp, $pTailleMax=0, $pOnBlur=&quot;&quot;)</td></tr>
+<tr class="separator:a79df46a7b4638a3ee5db4aa9d3ec49e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d1aaed6f168ea2ec1c26139249fa8d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a0d1aaed6f168ea2ec1c26139249fa8d1">listField</a> ($sLibelle, $sNom, $sVal, $iTaille, $aListe, $aMultiple=false, $iWidthList=&quot;&quot;, $sOnChange=&quot;&quot;)</td></tr>
+<tr class="separator:a0d1aaed6f168ea2ec1c26139249fa8d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4205be2f46eba5919ccce76ce5e81261"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a4205be2f46eba5919ccce76ce5e81261">internalSqlListField</a> ($sLibelle, $sNom, $sVal, $iTaille, $oBd, $sSql, $aMultiple=false, $iWidthList=&quot;&quot;, $bEmptyOption=true)</td></tr>
+<tr class="separator:a4205be2f46eba5919ccce76ce5e81261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0207818f191537caeb14d28dd71f935"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ad0207818f191537caeb14d28dd71f935">listParentField</a> ($sLibelle, $sNom, $sVal, $iTaille, $aListe, $sParent, $iWidthList=&quot;&quot;)</td></tr>
+<tr class="separator:ad0207818f191537caeb14d28dd71f935"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b1feb056ca8dbb075cd01e5d6dbba8b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a8b1feb056ca8dbb075cd01e5d6dbba8b">labelField</a> ($pLibelle, $pNom, $pVal)</td></tr>
+<tr class="separator:a8b1feb056ca8dbb075cd01e5d6dbba8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa32b67f52f68a6a0ada1dd6a702f61c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#afa32b67f52f68a6a0ada1dd6a702f61c">checkIsPdfFile</a> ($sFilePath)</td></tr>
+<tr class="separator:afa32b67f52f68a6a0ada1dd6a702f61c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36267c4c6a13a9c8d7f56dc3963c088d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a36267c4c6a13a9c8d7f56dc3963c088d">radioField</a> ($pLibelle, $pNom, $pVal, $pListe, $pInactiveMode=false, $sCssLabelListe=&quot;&quot;)</td></tr>
+<tr class="separator:a36267c4c6a13a9c8d7f56dc3963c088d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1e92ac1c9ae25b319d922af91a370ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ac1e92ac1c9ae25b319d922af91a370ca">areaField</a> ($pLibelle, $pNom, $pVal, $pLig, $pCol, $sAjoutHtml=&quot;&quot;)</td></tr>
+<tr class="separator:ac1e92ac1c9ae25b319d922af91a370ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28c7a3aaa2c1487c3a4b904cc7e8d65b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a28c7a3aaa2c1487c3a4b904cc7e8d65b">areaReadField</a> ($pLibelle, $pNom, $pVal, $pLig, $pCol)</td></tr>
+<tr class="separator:a28c7a3aaa2c1487c3a4b904cc7e8d65b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79fe01125ba1809a8944d51380bf0719"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a79fe01125ba1809a8944d51380bf0719">doubleListField</a> ($pLibelle, $pNom1, $pNom2, $pVal, $pTaille, $pListe1, $pListe2, $pLargeur, $sObjetListe1, $sObjetListe2, $sObjetStock, $sObjetAffiche=&quot;&quot;)</td></tr>
+<tr class="separator:a79fe01125ba1809a8944d51380bf0719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3efcaf0f0d8fb31bd190efa85b8c61a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#af3efcaf0f0d8fb31bd190efa85b8c61a">submitField</a> ($pLibelle, $pNom, $pOnClick=&quot;&quot;)</td></tr>
+<tr class="separator:af3efcaf0f0d8fb31bd190efa85b8c61a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25b54a92d78241268c6ffaa1337795ef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a25b54a92d78241268c6ffaa1337795ef">cascadeListField</a> ($sLibelle, $sNom, $sVal, $iTaille, $aListe=&quot;&quot;, $sOnChange=&quot;&quot;, $iWidthList=&quot;&quot;)</td></tr>
+<tr class="separator:a25b54a92d78241268c6ffaa1337795ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a885874295ef8566c6d27b89af5f9847c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a885874295ef8566c6d27b89af5f9847c">cascadeListParentField</a> ($sLibelle, $sNom, $sVal, $iTaille, $aListe, $sParent, $sOnChange=&quot;&quot;, $iWidthList=&quot;&quot;)</td></tr>
+<tr class="separator:a885874295ef8566c6d27b89af5f9847c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f0088e8565f801941c1ac466ad3d236"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a8f0088e8565f801941c1ac466ad3d236">linkField</a> ($pLibelle, $pNom, $pHref, $pStyle=&quot;&quot;, $pImage=&quot;&quot;, $pGroupeDeLien=null, $pSeparateur=&quot;&quot;)</td></tr>
+<tr class="separator:a8f0088e8565f801941c1ac466ad3d236"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d9fcf6054c8c670082df637f0d060b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a5d9fcf6054c8c670082df637f0d060b4">uploadField</a> ($pLibelle, $pNom, $pTaille, $pValeur, $pOnChange=&quot;&quot;, $pId)</td></tr>
+<tr class="separator:a5d9fcf6054c8c670082df637f0d060b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaabac8649f945e6029f057a3f99241ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#aaabac8649f945e6029f057a3f99241ba">fileField</a> ($pLibelle, $pNom, $pTaille, $pOnChange=&quot;&quot;)</td></tr>
+<tr class="separator:aaabac8649f945e6029f057a3f99241ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefe3d5b6a2d83aa2dcdadcf9d17904e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#aefe3d5b6a2d83aa2dcdadcf9d17904e2">calendarField</a> ($pLibelle, $pNom, $pVal, $pTaille, $sFormat= 'dd/mm/yy', $pTailleMax=0, $pOnBlur=&quot;&quot;)</td></tr>
+<tr class="separator:aefe3d5b6a2d83aa2dcdadcf9d17904e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb29aa5964b1d4de444efa878ab8b5f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#acb29aa5964b1d4de444efa878ab8b5f4">calendarDateTimeField</a> ($pLibelle, $pNom, $pVal, $pTaille, $sFormat= 'dd/mm/yy', $pTailleMax=0, $pOnBlur=&quot;&quot;)</td></tr>
+<tr class="separator:acb29aa5964b1d4de444efa878ab8b5f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78a9a6cbe314645499d7c151da9229ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a78a9a6cbe314645499d7c151da9229ca">cascadeCalendarField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pOnKeyUp, $sFormat= 'dd/mm/yy', $pTailleMax=0, $pOnBlur=&quot;&quot;, $sClass=&quot;&quot;)</td></tr>
+<tr class="separator:a78a9a6cbe314645499d7c151da9229ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd211acd5225ec0c57dfa8c433d94563"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#afd211acd5225ec0c57dfa8c433d94563">FolderTreeField</a> ($pNom, $pVal, $pWidth, $pHeight)</td></tr>
+<tr class="separator:afd211acd5225ec0c57dfa8c433d94563"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4dc38763973c02d8f45619ee84c5cb7e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a4dc38763973c02d8f45619ee84c5cb7e">subFormEnd</a> ()</td></tr>
+<tr class="separator:a4dc38763973c02d8f45619ee84c5cb7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7568feb4305d1f2988b5d7a32d844981"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a7568feb4305d1f2988b5d7a32d844981">PasswordField</a> ($pLibelle, $pNom, $pVal, $pTaille, $pTailleMax=0)</td></tr>
+<tr class="separator:a7568feb4305d1f2988b5d7a32d844981"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab798968964b52f05cf92a12b1bbd2d19"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ab798968964b52f05cf92a12b1bbd2d19">OpenlayersField</a> ($pLibelle, $pNom, $iLongitude, $iLatitude, $iZoom, $iWidth, $iHeight, $sNomFlux, $sFlux, $sCouches)</td></tr>
+<tr class="separator:ab798968964b52f05cf92a12b1bbd2d19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0811ddbcc2d055293801163572798fb6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a0811ddbcc2d055293801163572798fb6">Openlayers2Field</a> ($sTitle, $sName, $iWidth, $iHeight, $sProjection, $aLayers, $aExtent, $aTools, $aFeature)</td></tr>
+<tr class="separator:a0811ddbcc2d055293801163572798fb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefcbdf8ed85eb65902bc612e649db4ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#aefcbdf8ed85eb65902bc612e649db4ae">graphicsPaletteField</a> ($sLabel, $sName, $sValTexte, $sFormat=&quot;unary&quot;, $sSeparator=&quot;,&quot;, $bVisible=false)</td></tr>
+<tr class="separator:aefcbdf8ed85eb65902bc612e649db4ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac57860210f86dbd962747c2f0579abcd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ac57860210f86dbd962747c2f0579abcd">SliderField</a> ($pLibelle, $pNom, $iDefaultvalue, $pTaille, $ivalueMin=0, $ivalueMax)</td></tr>
+<tr class="separator:ac57860210f86dbd962747c2f0579abcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adbb88365032e417faeb5836640090cf8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#adbb88365032e417faeb5836640090cf8">HtmlEditor</a> ($pLibelle, $pNOM, $iDefaultValue, $iHeight)</td></tr>
+<tr class="separator:adbb88365032e417faeb5836640090cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac11973d6df48b81e9071d55aa846d6ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ac11973d6df48b81e9071d55aa846d6ca">treeviewField</a> ($pLibelle, $pNom, $iDefaultvalue, $iWidth, $iHeight, $sTemplate=&quot;&quot;)</td></tr>
+<tr class="separator:ac11973d6df48b81e9071d55aa846d6ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3670ff43b4b85bdb2c7e73fb54c7cf65"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a3670ff43b4b85bdb2c7e73fb54c7cf65">multiTreeviewField</a> ($sTitle, $sName, $sValue, $iWidth, $iHeight, $sTemplate=&quot;&quot;)</td></tr>
+<tr class="separator:a3670ff43b4b85bdb2c7e73fb54c7cf65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c4375d48a3a9c1755855ba972798a4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a0c4375d48a3a9c1755855ba972798a4c">addLine</a> ($texte, $sAlign=&quot;center&quot;, $sClass=&quot;&quot;)</td></tr>
+<tr class="separator:a0c4375d48a3a9c1755855ba972798a4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c547e7880568a785c9044282fe94b7d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a3c547e7880568a785c9044282fe94b7d">groupComponentStart</a> ($sName, $sAlign, $sFrameBorder=0)</td></tr>
+<tr class="separator:a3c547e7880568a785c9044282fe94b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3eaea6c5b8bc42225e1b754cb20563ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a3eaea6c5b8bc42225e1b754cb20563ca">groupComponentEnd</a> ()</td></tr>
+<tr class="separator:a3eaea6c5b8bc42225e1b754cb20563ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7d3dbae4165f41b96c10ba1d537c549"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ac7d3dbae4165f41b96c10ba1d537c549">predefinedListTag</a> ($sTitle, $sName, $sValues, $aAvailableTags, $iWidth)</td></tr>
+<tr class="separator:ac7d3dbae4165f41b96c10ba1d537c549"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15a489f62a48c9d9a555523cab108163"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a15a489f62a48c9d9a555523cab108163">labelFromIdField</a> ($pLibelle, $pNom, $pVal, $sIdentifiant, $sLabel, $sSchema, $sTable, $oBd)</td></tr>
+<tr class="separator:a15a489f62a48c9d9a555523cab108163"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6bf7f06c53a8b7a14f2b93124d283a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#ae6bf7f06c53a8b7a14f2b93124d283a3">frameField</a> ($pLibelle, $pNom, $pVal, $iWidth, $iHeight)</td></tr>
+<tr class="separator:ae6bf7f06c53a8b7a14f2b93124d283a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:a2d1691438b59a81ea0651f06639bbfad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a2d1691438b59a81ea0651f06639bbfad">$sFolderLib</a> =&quot;&quot;</td></tr>
+<tr class="separator:a2d1691438b59a81ea0651f06639bbfad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7714b111b644017933931ec69a154102"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a7714b111b644017933931ec69a154102">$lang</a></td></tr>
+<tr class="separator:a7714b111b644017933931ec69a154102"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87c97603d5d79a9258db9486ade04428"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a87c97603d5d79a9258db9486ade04428">$methode</a></td></tr>
+<tr class="separator:a87c97603d5d79a9258db9486ade04428"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf13e3be0a9d4ac3cf11cf2efb1202ec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#adf13e3be0a9d4ac3cf11cf2efb1202ec">$CssTable</a></td></tr>
+<tr class="separator:adf13e3be0a9d4ac3cf11cf2efb1202ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a522c98df8aa76415f9af4c73b4f134d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a522c98df8aa76415f9af4c73b4f134d0">$CssLabel</a></td></tr>
+<tr class="separator:a522c98df8aa76415f9af4c73b4f134d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0193719ef585474f274104e6604ec09b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a0193719ef585474f274104e6604ec09b">$CssValue</a></td></tr>
+<tr class="separator:a0193719ef585474f274104e6604ec09b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20800c5d17fba2ea9bc73ce2ef15180e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a20800c5d17fba2ea9bc73ce2ef15180e">$nbChamps</a> =0</td></tr>
+<tr class="separator:a20800c5d17fba2ea9bc73ce2ef15180e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c5351d0ff65c65b928458803979ee8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a4c5351d0ff65c65b928458803979ee8f">$transfertFichier</a> =0</td></tr>
+<tr class="separator:a4c5351d0ff65c65b928458803979ee8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad5d0a900d4ea7554a839231f89c6625"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#aad5d0a900d4ea7554a839231f89c6625">$onSubmit</a> =&quot;&quot;</td></tr>
+<tr class="separator:aad5d0a900d4ea7554a839231f89c6625"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a779b437bfa81bfcdfdb208eee9847816"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#a779b437bfa81bfcdfdb208eee9847816">$externUrl</a> =&quot;&quot;</td></tr>
+<tr class="separator:a779b437bfa81bfcdfdb208eee9847816"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe155888154196c6af13bb2713a7ba8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_html_form.html#abe155888154196c6af13bb2713a7ba8f">$autoComplete</a> =&quot;Off&quot;</td></tr>
+<tr class="separator:abe155888154196c6af13bb2713a7ba8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description détaillée</h2>
+<div class="textblock"><dl class="section author"><dt>Auteur</dt><dd>Philippe Rigaux <a href="#" onclick="location.href='mai'+'lto:'+'rig'+'au'+'x@l'+'am'+'sad'+'e.'+'dau'+'ph'+'ine'+'.f'+'r'; return false;">rigau<span style="display: none;">.nosp@m.</span>x@la<span style="display: none;">.nosp@m.</span>msade<span style="display: none;">.nosp@m.</span>.dau<span style="display: none;">.nosp@m.</span>phine<span style="display: none;">.nosp@m.</span>.fr</a>. Olivier Gayte <a href="#" onclick="location.href='mai'+'lto:'+'oli'+'vi'+'er.'+'ga'+'yte'+'@v'+'ere'+'me'+'s.c'+'om'; return false;">olivi<span style="display: none;">.nosp@m.</span>er.g<span style="display: none;">.nosp@m.</span>ayte@<span style="display: none;">.nosp@m.</span>vere<span style="display: none;">.nosp@m.</span>mes.c<span style="display: none;">.nosp@m.</span>om</a>. Yoann Perollet <a href="#" onclick="location.href='mai'+'lto:'+'yoa'+'nn'+'.pe'+'ro'+'lle'+'t@'+'ver'+'em'+'es.'+'co'+'m'; return false;">yoann<span style="display: none;">.nosp@m.</span>.per<span style="display: none;">.nosp@m.</span>ollet<span style="display: none;">.nosp@m.</span>@ver<span style="display: none;">.nosp@m.</span>emes.<span style="display: none;">.nosp@m.</span>com</a>.</dd></dl>
+<p>Cette classe à été élaborée par Philippe Rigaux. Elle permet de générer dynamiquement et simplement les champs html. </p>
+</div><h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a0c4375d48a3a9c1755855ba972798a4c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">addLine </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$texte</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sAlign</em> = <code>&quot;center&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sClass</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Ajout d'une ligne de séparation accompagnée d'un texte. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$texte</td><td>Texte quelconque. </td></tr>
+    <tr><td class="paramname">$sAlign</td><td>Chaine alignement du texte (facultatif). </td></tr>
+    <tr><td class="paramname">$sClass</td><td>Chaine classe css du texte (facultatif). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac1e92ac1c9ae25b319d922af91a370ca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">areaField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLig</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pCol</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sAjoutHtml</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ TextArea </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pLig</td><td>Nombre de lignes du champ. </td></tr>
+    <tr><td class="paramname">$pCol</td><td>Nombre de colonnes du champ. </td></tr>
+    <tr><td class="paramname">$sAjoutHtml</td><td>Html à ajouter à la suite du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a28c7a3aaa2c1487c3a4b904cc7e8d65b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">areaReadField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLig</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pCol</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ TextArea non modifiable </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pLig</td><td>Nombre de lignes du champ. </td></tr>
+    <tr><td class="paramname">$pCol</td><td>Nombre de colonnes du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac5e4346541e9f1e251deabf312cfb463"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">buttonField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnClick</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ bouton </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pOnClick</td><td>Code exécuté sur clic. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="acb29aa5964b1d4de444efa878ab8b5f4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">calendarDateTimeField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFormat</em> = <code>'dd/mm/yy'</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ calendrier avec saisie de l'heure. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ cache. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$sFormat</td><td>Format de la date. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille max du champ. </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evènement sur perte de focus. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aefe3d5b6a2d83aa2dcdadcf9d17904e2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">calendarField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFormat</em> = <code>'dd/mm/yy'</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ calendrier. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ cache. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$sFormat</td><td>Format de la date. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille max du champ. </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evènement sur perte de focus. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a78a9a6cbe314645499d7c151da9229ca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">cascadeCalendarField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnKeyUp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFormat</em> = <code>'dd/mm/yy'</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sClass</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ calendrier cascade. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ cache. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pOnKeyUp</td><td>Evènement sur fin d'édition. </td></tr>
+    <tr><td class="paramname">$sFormat</td><td>Format de la date. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille max du champ. </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evènement sur perte de focus. </td></tr>
+    <tr><td class="paramname">$sClass</td><td>Surcharge de la classe. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a79df46a7b4638a3ee5db4aa9d3ec49e4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">cascadeINTEGERField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnKeyUp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ n'acceptant que le type entier avec cascade </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pOnKeyUp</td><td>Evenement sur fin d'édition. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille maximun du champ (falcultatif). </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evenement sur perte du focus (falcultatif). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a25b54a92d78241268c6ffaa1337795ef"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">cascadeListField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aListe</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOnChange</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidthList</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ liste Cascade </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$sNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$sVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$iTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$aListe</td><td>Liste du champ. </td></tr>
+    <tr><td class="paramname">$sOnChange</td><td>Valeur du paramètre "onChange" de la liste générée. (ne pas oublier de mettre la fonction entre guillemets) </td></tr>
+    <tr><td class="paramname">$iWidthList</td><td>Longueur du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a885874295ef8566c6d27b89af5f9847c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">cascadeListParentField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aListe</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sParent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOnChange</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidthList</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ Liste cascade avec édition de l'objet parent </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$sNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$sVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$iTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$aListe</td><td>Liste du champ. </td></tr>
+    <tr><td class="paramname">$sParent</td><td>Objet parent </td></tr>
+    <tr><td class="paramname">$sOnChange</td><td>Valeur du paramètre "onChange" de la liste générée. (ne pas oublier de mettre la fonction entre guillemets) </td></tr>
+    <tr><td class="paramname">$iWidthList</td><td>Longueur du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7998d85ff93ecdbae8732b5dd9f0f1f8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">cascadeNumberField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnKeyUp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ n'acceptant que le type numérique avec cascade </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pOnKeyUp</td><td>Evenement sur fin d'édition. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille maximun du champ (falcultatif). </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evenement sur perte du focus (falcultatif). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ab125c825127bd28060ee2ed2505a9d3d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">cascadeTextField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnKeyUp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ Texte cascade </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pOnKeyUp</td><td>Evenement sur fin d'édition. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille maximun du champ (falcultatif). </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evenement sur perte du focus (falcultatif). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="afa32b67f52f68a6a0ada1dd6a702f61c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">checkIsPdfFile </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFilePath</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Permet de vérifier si le fichier est un pdf. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sFilePath</td><td>Le chemin du fichier </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Renvoie</dt><dd>Vrai si le fichier est un pdf faux sinon </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a79fe01125ba1809a8944d51380bf0719"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">doubleListField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pListe1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pListe2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLargeur</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sObjetListe1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sObjetListe2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sObjetStock</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sObjetAffiche</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ double Liste </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom1</td><td>Nom du premier champ liste. </td></tr>
+    <tr><td class="paramname">$pNom2</td><td>Nom du deuxième champ liste. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ par défaut. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ liste. </td></tr>
+    <tr><td class="paramname">$pListe1</td><td>Liste du premier champ liste. </td></tr>
+    <tr><td class="paramname">$pListe2</td><td>Liste du deuxième champ liste. </td></tr>
+    <tr><td class="paramname">$pLargeur</td><td>Largeur des listes déroulantes. </td></tr>
+    <tr><td class="paramname">$sObjetListe1</td><td>premier champ liste en javascript. </td></tr>
+    <tr><td class="paramname">$sObjetListe2</td><td>deuxième champ liste en javascript. </td></tr>
+    <tr><td class="paramname">$sObjetStock</td><td>objet dans lequel on stocke les valeurs sélectionnées. </td></tr>
+    <tr><td class="paramname">$sObjetAffiche</td><td>objet dans lequel on affiche les valeurs sélectionnées. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad27804427679f63b2d9a18d12faf3086"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">end </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$affiche</em> = <code>TRUE</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$bMessage</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Fin du formulaire, avec affichage éventuel. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$affiche</td><td>Affichage du formulaire (OUI ou NON). </td></tr>
+    <tr><td class="paramname">$bMessage</td><td>Définit si le formulaire affiche les message de succés et d'erreur. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Renvoie</dt><dd>Le formulaire HTML crée. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aaabac8649f945e6029f057a3f99241ba"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">fileField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnChange</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Méthode pour créer un champ upload </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pOnChange</td><td>Évènement ONCHANGE du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="afd211acd5225ec0c57dfa8c433d94563"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">FolderTreeField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pWidth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pHeight</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ arborescence </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pNom</td><td>Nom du champ </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Chemin à parcourir </td></tr>
+    <tr><td class="paramname">$pWidth</td><td>largeur du champ </td></tr>
+    <tr><td class="paramname">$pHeight</td><td>hauteur du champ </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a8baa8a713f9595edf9524a6c26f94a63"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">formEnd </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Fin du formulaire avec message. </p>
+
+</div>
+</div>
+<a class="anchor" id="a26713a5b61f9467ddd83eef17cc38028"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">formStart </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$border</em> = <code>0</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Départ du formulaire. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$border</td><td>Largeur des bordures de formulaire. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae6bf7f06c53a8b7a14f2b93124d283a3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">frameField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iHeight</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aefcbdf8ed85eb65902bc612e649db4ae"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">graphicsPaletteField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLabel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sValTexte</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFormat</em> = <code>&quot;unary&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sSeparator</em> = <code>&quot;,&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$bVisible</em> = <code>false</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ palette graphique </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sLabel</td><td>label du champ </td></tr>
+    <tr><td class="paramname">$sName</td><td>nom du champ </td></tr>
+    <tr><td class="paramname">$sValTexte</td><td>valeur du champ </td></tr>
+    <tr><td class="paramname">$sFormat</td><td>format de la couleur (Choix possible: unary(0 à 1), decimal et hexadecimal) </td></tr>
+    <tr><td class="paramname">$sSeparator</td><td>séparateur des couleurs </td></tr>
+    <tr><td class="paramname">$bVisible</td><td>permet d'afficher ou non la couleur sous forme de texte </td></tr>
+    <tr><td class="paramname">$Format</td><td>de la couleur (hexa, dec, bool) </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a3eaea6c5b8bc42225e1b754cb20563ca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">groupComponentEnd </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Fin d'un groupe de composant </p>
+
+</div>
+</div>
+<a class="anchor" id="a3c547e7880568a785c9044282fe94b7d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">groupComponentStart </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sAlign</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFrameBorder</em> = <code>0</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Début d'un groupe de composant </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sName</td><td>Nom du groupe de composant. </td></tr>
+    <tr><td class="paramname">$sAlign</td><td>alignement du composant. Valeur possible (left, right, ''). </td></tr>
+    <tr><td class="paramname">$sFrameBorder</td><td>Épaisseur de la bordure. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a16039eee38f5285c684312e84e036e78"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">hiddenField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pValeur</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ caché </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pValeur</td><td>Valeur du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="adbb88365032e417faeb5836640090cf8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">HtmlEditor </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNOM</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iDefaultValue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iHeight</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ éditeur html </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>: Libellé du champ </td></tr>
+    <tr><td class="paramname">$pNOM</td><td>: Nom du champ </td></tr>
+    <tr><td class="paramname">$iDefaultValue</td><td>: Valeur par défaut </td></tr>
+    <tr><td class="paramname">$iHeight</td><td>: Hauteur du champ </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a659dfa8e5e6c9a29cdd15c0f23586c4e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_html_form.html">HtmlForm</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pMethode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pScript</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pClasse</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em> = <code>&quot;Form&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sCssLabel</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sCssValue</em> = <code>&quot;attributeFormIdValue&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$lang</em> = <code>&quot;fr&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$onSubmit</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$externUrl</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$autoComplete</em> = <code>&quot;Off&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Constructeur de la classe </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pMethode</td><td>Méthode de formulaire. </td></tr>
+    <tr><td class="paramname">$pScript</td><td>Action effectuée par le formulaire. </td></tr>
+    <tr><td class="paramname">$pClasse</td><td>classe css associée au formulire formulaire. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du formulaire. </td></tr>
+    <tr><td class="paramname">$sCssLabel</td><td>Classe Css des labels. </td></tr>
+    <tr><td class="paramname">$sCssValue</td><td>classe css des inputs. </td></tr>
+    <tr><td class="paramname">$lang</td><td>lang de l'application. </td></tr>
+    <tr><td class="paramname">$onSubmit</td><td>Action lors du submit du formulaire. </td></tr>
+    <tr><td class="paramname">$externUrl</td><td>: permet de trouver les url lors d'un appel externe </td></tr>
+    <tr><td class="paramname">$autoComplete</td><td>: permet de définir sir le formulaire utilise l'autocompletion return nothing la fonction réalise un echo </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aa6458f60182c9b9e6d8800d80856d42e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IntegerField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ n'acceptant que le type entier </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille maximun du champ (falcultatif). </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evenement sur perte du focus (falcultatif). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a4205be2f46eba5919ccce76ce5e81261"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">internalSqlListField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sSql</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aMultiple</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidthList</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$bEmptyOption</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8b1feb056ca8dbb075cd01e5d6dbba8b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">labelField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Gestion d'un champ en affichage uniquement </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a15a489f62a48c9d9a555523cab108163"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">labelFromIdField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sIdentifiant</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLabel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sSchema</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTable</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Composant permettant de récupérer un label en fonction d'un id puis de créer un labelField. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>: Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>: Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>: Valeur du champ. </td></tr>
+    <tr><td class="paramname">$sIdentifiant</td><td>: Nom de la colonne de l'identifiant. </td></tr>
+    <tr><td class="paramname">$sLabel</td><td>: Nom de la colonne du libellé. </td></tr>
+    <tr><td class="paramname">$sSchema</td><td>: Schéma. </td></tr>
+    <tr><td class="paramname">$sTable</td><td>: Nom de la table. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a8f0088e8565f801941c1ac466ad3d236"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">linkField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pHref</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pStyle</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pImage</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pGroupeDeLien</em> = <code>null</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pSeparateur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ lien </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pHref</td><td>Code exécuté sur clic. </td></tr>
+    <tr><td class="paramname">$pStyle</td><td>Style CSS associé au lien. </td></tr>
+    <tr><td class="paramname">$pImage</td><td>Image associée au lien. </td></tr>
+    <tr><td class="paramname">$pGroupeDeLien</td><td>Place dans le groupe de liens (si groupe de liens...). </td></tr>
+    <tr><td class="paramname">$pSeparateur</td><td>Charactère séparateur dans le groupe de liens. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0d1aaed6f168ea2ec1c26139249fa8d1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">listField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aListe</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aMultiple</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidthList</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOnChange</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>champ Liste </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$sNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$sVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$iTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$aListe</td><td>Liste du champ. </td></tr>
+    <tr><td class="paramname">$aMultiple</td><td>Possibilité de sélectionner plusieurs valeurs. </td></tr>
+    <tr><td class="paramname">$iWidthList</td><td>Longueur du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad0207818f191537caeb14d28dd71f935"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">listParentField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aListe</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sParent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidthList</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ liste permettant de se placer sur l'objet parent </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$sNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$sVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$iTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$aListe</td><td>Liste du champ. </td></tr>
+    <tr><td class="paramname">$sParent</td><td>Objet parent. </td></tr>
+    <tr><td class="paramname">$iWidthList</td><td>Longueur du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a3670ff43b4b85bdb2c7e73fb54c7cf65"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">multiTreeviewField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTitle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sValue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iHeight</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTemplate</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ multi arborescence </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sTitle</td><td>: Libellé du champ </td></tr>
+    <tr><td class="paramname">$sName</td><td>: Nom du champ </td></tr>
+    <tr><td class="paramname">$sValue</td><td>: Valeurs de la liste déroulante </td></tr>
+    <tr><td class="paramname">$iWidth</td><td>: Largeur du champ </td></tr>
+    <tr><td class="paramname">$iHeight</td><td>: Hauteur du champ </td></tr>
+    <tr><td class="paramname">$sTemplate</td><td>: Template autorisé </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a86c30fa8203e438971ebccc1cc735055"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">noMessageFormEnd </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Fin du formulaire sans message. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0789d82fcd257f4164f715ba7dbc4863"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">numberField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ n'acceptant que le type numérique </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille maximun du champ (falcultatif). </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evenement sur perte du focus (falcultatif). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0811ddbcc2d055293801163572798fb6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Openlayers2Field </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTitle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iHeight</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sProjection</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aLayers</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aExtent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aTools</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aFeature</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>champ Openlayers </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sTitle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$sName</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$iWidth</td><td>Largeur de la carte en pixel (préconisé 500px). </td></tr>
+    <tr><td class="paramname">$iHeight</td><td>hauteur de la carte en pixel (préconisé 300px). </td></tr>
+    <tr><td class="paramname">$sProjection</td><td>Système de projection. </td></tr>
+    <tr><td class="paramname">$aLayers</td><td>Liste des couches. </td></tr>
+    <tr><td class="paramname">$aExtent</td><td>Etendue. </td></tr>
+    <tr><td class="paramname">$aTools</td><td>liste des outils. </td></tr>
+    <tr><td class="paramname">$aFeature</td><td>autres paramètres. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ab798968964b52f05cf92a12b1bbd2d19"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">OpenlayersField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iLongitude</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iLatitude</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iZoom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iHeight</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sNomFlux</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFlux</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sCouches</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ Openlayer (deprecated) </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$iLongitude</td><td>Longitude sur laquelle sera centrée. </td></tr>
+    <tr><td class="paramname">$iLatitude</td><td>Latitude sur laquelle sera centrée. </td></tr>
+    <tr><td class="paramname">$iZoom</td><td>Echelle de zoom de la carte. </td></tr>
+    <tr><td class="paramname">$iWidth</td><td>Largeur de la carte en pixel (préconisé 500px). </td></tr>
+    <tr><td class="paramname">$iHeight</td><td>hauteur de la carte en pixel (préconisé 300px). </td></tr>
+    <tr><td class="paramname">$sNomFlux</td><td>Nom du flux WMS (ex : geosignal WMS). </td></tr>
+    <tr><td class="paramname">$sFlux</td><td>Url du flux wms (ex : <a href="http://www.geosignal.org/cgi-bin/wmsmap?">http://www.geosignal.org/cgi-bin/wmsmap?</a>). </td></tr>
+    <tr><td class="paramname">$sCouches</td><td>Liste des dalles à afficher séparé par des virgules (ex : RASTER1000K,RASTER500K,RASTER250K,RASTER100K,RASTER50K,RASTER25K,RASTER5K). </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7568feb4305d1f2988b5d7a32d844981"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">PasswordField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ mot de passe </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille maximun du champ. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac7d3dbae4165f41b96c10ba1d537c549"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">predefinedListTag </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTitle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sValues</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aAvailableTags</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidth</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Gestion </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$sName</td><td>Nom du groupe de composant. </td></tr>
+    <tr><td class="paramname">$aValues</td><td>Nom du groupe de composant. </td></tr>
+    <tr><td class="paramname">$aAvailableTags</td><td>Nom du groupe de composant. </td></tr>
+    <tr><td class="paramname">$iWidth</td><td>Nom du groupe de composant. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a36267c4c6a13a9c8d7f56dc3963c088d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">radioField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pListe</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pInactiveMode</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sCssLabelListe</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ radio </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pListe</td><td>Liste du champ. </td></tr>
+    <tr><td class="paramname">$pInactiveMode</td><td>Liste du champ. </td></tr>
+    <tr><td class="paramname">$sCssLabelListe</td><td>Css des textes des radio. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac57860210f86dbd962747c2f0579abcd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">SliderField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iDefaultvalue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$ivalueMin</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$ivalueMax</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ slider </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>: Libellé du champ </td></tr>
+    <tr><td class="paramname">$pNom</td><td>: Nom du champ </td></tr>
+    <tr><td class="paramname">$iDefaultvalue</td><td>: Valeur par défaut </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>: Taille du champ </td></tr>
+    <tr><td class="paramname">$ivalueMin</td><td>: Valeur minimum du slider </td></tr>
+    <tr><td class="paramname">$ivalueMax</td><td>: Valeur maximum du slider </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Renvoie</dt><dd>un slider avec un champ texte </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a4dc38763973c02d8f45619ee84c5cb7e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">subFormEnd </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Fin du sous-formulaire, avec affichage éventuel. </p><dl class="section return"><dt>Renvoie</dt><dd>Le formulaire HTML crée. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af3efcaf0f0d8fb31bd190efa85b8c61a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">submitField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnClick</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Bouton submit </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pOnClick</td><td>Action sur click du formulaire. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad916f8b421be10005737e7a7232a5aac"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">textField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pVal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTailleMax</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnBlur</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sClass</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ Texte </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ. </td></tr>
+    <tr><td class="paramname">$pVal</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pTailleMax</td><td>Taille maximun du champ (falcultatif). </td></tr>
+    <tr><td class="paramname">$pOnBlur</td><td>Evenement sur perte du focus (falcultatif). </td></tr>
+    <tr><td class="paramname">$sClass</td><td>Surcharge de la classe. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac11973d6df48b81e9071d55aa846d6ca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">treeviewField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iDefaultvalue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWidth</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iHeight</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTemplate</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ arborescence </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>: Libellé du champ </td></tr>
+    <tr><td class="paramname">$pNom</td><td>: Nom du champ </td></tr>
+    <tr><td class="paramname">$iDefaultvalue</td><td>: Valeur par défaut </td></tr>
+    <tr><td class="paramname">$iWidth</td><td>: Largeur du champ </td></tr>
+    <tr><td class="paramname">$iHeight</td><td>: Hauteur du champ </td></tr>
+    <tr><td class="paramname">$sTemplate</td><td>: Template autorisé </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a5d9fcf6054c8c670082df637f0d060b4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uploadField </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pLibelle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pNom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pTaille</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pValeur</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pOnChange</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$pId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Champ upload. </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$pLibelle</td><td>Libellé du champ. </td></tr>
+    <tr><td class="paramname">$pNom</td><td>Nom du champ cache. </td></tr>
+    <tr><td class="paramname">$pTaille</td><td>Taille du champ. </td></tr>
+    <tr><td class="paramname">$pValeur</td><td>Valeur du champ. </td></tr>
+    <tr><td class="paramname">$pOnChange</td><td>évènement ONCHANGE. </td></tr>
+    <tr><td class="paramname">$pId</td><td>Id du champ fichier. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="abe155888154196c6af13bb2713a7ba8f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$autoComplete =&quot;Off&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Autocomplétion </p>
+
+</div>
+</div>
+<a class="anchor" id="a522c98df8aa76415f9af4c73b4f134d0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$CssLabel</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Style des libéllés de champs dans le formulaire. </p>
+
+</div>
+</div>
+<a class="anchor" id="adf13e3be0a9d4ac3cf11cf2efb1202ec"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$CssTable</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Style de la table contenue dans le formulaire. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0193719ef585474f274104e6604ec09b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$CssValue</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Style des valeurs des champs dans le formulaire. </p>
+
+</div>
+</div>
+<a class="anchor" id="a779b437bfa81bfcdfdb208eee9847816"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$externUrl =&quot;&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>urlExterne </p>
+
+</div>
+</div>
+<a class="anchor" id="a7714b111b644017933931ec69a154102"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$lang</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Langue sélectionnée par l'utilisateur </p>
+
+</div>
+</div>
+<a class="anchor" id="a87c97603d5d79a9258db9486ade04428"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$methode</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Méthode de formulaire. </p>
+
+</div>
+</div>
+<a class="anchor" id="a20800c5d17fba2ea9bc73ce2ef15180e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$nbChamps =0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Nombre de champs dans le formulaire. </p>
+
+</div>
+</div>
+<a class="anchor" id="aad5d0a900d4ea7554a839231f89c6625"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$onSubmit =&quot;&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Validation par la touche entrée </p>
+
+</div>
+</div>
+<a class="anchor" id="a2d1691438b59a81ea0651f06639bbfad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sFolderLib =&quot;&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Variable globale stockant le nom de dossier lib. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4c5351d0ff65c65b928458803979ee8f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$transfertFichier =0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Formulaire d'upload de fichier. </p>
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_html_form_8class_8inc.html">HtmlForm.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="class_html_form.html">HtmlForm</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_html_form.js b/src/module_gtf/module/gtf.doc/api_form/class_html_form.js
new file mode 100755
index 0000000000000000000000000000000000000000..b1ba81e159622a49ea77cfe5e97a0e41682cf6a2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_html_form.js
@@ -0,0 +1,61 @@
+var class_html_form =
+[
+    [ "addLine", "class_html_form.html#a0c4375d48a3a9c1755855ba972798a4c", null ],
+    [ "areaField", "class_html_form.html#ac1e92ac1c9ae25b319d922af91a370ca", null ],
+    [ "areaReadField", "class_html_form.html#a28c7a3aaa2c1487c3a4b904cc7e8d65b", null ],
+    [ "buttonField", "class_html_form.html#ac5e4346541e9f1e251deabf312cfb463", null ],
+    [ "calendarDateTimeField", "class_html_form.html#acb29aa5964b1d4de444efa878ab8b5f4", null ],
+    [ "calendarField", "class_html_form.html#aefe3d5b6a2d83aa2dcdadcf9d17904e2", null ],
+    [ "cascadeCalendarField", "class_html_form.html#a78a9a6cbe314645499d7c151da9229ca", null ],
+    [ "cascadeINTEGERField", "class_html_form.html#a79df46a7b4638a3ee5db4aa9d3ec49e4", null ],
+    [ "cascadeListField", "class_html_form.html#a25b54a92d78241268c6ffaa1337795ef", null ],
+    [ "cascadeListParentField", "class_html_form.html#a885874295ef8566c6d27b89af5f9847c", null ],
+    [ "cascadeNumberField", "class_html_form.html#a7998d85ff93ecdbae8732b5dd9f0f1f8", null ],
+    [ "cascadeTextField", "class_html_form.html#ab125c825127bd28060ee2ed2505a9d3d", null ],
+    [ "checkIsPdfFile", "class_html_form.html#afa32b67f52f68a6a0ada1dd6a702f61c", null ],
+    [ "doubleListField", "class_html_form.html#a79fe01125ba1809a8944d51380bf0719", null ],
+    [ "end", "class_html_form.html#ad27804427679f63b2d9a18d12faf3086", null ],
+    [ "fileField", "class_html_form.html#aaabac8649f945e6029f057a3f99241ba", null ],
+    [ "FolderTreeField", "class_html_form.html#afd211acd5225ec0c57dfa8c433d94563", null ],
+    [ "formEnd", "class_html_form.html#a8baa8a713f9595edf9524a6c26f94a63", null ],
+    [ "formStart", "class_html_form.html#a26713a5b61f9467ddd83eef17cc38028", null ],
+    [ "frameField", "class_html_form.html#ae6bf7f06c53a8b7a14f2b93124d283a3", null ],
+    [ "graphicsPaletteField", "class_html_form.html#aefcbdf8ed85eb65902bc612e649db4ae", null ],
+    [ "groupComponentEnd", "class_html_form.html#a3eaea6c5b8bc42225e1b754cb20563ca", null ],
+    [ "groupComponentStart", "class_html_form.html#a3c547e7880568a785c9044282fe94b7d", null ],
+    [ "hiddenField", "class_html_form.html#a16039eee38f5285c684312e84e036e78", null ],
+    [ "HtmlEditor", "class_html_form.html#adbb88365032e417faeb5836640090cf8", null ],
+    [ "HtmlForm", "class_html_form.html#a659dfa8e5e6c9a29cdd15c0f23586c4e", null ],
+    [ "IntegerField", "class_html_form.html#aa6458f60182c9b9e6d8800d80856d42e", null ],
+    [ "internalSqlListField", "class_html_form.html#a4205be2f46eba5919ccce76ce5e81261", null ],
+    [ "labelField", "class_html_form.html#a8b1feb056ca8dbb075cd01e5d6dbba8b", null ],
+    [ "labelFromIdField", "class_html_form.html#a15a489f62a48c9d9a555523cab108163", null ],
+    [ "linkField", "class_html_form.html#a8f0088e8565f801941c1ac466ad3d236", null ],
+    [ "listField", "class_html_form.html#a0d1aaed6f168ea2ec1c26139249fa8d1", null ],
+    [ "listParentField", "class_html_form.html#ad0207818f191537caeb14d28dd71f935", null ],
+    [ "multiTreeviewField", "class_html_form.html#a3670ff43b4b85bdb2c7e73fb54c7cf65", null ],
+    [ "noMessageFormEnd", "class_html_form.html#a86c30fa8203e438971ebccc1cc735055", null ],
+    [ "numberField", "class_html_form.html#a0789d82fcd257f4164f715ba7dbc4863", null ],
+    [ "Openlayers2Field", "class_html_form.html#a0811ddbcc2d055293801163572798fb6", null ],
+    [ "OpenlayersField", "class_html_form.html#ab798968964b52f05cf92a12b1bbd2d19", null ],
+    [ "PasswordField", "class_html_form.html#a7568feb4305d1f2988b5d7a32d844981", null ],
+    [ "predefinedListTag", "class_html_form.html#ac7d3dbae4165f41b96c10ba1d537c549", null ],
+    [ "radioField", "class_html_form.html#a36267c4c6a13a9c8d7f56dc3963c088d", null ],
+    [ "SliderField", "class_html_form.html#ac57860210f86dbd962747c2f0579abcd", null ],
+    [ "subFormEnd", "class_html_form.html#a4dc38763973c02d8f45619ee84c5cb7e", null ],
+    [ "submitField", "class_html_form.html#af3efcaf0f0d8fb31bd190efa85b8c61a", null ],
+    [ "textField", "class_html_form.html#ad916f8b421be10005737e7a7232a5aac", null ],
+    [ "treeviewField", "class_html_form.html#ac11973d6df48b81e9071d55aa846d6ca", null ],
+    [ "uploadField", "class_html_form.html#a5d9fcf6054c8c670082df637f0d060b4", null ],
+    [ "$autoComplete", "class_html_form.html#abe155888154196c6af13bb2713a7ba8f", null ],
+    [ "$CssLabel", "class_html_form.html#a522c98df8aa76415f9af4c73b4f134d0", null ],
+    [ "$CssTable", "class_html_form.html#adf13e3be0a9d4ac3cf11cf2efb1202ec", null ],
+    [ "$CssValue", "class_html_form.html#a0193719ef585474f274104e6604ec09b", null ],
+    [ "$externUrl", "class_html_form.html#a779b437bfa81bfcdfdb208eee9847816", null ],
+    [ "$lang", "class_html_form.html#a7714b111b644017933931ec69a154102", null ],
+    [ "$methode", "class_html_form.html#a87c97603d5d79a9258db9486ade04428", null ],
+    [ "$nbChamps", "class_html_form.html#a20800c5d17fba2ea9bc73ce2ef15180e", null ],
+    [ "$onSubmit", "class_html_form.html#aad5d0a900d4ea7554a839231f89c6625", null ],
+    [ "$sFolderLib", "class_html_form.html#a2d1691438b59a81ea0651f06639bbfad", null ],
+    [ "$transfertFichier", "class_html_form.html#a4c5351d0ff65c65b928458803979ee8f", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_ldap.html b/src/module_gtf/module/gtf.doc/api_form/class_ldap.html
new file mode 100755
index 0000000000000000000000000000000000000000..dbfa1938b5a1b2de188933d652a50f62094d96f8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_ldap.html
@@ -0,0 +1,549 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe Ldap</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_ldap.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe Ldap</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a34a7cbeeb3cda04818fc9a5d7bbde1eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a34a7cbeeb3cda04818fc9a5d7bbde1eb">__construct</a> ($sLdap)</td></tr>
+<tr class="separator:a34a7cbeeb3cda04818fc9a5d7bbde1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51e19e662cfe99f98672afb703c89b4b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a51e19e662cfe99f98672afb703c89b4b">connectLdap</a> ()</td></tr>
+<tr class="separator:a51e19e662cfe99f98672afb703c89b4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac637d5e8e68ee7fea58ddf1616618c3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#ac637d5e8e68ee7fea58ddf1616618c3c">closeLdap</a> ($sLdapConn)</td></tr>
+<tr class="separator:ac637d5e8e68ee7fea58ddf1616618c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b0dc6799a052b58f45cd68a234480cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a1b0dc6799a052b58f45cd68a234480cf">getOU</a> ($sLdapConn, $sDn)</td></tr>
+<tr class="separator:a1b0dc6799a052b58f45cd68a234480cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45a777494e27c3dfd7c66e9b592b467a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a45a777494e27c3dfd7c66e9b592b467a">getUsers</a> ($sLdapConn, $sDn)</td></tr>
+<tr class="separator:a45a777494e27c3dfd7c66e9b592b467a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f432d65063a5ecb25a47b78b6d82bb7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a0f432d65063a5ecb25a47b78b6d82bb7">explode_dn</a> ($dn, $with_attributes=0)</td></tr>
+<tr class="separator:a0f432d65063a5ecb25a47b78b6d82bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a126095704d883d6eceeade5f855ddbbb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a126095704d883d6eceeade5f855ddbbb">getCriteria</a> ($sLdapConn, $sDn, $sFilter=&quot;(&amp;(!(objectclass=computer))(objectclass=user)(objectclass=person))&quot;, $sObject)</td></tr>
+<tr class="separator:a126095704d883d6eceeade5f855ddbbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a46eac38de509d795e078605e34f15bb9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a46eac38de509d795e078605e34f15bb9">get_members</a> ($sLdapConn, $sDn, $group, $sLogin, $sDepartment)</td></tr>
+<tr class="separator:a46eac38de509d795e078605e34f15bb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2295d72ed4b3d123948281a5dc40e1f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a2295d72ed4b3d123948281a5dc40e1f1">startsWith</a> ($haystack, $needle)</td></tr>
+<tr class="separator:a2295d72ed4b3d123948281a5dc40e1f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d21c47ae3f5e47e377f91cf93fe0cac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a9d21c47ae3f5e47e377f91cf93fe0cac">getGroups</a> ($sLdapConn, $sDn)</td></tr>
+<tr class="separator:a9d21c47ae3f5e47e377f91cf93fe0cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2cb6908bf12835ef2d880e0d201d25c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#ab2cb6908bf12835ef2d880e0d201d25c">getGroupInfo</a> ($sLdapConn, $sDn, $group)</td></tr>
+<tr class="separator:ab2cb6908bf12835ef2d880e0d201d25c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea165d7d1b3eaa4b36b0bfd581131c3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#aea165d7d1b3eaa4b36b0bfd581131c3c">getGroup</a> ($sLdapConn, $userprincipalname)</td></tr>
+<tr class="separator:aea165d7d1b3eaa4b36b0bfd581131c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add2aeaf3a11289e27a24e6bb7914812e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#add2aeaf3a11289e27a24e6bb7914812e">getPrimaryGroup</a> ($sLdapConn, $iGid, $sUsersId)</td></tr>
+<tr class="separator:add2aeaf3a11289e27a24e6bb7914812e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a188fad4ffc1509904390ed867abde786"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#a188fad4ffc1509904390ed867abde786">getTextSID</a> ($binsid)</td></tr>
+<tr class="separator:a188fad4ffc1509904390ed867abde786"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada8f165efcbdd05c71c041af2b1d8105"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#ada8f165efcbdd05c71c041af2b1d8105">littleEndian</a> ($hex)</td></tr>
+<tr class="separator:ada8f165efcbdd05c71c041af2b1d8105"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:ad5b739d79b0df29ce5475660fa3f9ce4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ldap.html#ad5b739d79b0df29ce5475660fa3f9ce4">$aLdap</a> = array()</td></tr>
+<tr class="separator:ad5b739d79b0df29ce5475660fa3f9ce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des constructeurs et destructeur</h2>
+<a class="anchor" id="a34a7cbeeb3cda04818fc9a5d7bbde1eb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdap</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="ac637d5e8e68ee7fea58ddf1616618c3c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">closeLdap </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a51e19e662cfe99f98672afb703c89b4b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">connectLdap </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0f432d65063a5ecb25a47b78b6d82bb7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">explode_dn </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$dn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$with_attributes</em> = <code>0</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a46eac38de509d795e078605e34f15bb9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_members </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sDn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$group</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLogin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sDepartment</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a126095704d883d6eceeade5f855ddbbb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getCriteria </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sDn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sFilter</em> = <code>&quot;(&amp;(!(objectclass=computer))(objectclass=user)(objectclass=person))&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sObject</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea165d7d1b3eaa4b36b0bfd581131c3c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getGroup </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$userprincipalname</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab2cb6908bf12835ef2d880e0d201d25c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getGroupInfo </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sDn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$group</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9d21c47ae3f5e47e377f91cf93fe0cac"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getGroups </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sDn</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1b0dc6799a052b58f45cd68a234480cf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getOU </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sDn</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Retourne la liste des OU du noeud </p>
+
+</div>
+</div>
+<a class="anchor" id="add2aeaf3a11289e27a24e6bb7914812e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getPrimaryGroup </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iGid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sUsersId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a188fad4ffc1509904390ed867abde786"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getTextSID </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$binsid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a45a777494e27c3dfd7c66e9b592b467a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getUsers </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLdapConn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sDn</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Retourne la liste des utilisateurs du noeud </p>
+
+</div>
+</div>
+<a class="anchor" id="ada8f165efcbdd05c71c041af2b1d8105"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">littleEndian </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$hex</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2295d72ed4b3d123948281a5dc40e1f1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">startsWith </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$haystack</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$needle</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="ad5b739d79b0df29ce5475660fa3f9ce4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$aLdap = array()</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_ldap_8class_8inc.html">Ldap.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="class_ldap.html">Ldap</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_ldap.js b/src/module_gtf/module/gtf.doc/api_form/class_ldap.js
new file mode 100755
index 0000000000000000000000000000000000000000..791975a105d4abe2a15d5f76e0eca2a1da348335
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_ldap.js
@@ -0,0 +1,19 @@
+var class_ldap =
+[
+    [ "__construct", "class_ldap.html#a34a7cbeeb3cda04818fc9a5d7bbde1eb", null ],
+    [ "closeLdap", "class_ldap.html#ac637d5e8e68ee7fea58ddf1616618c3c", null ],
+    [ "connectLdap", "class_ldap.html#a51e19e662cfe99f98672afb703c89b4b", null ],
+    [ "explode_dn", "class_ldap.html#a0f432d65063a5ecb25a47b78b6d82bb7", null ],
+    [ "get_members", "class_ldap.html#a46eac38de509d795e078605e34f15bb9", null ],
+    [ "getCriteria", "class_ldap.html#a126095704d883d6eceeade5f855ddbbb", null ],
+    [ "getGroup", "class_ldap.html#aea165d7d1b3eaa4b36b0bfd581131c3c", null ],
+    [ "getGroupInfo", "class_ldap.html#ab2cb6908bf12835ef2d880e0d201d25c", null ],
+    [ "getGroups", "class_ldap.html#a9d21c47ae3f5e47e377f91cf93fe0cac", null ],
+    [ "getOU", "class_ldap.html#a1b0dc6799a052b58f45cd68a234480cf", null ],
+    [ "getPrimaryGroup", "class_ldap.html#add2aeaf3a11289e27a24e6bb7914812e", null ],
+    [ "getTextSID", "class_ldap.html#a188fad4ffc1509904390ed867abde786", null ],
+    [ "getUsers", "class_ldap.html#a45a777494e27c3dfd7c66e9b592b467a", null ],
+    [ "littleEndian", "class_ldap.html#ada8f165efcbdd05c71c041af2b1d8105", null ],
+    [ "startsWith", "class_ldap.html#a2295d72ed4b3d123948281a5dc40e1f1", null ],
+    [ "$aLdap", "class_ldap.html#ad5b739d79b0df29ce5475660fa3f9ce4", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_user.html b/src/module_gtf/module/gtf.doc/api_form/class_user.html
new file mode 100755
index 0000000000000000000000000000000000000000..392ba7b288e33aa316dd5e4c04fcdf63b69ae51e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_user.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe User</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_user.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe User</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de User:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_user.png" usemap="#User_map" alt=""/>
+  <map id="User_map" name="User_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a78ba5016feb6492c9c669c02bc1205ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_user.html#a78ba5016feb6492c9c669c02bc1205ce">__construct</a> ($oBd, $iUserdId, $aProperties)</td></tr>
+<tr class="separator:a78ba5016feb6492c9c669c02bc1205ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:a2f9b558d76a2d1d580a9c610c49d8219"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_user.html#a2f9b558d76a2d1d580a9c610c49d8219">$aFields</a> = array()</td></tr>
+<tr class="separator:a2f9b558d76a2d1d580a9c610c49d8219"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des constructeurs et destructeur</h2>
+<a class="anchor" id="a78ba5016feb6492c9c669c02bc1205ce"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iUserdId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Class constructor </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$oBd</td><td>Connection object. </td></tr>
+    <tr><td class="paramname">$iUserdId</td><td><a class="el" href="class_user.html">User</a> id. </td></tr>
+    <tr><td class="paramname">$aProperties</td><td>Array of properties. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="a2f9b558d76a2d1d580a9c610c49d8219"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$aFields = array()</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_user_8class_8inc.html">User.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="class_user.html">User</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_user.js b/src/module_gtf/module/gtf.doc/api_form/class_user.js
new file mode 100755
index 0000000000000000000000000000000000000000..bd5475561a5980f12e17617332333e029e459b04
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/class_user.js
@@ -0,0 +1,5 @@
+var class_user =
+[
+    [ "__construct", "class_user.html#a78ba5016feb6492c9c669c02bc1205ce", null ],
+    [ "$aFields", "class_user.html#a2f9b558d76a2d1d580a9c610c49d8219", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/class_user.png b/src/module_gtf/module/gtf.doc/api_form/class_user.png
new file mode 100755
index 0000000000000000000000000000000000000000..d3bd05de097fcd2158e4f0706eaaa82306d8c4d6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/class_user.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classemail_option.html b/src/module_gtf/module/gtf.doc/api_form/classemail_option.html
new file mode 100755
index 0000000000000000000000000000000000000000..6218d6980bfb921e64cac9e7710d65e64a4a646a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classemail_option.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe emailOption</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classemail_option.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe emailOption</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de emailOption:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classemail_option.png" usemap="#emailOption_map" alt=""/>
+  <map id="emailOption_map" name="emailOption_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:ae47a188d12a2d709eaac1c699b15665a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classemail_option.html#ae47a188d12a2d709eaac1c699b15665a">emailOption</a> ($oBd, $iEmailOptionId, $aProperties=array())</td></tr>
+<tr class="separator:ae47a188d12a2d709eaac1c699b15665a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="ae47a188d12a2d709eaac1c699b15665a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classemail_option.html">emailOption</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iEmailOptionId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_email_option_8class_8inc.html">EmailOption.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classemail_option.html">emailOption</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classemail_option.js b/src/module_gtf/module/gtf.doc/api_form/classemail_option.js
new file mode 100755
index 0000000000000000000000000000000000000000..15f1cd50d277cf382159f204daf0efe3737a5079
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classemail_option.js
@@ -0,0 +1,4 @@
+var classemail_option =
+[
+    [ "emailOption", "classemail_option.html#ae47a188d12a2d709eaac1c699b15665a", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classemail_option.png b/src/module_gtf/module/gtf.doc/api_form/classemail_option.png
new file mode 100755
index 0000000000000000000000000000000000000000..772e68ae5fe03eee179ba814c854b47144969f8e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classemail_option.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classemail_options.html b/src/module_gtf/module/gtf.doc/api_form/classemail_options.html
new file mode 100755
index 0000000000000000000000000000000000000000..08247f1d6446d4dccac7c1827f61dfdfa8355e3b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classemail_options.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe emailOptions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classemail_options.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe emailOptions</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de emailOptions:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classemail_options.png" usemap="#emailOptions_map" alt=""/>
+  <map id="emailOptions_map" name="emailOptions_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a4b10bbda338d14d749461e1541135ca8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classemail_options.html#a4b10bbda338d14d749461e1541135ca8">emailOptions</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a4b10bbda338d14d749461e1541135ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8fdf50341c2e53325e805cbc6fa72205"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classemail_options.html#a8fdf50341c2e53325e805cbc6fa72205">get_aEmailOptionId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a8fdf50341c2e53325e805cbc6fa72205"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a237cd1c82be7a389c0a41d7c9bfb995d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classemail_options.html#a237cd1c82be7a389c0a41d7c9bfb995d">get_aEmailOption</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a237cd1c82be7a389c0a41d7c9bfb995d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a4b10bbda338d14d749461e1541135ca8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classemail_options.html">emailOptions</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a237cd1c82be7a389c0a41d7c9bfb995d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aEmailOption </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Survey </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8fdf50341c2e53325e805cbc6fa72205"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aEmailOptionId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les email_option_id </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_email_options_8class_8inc.html">EmailOptions.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classemail_options.html">emailOptions</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classemail_options.js b/src/module_gtf/module/gtf.doc/api_form/classemail_options.js
new file mode 100755
index 0000000000000000000000000000000000000000..551e29cee66566d76539dd47d5305066c929c9b0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classemail_options.js
@@ -0,0 +1,6 @@
+var classemail_options =
+[
+    [ "emailOptions", "classemail_options.html#a4b10bbda338d14d749461e1541135ca8", null ],
+    [ "get_aEmailOption", "classemail_options.html#a237cd1c82be7a389c0a41d7c9bfb995d", null ],
+    [ "get_aEmailOptionId", "classemail_options.html#a8fdf50341c2e53325e805cbc6fa72205", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classemail_options.png b/src/module_gtf/module/gtf.doc/api_form/classemail_options.png
new file mode 100755
index 0000000000000000000000000000000000000000..eb84f143a59635a4e50d475ce9d46f83f9d8354e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classemail_options.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classerror.html b/src/module_gtf/module/gtf.doc/api_form/classerror.html
new file mode 100755
index 0000000000000000000000000000000000000000..e6714709c0a6d55a747b23fe466312a91df77df9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classerror.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe error</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classerror.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe error</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de error:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classerror.png" usemap="#error_map" alt=""/>
+  <map id="error_map" name="error_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a5fffdda82225d9ffb8f40d36ec35c939"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerror.html#a5fffdda82225d9ffb8f40d36ec35c939">error</a> ($iErrorId, $sMessage=&quot;&quot;)</td></tr>
+<tr class="separator:a5fffdda82225d9ffb8f40d36ec35c939"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a5fffdda82225d9ffb8f40d36ec35c939"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classerror.html">error</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iErrorId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sMessage</em> = <code>&quot;&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_error_8class_8inc.html">Error.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classerror.html">error</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classerror.js b/src/module_gtf/module/gtf.doc/api_form/classerror.js
new file mode 100755
index 0000000000000000000000000000000000000000..96d130695de8e414bbee0a0025327d4f8578489c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classerror.js
@@ -0,0 +1,4 @@
+var classerror =
+[
+    [ "error", "classerror.html#a5fffdda82225d9ffb8f40d36ec35c939", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classerror.png b/src/module_gtf/module/gtf.doc/api_form/classerror.png
new file mode 100755
index 0000000000000000000000000000000000000000..a8bedc3f5329b4055a551e09ad018bd116196aee
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classerror.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classes.html b/src/module_gtf/module/gtf.doc/api_form/classes.html
new file mode 100755
index 0000000000000000000000000000000000000000..3a258ac2a40862bafc25246dca17a73571f88973
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classes.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Index des structures de données</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classes.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Index des structures de données</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;U&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classgtf_engines.html">gtfEngines</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classperiods.html">periods</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;w&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpriorities.html">priorities</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_category.html">Category</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_user.html">User</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpriority.html">priority</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classworkspace.html">workspace</a>&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classinbox.html">inbox</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classworkspaces.html">workspaces</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classinboxes.html">inboxes</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="class_form.html">Form</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classemail_option.html">emailOption</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classsubscription.html">subscription</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classemail_options.html">emailOptions</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classsubscriptions.html">subscriptions</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classerror.html">error</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classorder.html">order</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classsurvey.html">survey</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="class_html_form.html">HtmlForm</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classorders.html">orders</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classsurveys.html">surveys</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classorder_statu.html">orderStatu</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classsurvey_type.html">surveyType</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classfme_engine.html">fmeEngine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classorder_status.html">orderStatus</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classsurvey_types.html">surveyTypes</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="class_ldap.html">Ldap</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="classgtf_engine.html">gtfEngine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classperiod.html">period</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtoken.html">token</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classfme_engine.html b/src/module_gtf/module/gtf.doc/api_form/classfme_engine.html
new file mode 100755
index 0000000000000000000000000000000000000000..ed3026688f3546029793c4bafe4b86ae7110d0e7
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classfme_engine.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe fmeEngine</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classfme_engine.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe fmeEngine</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de fmeEngine:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classfme_engine.png" usemap="#fmeEngine_map" alt=""/>
+  <map id="fmeEngine_map" name="fmeEngine_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a536fb33d75deee3c6091bc324f02f072"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfme_engine.html#a536fb33d75deee3c6091bc324f02f072">fmeEngine</a> ($oBd, $iFmeEngineId, $aProperties=array())</td></tr>
+<tr class="separator:a536fb33d75deee3c6091bc324f02f072"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a536fb33d75deee3c6091bc324f02f072"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classfme_engine.html">fmeEngine</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iFmeEngineId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_fme_engine_8class_8inc.html">FmeEngine.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classfme_engine.html">fmeEngine</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classfme_engine.js b/src/module_gtf/module/gtf.doc/api_form/classfme_engine.js
new file mode 100755
index 0000000000000000000000000000000000000000..48667e8d47a9d1992a358b6a611234919e5ae5d3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classfme_engine.js
@@ -0,0 +1,4 @@
+var classfme_engine =
+[
+    [ "fmeEngine", "classfme_engine.html#a536fb33d75deee3c6091bc324f02f072", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classfme_engine.png b/src/module_gtf/module/gtf.doc/api_form/classfme_engine.png
new file mode 100755
index 0000000000000000000000000000000000000000..44788a5f587b6ab48f9680f9588d8d45ddb6c7bd
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classfme_engine.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.html b/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.html
new file mode 100755
index 0000000000000000000000000000000000000000..923e01ede9d5b7c8edfa6628fc0868e83d6081e0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe gtfEngine</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classgtf_engine.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe gtfEngine</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de gtfEngine:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classgtf_engine.png" usemap="#gtfEngine_map" alt=""/>
+  <map id="gtfEngine_map" name="gtfEngine_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:aaae1340daf54451112d4e5235bd7d254"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgtf_engine.html#aaae1340daf54451112d4e5235bd7d254">gtfEngine</a> ($oBd, $iGtfEngineId, $aProperties=array())</td></tr>
+<tr class="separator:aaae1340daf54451112d4e5235bd7d254"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="aaae1340daf54451112d4e5235bd7d254"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgtf_engine.html">gtfEngine</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iGtfEngineId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_gtf_engine_8class_8inc.html">GtfEngine.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classgtf_engine.html">gtfEngine</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.js b/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.js
new file mode 100755
index 0000000000000000000000000000000000000000..cf5c526dd7e6437eab1aed13b7025334465a1919
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.js
@@ -0,0 +1,4 @@
+var classgtf_engine =
+[
+    [ "gtfEngine", "classgtf_engine.html#aaae1340daf54451112d4e5235bd7d254", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.png b/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.png
new file mode 100755
index 0000000000000000000000000000000000000000..5ba590db1edb0d76707b6603315a9c8462fc4ebf
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classgtf_engine.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.html b/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.html
new file mode 100755
index 0000000000000000000000000000000000000000..a3b58f8564385559a0f39b19ab662fee33445ec2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe gtfEngines</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classgtf_engines.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe gtfEngines</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de gtfEngines:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classgtf_engines.png" usemap="#gtfEngines_map" alt=""/>
+  <map id="gtfEngines_map" name="gtfEngines_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a64048acb145b53b1dd5ffd5c7e25320a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgtf_engines.html#a64048acb145b53b1dd5ffd5c7e25320a">gtfEngines</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a64048acb145b53b1dd5ffd5c7e25320a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a928ad1216d7552c0b3a035e9ec4e891e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgtf_engines.html#a928ad1216d7552c0b3a035e9ec4e891e">get_aGtfEngineId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a928ad1216d7552c0b3a035e9ec4e891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a939656ae35587753a51d75ae417eb2e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgtf_engines.html#a939656ae35587753a51d75ae417eb2e1">get_aGtfEngine</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a939656ae35587753a51d75ae417eb2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a939656ae35587753a51d75ae417eb2e1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aGtfEngine </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Survey </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a928ad1216d7552c0b3a035e9ec4e891e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aGtfEngineId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les email_option_id </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a64048acb145b53b1dd5ffd5c7e25320a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgtf_engines.html">gtfEngines</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_gtf_engines_8class_8inc.html">GtfEngines.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classgtf_engines.html">gtfEngines</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:24 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.js b/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.js
new file mode 100755
index 0000000000000000000000000000000000000000..08b18070f08568e088f978fe126e00d075064744
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.js
@@ -0,0 +1,6 @@
+var classgtf_engines =
+[
+    [ "get_aGtfEngine", "classgtf_engines.html#a939656ae35587753a51d75ae417eb2e1", null ],
+    [ "get_aGtfEngineId", "classgtf_engines.html#a928ad1216d7552c0b3a035e9ec4e891e", null ],
+    [ "gtfEngines", "classgtf_engines.html#a64048acb145b53b1dd5ffd5c7e25320a", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.png b/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.png
new file mode 100755
index 0000000000000000000000000000000000000000..e6b386a96dd183c5073286b84bf4a22f29b29913
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classgtf_engines.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classinbox.html b/src/module_gtf/module/gtf.doc/api_form/classinbox.html
new file mode 100755
index 0000000000000000000000000000000000000000..7262ec42ac74bdfe1c890bee3ea8aab71aee77d6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classinbox.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe inbox</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classinbox.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe inbox</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de inbox:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classinbox.png" usemap="#inbox_map" alt=""/>
+  <map id="inbox_map" name="inbox_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a2874bccd374608dbd26d8606f2e858d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classinbox.html#a2874bccd374608dbd26d8606f2e858d4">inbox</a> ($oBd, $iInboxId, $aProperties=array())</td></tr>
+<tr class="separator:a2874bccd374608dbd26d8606f2e858d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a2874bccd374608dbd26d8606f2e858d4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classinbox.html">inbox</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iInboxId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_inbox_8class_8inc.html">Inbox.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classinbox.html">inbox</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classinbox.js b/src/module_gtf/module/gtf.doc/api_form/classinbox.js
new file mode 100755
index 0000000000000000000000000000000000000000..dbd89c16a978dd5e0d05775938aa2fa7528bd060
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classinbox.js
@@ -0,0 +1,4 @@
+var classinbox =
+[
+    [ "inbox", "classinbox.html#a2874bccd374608dbd26d8606f2e858d4", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classinbox.png b/src/module_gtf/module/gtf.doc/api_form/classinbox.png
new file mode 100755
index 0000000000000000000000000000000000000000..7a6be714f17286826de8583a16bc3ef5af89f56b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classinbox.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classinboxes.html b/src/module_gtf/module/gtf.doc/api_form/classinboxes.html
new file mode 100755
index 0000000000000000000000000000000000000000..c91a51336bb7cdb8f1b61d68f9aeccc17e7641d5
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classinboxes.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe inboxes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classinboxes.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe inboxes</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de inboxes:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classinboxes.png" usemap="#inboxes_map" alt=""/>
+  <map id="inboxes_map" name="inboxes_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:abceb3dc628377c4bc0e947981f4cf1bb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classinboxes.html#abceb3dc628377c4bc0e947981f4cf1bb">inboxes</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:abceb3dc628377c4bc0e947981f4cf1bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ed49e1169063a79b9c20aa01ba40213"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classinboxes.html#a3ed49e1169063a79b9c20aa01ba40213">get_aInboxId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a3ed49e1169063a79b9c20aa01ba40213"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94c4b04a5e0dd9e25a49020819582392"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classinboxes.html#a94c4b04a5e0dd9e25a49020819582392">get_aInbox</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a94c4b04a5e0dd9e25a49020819582392"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a94c4b04a5e0dd9e25a49020819582392"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aInbox </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Survey </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3ed49e1169063a79b9c20aa01ba40213"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aInboxId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les email_option_id </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abceb3dc628377c4bc0e947981f4cf1bb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classinboxes.html">inboxes</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_inboxes_8class_8inc.html">Inboxes.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classinboxes.html">inboxes</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classinboxes.js b/src/module_gtf/module/gtf.doc/api_form/classinboxes.js
new file mode 100755
index 0000000000000000000000000000000000000000..b7be5c7f51a4ed3d83aaecc29526b90f9327ab19
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classinboxes.js
@@ -0,0 +1,6 @@
+var classinboxes =
+[
+    [ "get_aInbox", "classinboxes.html#a94c4b04a5e0dd9e25a49020819582392", null ],
+    [ "get_aInboxId", "classinboxes.html#a3ed49e1169063a79b9c20aa01ba40213", null ],
+    [ "inboxes", "classinboxes.html#abceb3dc628377c4bc0e947981f4cf1bb", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classinboxes.png b/src/module_gtf/module/gtf.doc/api_form/classinboxes.png
new file mode 100755
index 0000000000000000000000000000000000000000..8c257b629ff30baabc582705265ad99ae913d81b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classinboxes.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder.html b/src/module_gtf/module/gtf.doc/api_form/classorder.html
new file mode 100755
index 0000000000000000000000000000000000000000..654d2bd671f4d5637d898c1896014422ccb6af1c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorder.html
@@ -0,0 +1,353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe order</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classorder.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe order</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de order:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classorder.png" usemap="#order_map" alt=""/>
+  <map id="order_map" name="order_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:aea180aa67914c470d867e37a31bcaaf1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#aea180aa67914c470d867e37a31bcaaf1">order</a> ($oBd, $iOrderId, $aProperties=array(), $sTable=&quot;v_user_order&quot;)</td></tr>
+<tr class="separator:aea180aa67914c470d867e37a31bcaaf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36f36b063bb7beb1cba645be75ac89ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#a36f36b063bb7beb1cba645be75ac89ca">getIdEngine</a> ($iOrderId, $sTable, $iWorkspaceId)</td></tr>
+<tr class="separator:a36f36b063bb7beb1cba645be75ac89ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c8360e6b64d6b9daad5a794b73ab8f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#a5c8360e6b64d6b9daad5a794b73ab8f1">returnEngineId</a> ($iOrderId, $aEnginesId)</td></tr>
+<tr class="separator:a5c8360e6b64d6b9daad5a794b73ab8f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae81b7186fb97a7c6457edcc68c9aa2ef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#ae81b7186fb97a7c6457edcc68c9aa2ef">getUser</a> ()</td></tr>
+<tr class="separator:ae81b7186fb97a7c6457edcc68c9aa2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae13e5a4091f35b6ce3e2271275f4c8de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#ae13e5a4091f35b6ce3e2271275f4c8de">getWorkspace</a> ()</td></tr>
+<tr class="separator:ae13e5a4091f35b6ce3e2271275f4c8de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaebe1bdca8a9df297f5f5deadaa516c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#aaebe1bdca8a9df297f5f5deadaa516c7">getGtfEngine</a> ()</td></tr>
+<tr class="separator:aaebe1bdca8a9df297f5f5deadaa516c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6352341456a6cb4477da211f256cc954"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#a6352341456a6cb4477da211f256cc954">getFmeEngine</a> ()</td></tr>
+<tr class="separator:a6352341456a6cb4477da211f256cc954"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a797198f26a6f0ff15e097378b77dc399"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#a797198f26a6f0ff15e097378b77dc399">formatOrderEmail</a> ()</td></tr>
+<tr class="separator:a797198f26a6f0ff15e097378b77dc399"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:a907661236442af049dee8f42d066733b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#a907661236442af049dee8f42d066733b">$sPkField</a> = &quot;order_id&quot;</td></tr>
+<tr class="separator:a907661236442af049dee8f42d066733b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder.html#a6b7d3b9c752a0c977de5ddae78b522a9">$sTable</a> = &quot;v_user_order&quot;</td></tr>
+<tr class="separator:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a797198f26a6f0ff15e097378b77dc399"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">formatOrderEmail </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6352341456a6cb4477da211f256cc954"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getFmeEngine </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaebe1bdca8a9df297f5f5deadaa516c7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getGtfEngine </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a36f36b063bb7beb1cba645be75ac89ca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getIdEngine </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTable</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWorkspaceId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae81b7186fb97a7c6457edcc68c9aa2ef"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getUser </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae13e5a4091f35b6ce3e2271275f4c8de"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getWorkspace </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aea180aa67914c470d867e37a31bcaaf1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classorder.html">order</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTable</em> = <code>&quot;v_user_order&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Class constructor </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$oBd</td><td>Connection object. </td></tr>
+    <tr><td class="paramname">$iOrderId</td><td>Order id. </td></tr>
+    <tr><td class="paramname">$aProperties</td><td>Array of properties. </td></tr>
+    <tr><td class="paramname">$sTable</td><td>Name of the table. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a5c8360e6b64d6b9daad5a794b73ab8f1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">returnEngineId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aEnginesId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="a907661236442af049dee8f42d066733b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sPkField = &quot;order_id&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b7d3b9c752a0c977de5ddae78b522a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sTable = &quot;v_user_order&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_order_8class_8inc.html">Order.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classorder.html">order</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder.js b/src/module_gtf/module/gtf.doc/api_form/classorder.js
new file mode 100755
index 0000000000000000000000000000000000000000..1645b73ea1f2491d0d01d42312cc077f33c47adf
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorder.js
@@ -0,0 +1,13 @@
+var classorder =
+[
+    [ "formatOrderEmail", "classorder.html#a797198f26a6f0ff15e097378b77dc399", null ],
+    [ "getFmeEngine", "classorder.html#a6352341456a6cb4477da211f256cc954", null ],
+    [ "getGtfEngine", "classorder.html#aaebe1bdca8a9df297f5f5deadaa516c7", null ],
+    [ "getIdEngine", "classorder.html#a36f36b063bb7beb1cba645be75ac89ca", null ],
+    [ "getUser", "classorder.html#ae81b7186fb97a7c6457edcc68c9aa2ef", null ],
+    [ "getWorkspace", "classorder.html#ae13e5a4091f35b6ce3e2271275f4c8de", null ],
+    [ "order", "classorder.html#aea180aa67914c470d867e37a31bcaaf1", null ],
+    [ "returnEngineId", "classorder.html#a5c8360e6b64d6b9daad5a794b73ab8f1", null ],
+    [ "$sPkField", "classorder.html#a907661236442af049dee8f42d066733b", null ],
+    [ "$sTable", "classorder.html#a6b7d3b9c752a0c977de5ddae78b522a9", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder.png b/src/module_gtf/module/gtf.doc/api_form/classorder.png
new file mode 100755
index 0000000000000000000000000000000000000000..4b282c7651b4a218f37fe45f2ffe1dd1a866eb9e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classorder.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder_statu.html b/src/module_gtf/module/gtf.doc/api_form/classorder_statu.html
new file mode 100755
index 0000000000000000000000000000000000000000..4b5d572c84d566bd18e8c5a54ec45aa4a470daa1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorder_statu.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe orderStatu</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classorder_statu.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe orderStatu</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de orderStatu:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classorder_statu.png" usemap="#orderStatu_map" alt=""/>
+  <map id="orderStatu_map" name="orderStatu_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:aff8c780c8a0ca4a20d3e4346d6f75b68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder_statu.html#aff8c780c8a0ca4a20d3e4346d6f75b68">orderStatu</a> ($oBd, $iOrderStatusId, $aProperties=array())</td></tr>
+<tr class="separator:aff8c780c8a0ca4a20d3e4346d6f75b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="aff8c780c8a0ca4a20d3e4346d6f75b68"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classorder_statu.html">orderStatu</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderStatusId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_order_statu_8class_8inc.html">OrderStatu.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classorder_statu.html">orderStatu</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder_statu.js b/src/module_gtf/module/gtf.doc/api_form/classorder_statu.js
new file mode 100755
index 0000000000000000000000000000000000000000..883ce8b31d6435ba90c84d2234236b92d199c54a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorder_statu.js
@@ -0,0 +1,4 @@
+var classorder_statu =
+[
+    [ "orderStatu", "classorder_statu.html#aff8c780c8a0ca4a20d3e4346d6f75b68", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder_statu.png b/src/module_gtf/module/gtf.doc/api_form/classorder_statu.png
new file mode 100755
index 0000000000000000000000000000000000000000..670738b66ac3bc5fb35339c634d94f838813f0f6
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classorder_statu.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder_status.html b/src/module_gtf/module/gtf.doc/api_form/classorder_status.html
new file mode 100755
index 0000000000000000000000000000000000000000..4abc509f5c7e7447b2a29d5d31d7b0cce2e6760d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorder_status.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe orderStatus</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classorder_status.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe orderStatus</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de orderStatus:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classorder_status.png" usemap="#orderStatus_map" alt=""/>
+  <map id="orderStatus_map" name="orderStatus_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a1b301d21ccc915a8f51216da174208e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder_status.html#a1b301d21ccc915a8f51216da174208e7">orderStatus</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a1b301d21ccc915a8f51216da174208e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45473f0cf5e9440482ffda631e921107"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder_status.html#a45473f0cf5e9440482ffda631e921107">get_aOrderStatusId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a45473f0cf5e9440482ffda631e921107"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d9e25acf18aa1dbe663db0ef563f079"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorder_status.html#a0d9e25acf18aa1dbe663db0ef563f079">get_aOrderStatus</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a0d9e25acf18aa1dbe663db0ef563f079"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a0d9e25acf18aa1dbe663db0ef563f079"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrderStatus </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Survey </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a45473f0cf5e9440482ffda631e921107"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrderStatusId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les email_option_id </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1b301d21ccc915a8f51216da174208e7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classorder_status.html">orderStatus</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_order_status_8class_8inc.html">OrderStatus.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classorder_status.html">orderStatus</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder_status.js b/src/module_gtf/module/gtf.doc/api_form/classorder_status.js
new file mode 100755
index 0000000000000000000000000000000000000000..29e485b1e12b14148bc030aebd6f58eba8417df3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorder_status.js
@@ -0,0 +1,6 @@
+var classorder_status =
+[
+    [ "get_aOrderStatus", "classorder_status.html#a0d9e25acf18aa1dbe663db0ef563f079", null ],
+    [ "get_aOrderStatusId", "classorder_status.html#a45473f0cf5e9440482ffda631e921107", null ],
+    [ "orderStatus", "classorder_status.html#a1b301d21ccc915a8f51216da174208e7", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorder_status.png b/src/module_gtf/module/gtf.doc/api_form/classorder_status.png
new file mode 100755
index 0000000000000000000000000000000000000000..3852702b7fde50eb2acee8d6409b23435a654c1c
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classorder_status.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorders.html b/src/module_gtf/module/gtf.doc/api_form/classorders.html
new file mode 100755
index 0000000000000000000000000000000000000000..715b75ad7c4aa63da4e07700c1856a1299ff9d64
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorders.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe orders</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classorders.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe orders</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de orders:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classorders.png" usemap="#orders_map" alt=""/>
+  <map id="orders_map" name="orders_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorders.html#a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c">orders</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae80560b73e88d8094a1c8d410b457a23"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorders.html#ae80560b73e88d8094a1c8d410b457a23">get_aOrderId</a> ($oBd, $sOffset, $sLimit)</td></tr>
+<tr class="separator:ae80560b73e88d8094a1c8d410b457a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a363f4a6cc9563d02b6858f846a51fd52"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classorders.html#a363f4a6cc9563d02b6858f846a51fd52">get_aOrder</a> ($oBd, $sOffset, $sLimit)</td></tr>
+<tr class="separator:a363f4a6cc9563d02b6858f846a51fd52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a363f4a6cc9563d02b6858f846a51fd52"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrder </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Order </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae80560b73e88d8094a1c8d410b457a23"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrderId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les OrderId d'un utilisateur </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classorders.html">orders</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_orders_8class_8inc.html">Orders.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classorders.html">orders</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorders.js b/src/module_gtf/module/gtf.doc/api_form/classorders.js
new file mode 100755
index 0000000000000000000000000000000000000000..977b548922d85df3eff8b9387b8c17c75f4ad09d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classorders.js
@@ -0,0 +1,6 @@
+var classorders =
+[
+    [ "get_aOrder", "classorders.html#a363f4a6cc9563d02b6858f846a51fd52", null ],
+    [ "get_aOrderId", "classorders.html#ae80560b73e88d8094a1c8d410b457a23", null ],
+    [ "orders", "classorders.html#a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classorders.png b/src/module_gtf/module/gtf.doc/api_form/classorders.png
new file mode 100755
index 0000000000000000000000000000000000000000..b05f2745075558c0e4cdcea5f4103dabc670834a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classorders.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classperiod.html b/src/module_gtf/module/gtf.doc/api_form/classperiod.html
new file mode 100755
index 0000000000000000000000000000000000000000..1bd9b61557903cfa26f5db2675da0a66e1eac25b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classperiod.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe period</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classperiod.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe period</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de period:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classperiod.png" usemap="#period_map" alt=""/>
+  <map id="period_map" name="period_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a58a71a71b556e6a66b46a0e609f236f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classperiod.html#a58a71a71b556e6a66b46a0e609f236f2">period</a> ($oBd, $iPeriodId, $aProperties=array())</td></tr>
+<tr class="separator:a58a71a71b556e6a66b46a0e609f236f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a58a71a71b556e6a66b46a0e609f236f2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classperiod.html">period</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iPeriodId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_period_8class_8inc.html">Period.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classperiod.html">period</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classperiod.js b/src/module_gtf/module/gtf.doc/api_form/classperiod.js
new file mode 100755
index 0000000000000000000000000000000000000000..9da7aed82d5615955851624e75e437f039693b69
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classperiod.js
@@ -0,0 +1,4 @@
+var classperiod =
+[
+    [ "period", "classperiod.html#a58a71a71b556e6a66b46a0e609f236f2", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classperiod.png b/src/module_gtf/module/gtf.doc/api_form/classperiod.png
new file mode 100755
index 0000000000000000000000000000000000000000..862fd83abc1ea0a9bd2096a35ce3e25f8bcd149d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classperiod.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classperiods.html b/src/module_gtf/module/gtf.doc/api_form/classperiods.html
new file mode 100755
index 0000000000000000000000000000000000000000..e6baca07b33d11fccb1b0f3ec3b4b66af200bed0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classperiods.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe periods</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classperiods.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe periods</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de periods:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classperiods.png" usemap="#periods_map" alt=""/>
+  <map id="periods_map" name="periods_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:ab6e188ecfd5a51c70efb197a21eb3232"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classperiods.html#ab6e188ecfd5a51c70efb197a21eb3232">periods</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:ab6e188ecfd5a51c70efb197a21eb3232"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6e5876d4236d0f751a1d05ca4002a68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classperiods.html#ad6e5876d4236d0f751a1d05ca4002a68">get_aPeriodId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:ad6e5876d4236d0f751a1d05ca4002a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50a622c90af0de49140c1ff8adf72834"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classperiods.html#a50a622c90af0de49140c1ff8adf72834">get_aPeriod</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a50a622c90af0de49140c1ff8adf72834"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a50a622c90af0de49140c1ff8adf72834"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aPeriod </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets PeriodId d'un Period </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Period </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad6e5876d4236d0f751a1d05ca4002a68"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aPeriodId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les period_id </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab6e188ecfd5a51c70efb197a21eb3232"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classperiods.html">periods</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_periods_8class_8inc.html">Periods.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classperiods.html">periods</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classperiods.js b/src/module_gtf/module/gtf.doc/api_form/classperiods.js
new file mode 100755
index 0000000000000000000000000000000000000000..f70cfbd79c8284d4181776f57366ffe4c3069ac8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classperiods.js
@@ -0,0 +1,6 @@
+var classperiods =
+[
+    [ "get_aPeriod", "classperiods.html#a50a622c90af0de49140c1ff8adf72834", null ],
+    [ "get_aPeriodId", "classperiods.html#ad6e5876d4236d0f751a1d05ca4002a68", null ],
+    [ "periods", "classperiods.html#ab6e188ecfd5a51c70efb197a21eb3232", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classperiods.png b/src/module_gtf/module/gtf.doc/api_form/classperiods.png
new file mode 100755
index 0000000000000000000000000000000000000000..470a992ff1c4a140d57ba3ca4fbc054a5157409e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classperiods.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classpriorities.html b/src/module_gtf/module/gtf.doc/api_form/classpriorities.html
new file mode 100755
index 0000000000000000000000000000000000000000..2d5c5c4df65bbf8c20137db3260c53712a9a1dd8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classpriorities.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe priorities</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classpriorities.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe priorities</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de priorities:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classpriorities.png" usemap="#priorities_map" alt=""/>
+  <map id="priorities_map" name="priorities_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a1abbdfb96d7cebba9ce94880d565c698"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpriorities.html#a1abbdfb96d7cebba9ce94880d565c698">priorities</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a1abbdfb96d7cebba9ce94880d565c698"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15b53cfbd83a8280f1ad8a24f614517a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpriorities.html#a15b53cfbd83a8280f1ad8a24f614517a">get_aPriorityId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a15b53cfbd83a8280f1ad8a24f614517a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a178b8227bbf1f0b29f02a1230e8e98e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpriorities.html#a178b8227bbf1f0b29f02a1230e8e98e6">get_aPriority</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a178b8227bbf1f0b29f02a1230e8e98e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a178b8227bbf1f0b29f02a1230e8e98e6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aPriority </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Priority </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a15b53cfbd83a8280f1ad8a24f614517a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aPriorityId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les email_option_id </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1abbdfb96d7cebba9ce94880d565c698"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classpriorities.html">priorities</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_priorities_8class_8inc.html">Priorities.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classpriorities.html">priorities</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classpriorities.js b/src/module_gtf/module/gtf.doc/api_form/classpriorities.js
new file mode 100755
index 0000000000000000000000000000000000000000..5ec895ce1254cf5fdff2afc9f4fca8a10e787e9e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classpriorities.js
@@ -0,0 +1,6 @@
+var classpriorities =
+[
+    [ "get_aPriority", "classpriorities.html#a178b8227bbf1f0b29f02a1230e8e98e6", null ],
+    [ "get_aPriorityId", "classpriorities.html#a15b53cfbd83a8280f1ad8a24f614517a", null ],
+    [ "priorities", "classpriorities.html#a1abbdfb96d7cebba9ce94880d565c698", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classpriorities.png b/src/module_gtf/module/gtf.doc/api_form/classpriorities.png
new file mode 100755
index 0000000000000000000000000000000000000000..36d0611dd1f88a5d4fafd69097f13ee151b6db69
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classpriorities.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classpriority.html b/src/module_gtf/module/gtf.doc/api_form/classpriority.html
new file mode 100755
index 0000000000000000000000000000000000000000..1eeb645e5233fa35ef17a5c0627bbaa7d759bcae
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classpriority.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe priority</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classpriority.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe priority</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de priority:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classpriority.png" usemap="#priority_map" alt=""/>
+  <map id="priority_map" name="priority_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a2a119c542c44b5bc0447c6728c9ba23d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpriority.html#a2a119c542c44b5bc0447c6728c9ba23d">priority</a> ($oBd, $iPriorityId, $aProperties=array())</td></tr>
+<tr class="separator:a2a119c542c44b5bc0447c6728c9ba23d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a2a119c542c44b5bc0447c6728c9ba23d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classpriority.html">priority</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iPriorityId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_priority_8class_8inc.html">Priority.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classpriority.html">priority</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classpriority.js b/src/module_gtf/module/gtf.doc/api_form/classpriority.js
new file mode 100755
index 0000000000000000000000000000000000000000..042fd62e47d83f78fb439dbf41b583a7fe329d50
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classpriority.js
@@ -0,0 +1,4 @@
+var classpriority =
+[
+    [ "priority", "classpriority.html#a2a119c542c44b5bc0447c6728c9ba23d", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classpriority.png b/src/module_gtf/module/gtf.doc/api_form/classpriority.png
new file mode 100755
index 0000000000000000000000000000000000000000..49b91034b129d53e70702054a7c8da50aaac6b07
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classpriority.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsubscription.html b/src/module_gtf/module/gtf.doc/api_form/classsubscription.html
new file mode 100755
index 0000000000000000000000000000000000000000..4a332123ee922e9d8c1ebbe6eac591b38950c382
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsubscription.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe subscription</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classsubscription.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe subscription</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de subscription:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsubscription.png" usemap="#subscription_map" alt=""/>
+  <map id="subscription_map" name="subscription_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:aee28839beb5d419b8e0e3196037a07e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscription.html#aee28839beb5d419b8e0e3196037a07e2">subscription</a> ($oBd, $iOrderId, $aProperties=array(), $sTable=&quot;v_user_subscription&quot;)</td></tr>
+<tr class="separator:aee28839beb5d419b8e0e3196037a07e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36f36b063bb7beb1cba645be75ac89ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscription.html#a36f36b063bb7beb1cba645be75ac89ca">getIdEngine</a> ($iOrderId, $sTable, $iWorkspaceId)</td></tr>
+<tr class="separator:a36f36b063bb7beb1cba645be75ac89ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c8360e6b64d6b9daad5a794b73ab8f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscription.html#a5c8360e6b64d6b9daad5a794b73ab8f1">returnEngineId</a> ($iOrderId, $aEnginesId)</td></tr>
+<tr class="separator:a5c8360e6b64d6b9daad5a794b73ab8f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:a907661236442af049dee8f42d066733b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscription.html#a907661236442af049dee8f42d066733b">$sPkField</a> = &quot;order_id&quot;</td></tr>
+<tr class="separator:a907661236442af049dee8f42d066733b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscription.html#a6b7d3b9c752a0c977de5ddae78b522a9">$sTable</a> = &quot;v_user_subscription&quot;</td></tr>
+<tr class="separator:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a36f36b063bb7beb1cba645be75ac89ca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getIdEngine </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTable</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWorkspaceId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5c8360e6b64d6b9daad5a794b73ab8f1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">returnEngineId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aEnginesId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aee28839beb5d419b8e0e3196037a07e2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsubscription.html">subscription</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTable</em> = <code>&quot;v_user_subscription&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="a907661236442af049dee8f42d066733b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sPkField = &quot;order_id&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b7d3b9c752a0c977de5ddae78b522a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sTable = &quot;v_user_subscription&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_subscription_8class_8inc.html">Subscription.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classsubscription.html">subscription</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsubscription.js b/src/module_gtf/module/gtf.doc/api_form/classsubscription.js
new file mode 100755
index 0000000000000000000000000000000000000000..87df62235acb68b8ccd0d00e16a7ebc104c72c8e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsubscription.js
@@ -0,0 +1,8 @@
+var classsubscription =
+[
+    [ "getIdEngine", "classsubscription.html#a36f36b063bb7beb1cba645be75ac89ca", null ],
+    [ "returnEngineId", "classsubscription.html#a5c8360e6b64d6b9daad5a794b73ab8f1", null ],
+    [ "subscription", "classsubscription.html#aee28839beb5d419b8e0e3196037a07e2", null ],
+    [ "$sPkField", "classsubscription.html#a907661236442af049dee8f42d066733b", null ],
+    [ "$sTable", "classsubscription.html#a6b7d3b9c752a0c977de5ddae78b522a9", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsubscription.png b/src/module_gtf/module/gtf.doc/api_form/classsubscription.png
new file mode 100755
index 0000000000000000000000000000000000000000..ec953cb2370fb9a386164d1069fce621c22b2a97
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classsubscription.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.html b/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.html
new file mode 100755
index 0000000000000000000000000000000000000000..8ce3d073673def1615ebc8f0d488284d70042279
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe subscriptions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classsubscriptions.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe subscriptions</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de subscriptions:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsubscriptions.png" usemap="#subscriptions_map" alt=""/>
+  <map id="subscriptions_map" name="subscriptions_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:ac86cb8d2109cd6d574dd18537a484640"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscriptions.html#ac86cb8d2109cd6d574dd18537a484640">subscriptions</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:ac86cb8d2109cd6d574dd18537a484640"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c538465bd41ea043c46070ec56c85c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscriptions.html#a7c538465bd41ea043c46070ec56c85c7">get_aOrderId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a7c538465bd41ea043c46070ec56c85c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03bb9733cad9257752e408749952ddf6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsubscriptions.html#a03bb9733cad9257752e408749952ddf6">get_aOrder</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a03bb9733cad9257752e408749952ddf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a03bb9733cad9257752e408749952ddf6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrder </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Subscription </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7c538465bd41ea043c46070ec56c85c7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrderId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les OrderId d'un utilisateur </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac86cb8d2109cd6d574dd18537a484640"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsubscriptions.html">subscriptions</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_subscriptions_8class_8inc.html">Subscriptions.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classsubscriptions.html">subscriptions</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.js b/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.js
new file mode 100755
index 0000000000000000000000000000000000000000..72291b97ac4730b1f9dae73e07576ddfb6b61cc8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.js
@@ -0,0 +1,6 @@
+var classsubscriptions =
+[
+    [ "get_aOrder", "classsubscriptions.html#a03bb9733cad9257752e408749952ddf6", null ],
+    [ "get_aOrderId", "classsubscriptions.html#a7c538465bd41ea043c46070ec56c85c7", null ],
+    [ "subscriptions", "classsubscriptions.html#ac86cb8d2109cd6d574dd18537a484640", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.png b/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.png
new file mode 100755
index 0000000000000000000000000000000000000000..9e681a16e44f6f2fec692cb5ef4b844f4b52fb80
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classsubscriptions.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey.html b/src/module_gtf/module/gtf.doc/api_form/classsurvey.html
new file mode 100755
index 0000000000000000000000000000000000000000..10e00f72173d51487c7122ddf42dedf62a0bbd6c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurvey.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe survey</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classsurvey.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe survey</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de survey:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsurvey.png" usemap="#survey_map" alt=""/>
+  <map id="survey_map" name="survey_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:aa79e61e6ed531c40f38a385578b17a69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey.html#aa79e61e6ed531c40f38a385578b17a69">survey</a> ($oBd, $iOrderId, $aProperties=array(), $sTable=&quot;v_user_survey&quot;)</td></tr>
+<tr class="separator:aa79e61e6ed531c40f38a385578b17a69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36f36b063bb7beb1cba645be75ac89ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey.html#a36f36b063bb7beb1cba645be75ac89ca">getIdEngine</a> ($iOrderId, $sTable, $iWorkspaceId)</td></tr>
+<tr class="separator:a36f36b063bb7beb1cba645be75ac89ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c8360e6b64d6b9daad5a794b73ab8f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey.html#a5c8360e6b64d6b9daad5a794b73ab8f1">returnEngineId</a> ($iOrderId, $aEnginesId)</td></tr>
+<tr class="separator:a5c8360e6b64d6b9daad5a794b73ab8f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:a907661236442af049dee8f42d066733b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey.html#a907661236442af049dee8f42d066733b">$sPkField</a> =&quot;order_id&quot;</td></tr>
+<tr class="separator:a907661236442af049dee8f42d066733b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey.html#a6b7d3b9c752a0c977de5ddae78b522a9">$sTable</a> =&quot;v_user_survey&quot;</td></tr>
+<tr class="separator:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a36f36b063bb7beb1cba645be75ac89ca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getIdEngine </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTable</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWorkspaceId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5c8360e6b64d6b9daad5a794b73ab8f1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">returnEngineId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aEnginesId</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa79e61e6ed531c40f38a385578b17a69"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsurvey.html">survey</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iOrderId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sTable</em> = <code>&quot;v_user_survey&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="a907661236442af049dee8f42d066733b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sPkField =&quot;order_id&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b7d3b9c752a0c977de5ddae78b522a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sTable =&quot;v_user_survey&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_survey_8class_8inc.html">Survey.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classsurvey.html">survey</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey.js b/src/module_gtf/module/gtf.doc/api_form/classsurvey.js
new file mode 100755
index 0000000000000000000000000000000000000000..b08be566cf8131f949dd42792bfdbbe4edc81d5c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurvey.js
@@ -0,0 +1,8 @@
+var classsurvey =
+[
+    [ "getIdEngine", "classsurvey.html#a36f36b063bb7beb1cba645be75ac89ca", null ],
+    [ "returnEngineId", "classsurvey.html#a5c8360e6b64d6b9daad5a794b73ab8f1", null ],
+    [ "survey", "classsurvey.html#aa79e61e6ed531c40f38a385578b17a69", null ],
+    [ "$sPkField", "classsurvey.html#a907661236442af049dee8f42d066733b", null ],
+    [ "$sTable", "classsurvey.html#a6b7d3b9c752a0c977de5ddae78b522a9", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey.png b/src/module_gtf/module/gtf.doc/api_form/classsurvey.png
new file mode 100755
index 0000000000000000000000000000000000000000..02ffd59e789eb423ce7bcdfba3787ea20d023aec
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classsurvey.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.html b/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.html
new file mode 100755
index 0000000000000000000000000000000000000000..e1f432ed327f6cdc64bf57cda9a2d844811cfd40
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe surveyType</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classsurvey_type.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe surveyType</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de surveyType:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsurvey_type.png" usemap="#surveyType_map" alt=""/>
+  <map id="surveyType_map" name="surveyType_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:ac94ae7913ee906fff12665b89a4cb912"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey_type.html#ac94ae7913ee906fff12665b89a4cb912">surveyType</a> ($oBd, $iSurveyTypeId, $aProperties=array())</td></tr>
+<tr class="separator:ac94ae7913ee906fff12665b89a4cb912"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="ac94ae7913ee906fff12665b89a4cb912"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsurvey_type.html">surveyType</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iSurveyTypeId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_survey_type_8class_8inc.html">SurveyType.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classsurvey_type.html">surveyType</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.js b/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.js
new file mode 100755
index 0000000000000000000000000000000000000000..3440df6608ef252facc294ab8974d5bbc3027409
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.js
@@ -0,0 +1,4 @@
+var classsurvey_type =
+[
+    [ "surveyType", "classsurvey_type.html#ac94ae7913ee906fff12665b89a4cb912", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.png b/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.png
new file mode 100755
index 0000000000000000000000000000000000000000..604bd319cba3546c13c8028bbdccf27ed0297a3d
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classsurvey_type.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.html b/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.html
new file mode 100755
index 0000000000000000000000000000000000000000..de65531e05a4ede8498f2d55f98b3577c35e154e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe surveyTypes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classsurvey_types.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe surveyTypes</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de surveyTypes:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsurvey_types.png" usemap="#surveyTypes_map" alt=""/>
+  <map id="surveyTypes_map" name="surveyTypes_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a0f0022657278349766b2104a8c1b50b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey_types.html#a0f0022657278349766b2104a8c1b50b8">surveyTypes</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a0f0022657278349766b2104a8c1b50b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebc15591a49ec574704646d90de1f452"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey_types.html#aebc15591a49ec574704646d90de1f452">get_aSurveyTypeId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:aebc15591a49ec574704646d90de1f452"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe01480917b465989e6e11b580843cd3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurvey_types.html#afe01480917b465989e6e11b580843cd3">get_aSurveyType</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:afe01480917b465989e6e11b580843cd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="afe01480917b465989e6e11b580843cd3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aSurveyType </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Survey </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aebc15591a49ec574704646d90de1f452"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aSurveyTypeId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les email_option_id </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0f0022657278349766b2104a8c1b50b8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsurvey_types.html">surveyTypes</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_survey_types_8class_8inc.html">SurveyTypes.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classsurvey_types.html">surveyTypes</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.js b/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.js
new file mode 100755
index 0000000000000000000000000000000000000000..d3e4c0cb9a58468aa1cc30031f7ab74ba0ee513c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.js
@@ -0,0 +1,6 @@
+var classsurvey_types =
+[
+    [ "get_aSurveyType", "classsurvey_types.html#afe01480917b465989e6e11b580843cd3", null ],
+    [ "get_aSurveyTypeId", "classsurvey_types.html#aebc15591a49ec574704646d90de1f452", null ],
+    [ "surveyTypes", "classsurvey_types.html#a0f0022657278349766b2104a8c1b50b8", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.png b/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.png
new file mode 100755
index 0000000000000000000000000000000000000000..e1b7c62f59c5ebd4a5c2c9e975e55321f681b109
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classsurvey_types.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurveys.html b/src/module_gtf/module/gtf.doc/api_form/classsurveys.html
new file mode 100755
index 0000000000000000000000000000000000000000..27621337507c6b53bd725a86a86d07d478c86580
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurveys.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe surveys</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classsurveys.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe surveys</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de surveys:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsurveys.png" usemap="#surveys_map" alt=""/>
+  <map id="surveys_map" name="surveys_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a98e08d921d6efcfd6f906592e51b64ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurveys.html#a98e08d921d6efcfd6f906592e51b64ad">surveys</a> ($oBd, $aProperties=array(), $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a98e08d921d6efcfd6f906592e51b64ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c538465bd41ea043c46070ec56c85c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurveys.html#a7c538465bd41ea043c46070ec56c85c7">get_aOrderId</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a7c538465bd41ea043c46070ec56c85c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03bb9733cad9257752e408749952ddf6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsurveys.html#a03bb9733cad9257752e408749952ddf6">get_aOrder</a> ($oBd, $sOffset=0, $sLimit=&quot;ALL&quot;)</td></tr>
+<tr class="separator:a03bb9733cad9257752e408749952ddf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a03bb9733cad9257752e408749952ddf6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrder </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets OrderId d'un Order </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Survey </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7c538465bd41ea043c46070ec56c85c7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aOrderId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les OrderId d'un utilisateur </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a98e08d921d6efcfd6f906592e51b64ad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsurveys.html">surveys</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em> = <code>&quot;ALL&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_surveys_8class_8inc.html">Surveys.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classsurveys.html">surveys</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurveys.js b/src/module_gtf/module/gtf.doc/api_form/classsurveys.js
new file mode 100755
index 0000000000000000000000000000000000000000..5d3b45e14421aa1051bdbe315fc5d8f071601048
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classsurveys.js
@@ -0,0 +1,6 @@
+var classsurveys =
+[
+    [ "get_aOrder", "classsurveys.html#a03bb9733cad9257752e408749952ddf6", null ],
+    [ "get_aOrderId", "classsurveys.html#a7c538465bd41ea043c46070ec56c85c7", null ],
+    [ "surveys", "classsurveys.html#a98e08d921d6efcfd6f906592e51b64ad", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classsurveys.png b/src/module_gtf/module/gtf.doc/api_form/classsurveys.png
new file mode 100755
index 0000000000000000000000000000000000000000..fa6b9bfafc45b040dcd97a82f2af258c3408f020
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classsurveys.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classtoken.html b/src/module_gtf/module/gtf.doc/api_form/classtoken.html
new file mode 100755
index 0000000000000000000000000000000000000000..8b3a389734e9485c0de4e66ddcebdf19fb0312c8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classtoken.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe token</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classtoken.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe token</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de token:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classtoken.png" usemap="#token_map" alt=""/>
+  <map id="token_map" name="token_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a935356c10601999ee59fd8bc49d35236"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoken.html#a935356c10601999ee59fd8bc49d35236">token</a> ($SessionName, $validityDate)</td></tr>
+<tr class="separator:a935356c10601999ee59fd8bc49d35236"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a935356c10601999ee59fd8bc49d35236"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtoken.html">token</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$SessionName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$validityDate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_token_8class_8inc.html">Token.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classtoken.html">token</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classtoken.js b/src/module_gtf/module/gtf.doc/api_form/classtoken.js
new file mode 100755
index 0000000000000000000000000000000000000000..02e771251ef4a83c0e12c34251e1257b242373d3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classtoken.js
@@ -0,0 +1,4 @@
+var classtoken =
+[
+    [ "token", "classtoken.html#a935356c10601999ee59fd8bc49d35236", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classtoken.png b/src/module_gtf/module/gtf.doc/api_form/classtoken.png
new file mode 100755
index 0000000000000000000000000000000000000000..fa879c51f0d4a07a4a8f1fbb3252b57d1e9a1dc0
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classtoken.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classworkspace.html b/src/module_gtf/module/gtf.doc/api_form/classworkspace.html
new file mode 100755
index 0000000000000000000000000000000000000000..32908f0e6016619c36f301f7274d58fdb8d3a2d0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classworkspace.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe workspace</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classworkspace.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a> &#124;
+<a href="#pub-attribs">Champs de données</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe workspace</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de workspace:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classworkspace.png" usemap="#workspace_map" alt=""/>
+  <map id="workspace_map" name="workspace_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:aa6be88cfec1c6136a9cf69dbe0265caf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspace.html#aa6be88cfec1c6136a9cf69dbe0265caf">workspace</a> ($oBd, $iWorkspaceId, $aProperties=array())</td></tr>
+<tr class="separator:aa6be88cfec1c6136a9cf69dbe0265caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada0bf69887885f455ebdfbe878e14543"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspace.html#ada0bf69887885f455ebdfbe878e14543">getCategory</a> ()</td></tr>
+<tr class="memdesc:ada0bf69887885f455ebdfbe878e14543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a object of the "Category" Class.  <a href="#ada0bf69887885f455ebdfbe878e14543">Plus de détails...</a><br /></td></tr>
+<tr class="separator:ada0bf69887885f455ebdfbe878e14543"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Champs de données</h2></td></tr>
+<tr class="memitem:a907661236442af049dee8f42d066733b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspace.html#a907661236442af049dee8f42d066733b">$sPkField</a> = &quot;workspace_id&quot;</td></tr>
+<tr class="separator:a907661236442af049dee8f42d066733b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspace.html#a6b7d3b9c752a0c977de5ddae78b522a9">$sTable</a> = &quot;v_workspace&quot;</td></tr>
+<tr class="separator:a6b7d3b9c752a0c977de5ddae78b522a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="ada0bf69887885f455ebdfbe878e14543"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getCategory </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>function getCategory </p><dl class="section return"><dt>Renvoie</dt><dd>an object </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa6be88cfec1c6136a9cf69dbe0265caf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classworkspace.html">workspace</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$iWorkspaceId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Class constructor </p><dl class="params"><dt>Paramètres</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">$oBd</td><td>Connection object. </td></tr>
+    <tr><td class="paramname">$iWorkspaceId</td><td>Workspace id. </td></tr>
+    <tr><td class="paramname">$aProperties</td><td>Array of properties. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Documentation des champs</h2>
+<a class="anchor" id="a907661236442af049dee8f42d066733b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sPkField = &quot;workspace_id&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b7d3b9c752a0c977de5ddae78b522a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">$sTable = &quot;v_workspace&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_workspace_8class_8inc.html">Workspace.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classworkspace.html">workspace</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classworkspace.js b/src/module_gtf/module/gtf.doc/api_form/classworkspace.js
new file mode 100755
index 0000000000000000000000000000000000000000..d25ba61197160ccd7493b7e72527dc90ee47e106
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classworkspace.js
@@ -0,0 +1,7 @@
+var classworkspace =
+[
+    [ "getCategory", "classworkspace.html#ada0bf69887885f455ebdfbe878e14543", null ],
+    [ "workspace", "classworkspace.html#aa6be88cfec1c6136a9cf69dbe0265caf", null ],
+    [ "$sPkField", "classworkspace.html#a907661236442af049dee8f42d066733b", null ],
+    [ "$sTable", "classworkspace.html#a6b7d3b9c752a0c977de5ddae78b522a9", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classworkspace.png b/src/module_gtf/module/gtf.doc/api_form/classworkspace.png
new file mode 100755
index 0000000000000000000000000000000000000000..d060f34c49b01e659023fcd6a57599d8cb358880
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classworkspace.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/classworkspaces.html b/src/module_gtf/module/gtf.doc/api_form/classworkspaces.html
new file mode 100755
index 0000000000000000000000000000000000000000..1373bdc8b473842b18fef7c19881bf73ca2071f2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classworkspaces.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Référence de la classe workspaces</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classworkspaces.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Fonctions membres publiques</a>  </div>
+  <div class="headertitle">
+<div class="title">Référence de la classe workspaces</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Graphe d'héritage de workspaces:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classworkspaces.png" usemap="#workspaces_map" alt=""/>
+  <map id="workspaces_map" name="workspaces_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Fonctions membres publiques</h2></td></tr>
+<tr class="memitem:a1f71684f44c217b88cf4a15af8df59bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspaces.html#a1f71684f44c217b88cf4a15af8df59bd">workspaces</a> ($oBd, $aProperties=array(), $sOffset, $sLimit)</td></tr>
+<tr class="separator:a1f71684f44c217b88cf4a15af8df59bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e8b67b819d9bba36bcd4f2a27a310b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspaces.html#a7e8b67b819d9bba36bcd4f2a27a310b0">get_aWorkspaceId</a> ($oBd, $sOffset, $sLimit)</td></tr>
+<tr class="separator:a7e8b67b819d9bba36bcd4f2a27a310b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c43f8182072d1cb1c3185609dcf4ec9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classworkspaces.html#a1c43f8182072d1cb1c3185609dcf4ec9">get_aWorkspace</a> ($oBd, $sOffset, $sLimit)</td></tr>
+<tr class="separator:a1c43f8182072d1cb1c3185609dcf4ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Documentation des fonctions membres</h2>
+<a class="anchor" id="a1c43f8182072d1cb1c3185609dcf4ec9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aWorkspace </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer la liste des objets WorkspaceId d'un Workspace </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'objets Workspace </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7e8b67b819d9bba36bcd4f2a27a310b0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">get_aWorkspaceId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Cette méthode permet de récupérer les WorkspaceId d'un utilisateur </p><dl class="section return"><dt>Renvoie</dt><dd>Retourne un tableau d'entier </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1f71684f44c217b88cf4a15af8df59bd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classworkspaces.html">workspaces</a> </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$oBd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$aProperties</em> = <code>array()</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sOffset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$sLimit</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>La documentation de cette classe a été générée à partir du fichier suivant :<ul>
+<li><a class="el" href="_workspaces_8class_8inc.html">Workspaces.class.inc</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="classworkspaces.html">workspaces</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/classworkspaces.js b/src/module_gtf/module/gtf.doc/api_form/classworkspaces.js
new file mode 100755
index 0000000000000000000000000000000000000000..e17643d1aa2173bea1939324be714e5d9d4730ce
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/classworkspaces.js
@@ -0,0 +1,6 @@
+var classworkspaces =
+[
+    [ "get_aWorkspace", "classworkspaces.html#a1c43f8182072d1cb1c3185609dcf4ec9", null ],
+    [ "get_aWorkspaceId", "classworkspaces.html#a7e8b67b819d9bba36bcd4f2a27a310b0", null ],
+    [ "workspaces", "classworkspaces.html#a1f71684f44c217b88cf4a15af8df59bd", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/classworkspaces.png b/src/module_gtf/module/gtf.doc/api_form/classworkspaces.png
new file mode 100755
index 0000000000000000000000000000000000000000..2e75b21a692ee9a165d54909f523d788f50984fd
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/classworkspaces.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/closed.png b/src/module_gtf/module/gtf.doc/api_form/closed.png
new file mode 100755
index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/closed.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_06b55a99516ced8d8e517ca4fd9573ae.html b/src/module_gtf/module/gtf.doc/api_form/dir_06b55a99516ced8d8e517ca4fd9573ae.html
new file mode 100755
index 0000000000000000000000000000000000000000..b78cf535dfdb0de3fc997c10c52a2723c7cb96d8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_06b55a99516ced8d8e517ca4fd9573ae.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Répertoire de référence de Apache2</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_06b55a99516ced8d8e517ca4fd9573ae.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Répertoire de référence de Apache2</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Répertoires</h2></td></tr>
+<tr class="memitem:dir_b8ffbc64bcb1738821773879e0f0af5f"><td class="memItemLeft" align="right" valign="top">répertoire &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_06b55a99516ced8d8e517ca4fd9573ae.js b/src/module_gtf/module/gtf.doc/api_form/dir_06b55a99516ced8d8e517ca4fd9573ae.js
new file mode 100755
index 0000000000000000000000000000000000000000..b7eb1c1d9ae8a4aaddb818101f95f9bd3954d879
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_06b55a99516ced8d8e517ca4fd9573ae.js
@@ -0,0 +1,4 @@
+var dir_06b55a99516ced8d8e517ca4fd9573ae =
+[
+    [ "htdocs", "dir_b8ffbc64bcb1738821773879e0f0af5f.html", "dir_b8ffbc64bcb1738821773879e0f0af5f" ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_0c855527aff2f0e585e31592d4b568cc.html b/src/module_gtf/module/gtf.doc/api_form/dir_0c855527aff2f0e585e31592d4b568cc.html
new file mode 100755
index 0000000000000000000000000000000000000000..458b207885c6b183d36c1910db3618c87452ac6c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_0c855527aff2f0e585e31592d4b568cc.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Répertoire de référence de gtf_lib</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_0c855527aff2f0e585e31592d4b568cc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Répertoire de référence de gtf_lib</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Répertoires</h2></td></tr>
+<tr class="memitem:dir_c446551c402b0c0f5520e505f6d83bcb"><td class="memItemLeft" align="right" valign="top">répertoire &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_0c855527aff2f0e585e31592d4b568cc.js b/src/module_gtf/module/gtf.doc/api_form/dir_0c855527aff2f0e585e31592d4b568cc.js
new file mode 100755
index 0000000000000000000000000000000000000000..e026fa4a0c0a821e2f22f362f19b6fe955355711
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_0c855527aff2f0e585e31592d4b568cc.js
@@ -0,0 +1,4 @@
+var dir_0c855527aff2f0e585e31592d4b568cc =
+[
+    [ "gtf_object", "dir_c446551c402b0c0f5520e505f6d83bcb.html", "dir_c446551c402b0c0f5520e505f6d83bcb" ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_200837d96101eeec8a3925a5b2f8156c.html b/src/module_gtf/module/gtf.doc/api_form/dir_200837d96101eeec8a3925a5b2f8156c.html
new file mode 100755
index 0000000000000000000000000000000000000000..5c55ea3df941a7db3fcf9c571b773fc7916657d0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_200837d96101eeec8a3925a5b2f8156c.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Répertoire de référence de vmlib</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_200837d96101eeec8a3925a5b2f8156c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Répertoire de référence de vmlib</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Fichiers</h2></td></tr>
+<tr class="memitem:_html_form_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_html_form_8class_8inc.html">HtmlForm.class.inc</a></td></tr>
+<tr class="memdesc:_html_form_8class_8inc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_200837d96101eeec8a3925a5b2f8156c.html">vmlib</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_200837d96101eeec8a3925a5b2f8156c.js b/src/module_gtf/module/gtf.doc/api_form/dir_200837d96101eeec8a3925a5b2f8156c.js
new file mode 100755
index 0000000000000000000000000000000000000000..7d6a5a5c72a6b3f9e9f8cbf9728e7184b47589ed
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_200837d96101eeec8a3925a5b2f8156c.js
@@ -0,0 +1,6 @@
+var dir_200837d96101eeec8a3925a5b2f8156c =
+[
+    [ "HtmlForm.class.inc", "_html_form_8class_8inc.html", [
+      [ "HtmlForm", "class_html_form.html", "class_html_form" ]
+    ] ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_26d79224d3b6c5b7370b08507c033d9a.html b/src/module_gtf/module/gtf.doc/api_form/dir_26d79224d3b6c5b7370b08507c033d9a.html
new file mode 100755
index 0000000000000000000000000000000000000000..025d8a21434564219f135d6e24160b425fee7d3c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_26d79224d3b6c5b7370b08507c033d9a.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Documentation des lib: C:/serveurs/Apache2/htdocs Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Documentation des lib
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_94523c618719e58da83140a46b58247d.html">serveurs</a></li><li class="navelem"><a class="el" href="dir_c27a14057381f9d7bd50aa8007f00290.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_26d79224d3b6c5b7370b08507c033d9a.html">htdocs</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">htdocs Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_c1ae1b6e4f987a89457b50740104afc3"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_c1ae1b6e4f987a89457b50740104afc3.html">lib</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jan 5 2015 14:01:42 for Documentation des lib by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_8dcec8405aeb15997c627d2c2e236b53.html b/src/module_gtf/module/gtf.doc/api_form/dir_8dcec8405aeb15997c627d2c2e236b53.html
new file mode 100755
index 0000000000000000000000000000000000000000..36e29dd88d433575e139ef9f5f52c51405166bff
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_8dcec8405aeb15997c627d2c2e236b53.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Documentation des lib: C:/serveurs/Apache2/htdocs/lib/vmlib Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Documentation des lib
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_94523c618719e58da83140a46b58247d.html">serveurs</a></li><li class="navelem"><a class="el" href="dir_c27a14057381f9d7bd50aa8007f00290.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_26d79224d3b6c5b7370b08507c033d9a.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_c1ae1b6e4f987a89457b50740104afc3.html">lib</a></li><li class="navelem"><a class="el" href="dir_8dcec8405aeb15997c627d2c2e236b53.html">vmlib</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">vmlib Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:_html_form_8class_8inc"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_html_form_8class_8inc.html">HtmlForm.class.inc</a></td></tr>
+<tr class="memdesc:_html_form_8class_8inc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jan 5 2015 14:01:42 for Documentation des lib by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_94523c618719e58da83140a46b58247d.html b/src/module_gtf/module/gtf.doc/api_form/dir_94523c618719e58da83140a46b58247d.html
new file mode 100755
index 0000000000000000000000000000000000000000..2eeb846b3dea8e81b9f88090d7b63d54048f51f1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_94523c618719e58da83140a46b58247d.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Documentation des lib: C:/serveurs Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Documentation des lib
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_94523c618719e58da83140a46b58247d.html">serveurs</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">serveurs Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_c27a14057381f9d7bd50aa8007f00290"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_c27a14057381f9d7bd50aa8007f00290.html">Apache2</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jan 5 2015 14:01:42 for Documentation des lib by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_b4f35e931f297328ccce6a21decf7753.html b/src/module_gtf/module/gtf.doc/api_form/dir_b4f35e931f297328ccce6a21decf7753.html
new file mode 100755
index 0000000000000000000000000000000000000000..1a4a2d13ec346c456093b0c290e094554506d011
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_b4f35e931f297328ccce6a21decf7753.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Répertoire de référence de lib</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_b4f35e931f297328ccce6a21decf7753.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Répertoire de référence de lib</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Répertoires</h2></td></tr>
+<tr class="memitem:dir_0c855527aff2f0e585e31592d4b568cc"><td class="memItemLeft" align="right" valign="top">répertoire &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_200837d96101eeec8a3925a5b2f8156c"><td class="memItemLeft" align="right" valign="top">répertoire &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_200837d96101eeec8a3925a5b2f8156c.html">vmlib</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_b4f35e931f297328ccce6a21decf7753.js b/src/module_gtf/module/gtf.doc/api_form/dir_b4f35e931f297328ccce6a21decf7753.js
new file mode 100755
index 0000000000000000000000000000000000000000..c59d452d3295358fc4008e345a1c7362e9d4fd06
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_b4f35e931f297328ccce6a21decf7753.js
@@ -0,0 +1,5 @@
+var dir_b4f35e931f297328ccce6a21decf7753 =
+[
+    [ "gtf_lib", "dir_0c855527aff2f0e585e31592d4b568cc.html", "dir_0c855527aff2f0e585e31592d4b568cc" ],
+    [ "vmlib", "dir_200837d96101eeec8a3925a5b2f8156c.html", "dir_200837d96101eeec8a3925a5b2f8156c" ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_b8ffbc64bcb1738821773879e0f0af5f.html b/src/module_gtf/module/gtf.doc/api_form/dir_b8ffbc64bcb1738821773879e0f0af5f.html
new file mode 100755
index 0000000000000000000000000000000000000000..2c5c99e171bc21930340008c1f63501063805d3d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_b8ffbc64bcb1738821773879e0f0af5f.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Répertoire de référence de htdocs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_b8ffbc64bcb1738821773879e0f0af5f.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Répertoire de référence de htdocs</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Répertoires</h2></td></tr>
+<tr class="memitem:dir_b4f35e931f297328ccce6a21decf7753"><td class="memItemLeft" align="right" valign="top">répertoire &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_b8ffbc64bcb1738821773879e0f0af5f.js b/src/module_gtf/module/gtf.doc/api_form/dir_b8ffbc64bcb1738821773879e0f0af5f.js
new file mode 100755
index 0000000000000000000000000000000000000000..1d413486a72b01655ef5f3909bc9708dec4ddbe4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_b8ffbc64bcb1738821773879e0f0af5f.js
@@ -0,0 +1,4 @@
+var dir_b8ffbc64bcb1738821773879e0f0af5f =
+[
+    [ "lib", "dir_b4f35e931f297328ccce6a21decf7753.html", "dir_b4f35e931f297328ccce6a21decf7753" ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_c1ae1b6e4f987a89457b50740104afc3.html b/src/module_gtf/module/gtf.doc/api_form/dir_c1ae1b6e4f987a89457b50740104afc3.html
new file mode 100755
index 0000000000000000000000000000000000000000..5ad28fce78d990adf1b625753a0a68011deaafad
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_c1ae1b6e4f987a89457b50740104afc3.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Documentation des lib: C:/serveurs/Apache2/htdocs/lib Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Documentation des lib
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_94523c618719e58da83140a46b58247d.html">serveurs</a></li><li class="navelem"><a class="el" href="dir_c27a14057381f9d7bd50aa8007f00290.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_26d79224d3b6c5b7370b08507c033d9a.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_c1ae1b6e4f987a89457b50740104afc3.html">lib</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">lib Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_8dcec8405aeb15997c627d2c2e236b53"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8dcec8405aeb15997c627d2c2e236b53.html">vmlib</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jan 5 2015 14:01:42 for Documentation des lib by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_c27a14057381f9d7bd50aa8007f00290.html b/src/module_gtf/module/gtf.doc/api_form/dir_c27a14057381f9d7bd50aa8007f00290.html
new file mode 100755
index 0000000000000000000000000000000000000000..2984c8759ef10e672d51cdf2c64bb37d8745a65a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_c27a14057381f9d7bd50aa8007f00290.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Documentation des lib: C:/serveurs/Apache2 Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Documentation des lib
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_94523c618719e58da83140a46b58247d.html">serveurs</a></li><li class="navelem"><a class="el" href="dir_c27a14057381f9d7bd50aa8007f00290.html">Apache2</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Apache2 Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_26d79224d3b6c5b7370b08507c033d9a"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_26d79224d3b6c5b7370b08507c033d9a.html">htdocs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jan 5 2015 14:01:42 for Documentation des lib by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_c446551c402b0c0f5520e505f6d83bcb.html b/src/module_gtf/module/gtf.doc/api_form/dir_c446551c402b0c0f5520e505f6d83bcb.html
new file mode 100755
index 0000000000000000000000000000000000000000..6e9afb22fef64878cbd1bd74210f9d665cc79701
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_c446551c402b0c0f5520e505f6d83bcb.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Répertoire de référence de gtf_object</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_c446551c402b0c0f5520e505f6d83bcb.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Répertoire de référence de gtf_object</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Fichiers</h2></td></tr>
+<tr class="memitem:_category_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_category_8class_8inc.html">Category.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_category_8class_8sql_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_category_8class_8sql_8inc.html">Category.class.sql.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_email_option_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_email_option_8class_8inc.html">EmailOption.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_email_options_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_email_options_8class_8inc.html">EmailOptions.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_error_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_error_8class_8inc.html">Error.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_fme_engine_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_fme_engine_8class_8inc.html">FmeEngine.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_form_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_form_8class_8inc.html">Form.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_gtf_engine_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gtf_engine_8class_8inc.html">GtfEngine.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_gtf_engines_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gtf_engines_8class_8inc.html">GtfEngines.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_inbox_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_inbox_8class_8inc.html">Inbox.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_inboxes_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_inboxes_8class_8inc.html">Inboxes.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_ldap_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_ldap_8class_8inc.html">Ldap.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_order_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_order_8class_8inc.html">Order.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_orders_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_orders_8class_8inc.html">Orders.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_order_statu_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_order_statu_8class_8inc.html">OrderStatu.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_order_status_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_order_status_8class_8inc.html">OrderStatus.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_period_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_period_8class_8inc.html">Period.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_periods_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_periods_8class_8inc.html">Periods.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_priorities_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_priorities_8class_8inc.html">Priorities.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_priority_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_priority_8class_8inc.html">Priority.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_subscription_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_subscription_8class_8inc.html">Subscription.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_subscriptions_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_subscriptions_8class_8inc.html">Subscriptions.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_survey_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_survey_8class_8inc.html">Survey.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_surveys_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_surveys_8class_8inc.html">Surveys.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_survey_type_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_survey_type_8class_8inc.html">SurveyType.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_survey_types_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_survey_types_8class_8inc.html">SurveyTypes.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_token_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_token_8class_8inc.html">Token.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_user_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_user_8class_8inc.html">User.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_user_8class_8sql_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_user_8class_8sql_8inc.html">User.class.sql.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_workspace_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_workspace_8class_8inc.html">Workspace.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_workspaces_8class_8inc"><td class="memItemLeft" align="right" valign="top">fichier &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_workspaces_8class_8inc.html">Workspaces.class.inc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_06b55a99516ced8d8e517ca4fd9573ae.html">Apache2</a></li><li class="navelem"><a class="el" href="dir_b8ffbc64bcb1738821773879e0f0af5f.html">htdocs</a></li><li class="navelem"><a class="el" href="dir_b4f35e931f297328ccce6a21decf7753.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c855527aff2f0e585e31592d4b568cc.html">gtf_lib</a></li><li class="navelem"><a class="el" href="dir_c446551c402b0c0f5520e505f6d83bcb.html">gtf_object</a></li>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:25 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/dir_c446551c402b0c0f5520e505f6d83bcb.js b/src/module_gtf/module/gtf.doc/api_form/dir_c446551c402b0c0f5520e505f6d83bcb.js
new file mode 100755
index 0000000000000000000000000000000000000000..c7438c8808df13c35c42996e2e899757bd862fe5
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dir_c446551c402b0c0f5520e505f6d83bcb.js
@@ -0,0 +1,12 @@
+var dir_c446551c402b0c0f5520e505f6d83bcb =
+[
+    [ "Order.class.inc", "_order_8class_8inc.html", [
+      [ "order", "classorder.html", "classorder" ]
+    ] ],
+    [ "User.class.inc", "_user_8class_8inc.html", [
+      [ "User", "class_user.html", "class_user" ]
+    ] ],
+    [ "Workspace.class.inc", "_workspace_8class_8inc.html", [
+      [ "workspace", "classworkspace.html", "classworkspace" ]
+    ] ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/doxygen.css b/src/module_gtf/module/gtf.doc/api_form/doxygen.css
new file mode 100755
index 0000000000000000000000000000000000000000..0a8f9627a5eed65d3ae367280344cfb9151f73a6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/doxygen.css
@@ -0,0 +1,1440 @@
+/* The standard CSS for doxygen 1.8.7 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        -moz-border-radius-topleft: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+        -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('ftv2folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('ftv2folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('ftv2doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 20px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
diff --git a/src/module_gtf/module/gtf.doc/api_form/doxygen.png b/src/module_gtf/module/gtf.doc/api_form/doxygen.png
new file mode 100755
index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/doxygen.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/dynsections.js b/src/module_gtf/module/gtf.doc/api_form/dynsections.js
new file mode 100755
index 0000000000000000000000000000000000000000..85e183690954af49931335b87a063b2c078d4546
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/dynsections.js
@@ -0,0 +1,97 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ } 
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9658;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9658;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9658;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+
diff --git a/src/module_gtf/module/gtf.doc/api_form/files.html b/src/module_gtf/module/gtf.doc/api_form/files.html
new file mode 100755
index 0000000000000000000000000000000000000000..f4da818b30d8f8ed409839227fa029684c53d715
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/files.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Liste des fichiers</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('files.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Liste des fichiers</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Liste de tous les fichiers avec une brève description :</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_category_8class_8inc.html" target="_self">Category.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_category_8class_8sql_8inc.html" target="_self">Category.class.sql.inc</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_email_option_8class_8inc.html" target="_self">EmailOption.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_email_options_8class_8inc.html" target="_self">EmailOptions.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_error_8class_8inc.html" target="_self">Error.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_fme_engine_8class_8inc.html" target="_self">FmeEngine.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_form_8class_8inc.html" target="_self">Form.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_gtf_engine_8class_8inc.html" target="_self">GtfEngine.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_gtf_engines_8class_8inc.html" target="_self">GtfEngines.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_html_form_8class_8inc.html" target="_self">HtmlForm.class.inc</a></td><td class="desc">Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a> </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_inbox_8class_8inc.html" target="_self">Inbox.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_inboxes_8class_8inc.html" target="_self">Inboxes.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_ldap_8class_8inc.html" target="_self">Ldap.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_order_8class_8inc.html" target="_self">Order.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_orders_8class_8inc.html" target="_self">Orders.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_order_statu_8class_8inc.html" target="_self">OrderStatu.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_order_status_8class_8inc.html" target="_self">OrderStatus.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_period_8class_8inc.html" target="_self">Period.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_periods_8class_8inc.html" target="_self">Periods.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_priorities_8class_8inc.html" target="_self">Priorities.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_priority_8class_8inc.html" target="_self">Priority.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_subscription_8class_8inc.html" target="_self">Subscription.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_subscriptions_8class_8inc.html" target="_self">Subscriptions.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_survey_8class_8inc.html" target="_self">Survey.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_surveys_8class_8inc.html" target="_self">Surveys.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_survey_type_8class_8inc.html" target="_self">SurveyType.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_survey_types_8class_8inc.html" target="_self">SurveyTypes.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_token_8class_8inc.html" target="_self">Token.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_user_8class_8inc.html" target="_self">User.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_user_8class_8sql_8inc.html" target="_self">User.class.sql.inc</a></td><td class="desc"></td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_workspace_8class_8inc.html" target="_self">Workspace.class.inc</a></td><td class="desc"></td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_workspaces_8class_8inc.html" target="_self">Workspaces.class.inc</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:27 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/files.js b/src/module_gtf/module/gtf.doc/api_form/files.js
new file mode 100755
index 0000000000000000000000000000000000000000..73d50182b839e2f5ea29799bed9fcdc4d77d5edb
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/files.js
@@ -0,0 +1,95 @@
+var files =
+[
+    [ "Category.class.inc", "_category_8class_8inc.html", [
+      [ "Category", "class_category.html", "class_category" ]
+    ] ],
+    [ "Category.class.sql.inc", "_category_8class_8sql_8inc.html", "_category_8class_8sql_8inc" ],
+    [ "EmailOption.class.inc", "_email_option_8class_8inc.html", [
+      [ "emailOption", "classemail_option.html", "classemail_option" ]
+    ] ],
+    [ "EmailOptions.class.inc", "_email_options_8class_8inc.html", [
+      [ "emailOptions", "classemail_options.html", "classemail_options" ]
+    ] ],
+    [ "Error.class.inc", "_error_8class_8inc.html", [
+      [ "error", "classerror.html", "classerror" ]
+    ] ],
+    [ "FmeEngine.class.inc", "_fme_engine_8class_8inc.html", [
+      [ "fmeEngine", "classfme_engine.html", "classfme_engine" ]
+    ] ],
+    [ "Form.class.inc", "_form_8class_8inc.html", [
+      [ "Form", "class_form.html", "class_form" ]
+    ] ],
+    [ "GtfEngine.class.inc", "_gtf_engine_8class_8inc.html", [
+      [ "gtfEngine", "classgtf_engine.html", "classgtf_engine" ]
+    ] ],
+    [ "GtfEngines.class.inc", "_gtf_engines_8class_8inc.html", [
+      [ "gtfEngines", "classgtf_engines.html", "classgtf_engines" ]
+    ] ],
+    [ "HtmlForm.class.inc", "_html_form_8class_8inc.html", [
+      [ "HtmlForm", "class_html_form.html", "class_html_form" ]
+    ] ],
+    [ "Inbox.class.inc", "_inbox_8class_8inc.html", [
+      [ "inbox", "classinbox.html", "classinbox" ]
+    ] ],
+    [ "Inboxes.class.inc", "_inboxes_8class_8inc.html", [
+      [ "inboxes", "classinboxes.html", "classinboxes" ]
+    ] ],
+    [ "Ldap.class.inc", "_ldap_8class_8inc.html", [
+      [ "Ldap", "class_ldap.html", "class_ldap" ]
+    ] ],
+    [ "Order.class.inc", "_order_8class_8inc.html", [
+      [ "order", "classorder.html", "classorder" ]
+    ] ],
+    [ "Orders.class.inc", "_orders_8class_8inc.html", [
+      [ "orders", "classorders.html", "classorders" ]
+    ] ],
+    [ "OrderStatu.class.inc", "_order_statu_8class_8inc.html", [
+      [ "orderStatu", "classorder_statu.html", "classorder_statu" ]
+    ] ],
+    [ "OrderStatus.class.inc", "_order_status_8class_8inc.html", [
+      [ "orderStatus", "classorder_status.html", "classorder_status" ]
+    ] ],
+    [ "Period.class.inc", "_period_8class_8inc.html", [
+      [ "period", "classperiod.html", "classperiod" ]
+    ] ],
+    [ "Periods.class.inc", "_periods_8class_8inc.html", [
+      [ "periods", "classperiods.html", "classperiods" ]
+    ] ],
+    [ "Priorities.class.inc", "_priorities_8class_8inc.html", [
+      [ "priorities", "classpriorities.html", "classpriorities" ]
+    ] ],
+    [ "Priority.class.inc", "_priority_8class_8inc.html", [
+      [ "priority", "classpriority.html", "classpriority" ]
+    ] ],
+    [ "Subscription.class.inc", "_subscription_8class_8inc.html", [
+      [ "subscription", "classsubscription.html", "classsubscription" ]
+    ] ],
+    [ "Subscriptions.class.inc", "_subscriptions_8class_8inc.html", [
+      [ "subscriptions", "classsubscriptions.html", "classsubscriptions" ]
+    ] ],
+    [ "Survey.class.inc", "_survey_8class_8inc.html", [
+      [ "survey", "classsurvey.html", "classsurvey" ]
+    ] ],
+    [ "Surveys.class.inc", "_surveys_8class_8inc.html", [
+      [ "surveys", "classsurveys.html", "classsurveys" ]
+    ] ],
+    [ "SurveyType.class.inc", "_survey_type_8class_8inc.html", [
+      [ "surveyType", "classsurvey_type.html", "classsurvey_type" ]
+    ] ],
+    [ "SurveyTypes.class.inc", "_survey_types_8class_8inc.html", [
+      [ "surveyTypes", "classsurvey_types.html", "classsurvey_types" ]
+    ] ],
+    [ "Token.class.inc", "_token_8class_8inc.html", [
+      [ "token", "classtoken.html", "classtoken" ]
+    ] ],
+    [ "User.class.inc", "_user_8class_8inc.html", [
+      [ "User", "class_user.html", "class_user" ]
+    ] ],
+    [ "User.class.sql.inc", "_user_8class_8sql_8inc.html", "_user_8class_8sql_8inc" ],
+    [ "Workspace.class.inc", "_workspace_8class_8inc.html", [
+      [ "workspace", "classworkspace.html", "classworkspace" ]
+    ] ],
+    [ "Workspaces.class.inc", "_workspaces_8class_8inc.html", [
+      [ "workspaces", "classworkspaces.html", "classworkspaces" ]
+    ] ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2blank.png b/src/module_gtf/module/gtf.doc/api_form/ftv2blank.png
new file mode 100755
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2blank.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2doc.png b/src/module_gtf/module/gtf.doc/api_form/ftv2doc.png
new file mode 100755
index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2doc.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2folderclosed.png b/src/module_gtf/module/gtf.doc/api_form/ftv2folderclosed.png
new file mode 100755
index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2folderclosed.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2folderopen.png b/src/module_gtf/module/gtf.doc/api_form/ftv2folderopen.png
new file mode 100755
index 0000000000000000000000000000000000000000..d6c7f676a3b3ef8c2c307d319dff3c6a604eb227
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2folderopen.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2lastnode.png b/src/module_gtf/module/gtf.doc/api_form/ftv2lastnode.png
new file mode 100755
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2lastnode.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2link.png b/src/module_gtf/module/gtf.doc/api_form/ftv2link.png
new file mode 100755
index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2link.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2mlastnode.png b/src/module_gtf/module/gtf.doc/api_form/ftv2mlastnode.png
new file mode 100755
index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2mlastnode.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2mnode.png b/src/module_gtf/module/gtf.doc/api_form/ftv2mnode.png
new file mode 100755
index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2mnode.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2node.png b/src/module_gtf/module/gtf.doc/api_form/ftv2node.png
new file mode 100755
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2node.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2plastnode.png b/src/module_gtf/module/gtf.doc/api_form/ftv2plastnode.png
new file mode 100755
index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2plastnode.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2pnode.png b/src/module_gtf/module/gtf.doc/api_form/ftv2pnode.png
new file mode 100755
index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2pnode.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2splitbar.png b/src/module_gtf/module/gtf.doc/api_form/ftv2splitbar.png
new file mode 100755
index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2splitbar.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/ftv2vertline.png b/src/module_gtf/module/gtf.doc/api_form/ftv2vertline.png
new file mode 100755
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/ftv2vertline.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/functions.html b/src/module_gtf/module/gtf.doc/api_form/functions.html
new file mode 100755
index 0000000000000000000000000000000000000000..e102863e70ace203328f05a6fc3d62078f381c34
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/functions.html
@@ -0,0 +1,595 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Champs de donnée</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Liste de tous les champs de structure et d'union avec des liens vers les structures/unions auxquelles ils appartiennent :</div>
+
+<h3><a class="anchor" id="index_$"></a>- $ -</h3><ul>
+<li>$aFields
+: <a class="el" href="class_category.html#a2f9b558d76a2d1d580a9c610c49d8219">Category</a>
+, <a class="el" href="class_user.html#a2f9b558d76a2d1d580a9c610c49d8219">User</a>
+</li>
+<li>$aLdap
+: <a class="el" href="class_ldap.html#ad5b739d79b0df29ce5475660fa3f9ce4">Ldap</a>
+</li>
+<li>$autoComplete
+: <a class="el" href="class_html_form.html#abe155888154196c6af13bb2713a7ba8f">HtmlForm</a>
+</li>
+<li>$CssLabel
+: <a class="el" href="class_html_form.html#a522c98df8aa76415f9af4c73b4f134d0">HtmlForm</a>
+</li>
+<li>$CssTable
+: <a class="el" href="class_html_form.html#adf13e3be0a9d4ac3cf11cf2efb1202ec">HtmlForm</a>
+</li>
+<li>$CssValue
+: <a class="el" href="class_html_form.html#a0193719ef585474f274104e6604ec09b">HtmlForm</a>
+</li>
+<li>$externUrl
+: <a class="el" href="class_html_form.html#a779b437bfa81bfcdfdb208eee9847816">HtmlForm</a>
+</li>
+<li>$lang
+: <a class="el" href="class_html_form.html#a7714b111b644017933931ec69a154102">HtmlForm</a>
+</li>
+<li>$methode
+: <a class="el" href="class_html_form.html#a87c97603d5d79a9258db9486ade04428">HtmlForm</a>
+</li>
+<li>$nbChamps
+: <a class="el" href="class_html_form.html#a20800c5d17fba2ea9bc73ce2ef15180e">HtmlForm</a>
+</li>
+<li>$onSubmit
+: <a class="el" href="class_html_form.html#aad5d0a900d4ea7554a839231f89c6625">HtmlForm</a>
+</li>
+<li>$sFolderLib
+: <a class="el" href="class_html_form.html#a2d1691438b59a81ea0651f06639bbfad">HtmlForm</a>
+</li>
+<li>$sPkField
+: <a class="el" href="classorder.html#a907661236442af049dee8f42d066733b">order</a>
+, <a class="el" href="classsubscription.html#a907661236442af049dee8f42d066733b">subscription</a>
+, <a class="el" href="classsurvey.html#a907661236442af049dee8f42d066733b">survey</a>
+, <a class="el" href="classworkspace.html#a907661236442af049dee8f42d066733b">workspace</a>
+</li>
+<li>$sSchemaGtf
+: <a class="el" href="class_category.html#ac018cfa750b4f5ee92b9b331a54ad989">Category</a>
+</li>
+<li>$sTable
+: <a class="el" href="classorder.html#a6b7d3b9c752a0c977de5ddae78b522a9">order</a>
+, <a class="el" href="classsubscription.html#a6b7d3b9c752a0c977de5ddae78b522a9">subscription</a>
+, <a class="el" href="classsurvey.html#a6b7d3b9c752a0c977de5ddae78b522a9">survey</a>
+, <a class="el" href="classworkspace.html#a6b7d3b9c752a0c977de5ddae78b522a9">workspace</a>
+</li>
+<li>$transfertFichier
+: <a class="el" href="class_html_form.html#a4c5351d0ff65c65b928458803979ee8f">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>__construct()
+: <a class="el" href="class_category.html#aec8d7f8f3574462d98c6cc97c5f65632">Category</a>
+, <a class="el" href="class_ldap.html#a34a7cbeeb3cda04818fc9a5d7bbde1eb">Ldap</a>
+, <a class="el" href="class_user.html#a78ba5016feb6492c9c669c02bc1205ce">User</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>addLine()
+: <a class="el" href="class_html_form.html#a0c4375d48a3a9c1755855ba972798a4c">HtmlForm</a>
+</li>
+<li>areaField()
+: <a class="el" href="class_html_form.html#ac1e92ac1c9ae25b319d922af91a370ca">HtmlForm</a>
+</li>
+<li>areaReadField()
+: <a class="el" href="class_html_form.html#a28c7a3aaa2c1487c3a4b904cc7e8d65b">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>buttonField()
+: <a class="el" href="class_html_form.html#ac5e4346541e9f1e251deabf312cfb463">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>calendarDateTimeField()
+: <a class="el" href="class_html_form.html#acb29aa5964b1d4de444efa878ab8b5f4">HtmlForm</a>
+</li>
+<li>calendarField()
+: <a class="el" href="class_html_form.html#aefe3d5b6a2d83aa2dcdadcf9d17904e2">HtmlForm</a>
+</li>
+<li>cascadeCalendarField()
+: <a class="el" href="class_html_form.html#a78a9a6cbe314645499d7c151da9229ca">HtmlForm</a>
+</li>
+<li>cascadeINTEGERField()
+: <a class="el" href="class_html_form.html#a79df46a7b4638a3ee5db4aa9d3ec49e4">HtmlForm</a>
+</li>
+<li>cascadeListField()
+: <a class="el" href="class_html_form.html#a25b54a92d78241268c6ffaa1337795ef">HtmlForm</a>
+</li>
+<li>cascadeListParentField()
+: <a class="el" href="class_html_form.html#a885874295ef8566c6d27b89af5f9847c">HtmlForm</a>
+</li>
+<li>cascadeNumberField()
+: <a class="el" href="class_html_form.html#a7998d85ff93ecdbae8732b5dd9f0f1f8">HtmlForm</a>
+</li>
+<li>cascadeTextField()
+: <a class="el" href="class_html_form.html#ab125c825127bd28060ee2ed2505a9d3d">HtmlForm</a>
+</li>
+<li>checkIsPdfFile()
+: <a class="el" href="class_html_form.html#afa32b67f52f68a6a0ada1dd6a702f61c">HtmlForm</a>
+</li>
+<li>closeLdap()
+: <a class="el" href="class_ldap.html#ac637d5e8e68ee7fea58ddf1616618c3c">Ldap</a>
+</li>
+<li>connectLdap()
+: <a class="el" href="class_ldap.html#a51e19e662cfe99f98672afb703c89b4b">Ldap</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>displayForm()
+: <a class="el" href="class_form.html#ad8cd240613fa8c7375195e521330b7f8">Form</a>
+</li>
+<li>doubleListField()
+: <a class="el" href="class_html_form.html#a79fe01125ba1809a8944d51380bf0719">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>emailOption()
+: <a class="el" href="classemail_option.html#ae47a188d12a2d709eaac1c699b15665a">emailOption</a>
+</li>
+<li>emailOptions()
+: <a class="el" href="classemail_options.html#a4b10bbda338d14d749461e1541135ca8">emailOptions</a>
+</li>
+<li>end()
+: <a class="el" href="class_html_form.html#ad27804427679f63b2d9a18d12faf3086">HtmlForm</a>
+</li>
+<li>error()
+: <a class="el" href="classerror.html#a5fffdda82225d9ffb8f40d36ec35c939">error</a>
+</li>
+<li>explode_dn()
+: <a class="el" href="class_ldap.html#a0f432d65063a5ecb25a47b78b6d82bb7">Ldap</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>fileField()
+: <a class="el" href="class_html_form.html#aaabac8649f945e6029f057a3f99241ba">HtmlForm</a>
+</li>
+<li>fmeEngine()
+: <a class="el" href="classfme_engine.html#a536fb33d75deee3c6091bc324f02f072">fmeEngine</a>
+</li>
+<li>FolderTreeField()
+: <a class="el" href="class_html_form.html#afd211acd5225ec0c57dfa8c433d94563">HtmlForm</a>
+</li>
+<li>Form()
+: <a class="el" href="class_form.html#a9f280c6ba52f3872b4fa7acf3049acd5">Form</a>
+</li>
+<li>formatOrderEmail()
+: <a class="el" href="classorder.html#a797198f26a6f0ff15e097378b77dc399">order</a>
+</li>
+<li>formEnd()
+: <a class="el" href="class_html_form.html#a8baa8a713f9595edf9524a6c26f94a63">HtmlForm</a>
+</li>
+<li>formStart()
+: <a class="el" href="class_html_form.html#a26713a5b61f9467ddd83eef17cc38028">HtmlForm</a>
+</li>
+<li>frameField()
+: <a class="el" href="class_html_form.html#ae6bf7f06c53a8b7a14f2b93124d283a3">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>get_aEmailOption()
+: <a class="el" href="classemail_options.html#a237cd1c82be7a389c0a41d7c9bfb995d">emailOptions</a>
+</li>
+<li>get_aEmailOptionId()
+: <a class="el" href="classemail_options.html#a8fdf50341c2e53325e805cbc6fa72205">emailOptions</a>
+</li>
+<li>get_aGtfEngine()
+: <a class="el" href="classgtf_engines.html#a939656ae35587753a51d75ae417eb2e1">gtfEngines</a>
+</li>
+<li>get_aGtfEngineId()
+: <a class="el" href="classgtf_engines.html#a928ad1216d7552c0b3a035e9ec4e891e">gtfEngines</a>
+</li>
+<li>get_aInbox()
+: <a class="el" href="classinboxes.html#a94c4b04a5e0dd9e25a49020819582392">inboxes</a>
+</li>
+<li>get_aInboxId()
+: <a class="el" href="classinboxes.html#a3ed49e1169063a79b9c20aa01ba40213">inboxes</a>
+</li>
+<li>get_aOrder()
+: <a class="el" href="classorders.html#a363f4a6cc9563d02b6858f846a51fd52">orders</a>
+, <a class="el" href="classsubscriptions.html#a03bb9733cad9257752e408749952ddf6">subscriptions</a>
+, <a class="el" href="classsurveys.html#a03bb9733cad9257752e408749952ddf6">surveys</a>
+</li>
+<li>get_aOrderId()
+: <a class="el" href="classorders.html#ae80560b73e88d8094a1c8d410b457a23">orders</a>
+, <a class="el" href="classsubscriptions.html#a7c538465bd41ea043c46070ec56c85c7">subscriptions</a>
+, <a class="el" href="classsurveys.html#a7c538465bd41ea043c46070ec56c85c7">surveys</a>
+</li>
+<li>get_aOrderStatus()
+: <a class="el" href="classorder_status.html#a0d9e25acf18aa1dbe663db0ef563f079">orderStatus</a>
+</li>
+<li>get_aOrderStatusId()
+: <a class="el" href="classorder_status.html#a45473f0cf5e9440482ffda631e921107">orderStatus</a>
+</li>
+<li>get_aPeriod()
+: <a class="el" href="classperiods.html#a50a622c90af0de49140c1ff8adf72834">periods</a>
+</li>
+<li>get_aPeriodId()
+: <a class="el" href="classperiods.html#ad6e5876d4236d0f751a1d05ca4002a68">periods</a>
+</li>
+<li>get_aPriority()
+: <a class="el" href="classpriorities.html#a178b8227bbf1f0b29f02a1230e8e98e6">priorities</a>
+</li>
+<li>get_aPriorityId()
+: <a class="el" href="classpriorities.html#a15b53cfbd83a8280f1ad8a24f614517a">priorities</a>
+</li>
+<li>get_aSurveyType()
+: <a class="el" href="classsurvey_types.html#afe01480917b465989e6e11b580843cd3">surveyTypes</a>
+</li>
+<li>get_aSurveyTypeId()
+: <a class="el" href="classsurvey_types.html#aebc15591a49ec574704646d90de1f452">surveyTypes</a>
+</li>
+<li>get_aWorkspace()
+: <a class="el" href="classworkspaces.html#a1c43f8182072d1cb1c3185609dcf4ec9">workspaces</a>
+</li>
+<li>get_aWorkspaceId()
+: <a class="el" href="classworkspaces.html#a7e8b67b819d9bba36bcd4f2a27a310b0">workspaces</a>
+</li>
+<li>get_members()
+: <a class="el" href="class_ldap.html#a46eac38de509d795e078605e34f15bb9">Ldap</a>
+</li>
+<li>getCategory()
+: <a class="el" href="classworkspace.html#ada0bf69887885f455ebdfbe878e14543">workspace</a>
+</li>
+<li>getCriteria()
+: <a class="el" href="class_ldap.html#a126095704d883d6eceeade5f855ddbbb">Ldap</a>
+</li>
+<li>getFmeEngine()
+: <a class="el" href="classorder.html#a6352341456a6cb4477da211f256cc954">order</a>
+</li>
+<li>getGroup()
+: <a class="el" href="class_ldap.html#aea165d7d1b3eaa4b36b0bfd581131c3c">Ldap</a>
+</li>
+<li>getGroupInfo()
+: <a class="el" href="class_ldap.html#ab2cb6908bf12835ef2d880e0d201d25c">Ldap</a>
+</li>
+<li>getGroups()
+: <a class="el" href="class_ldap.html#a9d21c47ae3f5e47e377f91cf93fe0cac">Ldap</a>
+</li>
+<li>getGtfEngine()
+: <a class="el" href="classorder.html#aaebe1bdca8a9df297f5f5deadaa516c7">order</a>
+</li>
+<li>getIdEngine()
+: <a class="el" href="classorder.html#a36f36b063bb7beb1cba645be75ac89ca">order</a>
+, <a class="el" href="classsubscription.html#a36f36b063bb7beb1cba645be75ac89ca">subscription</a>
+, <a class="el" href="classsurvey.html#a36f36b063bb7beb1cba645be75ac89ca">survey</a>
+</li>
+<li>getOU()
+: <a class="el" href="class_ldap.html#a1b0dc6799a052b58f45cd68a234480cf">Ldap</a>
+</li>
+<li>getPrimaryGroup()
+: <a class="el" href="class_ldap.html#add2aeaf3a11289e27a24e6bb7914812e">Ldap</a>
+</li>
+<li>getTextSID()
+: <a class="el" href="class_ldap.html#a188fad4ffc1509904390ed867abde786">Ldap</a>
+</li>
+<li>getUser()
+: <a class="el" href="classorder.html#ae81b7186fb97a7c6457edcc68c9aa2ef">order</a>
+</li>
+<li>getUsers()
+: <a class="el" href="class_ldap.html#a45a777494e27c3dfd7c66e9b592b467a">Ldap</a>
+</li>
+<li>getWorkspace()
+: <a class="el" href="classorder.html#ae13e5a4091f35b6ce3e2271275f4c8de">order</a>
+</li>
+<li>graphicsPaletteField()
+: <a class="el" href="class_html_form.html#aefcbdf8ed85eb65902bc612e649db4ae">HtmlForm</a>
+</li>
+<li>groupComponentEnd()
+: <a class="el" href="class_html_form.html#a3eaea6c5b8bc42225e1b754cb20563ca">HtmlForm</a>
+</li>
+<li>groupComponentStart()
+: <a class="el" href="class_html_form.html#a3c547e7880568a785c9044282fe94b7d">HtmlForm</a>
+</li>
+<li>gtfEngine()
+: <a class="el" href="classgtf_engine.html#aaae1340daf54451112d4e5235bd7d254">gtfEngine</a>
+</li>
+<li>gtfEngines()
+: <a class="el" href="classgtf_engines.html#a64048acb145b53b1dd5ffd5c7e25320a">gtfEngines</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>hiddenField()
+: <a class="el" href="class_html_form.html#a16039eee38f5285c684312e84e036e78">HtmlForm</a>
+</li>
+<li>HtmlEditor()
+: <a class="el" href="class_html_form.html#adbb88365032e417faeb5836640090cf8">HtmlForm</a>
+</li>
+<li>HtmlForm()
+: <a class="el" href="class_html_form.html#a659dfa8e5e6c9a29cdd15c0f23586c4e">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>inbox()
+: <a class="el" href="classinbox.html#a2874bccd374608dbd26d8606f2e858d4">inbox</a>
+</li>
+<li>inboxes()
+: <a class="el" href="classinboxes.html#abceb3dc628377c4bc0e947981f4cf1bb">inboxes</a>
+</li>
+<li>IntegerField()
+: <a class="el" href="class_html_form.html#aa6458f60182c9b9e6d8800d80856d42e">HtmlForm</a>
+</li>
+<li>internalSqlListField()
+: <a class="el" href="class_html_form.html#a4205be2f46eba5919ccce76ce5e81261">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>labelField()
+: <a class="el" href="class_html_form.html#a8b1feb056ca8dbb075cd01e5d6dbba8b">HtmlForm</a>
+</li>
+<li>labelFromIdField()
+: <a class="el" href="class_html_form.html#a15a489f62a48c9d9a555523cab108163">HtmlForm</a>
+</li>
+<li>linkField()
+: <a class="el" href="class_html_form.html#a8f0088e8565f801941c1ac466ad3d236">HtmlForm</a>
+</li>
+<li>listField()
+: <a class="el" href="class_html_form.html#a0d1aaed6f168ea2ec1c26139249fa8d1">HtmlForm</a>
+</li>
+<li>listParentField()
+: <a class="el" href="class_html_form.html#ad0207818f191537caeb14d28dd71f935">HtmlForm</a>
+</li>
+<li>littleEndian()
+: <a class="el" href="class_ldap.html#ada8f165efcbdd05c71c041af2b1d8105">Ldap</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>multiTreeviewField()
+: <a class="el" href="class_html_form.html#a3670ff43b4b85bdb2c7e73fb54c7cf65">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>noMessageFormEnd()
+: <a class="el" href="class_html_form.html#a86c30fa8203e438971ebccc1cc735055">HtmlForm</a>
+</li>
+<li>numberField()
+: <a class="el" href="class_html_form.html#a0789d82fcd257f4164f715ba7dbc4863">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>Openlayers2Field()
+: <a class="el" href="class_html_form.html#a0811ddbcc2d055293801163572798fb6">HtmlForm</a>
+</li>
+<li>OpenlayersField()
+: <a class="el" href="class_html_form.html#ab798968964b52f05cf92a12b1bbd2d19">HtmlForm</a>
+</li>
+<li>order()
+: <a class="el" href="classorder.html#aea180aa67914c470d867e37a31bcaaf1">order</a>
+</li>
+<li>orders()
+: <a class="el" href="classorders.html#a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c">orders</a>
+</li>
+<li>orderStatu()
+: <a class="el" href="classorder_statu.html#aff8c780c8a0ca4a20d3e4346d6f75b68">orderStatu</a>
+</li>
+<li>orderStatus()
+: <a class="el" href="classorder_status.html#a1b301d21ccc915a8f51216da174208e7">orderStatus</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>PasswordField()
+: <a class="el" href="class_html_form.html#a7568feb4305d1f2988b5d7a32d844981">HtmlForm</a>
+</li>
+<li>period()
+: <a class="el" href="classperiod.html#a58a71a71b556e6a66b46a0e609f236f2">period</a>
+</li>
+<li>periods()
+: <a class="el" href="classperiods.html#ab6e188ecfd5a51c70efb197a21eb3232">periods</a>
+</li>
+<li>predefinedListTag()
+: <a class="el" href="class_html_form.html#ac7d3dbae4165f41b96c10ba1d537c549">HtmlForm</a>
+</li>
+<li>priorities()
+: <a class="el" href="classpriorities.html#a1abbdfb96d7cebba9ce94880d565c698">priorities</a>
+</li>
+<li>priority()
+: <a class="el" href="classpriority.html#a2a119c542c44b5bc0447c6728c9ba23d">priority</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>radioField()
+: <a class="el" href="class_html_form.html#a36267c4c6a13a9c8d7f56dc3963c088d">HtmlForm</a>
+</li>
+<li>returnEngineId()
+: <a class="el" href="classorder.html#a5c8360e6b64d6b9daad5a794b73ab8f1">order</a>
+, <a class="el" href="classsubscription.html#a5c8360e6b64d6b9daad5a794b73ab8f1">subscription</a>
+, <a class="el" href="classsurvey.html#a5c8360e6b64d6b9daad5a794b73ab8f1">survey</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SliderField()
+: <a class="el" href="class_html_form.html#ac57860210f86dbd962747c2f0579abcd">HtmlForm</a>
+</li>
+<li>startsWith()
+: <a class="el" href="class_ldap.html#a2295d72ed4b3d123948281a5dc40e1f1">Ldap</a>
+</li>
+<li>subFormEnd()
+: <a class="el" href="class_html_form.html#a4dc38763973c02d8f45619ee84c5cb7e">HtmlForm</a>
+</li>
+<li>submitField()
+: <a class="el" href="class_html_form.html#af3efcaf0f0d8fb31bd190efa85b8c61a">HtmlForm</a>
+</li>
+<li>subscription()
+: <a class="el" href="classsubscription.html#aee28839beb5d419b8e0e3196037a07e2">subscription</a>
+</li>
+<li>subscriptions()
+: <a class="el" href="classsubscriptions.html#ac86cb8d2109cd6d574dd18537a484640">subscriptions</a>
+</li>
+<li>survey()
+: <a class="el" href="classsurvey.html#aa79e61e6ed531c40f38a385578b17a69">survey</a>
+</li>
+<li>surveys()
+: <a class="el" href="classsurveys.html#a98e08d921d6efcfd6f906592e51b64ad">surveys</a>
+</li>
+<li>surveyType()
+: <a class="el" href="classsurvey_type.html#ac94ae7913ee906fff12665b89a4cb912">surveyType</a>
+</li>
+<li>surveyTypes()
+: <a class="el" href="classsurvey_types.html#a0f0022657278349766b2104a8c1b50b8">surveyTypes</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>textField()
+: <a class="el" href="class_html_form.html#ad916f8b421be10005737e7a7232a5aac">HtmlForm</a>
+</li>
+<li>token()
+: <a class="el" href="classtoken.html#a935356c10601999ee59fd8bc49d35236">token</a>
+</li>
+<li>treeviewField()
+: <a class="el" href="class_html_form.html#ac11973d6df48b81e9071d55aa846d6ca">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uploadField()
+: <a class="el" href="class_html_form.html#a5d9fcf6054c8c670082df637f0d060b4">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>workspace()
+: <a class="el" href="classworkspace.html#aa6be88cfec1c6136a9cf69dbe0265caf">workspace</a>
+</li>
+<li>workspaces()
+: <a class="el" href="classworkspaces.html#a1f71684f44c217b88cf4a15af8df59bd">workspaces</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/functions_func.html b/src/module_gtf/module/gtf.doc/api_form/functions_func.html
new file mode 100755
index 0000000000000000000000000000000000000000..f7ecc5ce2c14627a313bd23b1f4ec8d6aa94ec32
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/functions_func.html
@@ -0,0 +1,536 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Champs de donnée - Fonctions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_func.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>__construct()
+: <a class="el" href="class_category.html#aec8d7f8f3574462d98c6cc97c5f65632">Category</a>
+, <a class="el" href="class_ldap.html#a34a7cbeeb3cda04818fc9a5d7bbde1eb">Ldap</a>
+, <a class="el" href="class_user.html#a78ba5016feb6492c9c669c02bc1205ce">User</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>addLine()
+: <a class="el" href="class_html_form.html#a0c4375d48a3a9c1755855ba972798a4c">HtmlForm</a>
+</li>
+<li>areaField()
+: <a class="el" href="class_html_form.html#ac1e92ac1c9ae25b319d922af91a370ca">HtmlForm</a>
+</li>
+<li>areaReadField()
+: <a class="el" href="class_html_form.html#a28c7a3aaa2c1487c3a4b904cc7e8d65b">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>buttonField()
+: <a class="el" href="class_html_form.html#ac5e4346541e9f1e251deabf312cfb463">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>calendarDateTimeField()
+: <a class="el" href="class_html_form.html#acb29aa5964b1d4de444efa878ab8b5f4">HtmlForm</a>
+</li>
+<li>calendarField()
+: <a class="el" href="class_html_form.html#aefe3d5b6a2d83aa2dcdadcf9d17904e2">HtmlForm</a>
+</li>
+<li>cascadeCalendarField()
+: <a class="el" href="class_html_form.html#a78a9a6cbe314645499d7c151da9229ca">HtmlForm</a>
+</li>
+<li>cascadeINTEGERField()
+: <a class="el" href="class_html_form.html#a79df46a7b4638a3ee5db4aa9d3ec49e4">HtmlForm</a>
+</li>
+<li>cascadeListField()
+: <a class="el" href="class_html_form.html#a25b54a92d78241268c6ffaa1337795ef">HtmlForm</a>
+</li>
+<li>cascadeListParentField()
+: <a class="el" href="class_html_form.html#a885874295ef8566c6d27b89af5f9847c">HtmlForm</a>
+</li>
+<li>cascadeNumberField()
+: <a class="el" href="class_html_form.html#a7998d85ff93ecdbae8732b5dd9f0f1f8">HtmlForm</a>
+</li>
+<li>cascadeTextField()
+: <a class="el" href="class_html_form.html#ab125c825127bd28060ee2ed2505a9d3d">HtmlForm</a>
+</li>
+<li>checkIsPdfFile()
+: <a class="el" href="class_html_form.html#afa32b67f52f68a6a0ada1dd6a702f61c">HtmlForm</a>
+</li>
+<li>closeLdap()
+: <a class="el" href="class_ldap.html#ac637d5e8e68ee7fea58ddf1616618c3c">Ldap</a>
+</li>
+<li>connectLdap()
+: <a class="el" href="class_ldap.html#a51e19e662cfe99f98672afb703c89b4b">Ldap</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>displayForm()
+: <a class="el" href="class_form.html#ad8cd240613fa8c7375195e521330b7f8">Form</a>
+</li>
+<li>doubleListField()
+: <a class="el" href="class_html_form.html#a79fe01125ba1809a8944d51380bf0719">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>emailOption()
+: <a class="el" href="classemail_option.html#ae47a188d12a2d709eaac1c699b15665a">emailOption</a>
+</li>
+<li>emailOptions()
+: <a class="el" href="classemail_options.html#a4b10bbda338d14d749461e1541135ca8">emailOptions</a>
+</li>
+<li>end()
+: <a class="el" href="class_html_form.html#ad27804427679f63b2d9a18d12faf3086">HtmlForm</a>
+</li>
+<li>error()
+: <a class="el" href="classerror.html#a5fffdda82225d9ffb8f40d36ec35c939">error</a>
+</li>
+<li>explode_dn()
+: <a class="el" href="class_ldap.html#a0f432d65063a5ecb25a47b78b6d82bb7">Ldap</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>fileField()
+: <a class="el" href="class_html_form.html#aaabac8649f945e6029f057a3f99241ba">HtmlForm</a>
+</li>
+<li>fmeEngine()
+: <a class="el" href="classfme_engine.html#a536fb33d75deee3c6091bc324f02f072">fmeEngine</a>
+</li>
+<li>FolderTreeField()
+: <a class="el" href="class_html_form.html#afd211acd5225ec0c57dfa8c433d94563">HtmlForm</a>
+</li>
+<li>Form()
+: <a class="el" href="class_form.html#a9f280c6ba52f3872b4fa7acf3049acd5">Form</a>
+</li>
+<li>formatOrderEmail()
+: <a class="el" href="classorder.html#a797198f26a6f0ff15e097378b77dc399">order</a>
+</li>
+<li>formEnd()
+: <a class="el" href="class_html_form.html#a8baa8a713f9595edf9524a6c26f94a63">HtmlForm</a>
+</li>
+<li>formStart()
+: <a class="el" href="class_html_form.html#a26713a5b61f9467ddd83eef17cc38028">HtmlForm</a>
+</li>
+<li>frameField()
+: <a class="el" href="class_html_form.html#ae6bf7f06c53a8b7a14f2b93124d283a3">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>get_aEmailOption()
+: <a class="el" href="classemail_options.html#a237cd1c82be7a389c0a41d7c9bfb995d">emailOptions</a>
+</li>
+<li>get_aEmailOptionId()
+: <a class="el" href="classemail_options.html#a8fdf50341c2e53325e805cbc6fa72205">emailOptions</a>
+</li>
+<li>get_aGtfEngine()
+: <a class="el" href="classgtf_engines.html#a939656ae35587753a51d75ae417eb2e1">gtfEngines</a>
+</li>
+<li>get_aGtfEngineId()
+: <a class="el" href="classgtf_engines.html#a928ad1216d7552c0b3a035e9ec4e891e">gtfEngines</a>
+</li>
+<li>get_aInbox()
+: <a class="el" href="classinboxes.html#a94c4b04a5e0dd9e25a49020819582392">inboxes</a>
+</li>
+<li>get_aInboxId()
+: <a class="el" href="classinboxes.html#a3ed49e1169063a79b9c20aa01ba40213">inboxes</a>
+</li>
+<li>get_aOrder()
+: <a class="el" href="classorders.html#a363f4a6cc9563d02b6858f846a51fd52">orders</a>
+, <a class="el" href="classsubscriptions.html#a03bb9733cad9257752e408749952ddf6">subscriptions</a>
+, <a class="el" href="classsurveys.html#a03bb9733cad9257752e408749952ddf6">surveys</a>
+</li>
+<li>get_aOrderId()
+: <a class="el" href="classorders.html#ae80560b73e88d8094a1c8d410b457a23">orders</a>
+, <a class="el" href="classsubscriptions.html#a7c538465bd41ea043c46070ec56c85c7">subscriptions</a>
+, <a class="el" href="classsurveys.html#a7c538465bd41ea043c46070ec56c85c7">surveys</a>
+</li>
+<li>get_aOrderStatus()
+: <a class="el" href="classorder_status.html#a0d9e25acf18aa1dbe663db0ef563f079">orderStatus</a>
+</li>
+<li>get_aOrderStatusId()
+: <a class="el" href="classorder_status.html#a45473f0cf5e9440482ffda631e921107">orderStatus</a>
+</li>
+<li>get_aPeriod()
+: <a class="el" href="classperiods.html#a50a622c90af0de49140c1ff8adf72834">periods</a>
+</li>
+<li>get_aPeriodId()
+: <a class="el" href="classperiods.html#ad6e5876d4236d0f751a1d05ca4002a68">periods</a>
+</li>
+<li>get_aPriority()
+: <a class="el" href="classpriorities.html#a178b8227bbf1f0b29f02a1230e8e98e6">priorities</a>
+</li>
+<li>get_aPriorityId()
+: <a class="el" href="classpriorities.html#a15b53cfbd83a8280f1ad8a24f614517a">priorities</a>
+</li>
+<li>get_aSurveyType()
+: <a class="el" href="classsurvey_types.html#afe01480917b465989e6e11b580843cd3">surveyTypes</a>
+</li>
+<li>get_aSurveyTypeId()
+: <a class="el" href="classsurvey_types.html#aebc15591a49ec574704646d90de1f452">surveyTypes</a>
+</li>
+<li>get_aWorkspace()
+: <a class="el" href="classworkspaces.html#a1c43f8182072d1cb1c3185609dcf4ec9">workspaces</a>
+</li>
+<li>get_aWorkspaceId()
+: <a class="el" href="classworkspaces.html#a7e8b67b819d9bba36bcd4f2a27a310b0">workspaces</a>
+</li>
+<li>get_members()
+: <a class="el" href="class_ldap.html#a46eac38de509d795e078605e34f15bb9">Ldap</a>
+</li>
+<li>getCategory()
+: <a class="el" href="classworkspace.html#ada0bf69887885f455ebdfbe878e14543">workspace</a>
+</li>
+<li>getCriteria()
+: <a class="el" href="class_ldap.html#a126095704d883d6eceeade5f855ddbbb">Ldap</a>
+</li>
+<li>getFmeEngine()
+: <a class="el" href="classorder.html#a6352341456a6cb4477da211f256cc954">order</a>
+</li>
+<li>getGroup()
+: <a class="el" href="class_ldap.html#aea165d7d1b3eaa4b36b0bfd581131c3c">Ldap</a>
+</li>
+<li>getGroupInfo()
+: <a class="el" href="class_ldap.html#ab2cb6908bf12835ef2d880e0d201d25c">Ldap</a>
+</li>
+<li>getGroups()
+: <a class="el" href="class_ldap.html#a9d21c47ae3f5e47e377f91cf93fe0cac">Ldap</a>
+</li>
+<li>getGtfEngine()
+: <a class="el" href="classorder.html#aaebe1bdca8a9df297f5f5deadaa516c7">order</a>
+</li>
+<li>getIdEngine()
+: <a class="el" href="classorder.html#a36f36b063bb7beb1cba645be75ac89ca">order</a>
+, <a class="el" href="classsubscription.html#a36f36b063bb7beb1cba645be75ac89ca">subscription</a>
+, <a class="el" href="classsurvey.html#a36f36b063bb7beb1cba645be75ac89ca">survey</a>
+</li>
+<li>getOU()
+: <a class="el" href="class_ldap.html#a1b0dc6799a052b58f45cd68a234480cf">Ldap</a>
+</li>
+<li>getPrimaryGroup()
+: <a class="el" href="class_ldap.html#add2aeaf3a11289e27a24e6bb7914812e">Ldap</a>
+</li>
+<li>getTextSID()
+: <a class="el" href="class_ldap.html#a188fad4ffc1509904390ed867abde786">Ldap</a>
+</li>
+<li>getUser()
+: <a class="el" href="classorder.html#ae81b7186fb97a7c6457edcc68c9aa2ef">order</a>
+</li>
+<li>getUsers()
+: <a class="el" href="class_ldap.html#a45a777494e27c3dfd7c66e9b592b467a">Ldap</a>
+</li>
+<li>getWorkspace()
+: <a class="el" href="classorder.html#ae13e5a4091f35b6ce3e2271275f4c8de">order</a>
+</li>
+<li>graphicsPaletteField()
+: <a class="el" href="class_html_form.html#aefcbdf8ed85eb65902bc612e649db4ae">HtmlForm</a>
+</li>
+<li>groupComponentEnd()
+: <a class="el" href="class_html_form.html#a3eaea6c5b8bc42225e1b754cb20563ca">HtmlForm</a>
+</li>
+<li>groupComponentStart()
+: <a class="el" href="class_html_form.html#a3c547e7880568a785c9044282fe94b7d">HtmlForm</a>
+</li>
+<li>gtfEngine()
+: <a class="el" href="classgtf_engine.html#aaae1340daf54451112d4e5235bd7d254">gtfEngine</a>
+</li>
+<li>gtfEngines()
+: <a class="el" href="classgtf_engines.html#a64048acb145b53b1dd5ffd5c7e25320a">gtfEngines</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>hiddenField()
+: <a class="el" href="class_html_form.html#a16039eee38f5285c684312e84e036e78">HtmlForm</a>
+</li>
+<li>HtmlEditor()
+: <a class="el" href="class_html_form.html#adbb88365032e417faeb5836640090cf8">HtmlForm</a>
+</li>
+<li>HtmlForm()
+: <a class="el" href="class_html_form.html#a659dfa8e5e6c9a29cdd15c0f23586c4e">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>inbox()
+: <a class="el" href="classinbox.html#a2874bccd374608dbd26d8606f2e858d4">inbox</a>
+</li>
+<li>inboxes()
+: <a class="el" href="classinboxes.html#abceb3dc628377c4bc0e947981f4cf1bb">inboxes</a>
+</li>
+<li>IntegerField()
+: <a class="el" href="class_html_form.html#aa6458f60182c9b9e6d8800d80856d42e">HtmlForm</a>
+</li>
+<li>internalSqlListField()
+: <a class="el" href="class_html_form.html#a4205be2f46eba5919ccce76ce5e81261">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>labelField()
+: <a class="el" href="class_html_form.html#a8b1feb056ca8dbb075cd01e5d6dbba8b">HtmlForm</a>
+</li>
+<li>labelFromIdField()
+: <a class="el" href="class_html_form.html#a15a489f62a48c9d9a555523cab108163">HtmlForm</a>
+</li>
+<li>linkField()
+: <a class="el" href="class_html_form.html#a8f0088e8565f801941c1ac466ad3d236">HtmlForm</a>
+</li>
+<li>listField()
+: <a class="el" href="class_html_form.html#a0d1aaed6f168ea2ec1c26139249fa8d1">HtmlForm</a>
+</li>
+<li>listParentField()
+: <a class="el" href="class_html_form.html#ad0207818f191537caeb14d28dd71f935">HtmlForm</a>
+</li>
+<li>littleEndian()
+: <a class="el" href="class_ldap.html#ada8f165efcbdd05c71c041af2b1d8105">Ldap</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>multiTreeviewField()
+: <a class="el" href="class_html_form.html#a3670ff43b4b85bdb2c7e73fb54c7cf65">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>noMessageFormEnd()
+: <a class="el" href="class_html_form.html#a86c30fa8203e438971ebccc1cc735055">HtmlForm</a>
+</li>
+<li>numberField()
+: <a class="el" href="class_html_form.html#a0789d82fcd257f4164f715ba7dbc4863">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>Openlayers2Field()
+: <a class="el" href="class_html_form.html#a0811ddbcc2d055293801163572798fb6">HtmlForm</a>
+</li>
+<li>OpenlayersField()
+: <a class="el" href="class_html_form.html#ab798968964b52f05cf92a12b1bbd2d19">HtmlForm</a>
+</li>
+<li>order()
+: <a class="el" href="classorder.html#aea180aa67914c470d867e37a31bcaaf1">order</a>
+</li>
+<li>orders()
+: <a class="el" href="classorders.html#a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c">orders</a>
+</li>
+<li>orderStatu()
+: <a class="el" href="classorder_statu.html#aff8c780c8a0ca4a20d3e4346d6f75b68">orderStatu</a>
+</li>
+<li>orderStatus()
+: <a class="el" href="classorder_status.html#a1b301d21ccc915a8f51216da174208e7">orderStatus</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>PasswordField()
+: <a class="el" href="class_html_form.html#a7568feb4305d1f2988b5d7a32d844981">HtmlForm</a>
+</li>
+<li>period()
+: <a class="el" href="classperiod.html#a58a71a71b556e6a66b46a0e609f236f2">period</a>
+</li>
+<li>periods()
+: <a class="el" href="classperiods.html#ab6e188ecfd5a51c70efb197a21eb3232">periods</a>
+</li>
+<li>predefinedListTag()
+: <a class="el" href="class_html_form.html#ac7d3dbae4165f41b96c10ba1d537c549">HtmlForm</a>
+</li>
+<li>priorities()
+: <a class="el" href="classpriorities.html#a1abbdfb96d7cebba9ce94880d565c698">priorities</a>
+</li>
+<li>priority()
+: <a class="el" href="classpriority.html#a2a119c542c44b5bc0447c6728c9ba23d">priority</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>radioField()
+: <a class="el" href="class_html_form.html#a36267c4c6a13a9c8d7f56dc3963c088d">HtmlForm</a>
+</li>
+<li>returnEngineId()
+: <a class="el" href="classorder.html#a5c8360e6b64d6b9daad5a794b73ab8f1">order</a>
+, <a class="el" href="classsubscription.html#a5c8360e6b64d6b9daad5a794b73ab8f1">subscription</a>
+, <a class="el" href="classsurvey.html#a5c8360e6b64d6b9daad5a794b73ab8f1">survey</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SliderField()
+: <a class="el" href="class_html_form.html#ac57860210f86dbd962747c2f0579abcd">HtmlForm</a>
+</li>
+<li>startsWith()
+: <a class="el" href="class_ldap.html#a2295d72ed4b3d123948281a5dc40e1f1">Ldap</a>
+</li>
+<li>subFormEnd()
+: <a class="el" href="class_html_form.html#a4dc38763973c02d8f45619ee84c5cb7e">HtmlForm</a>
+</li>
+<li>submitField()
+: <a class="el" href="class_html_form.html#af3efcaf0f0d8fb31bd190efa85b8c61a">HtmlForm</a>
+</li>
+<li>subscription()
+: <a class="el" href="classsubscription.html#aee28839beb5d419b8e0e3196037a07e2">subscription</a>
+</li>
+<li>subscriptions()
+: <a class="el" href="classsubscriptions.html#ac86cb8d2109cd6d574dd18537a484640">subscriptions</a>
+</li>
+<li>survey()
+: <a class="el" href="classsurvey.html#aa79e61e6ed531c40f38a385578b17a69">survey</a>
+</li>
+<li>surveys()
+: <a class="el" href="classsurveys.html#a98e08d921d6efcfd6f906592e51b64ad">surveys</a>
+</li>
+<li>surveyType()
+: <a class="el" href="classsurvey_type.html#ac94ae7913ee906fff12665b89a4cb912">surveyType</a>
+</li>
+<li>surveyTypes()
+: <a class="el" href="classsurvey_types.html#a0f0022657278349766b2104a8c1b50b8">surveyTypes</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>textField()
+: <a class="el" href="class_html_form.html#ad916f8b421be10005737e7a7232a5aac">HtmlForm</a>
+</li>
+<li>token()
+: <a class="el" href="classtoken.html#a935356c10601999ee59fd8bc49d35236">token</a>
+</li>
+<li>treeviewField()
+: <a class="el" href="class_html_form.html#ac11973d6df48b81e9071d55aa846d6ca">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uploadField()
+: <a class="el" href="class_html_form.html#a5d9fcf6054c8c670082df637f0d060b4">HtmlForm</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>workspace()
+: <a class="el" href="classworkspace.html#aa6be88cfec1c6136a9cf69dbe0265caf">workspace</a>
+</li>
+<li>workspaces()
+: <a class="el" href="classworkspaces.html#a1f71684f44c217b88cf4a15af8df59bd">workspaces</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:27 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/functions_vars.html b/src/module_gtf/module/gtf.doc/api_form/functions_vars.html
new file mode 100755
index 0000000000000000000000000000000000000000..749619e0f219dda50d646c04d4218ab477a384fc
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/functions_vars.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Champs de donnée - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_vars.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>$aFields
+: <a class="el" href="class_category.html#a2f9b558d76a2d1d580a9c610c49d8219">Category</a>
+, <a class="el" href="class_user.html#a2f9b558d76a2d1d580a9c610c49d8219">User</a>
+</li>
+<li>$aLdap
+: <a class="el" href="class_ldap.html#ad5b739d79b0df29ce5475660fa3f9ce4">Ldap</a>
+</li>
+<li>$autoComplete
+: <a class="el" href="class_html_form.html#abe155888154196c6af13bb2713a7ba8f">HtmlForm</a>
+</li>
+<li>$CssLabel
+: <a class="el" href="class_html_form.html#a522c98df8aa76415f9af4c73b4f134d0">HtmlForm</a>
+</li>
+<li>$CssTable
+: <a class="el" href="class_html_form.html#adf13e3be0a9d4ac3cf11cf2efb1202ec">HtmlForm</a>
+</li>
+<li>$CssValue
+: <a class="el" href="class_html_form.html#a0193719ef585474f274104e6604ec09b">HtmlForm</a>
+</li>
+<li>$externUrl
+: <a class="el" href="class_html_form.html#a779b437bfa81bfcdfdb208eee9847816">HtmlForm</a>
+</li>
+<li>$lang
+: <a class="el" href="class_html_form.html#a7714b111b644017933931ec69a154102">HtmlForm</a>
+</li>
+<li>$methode
+: <a class="el" href="class_html_form.html#a87c97603d5d79a9258db9486ade04428">HtmlForm</a>
+</li>
+<li>$nbChamps
+: <a class="el" href="class_html_form.html#a20800c5d17fba2ea9bc73ce2ef15180e">HtmlForm</a>
+</li>
+<li>$onSubmit
+: <a class="el" href="class_html_form.html#aad5d0a900d4ea7554a839231f89c6625">HtmlForm</a>
+</li>
+<li>$sFolderLib
+: <a class="el" href="class_html_form.html#a2d1691438b59a81ea0651f06639bbfad">HtmlForm</a>
+</li>
+<li>$sPkField
+: <a class="el" href="classorder.html#a907661236442af049dee8f42d066733b">order</a>
+, <a class="el" href="classsubscription.html#a907661236442af049dee8f42d066733b">subscription</a>
+, <a class="el" href="classsurvey.html#a907661236442af049dee8f42d066733b">survey</a>
+, <a class="el" href="classworkspace.html#a907661236442af049dee8f42d066733b">workspace</a>
+</li>
+<li>$sSchemaGtf
+: <a class="el" href="class_category.html#ac018cfa750b4f5ee92b9b331a54ad989">Category</a>
+</li>
+<li>$sTable
+: <a class="el" href="classorder.html#a6b7d3b9c752a0c977de5ddae78b522a9">order</a>
+, <a class="el" href="classsubscription.html#a6b7d3b9c752a0c977de5ddae78b522a9">subscription</a>
+, <a class="el" href="classsurvey.html#a6b7d3b9c752a0c977de5ddae78b522a9">survey</a>
+, <a class="el" href="classworkspace.html#a6b7d3b9c752a0c977de5ddae78b522a9">workspace</a>
+</li>
+<li>$transfertFichier
+: <a class="el" href="class_html_form.html#a4c5351d0ff65c65b928458803979ee8f">HtmlForm</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:27 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/globals.html b/src/module_gtf/module/gtf.doc/api_form/globals.html
new file mode 100755
index 0000000000000000000000000000000000000000..60f42c4b5f56a7bcc09ceb7ca1db1294a29fc18f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/globals.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Variables globale</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Liste de toutes les fonctions, variables, macros, enumérations, et définitions de type avec des liens vers les fichiers auxquels ils appartiennent :</div><ul>
+<li>$aSql
+: <a class="el" href="_category_8class_8sql_8inc.html#acf6ca91b10f5bccf837c39782c135bac">Category.class.sql.inc</a>
+, <a class="el" href="_user_8class_8sql_8inc.html#ad04f154542c7e2805c3486312944b091">User.class.sql.inc</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:27 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/globals_vars.html b/src/module_gtf/module/gtf.doc/api_form/globals_vars.html
new file mode 100755
index 0000000000000000000000000000000000000000..4b4457e7bf61fd125014d8414f12afbdbf9a1c30
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/globals_vars.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Variables globale</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_vars.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>$aSql
+: <a class="el" href="_category_8class_8sql_8inc.html#acf6ca91b10f5bccf837c39782c135bac">Category.class.sql.inc</a>
+, <a class="el" href="_user_8class_8sql_8inc.html#ad04f154542c7e2805c3486312944b091">User.class.sql.inc</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:27 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/hierarchy.html b/src/module_gtf/module/gtf.doc/api_form/hierarchy.html
new file mode 100755
index 0000000000000000000000000000000000000000..92a29c670a3a37dee8870a6b94951a1b3a0123d7
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/hierarchy.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Hiérarchie des classes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('hierarchy.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Hiérarchie des classes</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Cette liste d'héritage est classée approximativement par ordre alphabétique :</div><div class="directory">
+<div class="levels">[Niveau de détails <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>DbClass</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classerror.html" target="_self">error</a></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_form.html" target="_self">Form</a></td><td class="desc"></td></tr>
+<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>Gtf</b></td><td class="desc"></td></tr>
+<tr id="row_2_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_category.html" target="_self">Category</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classemail_option.html" target="_self">emailOption</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classemail_options.html" target="_self">emailOptions</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfme_engine.html" target="_self">fmeEngine</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgtf_engine.html" target="_self">gtfEngine</a></td><td class="desc"></td></tr>
+<tr id="row_2_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgtf_engines.html" target="_self">gtfEngines</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classinbox.html" target="_self">inbox</a></td><td class="desc"></td></tr>
+<tr id="row_2_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classinboxes.html" target="_self">inboxes</a></td><td class="desc"></td></tr>
+<tr id="row_2_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorder.html" target="_self">order</a></td><td class="desc"></td></tr>
+<tr id="row_2_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorders.html" target="_self">orders</a></td><td class="desc"></td></tr>
+<tr id="row_2_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorder_statu.html" target="_self">orderStatu</a></td><td class="desc"></td></tr>
+<tr id="row_2_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classorder_status.html" target="_self">orderStatus</a></td><td class="desc"></td></tr>
+<tr id="row_2_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classperiod.html" target="_self">period</a></td><td class="desc"></td></tr>
+<tr id="row_2_13_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classperiods.html" target="_self">periods</a></td><td class="desc"></td></tr>
+<tr id="row_2_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpriorities.html" target="_self">priorities</a></td><td class="desc"></td></tr>
+<tr id="row_2_15_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpriority.html" target="_self">priority</a></td><td class="desc"></td></tr>
+<tr id="row_2_16_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsubscription.html" target="_self">subscription</a></td><td class="desc"></td></tr>
+<tr id="row_2_17_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsubscriptions.html" target="_self">subscriptions</a></td><td class="desc"></td></tr>
+<tr id="row_2_18_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurvey.html" target="_self">survey</a></td><td class="desc"></td></tr>
+<tr id="row_2_19_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurveys.html" target="_self">surveys</a></td><td class="desc"></td></tr>
+<tr id="row_2_20_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurvey_type.html" target="_self">surveyType</a></td><td class="desc"></td></tr>
+<tr id="row_2_21_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsurvey_types.html" target="_self">surveyTypes</a></td><td class="desc"></td></tr>
+<tr id="row_2_22_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtoken.html" target="_self">token</a></td><td class="desc"></td></tr>
+<tr id="row_2_23_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_user.html" target="_self">User</a></td><td class="desc"></td></tr>
+<tr id="row_2_24_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classworkspace.html" target="_self">workspace</a></td><td class="desc"></td></tr>
+<tr id="row_2_25_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classworkspaces.html" target="_self">workspaces</a></td><td class="desc"></td></tr>
+<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_html_form.html" target="_self">HtmlForm</a></td><td class="desc">Ce fichier contient la classe php <a class="el" href="class_html_form.html" title="Ce fichier contient la classe php HtmlForm. ">HtmlForm</a> </td></tr>
+<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ldap.html" target="_self">Ldap</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/hierarchy.js b/src/module_gtf/module/gtf.doc/api_form/hierarchy.js
new file mode 100755
index 0000000000000000000000000000000000000000..4f103a70c605c58086abcfb9a05c2045be09ed42
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/hierarchy.js
@@ -0,0 +1,37 @@
+var hierarchy =
+[
+    [ "DbClass", null, [
+      [ "error", "classerror.html", null ]
+    ] ],
+    [ "Form", "class_form.html", null ],
+    [ "Gtf", null, [
+      [ "Category", "class_category.html", null ],
+      [ "emailOption", "classemail_option.html", null ],
+      [ "emailOptions", "classemail_options.html", null ],
+      [ "fmeEngine", "classfme_engine.html", null ],
+      [ "gtfEngine", "classgtf_engine.html", null ],
+      [ "gtfEngines", "classgtf_engines.html", null ],
+      [ "inbox", "classinbox.html", null ],
+      [ "inboxes", "classinboxes.html", null ],
+      [ "order", "classorder.html", null ],
+      [ "orders", "classorders.html", null ],
+      [ "orderStatu", "classorder_statu.html", null ],
+      [ "orderStatus", "classorder_status.html", null ],
+      [ "period", "classperiod.html", null ],
+      [ "periods", "classperiods.html", null ],
+      [ "priorities", "classpriorities.html", null ],
+      [ "priority", "classpriority.html", null ],
+      [ "subscription", "classsubscription.html", null ],
+      [ "subscriptions", "classsubscriptions.html", null ],
+      [ "survey", "classsurvey.html", null ],
+      [ "surveys", "classsurveys.html", null ],
+      [ "surveyType", "classsurvey_type.html", null ],
+      [ "surveyTypes", "classsurvey_types.html", null ],
+      [ "token", "classtoken.html", null ],
+      [ "User", "class_user.html", null ],
+      [ "workspace", "classworkspace.html", null ],
+      [ "workspaces", "classworkspaces.html", null ]
+    ] ],
+    [ "HtmlForm", "class_html_form.html", null ],
+    [ "Ldap", "class_ldap.html", null ]
+];
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/api_form/index.html b/src/module_gtf/module/gtf.doc/api_form/index.html
new file mode 100755
index 0000000000000000000000000000000000000000..d4c4742663e6a25944e089a1ffbfd4ff969c97dc
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/index.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>Librairies Php Veremes: Page principale</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Librairies Php Veremes
+   </div>
+   <div id="projectbrief">Documentation des librairies internes de Veremes</div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Recherche" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Généré par Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Recherche');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('index.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tout</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Structures de données</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Fichiers</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Fonctions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Librairies Php Veremes Documentation</div>  </div>
+</div><!--header-->
+<div class="contents">
+<ul><li><a href="index.html"><span>Page&#160;principale</span></a>
+</li><li><a href="annotated.html"><span>Structures&#160;de&#160;données</span></a>
+<ul><li><a href="annotated.html"><span>Structures&#160;de&#160;données</span></a>
+</li><li><a href="classes.html"><span>Index&#160;des&#160;structures&#160;de&#160;données</span></a>
+</li><li><a href="hierarchy.html"><span>Hiérarchie&#160;des&#160;classes</span></a>
+</li><li><a href="functions.html"><span>Champs&#160;de&#160;donnée</span></a>
+</li></ul>
+</li><li><a href="files.html"><span>Fichiers</span></a>
+<ul><li><a href="files.html"><span>Liste&#160;des&#160;fichiers</span></a>
+</li><li><a href="globals.html"><span>Variables&#160;globale</span></a>
+</li></ul>
+</li></ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Généré le Jeudi 9 Avril 2015 10:49:26 pour Librairies Php Veremes par
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/jquery.js b/src/module_gtf/module/gtf.doc/api_form/jquery.js
new file mode 100755
index 0000000000000000000000000000000000000000..3db33e62d35eb0bafddfe1411cc6ded6d1ed958b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/jquery.js
@@ -0,0 +1,72 @@
+/*!
+ * jQuery JavaScript Library v1.7.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Nov 21 21:11:03 2011 -0500
+ */
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))
+}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;
+if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false
+}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1
+},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);
+ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;
+if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
+}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
+})}})(window);
+/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;
+p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ * 
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
+(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);
diff --git a/src/module_gtf/module/gtf.doc/api_form/nav_f.png b/src/module_gtf/module/gtf.doc/api_form/nav_f.png
new file mode 100755
index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/nav_f.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/nav_g.png b/src/module_gtf/module/gtf.doc/api_form/nav_g.png
new file mode 100755
index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/nav_g.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/nav_h.png b/src/module_gtf/module/gtf.doc/api_form/nav_h.png
new file mode 100755
index 0000000000000000000000000000000000000000..33389b101d9cd9b4c98ad286b5d9c46a6671f650
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/nav_h.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/navtree.css b/src/module_gtf/module/gtf.doc/api_form/navtree.css
new file mode 100755
index 0000000000000000000000000000000000000000..f3b6546a0914c1c59ed48181015c1d1a7669f25b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/navtree.css
@@ -0,0 +1,143 @@
+#nav-tree .children_ul {
+  margin:0;
+  padding:4px;
+}
+
+#nav-tree ul {
+  list-style:none outside none;
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree li {
+  white-space:nowrap;
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree .plus {
+  margin:0px;
+}
+
+#nav-tree .selected {
+  background-image: url('tab_a.png');
+  background-repeat:repeat-x;
+  color: #fff;
+  text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#nav-tree img {
+  margin:0px;
+  padding:0px;
+  border:0px;
+  vertical-align: middle;
+}
+
+#nav-tree a {
+  text-decoration:none;
+  padding:0px;
+  margin:0px;
+  outline:none;
+}
+
+#nav-tree .label {
+  margin:0px;
+  padding:0px;
+  font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+  padding:2px;
+}
+
+#nav-tree .selected a {
+  text-decoration:none;
+  color:#fff;
+}
+
+#nav-tree .children_ul {
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree .item {
+  margin:0px;
+  padding:0px;
+}
+
+#nav-tree {
+  padding: 0px 0px;
+  background-color: #FAFAFF; 
+  font-size:14px;
+  overflow:auto;
+}
+
+#doc-content {
+  overflow:auto;
+  display:block;
+  padding:0px;
+  margin:0px;
+  -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+  padding:0 6px 0 0;
+  margin: 0px;
+  display:block;
+  position: absolute;
+  left: 0px;
+  width: 200px;
+}
+
+.ui-resizable .ui-resizable-handle {
+  display:block;
+}
+
+.ui-resizable-e {
+  background:url("ftv2splitbar.png") repeat scroll right center transparent;
+  cursor:e-resize;
+  height:100%;
+  right:0;
+  top:0;
+  width:6px;
+}
+
+.ui-resizable-handle {
+  display:none;
+  font-size:0.1px;
+  position:absolute;
+  z-index:1;
+}
+
+#nav-tree-contents {
+  margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+  background-image:url('nav_h.png');
+  background-repeat:repeat-x;
+  background-color: #F9FAFC;
+  -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+  position:absolute;
+  top:5px;
+  right:24px;
+  z-index:0;
+}
+
+#nav-sync img {
+  opacity:0.3;
+}
+
+#nav-sync img:hover {
+  opacity:0.9;
+}
+
+@media print
+{
+  #nav-tree { display: none; }
+  div.ui-resizable-handle { display: none; position: relative; }
+}
+
diff --git a/src/module_gtf/module/gtf.doc/api_form/navtree.js b/src/module_gtf/module/gtf.doc/api_form/navtree.js
new file mode 100755
index 0000000000000000000000000000000000000000..a1be13880d58a0e396808d2bb626843ca27b7cda
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/navtree.js
@@ -0,0 +1,557 @@
+var NAVTREE =
+[
+  [ "Librairies Php Veremes", "index.html", [
+    [ "Structures de données", null, [
+      [ "Structures de données", "annotated.html", "annotated" ],
+      [ "Index des structures de données", "classes.html", null ],
+      [ "Hiérarchie des classes", "hierarchy.html", "hierarchy" ],
+      [ "Champs de donnée", "functions.html", [
+        [ "Tout", "functions.html", null ],
+        [ "Fonctions", "functions_func.html", null ],
+        [ "Variables", "functions_vars.html", null ]
+      ] ]
+    ] ],
+    [ "Fichiers", null, [
+      [ "Liste des fichiers", "files.html", "files" ],
+      [ "Variables globale", "globals.html", [
+        [ "Tout", "globals.html", null ],
+        [ "Variables", "globals_vars.html", null ]
+      ] ]
+    ] ]
+  ] ]
+];
+
+var NAVTREEINDEX =
+[
+"_category_8class_8inc.html"
+];
+
+var SYNCONMSG = 'cliquez pour désactiver la synchronisation du panel';
+var SYNCOFFMSG = 'cliquez pour activer la synchronisation du panel';
+var navTreeSubIndices = new Array();
+
+function getData(varName)
+{
+  var i = varName.lastIndexOf('/');
+  var n = i>=0 ? varName.substring(i+1) : varName;
+  return eval(n.replace(/\-/g,'_'));
+}
+
+function stripPath(uri)
+{
+  return uri.substring(uri.lastIndexOf('/')+1);
+}
+
+function stripPath2(uri)
+{
+  var i = uri.lastIndexOf('/');
+  var s = uri.substring(i+1);
+  var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+  return m ? uri.substring(i-6) : s;
+}
+
+function hashValue()
+{
+  return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
+}
+
+function hashUrl()
+{
+  return '#'+hashValue();
+}
+
+function pathName()
+{
+  return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
+}
+
+function localStorageSupported()
+{
+  try {
+    return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+  }
+  catch(e) {
+    return false;
+  }
+}
+
+
+function storeLink(link)
+{
+  if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
+      window.localStorage.setItem('navpath',link);
+  }
+}
+
+function deleteLink()
+{
+  if (localStorageSupported()) {
+    window.localStorage.setItem('navpath','');
+  }
+}
+
+function cachedLink()
+{
+  if (localStorageSupported()) {
+    return window.localStorage.getItem('navpath');
+  } else {
+    return '';
+  }
+}
+
+function getScript(scriptName,func,show)
+{
+  var head = document.getElementsByTagName("head")[0]; 
+  var script = document.createElement('script');
+  script.id = scriptName;
+  script.type = 'text/javascript';
+  script.onload = func; 
+  script.src = scriptName+'.js'; 
+  if ($.browser.msie && $.browser.version<=8) { 
+    // script.onload does not work with older versions of IE
+    script.onreadystatechange = function() {
+      if (script.readyState=='complete' || script.readyState=='loaded') { 
+        func(); if (show) showRoot(); 
+      }
+    }
+  }
+  head.appendChild(script); 
+}
+
+function createIndent(o,domNode,node,level)
+{
+  var level=-1;
+  var n = node;
+  while (n.parentNode) { level++; n=n.parentNode; }
+  if (node.childrenData) {
+    var imgNode = document.createElement("img");
+    imgNode.style.paddingLeft=(16*level).toString()+'px';
+    imgNode.width  = 16;
+    imgNode.height = 22;
+    imgNode.border = 0;
+    node.plus_img = imgNode;
+    node.expandToggle = document.createElement("a");
+    node.expandToggle.href = "javascript:void(0)";
+    node.expandToggle.onclick = function() {
+      if (node.expanded) {
+        $(node.getChildrenUL()).slideUp("fast");
+        node.plus_img.src = node.relpath+"ftv2pnode.png";
+        node.expanded = false;
+      } else {
+        expandNode(o, node, false, false);
+      }
+    }
+    node.expandToggle.appendChild(imgNode);
+    domNode.appendChild(node.expandToggle);
+    imgNode.src = node.relpath+"ftv2pnode.png";
+  } else {
+    var span = document.createElement("span");
+    span.style.display = 'inline-block';
+    span.style.width   = 16*(level+1)+'px';
+    span.style.height  = '22px';
+    span.innerHTML = '&#160;';
+    domNode.appendChild(span);
+  } 
+}
+
+var animationInProgress = false;
+
+function gotoAnchor(anchor,aname,updateLocation)
+{
+  var pos, docContent = $('#doc-content');
+  var ancParent = $(anchor.parent());
+  if (ancParent.hasClass('memItemLeft') ||
+      ancParent.hasClass('fieldname') ||
+      ancParent.hasClass('fieldtype') ||
+      ancParent.is(':header'))
+  {
+    pos = ancParent.position().top;
+  } else if (anchor.position()) {
+    pos = anchor.position().top;
+  }
+  if (pos) {
+    var dist = Math.abs(Math.min(
+               pos-docContent.offset().top,
+               docContent[0].scrollHeight-
+               docContent.height()-docContent.scrollTop()));
+    animationInProgress=true;
+    docContent.animate({
+      scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+    },Math.max(50,Math.min(500,dist)),function(){
+      if (updateLocation) window.location.href=aname;
+      animationInProgress=false;
+    });
+  }
+}
+
+function newNode(o, po, text, link, childrenData, lastNode)
+{
+  var node = new Object();
+  node.children = Array();
+  node.childrenData = childrenData;
+  node.depth = po.depth + 1;
+  node.relpath = po.relpath;
+  node.isLast = lastNode;
+
+  node.li = document.createElement("li");
+  po.getChildrenUL().appendChild(node.li);
+  node.parentNode = po;
+
+  node.itemDiv = document.createElement("div");
+  node.itemDiv.className = "item";
+
+  node.labelSpan = document.createElement("span");
+  node.labelSpan.className = "label";
+
+  createIndent(o,node.itemDiv,node,0);
+  node.itemDiv.appendChild(node.labelSpan);
+  node.li.appendChild(node.itemDiv);
+
+  var a = document.createElement("a");
+  node.labelSpan.appendChild(a);
+  node.label = document.createTextNode(text);
+  node.expanded = false;
+  a.appendChild(node.label);
+  if (link) {
+    var url;
+    if (link.substring(0,1)=='^') {
+      url = link.substring(1);
+      link = url;
+    } else {
+      url = node.relpath+link;
+    }
+    a.className = stripPath(link.replace('#',':'));
+    if (link.indexOf('#')!=-1) {
+      var aname = '#'+link.split('#')[1];
+      var srcPage = stripPath(pathName());
+      var targetPage = stripPath(link.split('#')[0]);
+      a.href = srcPage!=targetPage ? url : "javascript:void(0)"; 
+      a.onclick = function(){
+        storeLink(link);
+        if (!$(a).parent().parent().hasClass('selected'))
+        {
+          $('.item').removeClass('selected');
+          $('.item').removeAttr('id');
+          $(a).parent().parent().addClass('selected');
+          $(a).parent().parent().attr('id','selected');
+        }
+        var anchor = $(aname);
+        gotoAnchor(anchor,aname,true);
+      };
+    } else {
+      a.href = url;
+      a.onclick = function() { storeLink(link); }
+    }
+  } else {
+    if (childrenData != null) 
+    {
+      a.className = "nolink";
+      a.href = "javascript:void(0)";
+      a.onclick = node.expandToggle.onclick;
+    }
+  }
+
+  node.childrenUL = null;
+  node.getChildrenUL = function() {
+    if (!node.childrenUL) {
+      node.childrenUL = document.createElement("ul");
+      node.childrenUL.className = "children_ul";
+      node.childrenUL.style.display = "none";
+      node.li.appendChild(node.childrenUL);
+    }
+    return node.childrenUL;
+  };
+
+  return node;
+}
+
+function showRoot()
+{
+  var headerHeight = $("#top").height();
+  var footerHeight = $("#nav-path").height();
+  var windowHeight = $(window).height() - headerHeight - footerHeight;
+  (function (){ // retry until we can scroll to the selected item
+    try {
+      var navtree=$('#nav-tree');
+      navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
+    } catch (err) {
+      setTimeout(arguments.callee, 0);
+    }
+  })();
+}
+
+function expandNode(o, node, imm, showRoot)
+{
+  if (node.childrenData && !node.expanded) {
+    if (typeof(node.childrenData)==='string') {
+      var varName    = node.childrenData;
+      getScript(node.relpath+varName,function(){
+        node.childrenData = getData(varName);
+        expandNode(o, node, imm, showRoot);
+      }, showRoot);
+    } else {
+      if (!node.childrenVisited) {
+        getNode(o, node);
+      } if (imm || ($.browser.msie && $.browser.version>8)) { 
+        // somehow slideDown jumps to the start of tree for IE9 :-(
+        $(node.getChildrenUL()).show();
+      } else {
+        $(node.getChildrenUL()).slideDown("fast");
+      }
+      if (node.isLast) {
+        node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+      } else {
+        node.plus_img.src = node.relpath+"ftv2mnode.png";
+      }
+      node.expanded = true;
+    }
+  }
+}
+
+function glowEffect(n,duration)
+{
+  n.addClass('glow').delay(duration).queue(function(next){
+    $(this).removeClass('glow');next();
+  });
+}
+
+function highlightAnchor()
+{
+  var aname = hashUrl();
+  var anchor = $(aname);
+  if (anchor.parent().attr('class')=='memItemLeft'){
+    var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
+    glowEffect(rows.children(),300); // member without details
+  } else if (anchor.parent().attr('class')=='fieldname'){
+    glowEffect(anchor.parent().parent(),1000); // enum value
+  } else if (anchor.parent().attr('class')=='fieldtype'){
+    glowEffect(anchor.parent().parent(),1000); // struct field
+  } else if (anchor.parent().is(":header")) {
+    glowEffect(anchor.parent(),1000); // section header
+  } else {
+    glowEffect(anchor.next(),1000); // normal member
+  }
+  gotoAnchor(anchor,aname,false);
+}
+
+function selectAndHighlight(hash,n)
+{
+  var a;
+  if (hash) {
+    var link=stripPath(pathName())+':'+hash.substring(1);
+    a=$('.item a[class$="'+link+'"]');
+  }
+  if (a && a.length) {
+    a.parent().parent().addClass('selected');
+    a.parent().parent().attr('id','selected');
+    highlightAnchor();
+  } else if (n) {
+    $(n.itemDiv).addClass('selected');
+    $(n.itemDiv).attr('id','selected');
+  }
+  if ($('#nav-tree-contents .item:first').hasClass('selected')) {
+    $('#nav-sync').css('top','30px');
+  } else {
+    $('#nav-sync').css('top','5px');
+  }
+  showRoot();
+}
+
+function showNode(o, node, index, hash)
+{
+  if (node && node.childrenData) {
+    if (typeof(node.childrenData)==='string') {
+      var varName    = node.childrenData;
+      getScript(node.relpath+varName,function(){
+        node.childrenData = getData(varName);
+        showNode(o,node,index,hash);
+      },true);
+    } else {
+      if (!node.childrenVisited) {
+        getNode(o, node);
+      }
+      $(node.getChildrenUL()).css({'display':'block'});
+      if (node.isLast) {
+        node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+      } else {
+        node.plus_img.src = node.relpath+"ftv2mnode.png";
+      }
+      node.expanded = true;
+      var n = node.children[o.breadcrumbs[index]];
+      if (index+1<o.breadcrumbs.length) {
+        showNode(o,n,index+1,hash);
+      } else {
+        if (typeof(n.childrenData)==='string') {
+          var varName = n.childrenData;
+          getScript(n.relpath+varName,function(){
+            n.childrenData = getData(varName);
+            node.expanded=false;
+            showNode(o,node,index,hash); // retry with child node expanded
+          },true);
+        } else {
+          var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
+          if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
+            expandNode(o, n, true, true);
+          }
+          selectAndHighlight(hash,n);
+        }
+      }
+    }
+  } else {
+    selectAndHighlight(hash);
+  }
+}
+
+function removeToInsertLater(element) {
+  var parentNode = element.parentNode;
+  var nextSibling = element.nextSibling;
+  parentNode.removeChild(element);
+  return function() {
+    if (nextSibling) {
+      parentNode.insertBefore(element, nextSibling);
+    } else {
+      parentNode.appendChild(element);
+    }
+  };
+}
+
+function getNode(o, po)
+{
+  var insertFunction = removeToInsertLater(po.li);
+  po.childrenVisited = true;
+  var l = po.childrenData.length-1;
+  for (var i in po.childrenData) {
+    var nodeData = po.childrenData[i];
+    po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
+      i==l);
+  }
+  insertFunction();
+}
+
+function gotoNode(o,subIndex,root,hash,relpath)
+{
+  var nti = navTreeSubIndices[subIndex][root+hash];
+  o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+  if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+    navTo(o,NAVTREE[0][1],"",relpath);
+    $('.item').removeClass('selected');
+    $('.item').removeAttr('id');
+  }
+  if (o.breadcrumbs) {
+    o.breadcrumbs.unshift(0); // add 0 for root node
+    showNode(o, o.node, 0, hash);
+  }
+}
+
+function navTo(o,root,hash,relpath)
+{
+  var link = cachedLink();
+  if (link) {
+    var parts = link.split('#');
+    root = parts[0];
+    if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
+    else hash='';
+  }
+  if (hash.match(/^#l\d+$/)) {
+    var anchor=$('a[name='+hash.substring(1)+']');
+    glowEffect(anchor.parent(),1000); // line number
+    hash=''; // strip line number anchors
+  }
+  var url=root+hash;
+  var i=-1;
+  while (NAVTREEINDEX[i+1]<=url) i++;
+  if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
+  if (navTreeSubIndices[i]) {
+    gotoNode(o,i,root,hash,relpath)
+  } else {
+    getScript(relpath+'navtreeindex'+i,function(){
+      navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+      if (navTreeSubIndices[i]) {
+        gotoNode(o,i,root,hash,relpath);
+      }
+    },true);
+  }
+}
+
+function showSyncOff(n,relpath)
+{
+    n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
+}
+
+function showSyncOn(n,relpath)
+{
+    n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
+}
+
+function toggleSyncButton(relpath)
+{
+  var navSync = $('#nav-sync');
+  if (navSync.hasClass('sync')) {
+    navSync.removeClass('sync');
+    showSyncOff(navSync,relpath);
+    storeLink(stripPath2(pathName())+hashUrl());
+  } else {
+    navSync.addClass('sync');
+    showSyncOn(navSync,relpath);
+    deleteLink();
+  }
+}
+
+function initNavTree(toroot,relpath)
+{
+  var o = new Object();
+  o.toroot = toroot;
+  o.node = new Object();
+  o.node.li = document.getElementById("nav-tree-contents");
+  o.node.childrenData = NAVTREE;
+  o.node.children = new Array();
+  o.node.childrenUL = document.createElement("ul");
+  o.node.getChildrenUL = function() { return o.node.childrenUL; };
+  o.node.li.appendChild(o.node.childrenUL);
+  o.node.depth = 0;
+  o.node.relpath = relpath;
+  o.node.expanded = false;
+  o.node.isLast = true;
+  o.node.plus_img = document.createElement("img");
+  o.node.plus_img.src = relpath+"ftv2pnode.png";
+  o.node.plus_img.width = 16;
+  o.node.plus_img.height = 22;
+
+  if (localStorageSupported()) {
+    var navSync = $('#nav-sync');
+    if (cachedLink()) {
+      showSyncOff(navSync,relpath);
+      navSync.removeClass('sync');
+    } else {
+      showSyncOn(navSync,relpath);
+    }
+    navSync.click(function(){ toggleSyncButton(relpath); });
+  }
+
+  $(window).load(function(){
+    navTo(o,toroot,hashUrl(),relpath);
+    showRoot();
+  });
+
+  $(window).bind('hashchange', function(){
+     if (window.location.hash && window.location.hash.length>1){
+       var a;
+       if ($(location).attr('hash')){
+         var clslink=stripPath(pathName())+':'+hashValue();
+         a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
+       }
+       if (a==null || !$(a).parent().parent().hasClass('selected')){
+         $('.item').removeClass('selected');
+         $('.item').removeAttr('id');
+       }
+       var link=stripPath2(pathName());
+       navTo(o,link,hashUrl(),relpath);
+     } else if (!animationInProgress) {
+       $('#doc-content').scrollTop(0);
+       $('.item').removeClass('selected');
+       $('.item').removeAttr('id');
+       navTo(o,toroot,hashUrl(),relpath);
+     }
+  })
+}
+
diff --git a/src/module_gtf/module/gtf.doc/api_form/navtreeindex0.js b/src/module_gtf/module/gtf.doc/api_form/navtreeindex0.js
new file mode 100755
index 0000000000000000000000000000000000000000..6a1c9b3c09cbb07db241464a1d0813a95771ab40
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/navtreeindex0.js
@@ -0,0 +1,226 @@
+var NAVTREEINDEX0 =
+{
+"_category_8class_8inc.html":[1,0,0],
+"_category_8class_8sql_8inc.html":[1,0,1],
+"_category_8class_8sql_8inc.html#acf6ca91b10f5bccf837c39782c135bac":[1,0,1,0],
+"_email_option_8class_8inc.html":[1,0,2],
+"_email_options_8class_8inc.html":[1,0,3],
+"_error_8class_8inc.html":[1,0,4],
+"_fme_engine_8class_8inc.html":[1,0,5],
+"_form_8class_8inc.html":[1,0,6],
+"_gtf_engine_8class_8inc.html":[1,0,7],
+"_gtf_engines_8class_8inc.html":[1,0,8],
+"_html_form_8class_8inc.html":[1,0,9],
+"_inbox_8class_8inc.html":[1,0,10],
+"_inboxes_8class_8inc.html":[1,0,11],
+"_ldap_8class_8inc.html":[1,0,12],
+"_order_8class_8inc.html":[1,0,13],
+"_order_statu_8class_8inc.html":[1,0,15],
+"_order_status_8class_8inc.html":[1,0,16],
+"_orders_8class_8inc.html":[1,0,14],
+"_period_8class_8inc.html":[1,0,17],
+"_periods_8class_8inc.html":[1,0,18],
+"_priorities_8class_8inc.html":[1,0,19],
+"_priority_8class_8inc.html":[1,0,20],
+"_subscription_8class_8inc.html":[1,0,21],
+"_subscriptions_8class_8inc.html":[1,0,22],
+"_survey_8class_8inc.html":[1,0,23],
+"_survey_type_8class_8inc.html":[1,0,25],
+"_survey_types_8class_8inc.html":[1,0,26],
+"_surveys_8class_8inc.html":[1,0,24],
+"_token_8class_8inc.html":[1,0,27],
+"_user_8class_8inc.html":[1,0,28],
+"_user_8class_8sql_8inc.html":[1,0,29],
+"_user_8class_8sql_8inc.html#ad04f154542c7e2805c3486312944b091":[1,0,29,0],
+"_workspace_8class_8inc.html":[1,0,30],
+"_workspaces_8class_8inc.html":[1,0,31],
+"annotated.html":[0,0],
+"class_category.html":[0,0,0],
+"class_category.html#a2f9b558d76a2d1d580a9c610c49d8219":[0,0,0,1],
+"class_category.html#ac018cfa750b4f5ee92b9b331a54ad989":[0,0,0,2],
+"class_category.html#aec8d7f8f3574462d98c6cc97c5f65632":[0,0,0,0],
+"class_form.html":[0,0,5],
+"class_form.html#a9f280c6ba52f3872b4fa7acf3049acd5":[0,0,5,1],
+"class_form.html#ad8cd240613fa8c7375195e521330b7f8":[0,0,5,0],
+"class_html_form.html":[0,0,8],
+"class_html_form.html#a0193719ef585474f274104e6604ec09b":[0,0,8,50],
+"class_html_form.html#a0789d82fcd257f4164f715ba7dbc4863":[0,0,8,35],
+"class_html_form.html#a0811ddbcc2d055293801163572798fb6":[0,0,8,36],
+"class_html_form.html#a0c4375d48a3a9c1755855ba972798a4c":[0,0,8,0],
+"class_html_form.html#a0d1aaed6f168ea2ec1c26139249fa8d1":[0,0,8,31],
+"class_html_form.html#a15a489f62a48c9d9a555523cab108163":[0,0,8,29],
+"class_html_form.html#a16039eee38f5285c684312e84e036e78":[0,0,8,23],
+"class_html_form.html#a20800c5d17fba2ea9bc73ce2ef15180e":[0,0,8,54],
+"class_html_form.html#a25b54a92d78241268c6ffaa1337795ef":[0,0,8,8],
+"class_html_form.html#a26713a5b61f9467ddd83eef17cc38028":[0,0,8,18],
+"class_html_form.html#a28c7a3aaa2c1487c3a4b904cc7e8d65b":[0,0,8,2],
+"class_html_form.html#a2d1691438b59a81ea0651f06639bbfad":[0,0,8,56],
+"class_html_form.html#a36267c4c6a13a9c8d7f56dc3963c088d":[0,0,8,40],
+"class_html_form.html#a3670ff43b4b85bdb2c7e73fb54c7cf65":[0,0,8,33],
+"class_html_form.html#a3c547e7880568a785c9044282fe94b7d":[0,0,8,22],
+"class_html_form.html#a3eaea6c5b8bc42225e1b754cb20563ca":[0,0,8,21],
+"class_html_form.html#a4205be2f46eba5919ccce76ce5e81261":[0,0,8,27],
+"class_html_form.html#a4c5351d0ff65c65b928458803979ee8f":[0,0,8,57],
+"class_html_form.html#a4dc38763973c02d8f45619ee84c5cb7e":[0,0,8,42],
+"class_html_form.html#a522c98df8aa76415f9af4c73b4f134d0":[0,0,8,48],
+"class_html_form.html#a5d9fcf6054c8c670082df637f0d060b4":[0,0,8,46],
+"class_html_form.html#a659dfa8e5e6c9a29cdd15c0f23586c4e":[0,0,8,25],
+"class_html_form.html#a7568feb4305d1f2988b5d7a32d844981":[0,0,8,38],
+"class_html_form.html#a7714b111b644017933931ec69a154102":[0,0,8,52],
+"class_html_form.html#a779b437bfa81bfcdfdb208eee9847816":[0,0,8,51],
+"class_html_form.html#a78a9a6cbe314645499d7c151da9229ca":[0,0,8,6],
+"class_html_form.html#a7998d85ff93ecdbae8732b5dd9f0f1f8":[0,0,8,10],
+"class_html_form.html#a79df46a7b4638a3ee5db4aa9d3ec49e4":[0,0,8,7],
+"class_html_form.html#a79fe01125ba1809a8944d51380bf0719":[0,0,8,13],
+"class_html_form.html#a86c30fa8203e438971ebccc1cc735055":[0,0,8,34],
+"class_html_form.html#a87c97603d5d79a9258db9486ade04428":[0,0,8,53],
+"class_html_form.html#a885874295ef8566c6d27b89af5f9847c":[0,0,8,9],
+"class_html_form.html#a8b1feb056ca8dbb075cd01e5d6dbba8b":[0,0,8,28],
+"class_html_form.html#a8baa8a713f9595edf9524a6c26f94a63":[0,0,8,17],
+"class_html_form.html#a8f0088e8565f801941c1ac466ad3d236":[0,0,8,30],
+"class_html_form.html#aa6458f60182c9b9e6d8800d80856d42e":[0,0,8,26],
+"class_html_form.html#aaabac8649f945e6029f057a3f99241ba":[0,0,8,15],
+"class_html_form.html#aad5d0a900d4ea7554a839231f89c6625":[0,0,8,55],
+"class_html_form.html#ab125c825127bd28060ee2ed2505a9d3d":[0,0,8,11],
+"class_html_form.html#ab798968964b52f05cf92a12b1bbd2d19":[0,0,8,37],
+"class_html_form.html#abe155888154196c6af13bb2713a7ba8f":[0,0,8,47],
+"class_html_form.html#ac11973d6df48b81e9071d55aa846d6ca":[0,0,8,45],
+"class_html_form.html#ac1e92ac1c9ae25b319d922af91a370ca":[0,0,8,1],
+"class_html_form.html#ac57860210f86dbd962747c2f0579abcd":[0,0,8,41],
+"class_html_form.html#ac5e4346541e9f1e251deabf312cfb463":[0,0,8,3],
+"class_html_form.html#ac7d3dbae4165f41b96c10ba1d537c549":[0,0,8,39],
+"class_html_form.html#acb29aa5964b1d4de444efa878ab8b5f4":[0,0,8,4],
+"class_html_form.html#ad0207818f191537caeb14d28dd71f935":[0,0,8,32],
+"class_html_form.html#ad27804427679f63b2d9a18d12faf3086":[0,0,8,14],
+"class_html_form.html#ad916f8b421be10005737e7a7232a5aac":[0,0,8,44],
+"class_html_form.html#adbb88365032e417faeb5836640090cf8":[0,0,8,24],
+"class_html_form.html#adf13e3be0a9d4ac3cf11cf2efb1202ec":[0,0,8,49],
+"class_html_form.html#ae6bf7f06c53a8b7a14f2b93124d283a3":[0,0,8,19],
+"class_html_form.html#aefcbdf8ed85eb65902bc612e649db4ae":[0,0,8,20],
+"class_html_form.html#aefe3d5b6a2d83aa2dcdadcf9d17904e2":[0,0,8,5],
+"class_html_form.html#af3efcaf0f0d8fb31bd190efa85b8c61a":[0,0,8,43],
+"class_html_form.html#afa32b67f52f68a6a0ada1dd6a702f61c":[0,0,8,12],
+"class_html_form.html#afd211acd5225ec0c57dfa8c433d94563":[0,0,8,16],
+"class_ldap.html":[0,0,11],
+"class_ldap.html#a0f432d65063a5ecb25a47b78b6d82bb7":[0,0,11,3],
+"class_ldap.html#a126095704d883d6eceeade5f855ddbbb":[0,0,11,5],
+"class_ldap.html#a188fad4ffc1509904390ed867abde786":[0,0,11,11],
+"class_ldap.html#a1b0dc6799a052b58f45cd68a234480cf":[0,0,11,9],
+"class_ldap.html#a2295d72ed4b3d123948281a5dc40e1f1":[0,0,11,14],
+"class_ldap.html#a34a7cbeeb3cda04818fc9a5d7bbde1eb":[0,0,11,0],
+"class_ldap.html#a45a777494e27c3dfd7c66e9b592b467a":[0,0,11,12],
+"class_ldap.html#a46eac38de509d795e078605e34f15bb9":[0,0,11,4],
+"class_ldap.html#a51e19e662cfe99f98672afb703c89b4b":[0,0,11,2],
+"class_ldap.html#a9d21c47ae3f5e47e377f91cf93fe0cac":[0,0,11,8],
+"class_ldap.html#ab2cb6908bf12835ef2d880e0d201d25c":[0,0,11,7],
+"class_ldap.html#ac637d5e8e68ee7fea58ddf1616618c3c":[0,0,11,1],
+"class_ldap.html#ad5b739d79b0df29ce5475660fa3f9ce4":[0,0,11,15],
+"class_ldap.html#ada8f165efcbdd05c71c041af2b1d8105":[0,0,11,13],
+"class_ldap.html#add2aeaf3a11289e27a24e6bb7914812e":[0,0,11,10],
+"class_ldap.html#aea165d7d1b3eaa4b36b0bfd581131c3c":[0,0,11,6],
+"class_user.html":[0,0,27],
+"class_user.html#a2f9b558d76a2d1d580a9c610c49d8219":[0,0,27,1],
+"class_user.html#a78ba5016feb6492c9c669c02bc1205ce":[0,0,27,0],
+"classemail_option.html":[0,0,1],
+"classemail_option.html#ae47a188d12a2d709eaac1c699b15665a":[0,0,1,0],
+"classemail_options.html":[0,0,2],
+"classemail_options.html#a237cd1c82be7a389c0a41d7c9bfb995d":[0,0,2,1],
+"classemail_options.html#a4b10bbda338d14d749461e1541135ca8":[0,0,2,0],
+"classemail_options.html#a8fdf50341c2e53325e805cbc6fa72205":[0,0,2,2],
+"classerror.html":[0,0,3],
+"classerror.html#a5fffdda82225d9ffb8f40d36ec35c939":[0,0,3,0],
+"classes.html":[0,1],
+"classfme_engine.html":[0,0,4],
+"classfme_engine.html#a536fb33d75deee3c6091bc324f02f072":[0,0,4,0],
+"classgtf_engine.html":[0,0,6],
+"classgtf_engine.html#aaae1340daf54451112d4e5235bd7d254":[0,0,6,0],
+"classgtf_engines.html":[0,0,7],
+"classgtf_engines.html#a64048acb145b53b1dd5ffd5c7e25320a":[0,0,7,2],
+"classgtf_engines.html#a928ad1216d7552c0b3a035e9ec4e891e":[0,0,7,1],
+"classgtf_engines.html#a939656ae35587753a51d75ae417eb2e1":[0,0,7,0],
+"classinbox.html":[0,0,9],
+"classinbox.html#a2874bccd374608dbd26d8606f2e858d4":[0,0,9,0],
+"classinboxes.html":[0,0,10],
+"classinboxes.html#a3ed49e1169063a79b9c20aa01ba40213":[0,0,10,1],
+"classinboxes.html#a94c4b04a5e0dd9e25a49020819582392":[0,0,10,0],
+"classinboxes.html#abceb3dc628377c4bc0e947981f4cf1bb":[0,0,10,2],
+"classorder.html":[0,0,12],
+"classorder.html#a36f36b063bb7beb1cba645be75ac89ca":[0,0,12,3],
+"classorder.html#a5c8360e6b64d6b9daad5a794b73ab8f1":[0,0,12,7],
+"classorder.html#a6352341456a6cb4477da211f256cc954":[0,0,12,1],
+"classorder.html#a6b7d3b9c752a0c977de5ddae78b522a9":[0,0,12,9],
+"classorder.html#a797198f26a6f0ff15e097378b77dc399":[0,0,12,0],
+"classorder.html#a907661236442af049dee8f42d066733b":[0,0,12,8],
+"classorder.html#aaebe1bdca8a9df297f5f5deadaa516c7":[0,0,12,2],
+"classorder.html#ae13e5a4091f35b6ce3e2271275f4c8de":[0,0,12,5],
+"classorder.html#ae81b7186fb97a7c6457edcc68c9aa2ef":[0,0,12,4],
+"classorder.html#aea180aa67914c470d867e37a31bcaaf1":[0,0,12,6],
+"classorder_statu.html":[0,0,14],
+"classorder_statu.html#aff8c780c8a0ca4a20d3e4346d6f75b68":[0,0,14,0],
+"classorder_status.html":[0,0,15],
+"classorder_status.html#a0d9e25acf18aa1dbe663db0ef563f079":[0,0,15,0],
+"classorder_status.html#a1b301d21ccc915a8f51216da174208e7":[0,0,15,2],
+"classorder_status.html#a45473f0cf5e9440482ffda631e921107":[0,0,15,1],
+"classorders.html":[0,0,13],
+"classorders.html#a363f4a6cc9563d02b6858f846a51fd52":[0,0,13,0],
+"classorders.html#a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c":[0,0,13,2],
+"classorders.html#ae80560b73e88d8094a1c8d410b457a23":[0,0,13,1],
+"classperiod.html":[0,0,16],
+"classperiod.html#a58a71a71b556e6a66b46a0e609f236f2":[0,0,16,0],
+"classperiods.html":[0,0,17],
+"classperiods.html#a50a622c90af0de49140c1ff8adf72834":[0,0,17,0],
+"classperiods.html#ab6e188ecfd5a51c70efb197a21eb3232":[0,0,17,2],
+"classperiods.html#ad6e5876d4236d0f751a1d05ca4002a68":[0,0,17,1],
+"classpriorities.html":[0,0,18],
+"classpriorities.html#a15b53cfbd83a8280f1ad8a24f614517a":[0,0,18,1],
+"classpriorities.html#a178b8227bbf1f0b29f02a1230e8e98e6":[0,0,18,0],
+"classpriorities.html#a1abbdfb96d7cebba9ce94880d565c698":[0,0,18,2],
+"classpriority.html":[0,0,19],
+"classpriority.html#a2a119c542c44b5bc0447c6728c9ba23d":[0,0,19,0],
+"classsubscription.html":[0,0,20],
+"classsubscription.html#a36f36b063bb7beb1cba645be75ac89ca":[0,0,20,0],
+"classsubscription.html#a5c8360e6b64d6b9daad5a794b73ab8f1":[0,0,20,1],
+"classsubscription.html#a6b7d3b9c752a0c977de5ddae78b522a9":[0,0,20,4],
+"classsubscription.html#a907661236442af049dee8f42d066733b":[0,0,20,3],
+"classsubscription.html#aee28839beb5d419b8e0e3196037a07e2":[0,0,20,2],
+"classsubscriptions.html":[0,0,21],
+"classsubscriptions.html#a03bb9733cad9257752e408749952ddf6":[0,0,21,0],
+"classsubscriptions.html#a7c538465bd41ea043c46070ec56c85c7":[0,0,21,1],
+"classsubscriptions.html#ac86cb8d2109cd6d574dd18537a484640":[0,0,21,2],
+"classsurvey.html":[0,0,22],
+"classsurvey.html#a36f36b063bb7beb1cba645be75ac89ca":[0,0,22,0],
+"classsurvey.html#a5c8360e6b64d6b9daad5a794b73ab8f1":[0,0,22,1],
+"classsurvey.html#a6b7d3b9c752a0c977de5ddae78b522a9":[0,0,22,4],
+"classsurvey.html#a907661236442af049dee8f42d066733b":[0,0,22,3],
+"classsurvey.html#aa79e61e6ed531c40f38a385578b17a69":[0,0,22,2],
+"classsurvey_type.html":[0,0,24],
+"classsurvey_type.html#ac94ae7913ee906fff12665b89a4cb912":[0,0,24,0],
+"classsurvey_types.html":[0,0,25],
+"classsurvey_types.html#a0f0022657278349766b2104a8c1b50b8":[0,0,25,2],
+"classsurvey_types.html#aebc15591a49ec574704646d90de1f452":[0,0,25,1],
+"classsurvey_types.html#afe01480917b465989e6e11b580843cd3":[0,0,25,0],
+"classsurveys.html":[0,0,23],
+"classsurveys.html#a03bb9733cad9257752e408749952ddf6":[0,0,23,0],
+"classsurveys.html#a7c538465bd41ea043c46070ec56c85c7":[0,0,23,1],
+"classsurveys.html#a98e08d921d6efcfd6f906592e51b64ad":[0,0,23,2],
+"classtoken.html":[0,0,26],
+"classtoken.html#a935356c10601999ee59fd8bc49d35236":[0,0,26,0],
+"classworkspace.html":[0,0,28],
+"classworkspace.html#a6b7d3b9c752a0c977de5ddae78b522a9":[0,0,28,3],
+"classworkspace.html#a907661236442af049dee8f42d066733b":[0,0,28,2],
+"classworkspace.html#aa6be88cfec1c6136a9cf69dbe0265caf":[0,0,28,1],
+"classworkspace.html#ada0bf69887885f455ebdfbe878e14543":[0,0,28,0],
+"classworkspaces.html":[0,0,29],
+"classworkspaces.html#a1c43f8182072d1cb1c3185609dcf4ec9":[0,0,29,0],
+"classworkspaces.html#a1f71684f44c217b88cf4a15af8df59bd":[0,0,29,2],
+"classworkspaces.html#a7e8b67b819d9bba36bcd4f2a27a310b0":[0,0,29,1],
+"files.html":[1,0],
+"functions.html":[0,3,0],
+"functions_func.html":[0,3,1],
+"functions_vars.html":[0,3,2],
+"globals.html":[1,1,0],
+"globals_vars.html":[1,1,1],
+"hierarchy.html":[0,2],
+"index.html":[],
+"pages.html":[]
+};
diff --git a/src/module_gtf/module/gtf.doc/api_form/open.png b/src/module_gtf/module/gtf.doc/api_form/open.png
new file mode 100755
index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/open.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/resize.js b/src/module_gtf/module/gtf.doc/api_form/resize.js
new file mode 100755
index 0000000000000000000000000000000000000000..304fcb6badde4fd456b1a9996098ff1a49736e7c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/resize.js
@@ -0,0 +1,97 @@
+var cookie_namespace = 'doxygen'; 
+var sidenav,navtree,content,header;
+
+function readCookie(cookie) 
+{
+  var myCookie = cookie_namespace+"_"+cookie+"=";
+  if (document.cookie) 
+  {
+    var index = document.cookie.indexOf(myCookie);
+    if (index != -1) 
+    {
+      var valStart = index + myCookie.length;
+      var valEnd = document.cookie.indexOf(";", valStart);
+      if (valEnd == -1) 
+      {
+        valEnd = document.cookie.length;
+      }
+      var val = document.cookie.substring(valStart, valEnd);
+      return val;
+    }
+  }
+  return 0;
+}
+
+function writeCookie(cookie, val, expiration) 
+{
+  if (val==undefined) return;
+  if (expiration == null) 
+  {
+    var date = new Date();
+    date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+    expiration = date.toGMTString();
+  }
+  document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
+}
+ 
+function resizeWidth() 
+{
+  var windowWidth = $(window).width() + "px";
+  var sidenavWidth = $(sidenav).outerWidth();
+  content.css({marginLeft:parseInt(sidenavWidth)+"px"}); 
+  writeCookie('width',sidenavWidth, null);
+}
+
+function restoreWidth(navWidth)
+{
+  var windowWidth = $(window).width() + "px";
+  content.css({marginLeft:parseInt(navWidth)+6+"px"});
+  sidenav.css({width:navWidth + "px"});
+}
+
+function resizeHeight() 
+{
+  var headerHeight = header.outerHeight();
+  var footerHeight = footer.outerHeight();
+  var windowHeight = $(window).height() - headerHeight - footerHeight;
+  content.css({height:windowHeight + "px"});
+  navtree.css({height:windowHeight + "px"});
+  sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
+}
+
+function initResizable()
+{
+  header  = $("#top");
+  sidenav = $("#side-nav");
+  content = $("#doc-content");
+  navtree = $("#nav-tree");
+  footer  = $("#nav-path");
+  $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+  $(window).resize(function() { resizeHeight(); });
+  var width = readCookie('width');
+  if (width) { restoreWidth(width); } else { resizeWidth(); }
+  resizeHeight();
+  var url = location.href;
+  var i=url.indexOf("#");
+  if (i>=0) window.location.hash=url.substr(i);
+  var _preventDefault = function(evt) { evt.preventDefault(); };
+  $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+  $(document).bind('touchmove',function(e){
+    var device = navigator.userAgent.toLowerCase();
+    var ios = device.match(/(iphone|ipod|ipad)/);
+    if (ios) {
+      try {
+        var target = e.target;
+        while (target) {
+          if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
+          target = target.parentNode;
+        }
+        e.preventDefault();
+      } catch(err) {
+        e.preventDefault();
+      }
+    }
+  });
+}
+
+
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_0.html b/src/module_gtf/module/gtf.doc/api_form/search/all_0.html
new file mode 100755
index 0000000000000000000000000000000000000000..5c11dec892079f8496e5963240169f0de00960ac
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_0.js b/src/module_gtf/module/gtf.doc/api_form/search/all_0.js
new file mode 100755
index 0000000000000000000000000000000000000000..a432f0cfb510f5d6fc6e7686e57dcb4a90dd10a9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_0.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+  ['_24afields',['$aFields',['../class_category.html#a2f9b558d76a2d1d580a9c610c49d8219',1,'Category\$aFields()'],['../class_user.html#a2f9b558d76a2d1d580a9c610c49d8219',1,'User\$aFields()']]],
+  ['_24aldap',['$aLdap',['../class_ldap.html#ad5b739d79b0df29ce5475660fa3f9ce4',1,'Ldap']]],
+  ['_24asql',['$aSql',['../_category_8class_8sql_8inc.html#acf6ca91b10f5bccf837c39782c135bac',1,'$aSql():&#160;Category.class.sql.inc'],['../_user_8class_8sql_8inc.html#ad04f154542c7e2805c3486312944b091',1,'$aSql():&#160;User.class.sql.inc']]],
+  ['_24autocomplete',['$autoComplete',['../class_html_form.html#abe155888154196c6af13bb2713a7ba8f',1,'HtmlForm']]],
+  ['_24csslabel',['$CssLabel',['../class_html_form.html#a522c98df8aa76415f9af4c73b4f134d0',1,'HtmlForm']]],
+  ['_24csstable',['$CssTable',['../class_html_form.html#adf13e3be0a9d4ac3cf11cf2efb1202ec',1,'HtmlForm']]],
+  ['_24cssvalue',['$CssValue',['../class_html_form.html#a0193719ef585474f274104e6604ec09b',1,'HtmlForm']]],
+  ['_24externurl',['$externUrl',['../class_html_form.html#a779b437bfa81bfcdfdb208eee9847816',1,'HtmlForm']]],
+  ['_24lang',['$lang',['../class_html_form.html#a7714b111b644017933931ec69a154102',1,'HtmlForm']]],
+  ['_24methode',['$methode',['../class_html_form.html#a87c97603d5d79a9258db9486ade04428',1,'HtmlForm']]],
+  ['_24nbchamps',['$nbChamps',['../class_html_form.html#a20800c5d17fba2ea9bc73ce2ef15180e',1,'HtmlForm']]],
+  ['_24onsubmit',['$onSubmit',['../class_html_form.html#aad5d0a900d4ea7554a839231f89c6625',1,'HtmlForm']]],
+  ['_24sfolderlib',['$sFolderLib',['../class_html_form.html#a2d1691438b59a81ea0651f06639bbfad',1,'HtmlForm']]],
+  ['_24spkfield',['$sPkField',['../classorder.html#a907661236442af049dee8f42d066733b',1,'order\$sPkField()'],['../classsubscription.html#a907661236442af049dee8f42d066733b',1,'subscription\$sPkField()'],['../classsurvey.html#a907661236442af049dee8f42d066733b',1,'survey\$sPkField()'],['../classworkspace.html#a907661236442af049dee8f42d066733b',1,'workspace\$sPkField()']]],
+  ['_24sschemagtf',['$sSchemaGtf',['../class_category.html#ac018cfa750b4f5ee92b9b331a54ad989',1,'Category']]],
+  ['_24stable',['$sTable',['../classorder.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'order\$sTable()'],['../classsubscription.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'subscription\$sTable()'],['../classsurvey.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'survey\$sTable()'],['../classworkspace.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'workspace\$sTable()']]],
+  ['_24transfertfichier',['$transfertFichier',['../class_html_form.html#a4c5351d0ff65c65b928458803979ee8f',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_1.html b/src/module_gtf/module/gtf.doc/api_form/search/all_1.html
new file mode 100755
index 0000000000000000000000000000000000000000..83aca28e2c88b6b5c728d791ce5467dcee661a41
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_1.js b/src/module_gtf/module/gtf.doc/api_form/search/all_1.js
new file mode 100755
index 0000000000000000000000000000000000000000..ceaa6445162f29fff45fe2313a215d1a2d08731a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['_5f_5fconstruct',['__construct',['../class_category.html#aec8d7f8f3574462d98c6cc97c5f65632',1,'Category\__construct()'],['../class_ldap.html#a34a7cbeeb3cda04818fc9a5d7bbde1eb',1,'Ldap\__construct()'],['../class_user.html#a78ba5016feb6492c9c669c02bc1205ce',1,'User\__construct()']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_10.html b/src/module_gtf/module/gtf.doc/api_form/search/all_10.html
new file mode 100755
index 0000000000000000000000000000000000000000..38a3dccd0313dc885c54e2b9be66267393c3edc7
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_10.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_10.js b/src/module_gtf/module/gtf.doc/api_form/search/all_10.js
new file mode 100755
index 0000000000000000000000000000000000000000..9586318992037d37e90b91efe8000b18e9a44a5d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_10.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['radiofield',['radioField',['../class_html_form.html#a36267c4c6a13a9c8d7f56dc3963c088d',1,'HtmlForm']]],
+  ['returnengineid',['returnEngineId',['../classorder.html#a5c8360e6b64d6b9daad5a794b73ab8f1',1,'order\returnEngineId()'],['../classsubscription.html#a5c8360e6b64d6b9daad5a794b73ab8f1',1,'subscription\returnEngineId()'],['../classsurvey.html#a5c8360e6b64d6b9daad5a794b73ab8f1',1,'survey\returnEngineId()']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_11.html b/src/module_gtf/module/gtf.doc/api_form/search/all_11.html
new file mode 100755
index 0000000000000000000000000000000000000000..8e471d9d89e85f3104203c2f2f71cc572d17998d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_11.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_11.js b/src/module_gtf/module/gtf.doc/api_form/search/all_11.js
new file mode 100755
index 0000000000000000000000000000000000000000..9c1066758c514ec85091795db1d2e33a201c198b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_11.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+  ['sliderfield',['SliderField',['../class_html_form.html#ac57860210f86dbd962747c2f0579abcd',1,'HtmlForm']]],
+  ['startswith',['startsWith',['../class_ldap.html#a2295d72ed4b3d123948281a5dc40e1f1',1,'Ldap']]],
+  ['subformend',['subFormEnd',['../class_html_form.html#a4dc38763973c02d8f45619ee84c5cb7e',1,'HtmlForm']]],
+  ['submitfield',['submitField',['../class_html_form.html#af3efcaf0f0d8fb31bd190efa85b8c61a',1,'HtmlForm']]],
+  ['subscription',['subscription',['../classsubscription.html',1,'subscription'],['../classsubscription.html#aee28839beb5d419b8e0e3196037a07e2',1,'subscription\subscription()']]],
+  ['subscription_2eclass_2einc',['Subscription.class.inc',['../_subscription_8class_8inc.html',1,'']]],
+  ['subscriptions',['subscriptions',['../classsubscriptions.html',1,'subscriptions'],['../classsubscriptions.html#ac86cb8d2109cd6d574dd18537a484640',1,'subscriptions\subscriptions()']]],
+  ['subscriptions_2eclass_2einc',['Subscriptions.class.inc',['../_subscriptions_8class_8inc.html',1,'']]],
+  ['survey',['survey',['../classsurvey.html',1,'survey'],['../classsurvey.html#aa79e61e6ed531c40f38a385578b17a69',1,'survey\survey()']]],
+  ['survey_2eclass_2einc',['Survey.class.inc',['../_survey_8class_8inc.html',1,'']]],
+  ['surveys',['surveys',['../classsurveys.html',1,'surveys'],['../classsurveys.html#a98e08d921d6efcfd6f906592e51b64ad',1,'surveys\surveys()']]],
+  ['surveys_2eclass_2einc',['Surveys.class.inc',['../_surveys_8class_8inc.html',1,'']]],
+  ['surveytype',['surveyType',['../classsurvey_type.html',1,'surveyType'],['../classsurvey_type.html#ac94ae7913ee906fff12665b89a4cb912',1,'surveyType\surveyType()']]],
+  ['surveytype_2eclass_2einc',['SurveyType.class.inc',['../_survey_type_8class_8inc.html',1,'']]],
+  ['surveytypes',['surveyTypes',['../classsurvey_types.html',1,'surveyTypes'],['../classsurvey_types.html#a0f0022657278349766b2104a8c1b50b8',1,'surveyTypes\surveyTypes()']]],
+  ['surveytypes_2eclass_2einc',['SurveyTypes.class.inc',['../_survey_types_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_12.html b/src/module_gtf/module/gtf.doc/api_form/search/all_12.html
new file mode 100755
index 0000000000000000000000000000000000000000..a4ef39b545ebd54374d3458024517b24ce6d8345
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_12.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_12.js b/src/module_gtf/module/gtf.doc/api_form/search/all_12.js
new file mode 100755
index 0000000000000000000000000000000000000000..df339c539caccded917ad9c9fcd5689387d93ec6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_12.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['textfield',['textField',['../class_html_form.html#ad916f8b421be10005737e7a7232a5aac',1,'HtmlForm']]],
+  ['token',['token',['../classtoken.html',1,'token'],['../classtoken.html#a935356c10601999ee59fd8bc49d35236',1,'token\token()']]],
+  ['token_2eclass_2einc',['Token.class.inc',['../_token_8class_8inc.html',1,'']]],
+  ['treeviewfield',['treeviewField',['../class_html_form.html#ac11973d6df48b81e9071d55aa846d6ca',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_13.html b/src/module_gtf/module/gtf.doc/api_form/search/all_13.html
new file mode 100755
index 0000000000000000000000000000000000000000..7bc9d752fcc23455660831cc5a37e7b8b0f12eb1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_13.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_13.js b/src/module_gtf/module/gtf.doc/api_form/search/all_13.js
new file mode 100755
index 0000000000000000000000000000000000000000..58656f094792d35672bb659468cb8c8c9dc39460
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_13.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['uploadfield',['uploadField',['../class_html_form.html#a5d9fcf6054c8c670082df637f0d060b4',1,'HtmlForm']]],
+  ['user',['User',['../class_user.html',1,'']]],
+  ['user_2eclass_2einc',['User.class.inc',['../_user_8class_8inc.html',1,'']]],
+  ['user_2eclass_2esql_2einc',['User.class.sql.inc',['../_user_8class_8sql_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_14.html b/src/module_gtf/module/gtf.doc/api_form/search/all_14.html
new file mode 100755
index 0000000000000000000000000000000000000000..8e68b66cf74d2b8156d25550446d175e8095719a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_14.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_14.js b/src/module_gtf/module/gtf.doc/api_form/search/all_14.js
new file mode 100755
index 0000000000000000000000000000000000000000..c9fbee29b04ddd40d220b0121c228bcea6fa443c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_14.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['workspace',['workspace',['../classworkspace.html',1,'workspace'],['../classworkspace.html#aa6be88cfec1c6136a9cf69dbe0265caf',1,'workspace\workspace()']]],
+  ['workspace_2eclass_2einc',['Workspace.class.inc',['../_workspace_8class_8inc.html',1,'']]],
+  ['workspaces',['workspaces',['../classworkspaces.html',1,'workspaces'],['../classworkspaces.html#a1f71684f44c217b88cf4a15af8df59bd',1,'workspaces\workspaces()']]],
+  ['workspaces_2eclass_2einc',['Workspaces.class.inc',['../_workspaces_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_2.html b/src/module_gtf/module/gtf.doc/api_form/search/all_2.html
new file mode 100755
index 0000000000000000000000000000000000000000..3b8827cf0f581465b5d518cbbba2875682b6e7e4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_2.js b/src/module_gtf/module/gtf.doc/api_form/search/all_2.js
new file mode 100755
index 0000000000000000000000000000000000000000..5f105abd109ce146dd0a8bd4ccb9e3d3d10ba0cb
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_2.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['addline',['addLine',['../class_html_form.html#a0c4375d48a3a9c1755855ba972798a4c',1,'HtmlForm']]],
+  ['areafield',['areaField',['../class_html_form.html#ac1e92ac1c9ae25b319d922af91a370ca',1,'HtmlForm']]],
+  ['areareadfield',['areaReadField',['../class_html_form.html#a28c7a3aaa2c1487c3a4b904cc7e8d65b',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_3.html b/src/module_gtf/module/gtf.doc/api_form/search/all_3.html
new file mode 100755
index 0000000000000000000000000000000000000000..e15f42cd3ff3487e796dc93d51d30979271dbea7
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_3.js b/src/module_gtf/module/gtf.doc/api_form/search/all_3.js
new file mode 100755
index 0000000000000000000000000000000000000000..5e1abad7e63c4809b7bc40eacc8e5956501d0a67
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['buttonfield',['buttonField',['../class_html_form.html#ac5e4346541e9f1e251deabf312cfb463',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_4.html b/src/module_gtf/module/gtf.doc/api_form/search/all_4.html
new file mode 100755
index 0000000000000000000000000000000000000000..19377c9d4b98c4404245b603c0a2e751b10139be
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_4.js b/src/module_gtf/module/gtf.doc/api_form/search/all_4.js
new file mode 100755
index 0000000000000000000000000000000000000000..125cdc5c33c8044e1aa4c64da8012cfe08cdea40
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_4.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+  ['calendardatetimefield',['calendarDateTimeField',['../class_html_form.html#acb29aa5964b1d4de444efa878ab8b5f4',1,'HtmlForm']]],
+  ['calendarfield',['calendarField',['../class_html_form.html#aefe3d5b6a2d83aa2dcdadcf9d17904e2',1,'HtmlForm']]],
+  ['cascadecalendarfield',['cascadeCalendarField',['../class_html_form.html#a78a9a6cbe314645499d7c151da9229ca',1,'HtmlForm']]],
+  ['cascadeintegerfield',['cascadeINTEGERField',['../class_html_form.html#a79df46a7b4638a3ee5db4aa9d3ec49e4',1,'HtmlForm']]],
+  ['cascadelistfield',['cascadeListField',['../class_html_form.html#a25b54a92d78241268c6ffaa1337795ef',1,'HtmlForm']]],
+  ['cascadelistparentfield',['cascadeListParentField',['../class_html_form.html#a885874295ef8566c6d27b89af5f9847c',1,'HtmlForm']]],
+  ['cascadenumberfield',['cascadeNumberField',['../class_html_form.html#a7998d85ff93ecdbae8732b5dd9f0f1f8',1,'HtmlForm']]],
+  ['cascadetextfield',['cascadeTextField',['../class_html_form.html#ab125c825127bd28060ee2ed2505a9d3d',1,'HtmlForm']]],
+  ['category',['Category',['../class_category.html',1,'']]],
+  ['category_2eclass_2einc',['Category.class.inc',['../_category_8class_8inc.html',1,'']]],
+  ['category_2eclass_2esql_2einc',['Category.class.sql.inc',['../_category_8class_8sql_8inc.html',1,'']]],
+  ['checkispdffile',['checkIsPdfFile',['../class_html_form.html#afa32b67f52f68a6a0ada1dd6a702f61c',1,'HtmlForm']]],
+  ['closeldap',['closeLdap',['../class_ldap.html#ac637d5e8e68ee7fea58ddf1616618c3c',1,'Ldap']]],
+  ['connectldap',['connectLdap',['../class_ldap.html#a51e19e662cfe99f98672afb703c89b4b',1,'Ldap']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_5.html b/src/module_gtf/module/gtf.doc/api_form/search/all_5.html
new file mode 100755
index 0000000000000000000000000000000000000000..a2246ece97de656037f2a45831a66b2e917ab83d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_5.js b/src/module_gtf/module/gtf.doc/api_form/search/all_5.js
new file mode 100755
index 0000000000000000000000000000000000000000..520f1462a42888b29fbaf02d05266381f334db70
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['displayform',['displayForm',['../class_form.html#ad8cd240613fa8c7375195e521330b7f8',1,'Form']]],
+  ['doublelistfield',['doubleListField',['../class_html_form.html#a79fe01125ba1809a8944d51380bf0719',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_6.html b/src/module_gtf/module/gtf.doc/api_form/search/all_6.html
new file mode 100755
index 0000000000000000000000000000000000000000..38f366ed938f818f59773ff2b52f6f1f9ffa2f27
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_6.js b/src/module_gtf/module/gtf.doc/api_form/search/all_6.js
new file mode 100755
index 0000000000000000000000000000000000000000..477364de323232997839ed380cedae2a13da64ed
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_6.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['emailoption',['emailOption',['../classemail_option.html',1,'emailOption'],['../classemail_option.html#ae47a188d12a2d709eaac1c699b15665a',1,'emailOption\emailOption()']]],
+  ['emailoption_2eclass_2einc',['EmailOption.class.inc',['../_email_option_8class_8inc.html',1,'']]],
+  ['emailoptions',['emailOptions',['../classemail_options.html',1,'emailOptions'],['../classemail_options.html#a4b10bbda338d14d749461e1541135ca8',1,'emailOptions\emailOptions()']]],
+  ['emailoptions_2eclass_2einc',['EmailOptions.class.inc',['../_email_options_8class_8inc.html',1,'']]],
+  ['end',['end',['../class_html_form.html#ad27804427679f63b2d9a18d12faf3086',1,'HtmlForm']]],
+  ['error',['error',['../classerror.html',1,'error'],['../classerror.html#a5fffdda82225d9ffb8f40d36ec35c939',1,'error\error()']]],
+  ['error_2eclass_2einc',['Error.class.inc',['../_error_8class_8inc.html',1,'']]],
+  ['explode_5fdn',['explode_dn',['../class_ldap.html#a0f432d65063a5ecb25a47b78b6d82bb7',1,'Ldap']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_7.html b/src/module_gtf/module/gtf.doc/api_form/search/all_7.html
new file mode 100755
index 0000000000000000000000000000000000000000..f402b76c1113f8546408b9e038b630b56845fee8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_7.js b/src/module_gtf/module/gtf.doc/api_form/search/all_7.js
new file mode 100755
index 0000000000000000000000000000000000000000..30d96c2e6bd7773fdddc76b2bdbe5d7c826984fb
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_7.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['filefield',['fileField',['../class_html_form.html#aaabac8649f945e6029f057a3f99241ba',1,'HtmlForm']]],
+  ['fmeengine',['fmeEngine',['../classfme_engine.html',1,'fmeEngine'],['../classfme_engine.html#a536fb33d75deee3c6091bc324f02f072',1,'fmeEngine\fmeEngine()']]],
+  ['fmeengine_2eclass_2einc',['FmeEngine.class.inc',['../_fme_engine_8class_8inc.html',1,'']]],
+  ['foldertreefield',['FolderTreeField',['../class_html_form.html#afd211acd5225ec0c57dfa8c433d94563',1,'HtmlForm']]],
+  ['form',['Form',['../class_form.html',1,'Form'],['../class_form.html#a9f280c6ba52f3872b4fa7acf3049acd5',1,'Form\Form()']]],
+  ['form_2eclass_2einc',['Form.class.inc',['../_form_8class_8inc.html',1,'']]],
+  ['formatorderemail',['formatOrderEmail',['../classorder.html#a797198f26a6f0ff15e097378b77dc399',1,'order']]],
+  ['formend',['formEnd',['../class_html_form.html#a8baa8a713f9595edf9524a6c26f94a63',1,'HtmlForm']]],
+  ['formstart',['formStart',['../class_html_form.html#a26713a5b61f9467ddd83eef17cc38028',1,'HtmlForm']]],
+  ['framefield',['frameField',['../class_html_form.html#ae6bf7f06c53a8b7a14f2b93124d283a3',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_8.html b/src/module_gtf/module/gtf.doc/api_form/search/all_8.html
new file mode 100755
index 0000000000000000000000000000000000000000..87fd5512176555c18addc4ca025ba5e415f56ad9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_8.js b/src/module_gtf/module/gtf.doc/api_form/search/all_8.js
new file mode 100755
index 0000000000000000000000000000000000000000..ebc4623cb6445d6024e3a471df08dbaefe1823c4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_8.js
@@ -0,0 +1,43 @@
+var searchData=
+[
+  ['get_5faemailoption',['get_aEmailOption',['../classemail_options.html#a237cd1c82be7a389c0a41d7c9bfb995d',1,'emailOptions']]],
+  ['get_5faemailoptionid',['get_aEmailOptionId',['../classemail_options.html#a8fdf50341c2e53325e805cbc6fa72205',1,'emailOptions']]],
+  ['get_5fagtfengine',['get_aGtfEngine',['../classgtf_engines.html#a939656ae35587753a51d75ae417eb2e1',1,'gtfEngines']]],
+  ['get_5fagtfengineid',['get_aGtfEngineId',['../classgtf_engines.html#a928ad1216d7552c0b3a035e9ec4e891e',1,'gtfEngines']]],
+  ['get_5fainbox',['get_aInbox',['../classinboxes.html#a94c4b04a5e0dd9e25a49020819582392',1,'inboxes']]],
+  ['get_5fainboxid',['get_aInboxId',['../classinboxes.html#a3ed49e1169063a79b9c20aa01ba40213',1,'inboxes']]],
+  ['get_5faorder',['get_aOrder',['../classorders.html#a363f4a6cc9563d02b6858f846a51fd52',1,'orders\get_aOrder()'],['../classsubscriptions.html#a03bb9733cad9257752e408749952ddf6',1,'subscriptions\get_aOrder()'],['../classsurveys.html#a03bb9733cad9257752e408749952ddf6',1,'surveys\get_aOrder()']]],
+  ['get_5faorderid',['get_aOrderId',['../classorders.html#ae80560b73e88d8094a1c8d410b457a23',1,'orders\get_aOrderId()'],['../classsubscriptions.html#a7c538465bd41ea043c46070ec56c85c7',1,'subscriptions\get_aOrderId()'],['../classsurveys.html#a7c538465bd41ea043c46070ec56c85c7',1,'surveys\get_aOrderId()']]],
+  ['get_5faorderstatus',['get_aOrderStatus',['../classorder_status.html#a0d9e25acf18aa1dbe663db0ef563f079',1,'orderStatus']]],
+  ['get_5faorderstatusid',['get_aOrderStatusId',['../classorder_status.html#a45473f0cf5e9440482ffda631e921107',1,'orderStatus']]],
+  ['get_5faperiod',['get_aPeriod',['../classperiods.html#a50a622c90af0de49140c1ff8adf72834',1,'periods']]],
+  ['get_5faperiodid',['get_aPeriodId',['../classperiods.html#ad6e5876d4236d0f751a1d05ca4002a68',1,'periods']]],
+  ['get_5fapriority',['get_aPriority',['../classpriorities.html#a178b8227bbf1f0b29f02a1230e8e98e6',1,'priorities']]],
+  ['get_5fapriorityid',['get_aPriorityId',['../classpriorities.html#a15b53cfbd83a8280f1ad8a24f614517a',1,'priorities']]],
+  ['get_5fasurveytype',['get_aSurveyType',['../classsurvey_types.html#afe01480917b465989e6e11b580843cd3',1,'surveyTypes']]],
+  ['get_5fasurveytypeid',['get_aSurveyTypeId',['../classsurvey_types.html#aebc15591a49ec574704646d90de1f452',1,'surveyTypes']]],
+  ['get_5faworkspace',['get_aWorkspace',['../classworkspaces.html#a1c43f8182072d1cb1c3185609dcf4ec9',1,'workspaces']]],
+  ['get_5faworkspaceid',['get_aWorkspaceId',['../classworkspaces.html#a7e8b67b819d9bba36bcd4f2a27a310b0',1,'workspaces']]],
+  ['get_5fmembers',['get_members',['../class_ldap.html#a46eac38de509d795e078605e34f15bb9',1,'Ldap']]],
+  ['getcategory',['getCategory',['../classworkspace.html#ada0bf69887885f455ebdfbe878e14543',1,'workspace']]],
+  ['getcriteria',['getCriteria',['../class_ldap.html#a126095704d883d6eceeade5f855ddbbb',1,'Ldap']]],
+  ['getfmeengine',['getFmeEngine',['../classorder.html#a6352341456a6cb4477da211f256cc954',1,'order']]],
+  ['getgroup',['getGroup',['../class_ldap.html#aea165d7d1b3eaa4b36b0bfd581131c3c',1,'Ldap']]],
+  ['getgroupinfo',['getGroupInfo',['../class_ldap.html#ab2cb6908bf12835ef2d880e0d201d25c',1,'Ldap']]],
+  ['getgroups',['getGroups',['../class_ldap.html#a9d21c47ae3f5e47e377f91cf93fe0cac',1,'Ldap']]],
+  ['getgtfengine',['getGtfEngine',['../classorder.html#aaebe1bdca8a9df297f5f5deadaa516c7',1,'order']]],
+  ['getidengine',['getIdEngine',['../classorder.html#a36f36b063bb7beb1cba645be75ac89ca',1,'order\getIdEngine()'],['../classsubscription.html#a36f36b063bb7beb1cba645be75ac89ca',1,'subscription\getIdEngine()'],['../classsurvey.html#a36f36b063bb7beb1cba645be75ac89ca',1,'survey\getIdEngine()']]],
+  ['getou',['getOU',['../class_ldap.html#a1b0dc6799a052b58f45cd68a234480cf',1,'Ldap']]],
+  ['getprimarygroup',['getPrimaryGroup',['../class_ldap.html#add2aeaf3a11289e27a24e6bb7914812e',1,'Ldap']]],
+  ['gettextsid',['getTextSID',['../class_ldap.html#a188fad4ffc1509904390ed867abde786',1,'Ldap']]],
+  ['getuser',['getUser',['../classorder.html#ae81b7186fb97a7c6457edcc68c9aa2ef',1,'order']]],
+  ['getusers',['getUsers',['../class_ldap.html#a45a777494e27c3dfd7c66e9b592b467a',1,'Ldap']]],
+  ['getworkspace',['getWorkspace',['../classorder.html#ae13e5a4091f35b6ce3e2271275f4c8de',1,'order']]],
+  ['graphicspalettefield',['graphicsPaletteField',['../class_html_form.html#aefcbdf8ed85eb65902bc612e649db4ae',1,'HtmlForm']]],
+  ['groupcomponentend',['groupComponentEnd',['../class_html_form.html#a3eaea6c5b8bc42225e1b754cb20563ca',1,'HtmlForm']]],
+  ['groupcomponentstart',['groupComponentStart',['../class_html_form.html#a3c547e7880568a785c9044282fe94b7d',1,'HtmlForm']]],
+  ['gtfengine',['gtfEngine',['../classgtf_engine.html',1,'gtfEngine'],['../classgtf_engine.html#aaae1340daf54451112d4e5235bd7d254',1,'gtfEngine\gtfEngine()']]],
+  ['gtfengine_2eclass_2einc',['GtfEngine.class.inc',['../_gtf_engine_8class_8inc.html',1,'']]],
+  ['gtfengines',['gtfEngines',['../classgtf_engines.html',1,'gtfEngines'],['../classgtf_engines.html#a64048acb145b53b1dd5ffd5c7e25320a',1,'gtfEngines\gtfEngines()']]],
+  ['gtfengines_2eclass_2einc',['GtfEngines.class.inc',['../_gtf_engines_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_9.html b/src/module_gtf/module/gtf.doc/api_form/search/all_9.html
new file mode 100755
index 0000000000000000000000000000000000000000..1aff402f1bbe6ebe08e757dac475bfeaf37cd62f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_9.js b/src/module_gtf/module/gtf.doc/api_form/search/all_9.js
new file mode 100755
index 0000000000000000000000000000000000000000..75076535c0753989f1ff810511d7bec38a44de59
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_9.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['hiddenfield',['hiddenField',['../class_html_form.html#a16039eee38f5285c684312e84e036e78',1,'HtmlForm']]],
+  ['htmleditor',['HtmlEditor',['../class_html_form.html#adbb88365032e417faeb5836640090cf8',1,'HtmlForm']]],
+  ['htmlform',['HtmlForm',['../class_html_form.html',1,'HtmlForm'],['../class_html_form.html#a659dfa8e5e6c9a29cdd15c0f23586c4e',1,'HtmlForm\HtmlForm()']]],
+  ['htmlform_2eclass_2einc',['HtmlForm.class.inc',['../_html_form_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_a.html b/src/module_gtf/module/gtf.doc/api_form/search/all_a.html
new file mode 100755
index 0000000000000000000000000000000000000000..e9b73939125a26d43d8bfe7a7d8d98e8200c133f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_a.js b/src/module_gtf/module/gtf.doc/api_form/search/all_a.js
new file mode 100755
index 0000000000000000000000000000000000000000..1af8208d2016b0895a0ca79f62bc3d25cef5e9bc
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_a.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['inbox',['inbox',['../classinbox.html',1,'inbox'],['../classinbox.html#a2874bccd374608dbd26d8606f2e858d4',1,'inbox\inbox()']]],
+  ['inbox_2eclass_2einc',['Inbox.class.inc',['../_inbox_8class_8inc.html',1,'']]],
+  ['inboxes',['inboxes',['../classinboxes.html',1,'inboxes'],['../classinboxes.html#abceb3dc628377c4bc0e947981f4cf1bb',1,'inboxes\inboxes()']]],
+  ['inboxes_2eclass_2einc',['Inboxes.class.inc',['../_inboxes_8class_8inc.html',1,'']]],
+  ['integerfield',['IntegerField',['../class_html_form.html#aa6458f60182c9b9e6d8800d80856d42e',1,'HtmlForm']]],
+  ['internalsqllistfield',['internalSqlListField',['../class_html_form.html#a4205be2f46eba5919ccce76ce5e81261',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_b.html b/src/module_gtf/module/gtf.doc/api_form/search/all_b.html
new file mode 100755
index 0000000000000000000000000000000000000000..0608082c2f462714e717b59506994acefaa19058
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_b.js b/src/module_gtf/module/gtf.doc/api_form/search/all_b.js
new file mode 100755
index 0000000000000000000000000000000000000000..b937d686db9b979fcc7cdb83fd1d3e3050670273
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_b.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['labelfield',['labelField',['../class_html_form.html#a8b1feb056ca8dbb075cd01e5d6dbba8b',1,'HtmlForm']]],
+  ['labelfromidfield',['labelFromIdField',['../class_html_form.html#a15a489f62a48c9d9a555523cab108163',1,'HtmlForm']]],
+  ['ldap',['Ldap',['../class_ldap.html',1,'']]],
+  ['ldap_2eclass_2einc',['Ldap.class.inc',['../_ldap_8class_8inc.html',1,'']]],
+  ['linkfield',['linkField',['../class_html_form.html#a8f0088e8565f801941c1ac466ad3d236',1,'HtmlForm']]],
+  ['listfield',['listField',['../class_html_form.html#a0d1aaed6f168ea2ec1c26139249fa8d1',1,'HtmlForm']]],
+  ['listparentfield',['listParentField',['../class_html_form.html#ad0207818f191537caeb14d28dd71f935',1,'HtmlForm']]],
+  ['littleendian',['littleEndian',['../class_ldap.html#ada8f165efcbdd05c71c041af2b1d8105',1,'Ldap']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_c.html b/src/module_gtf/module/gtf.doc/api_form/search/all_c.html
new file mode 100755
index 0000000000000000000000000000000000000000..e9c0ada8067f8439691ed94adf21ad06f17be0e9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_c.js b/src/module_gtf/module/gtf.doc/api_form/search/all_c.js
new file mode 100755
index 0000000000000000000000000000000000000000..6b87f3c0c6daf52bc78d3a2c6b2882f0401a90ef
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_c.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['multitreeviewfield',['multiTreeviewField',['../class_html_form.html#a3670ff43b4b85bdb2c7e73fb54c7cf65',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_d.html b/src/module_gtf/module/gtf.doc/api_form/search/all_d.html
new file mode 100755
index 0000000000000000000000000000000000000000..aaed8dc0656de59d1dea095c0071a48278baa934
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_d.js b/src/module_gtf/module/gtf.doc/api_form/search/all_d.js
new file mode 100755
index 0000000000000000000000000000000000000000..2f6f2b60cea869ebdfb9acbdcf6d3e8130ed340c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_d.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['nomessageformend',['noMessageFormEnd',['../class_html_form.html#a86c30fa8203e438971ebccc1cc735055',1,'HtmlForm']]],
+  ['numberfield',['numberField',['../class_html_form.html#a0789d82fcd257f4164f715ba7dbc4863',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_e.html b/src/module_gtf/module/gtf.doc/api_form/search/all_e.html
new file mode 100755
index 0000000000000000000000000000000000000000..73596103233e88418b4ef772fa9451cbe5fdd60e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_e.js b/src/module_gtf/module/gtf.doc/api_form/search/all_e.js
new file mode 100755
index 0000000000000000000000000000000000000000..c416e3ade9131904cc13094e8f8a26c99e908535
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_e.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['openlayers2field',['Openlayers2Field',['../class_html_form.html#a0811ddbcc2d055293801163572798fb6',1,'HtmlForm']]],
+  ['openlayersfield',['OpenlayersField',['../class_html_form.html#ab798968964b52f05cf92a12b1bbd2d19',1,'HtmlForm']]],
+  ['order',['order',['../classorder.html',1,'order'],['../classorder.html#aea180aa67914c470d867e37a31bcaaf1',1,'order\order()']]],
+  ['order_2eclass_2einc',['Order.class.inc',['../_order_8class_8inc.html',1,'']]],
+  ['orders',['orders',['../classorders.html',1,'orders'],['../classorders.html#a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c',1,'orders\orders()']]],
+  ['orders_2eclass_2einc',['Orders.class.inc',['../_orders_8class_8inc.html',1,'']]],
+  ['orderstatu',['orderStatu',['../classorder_statu.html',1,'orderStatu'],['../classorder_statu.html#aff8c780c8a0ca4a20d3e4346d6f75b68',1,'orderStatu\orderStatu()']]],
+  ['orderstatu_2eclass_2einc',['OrderStatu.class.inc',['../_order_statu_8class_8inc.html',1,'']]],
+  ['orderstatus',['orderStatus',['../classorder_status.html',1,'orderStatus'],['../classorder_status.html#a1b301d21ccc915a8f51216da174208e7',1,'orderStatus\orderStatus()']]],
+  ['orderstatus_2eclass_2einc',['OrderStatus.class.inc',['../_order_status_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_f.html b/src/module_gtf/module/gtf.doc/api_form/search/all_f.html
new file mode 100755
index 0000000000000000000000000000000000000000..56da29140756f0f3617c583f0ac9f58d60029c9a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/all_f.js b/src/module_gtf/module/gtf.doc/api_form/search/all_f.js
new file mode 100755
index 0000000000000000000000000000000000000000..1ad2f47b6626e57cef8353ec4aed51480d5d9b6c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/all_f.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['passwordfield',['PasswordField',['../class_html_form.html#a7568feb4305d1f2988b5d7a32d844981',1,'HtmlForm']]],
+  ['period',['period',['../classperiod.html',1,'period'],['../classperiod.html#a58a71a71b556e6a66b46a0e609f236f2',1,'period\period()']]],
+  ['period_2eclass_2einc',['Period.class.inc',['../_period_8class_8inc.html',1,'']]],
+  ['periods',['periods',['../classperiods.html',1,'periods'],['../classperiods.html#ab6e188ecfd5a51c70efb197a21eb3232',1,'periods\periods()']]],
+  ['periods_2eclass_2einc',['Periods.class.inc',['../_periods_8class_8inc.html',1,'']]],
+  ['predefinedlisttag',['predefinedListTag',['../class_html_form.html#ac7d3dbae4165f41b96c10ba1d537c549',1,'HtmlForm']]],
+  ['priorities',['priorities',['../classpriorities.html',1,'priorities'],['../classpriorities.html#a1abbdfb96d7cebba9ce94880d565c698',1,'priorities\priorities()']]],
+  ['priorities_2eclass_2einc',['Priorities.class.inc',['../_priorities_8class_8inc.html',1,'']]],
+  ['priority',['priority',['../classpriority.html',1,'priority'],['../classpriority.html#a2a119c542c44b5bc0447c6728c9ba23d',1,'priority\priority()']]],
+  ['priority_2eclass_2einc',['Priority.class.inc',['../_priority_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_0.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_0.html
new file mode 100755
index 0000000000000000000000000000000000000000..c5e4a740481b145b0a9af599cda8114a1adf5b71
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_0.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_0.js
new file mode 100755
index 0000000000000000000000000000000000000000..92897c4dfc4dc5fb11b53e53818b1fc7d3d2e99c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['category',['Category',['../class_category.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_1.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_1.html
new file mode 100755
index 0000000000000000000000000000000000000000..1d16c3a23768f1dd017eec611bbe162abc756246
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_1.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_1.js
new file mode 100755
index 0000000000000000000000000000000000000000..04babf54a8995d717d79975d9ea2b302a3f477eb
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['emailoption',['emailOption',['../classemail_option.html',1,'']]],
+  ['emailoptions',['emailOptions',['../classemail_options.html',1,'']]],
+  ['error',['error',['../classerror.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_2.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_2.html
new file mode 100755
index 0000000000000000000000000000000000000000..7e289a93bab8f63d47e99cfbdb2b0881f82633e1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_2.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_2.js
new file mode 100755
index 0000000000000000000000000000000000000000..81e5cd0c0a0914be3f05ced38b61ba4e68405811
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['fmeengine',['fmeEngine',['../classfme_engine.html',1,'']]],
+  ['form',['Form',['../class_form.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_3.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_3.html
new file mode 100755
index 0000000000000000000000000000000000000000..d7afb5cdb17adf2fa7529ae5fcadca782de53d29
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_3.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_3.js
new file mode 100755
index 0000000000000000000000000000000000000000..929cf2a750ef1af85844170e9b33c761ad2e47d6
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['gtfengine',['gtfEngine',['../classgtf_engine.html',1,'']]],
+  ['gtfengines',['gtfEngines',['../classgtf_engines.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_4.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_4.html
new file mode 100755
index 0000000000000000000000000000000000000000..82eee09b377760ef28a6d297adc282286d3fb023
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_4.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_4.js
new file mode 100755
index 0000000000000000000000000000000000000000..fe5101e0de692d83ad2aa48e0a9987a970e322cb
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['htmlform',['HtmlForm',['../class_html_form.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_5.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_5.html
new file mode 100755
index 0000000000000000000000000000000000000000..f2769655f8951320fccfd875463fa99e29279504
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_5.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_5.js
new file mode 100755
index 0000000000000000000000000000000000000000..8923e8868359c6963e02d14910ceef78c1c3c529
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['inbox',['inbox',['../classinbox.html',1,'']]],
+  ['inboxes',['inboxes',['../classinboxes.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_6.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_6.html
new file mode 100755
index 0000000000000000000000000000000000000000..904fa1b089db66ebd40d4afd0de8bc6d635a0296
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_6.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_6.js
new file mode 100755
index 0000000000000000000000000000000000000000..e7c2d52b11c653dd02da2447544091ac7edc78f5
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['ldap',['Ldap',['../class_ldap.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_7.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_7.html
new file mode 100755
index 0000000000000000000000000000000000000000..4f5862c8067e376dc517b17c30dc465457645965
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_7.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_7.js
new file mode 100755
index 0000000000000000000000000000000000000000..99a681e3a01849030bcf46adb54a9e28129b5403
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_7.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['order',['order',['../classorder.html',1,'']]],
+  ['orders',['orders',['../classorders.html',1,'']]],
+  ['orderstatu',['orderStatu',['../classorder_statu.html',1,'']]],
+  ['orderstatus',['orderStatus',['../classorder_status.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_8.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_8.html
new file mode 100755
index 0000000000000000000000000000000000000000..f5704a53062cedcfa0a37d3e344025709739bfd7
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_8.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_8.js
new file mode 100755
index 0000000000000000000000000000000000000000..83796e9f16bc73b09bf99873b60d80e16c8a3982
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_8.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['period',['period',['../classperiod.html',1,'']]],
+  ['periods',['periods',['../classperiods.html',1,'']]],
+  ['priorities',['priorities',['../classpriorities.html',1,'']]],
+  ['priority',['priority',['../classpriority.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_9.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_9.html
new file mode 100755
index 0000000000000000000000000000000000000000..2a832cc95df227264314f108b5e3a574161ff5c4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_9.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_9.js
new file mode 100755
index 0000000000000000000000000000000000000000..b4838872dc22d44f387ce6f8ffe53beb00d45db3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_9.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['subscription',['subscription',['../classsubscription.html',1,'']]],
+  ['subscriptions',['subscriptions',['../classsubscriptions.html',1,'']]],
+  ['survey',['survey',['../classsurvey.html',1,'']]],
+  ['surveys',['surveys',['../classsurveys.html',1,'']]],
+  ['surveytype',['surveyType',['../classsurvey_type.html',1,'']]],
+  ['surveytypes',['surveyTypes',['../classsurvey_types.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_a.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_a.html
new file mode 100755
index 0000000000000000000000000000000000000000..43e0878ee573652fccf64b91b8a8a07eff23dae7
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_a.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_a.js
new file mode 100755
index 0000000000000000000000000000000000000000..835ea0ac8324211ed828a42e1fbfc726a9799cc9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['token',['token',['../classtoken.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_b.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_b.html
new file mode 100755
index 0000000000000000000000000000000000000000..fd38a145003fe06bb36fd2cac9fa1a5cc497d02a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_b.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_b.js
new file mode 100755
index 0000000000000000000000000000000000000000..d4fe14875c159e111525716ebe78ae934cbc2921
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_b.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['user',['User',['../class_user.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_c.html b/src/module_gtf/module/gtf.doc/api_form/search/classes_c.html
new file mode 100755
index 0000000000000000000000000000000000000000..25e5aec8867aac03257ca967f1ac3ac4fe42477b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/classes_c.js b/src/module_gtf/module/gtf.doc/api_form/search/classes_c.js
new file mode 100755
index 0000000000000000000000000000000000000000..a55e1cf1cd39d505a682e702dd64bf6cffcff5d0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/classes_c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['workspace',['workspace',['../classworkspace.html',1,'']]],
+  ['workspaces',['workspaces',['../classworkspaces.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/close.png b/src/module_gtf/module/gtf.doc/api_form/search/close.png
new file mode 100755
index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/search/close.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_0.html b/src/module_gtf/module/gtf.doc/api_form/search/files_0.html
new file mode 100755
index 0000000000000000000000000000000000000000..d1ed0d653eda8503cd5df8f3609385d977634754
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_0.js b/src/module_gtf/module/gtf.doc/api_form/search/files_0.js
new file mode 100755
index 0000000000000000000000000000000000000000..0e301ea82e3f1b67a676b52be064e9e23f784f53
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['category_2eclass_2einc',['Category.class.inc',['../_category_8class_8inc.html',1,'']]],
+  ['category_2eclass_2esql_2einc',['Category.class.sql.inc',['../_category_8class_8sql_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_1.html b/src/module_gtf/module/gtf.doc/api_form/search/files_1.html
new file mode 100755
index 0000000000000000000000000000000000000000..e8066a5c6089be5989b0914374381959f4837a65
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_1.js b/src/module_gtf/module/gtf.doc/api_form/search/files_1.js
new file mode 100755
index 0000000000000000000000000000000000000000..7250a6a5f5ad23087ad5a259f9543c3325000f27
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['emailoption_2eclass_2einc',['EmailOption.class.inc',['../_email_option_8class_8inc.html',1,'']]],
+  ['emailoptions_2eclass_2einc',['EmailOptions.class.inc',['../_email_options_8class_8inc.html',1,'']]],
+  ['error_2eclass_2einc',['Error.class.inc',['../_error_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_2.html b/src/module_gtf/module/gtf.doc/api_form/search/files_2.html
new file mode 100755
index 0000000000000000000000000000000000000000..f12a43fcd8bab44b0c9cea12fbea1971d54739e5
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_2.js b/src/module_gtf/module/gtf.doc/api_form/search/files_2.js
new file mode 100755
index 0000000000000000000000000000000000000000..a4b1772dadc28514bf67f677a3cdd74d5225f6b0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['fmeengine_2eclass_2einc',['FmeEngine.class.inc',['../_fme_engine_8class_8inc.html',1,'']]],
+  ['form_2eclass_2einc',['Form.class.inc',['../_form_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_3.html b/src/module_gtf/module/gtf.doc/api_form/search/files_3.html
new file mode 100755
index 0000000000000000000000000000000000000000..b51d5fe7f9573ca46ddca0e2522e0ac88e88f19d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_3.js b/src/module_gtf/module/gtf.doc/api_form/search/files_3.js
new file mode 100755
index 0000000000000000000000000000000000000000..931cbec4c2c8a9f7b920d1d8478f95344a837f2c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['gtfengine_2eclass_2einc',['GtfEngine.class.inc',['../_gtf_engine_8class_8inc.html',1,'']]],
+  ['gtfengines_2eclass_2einc',['GtfEngines.class.inc',['../_gtf_engines_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_4.html b/src/module_gtf/module/gtf.doc/api_form/search/files_4.html
new file mode 100755
index 0000000000000000000000000000000000000000..010856ee4c7fb5c580838614173f85be4f7b7102
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_4.js b/src/module_gtf/module/gtf.doc/api_form/search/files_4.js
new file mode 100755
index 0000000000000000000000000000000000000000..80307c0a75f251191b3c48c1928f939b0338aedb
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['htmlform_2eclass_2einc',['HtmlForm.class.inc',['../_html_form_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_5.html b/src/module_gtf/module/gtf.doc/api_form/search/files_5.html
new file mode 100755
index 0000000000000000000000000000000000000000..07a4d880c5eeaa645651685dcb346543bc2c8e02
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_5.js b/src/module_gtf/module/gtf.doc/api_form/search/files_5.js
new file mode 100755
index 0000000000000000000000000000000000000000..e83e77118de081645a56e6d80ca32be8ff2388ad
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['inbox_2eclass_2einc',['Inbox.class.inc',['../_inbox_8class_8inc.html',1,'']]],
+  ['inboxes_2eclass_2einc',['Inboxes.class.inc',['../_inboxes_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_6.html b/src/module_gtf/module/gtf.doc/api_form/search/files_6.html
new file mode 100755
index 0000000000000000000000000000000000000000..afee8576581eb4a7eaee11fac0ec90f95d9a15ea
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_6.js b/src/module_gtf/module/gtf.doc/api_form/search/files_6.js
new file mode 100755
index 0000000000000000000000000000000000000000..6bbe965cc30692ea5c5b5cbcae0e3e295bb8639e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['ldap_2eclass_2einc',['Ldap.class.inc',['../_ldap_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_7.html b/src/module_gtf/module/gtf.doc/api_form/search/files_7.html
new file mode 100755
index 0000000000000000000000000000000000000000..f9a12aacfc290450f1f9ed234daa5417021d88c1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_7.js b/src/module_gtf/module/gtf.doc/api_form/search/files_7.js
new file mode 100755
index 0000000000000000000000000000000000000000..f8ebf68189bf80ccf282101bb65022c95303881b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_7.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['order_2eclass_2einc',['Order.class.inc',['../_order_8class_8inc.html',1,'']]],
+  ['orders_2eclass_2einc',['Orders.class.inc',['../_orders_8class_8inc.html',1,'']]],
+  ['orderstatu_2eclass_2einc',['OrderStatu.class.inc',['../_order_statu_8class_8inc.html',1,'']]],
+  ['orderstatus_2eclass_2einc',['OrderStatus.class.inc',['../_order_status_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_8.html b/src/module_gtf/module/gtf.doc/api_form/search/files_8.html
new file mode 100755
index 0000000000000000000000000000000000000000..0618624297d61a63e1a0b5202dce83e407fe9b4a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_8.js b/src/module_gtf/module/gtf.doc/api_form/search/files_8.js
new file mode 100755
index 0000000000000000000000000000000000000000..2a09b4057ec792a57b487a779cb1263764183f8c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_8.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['period_2eclass_2einc',['Period.class.inc',['../_period_8class_8inc.html',1,'']]],
+  ['periods_2eclass_2einc',['Periods.class.inc',['../_periods_8class_8inc.html',1,'']]],
+  ['priorities_2eclass_2einc',['Priorities.class.inc',['../_priorities_8class_8inc.html',1,'']]],
+  ['priority_2eclass_2einc',['Priority.class.inc',['../_priority_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_9.html b/src/module_gtf/module/gtf.doc/api_form/search/files_9.html
new file mode 100755
index 0000000000000000000000000000000000000000..0b1a1c107319ac652ebb0ae5ca4e4a60f9cf023b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_9.js b/src/module_gtf/module/gtf.doc/api_form/search/files_9.js
new file mode 100755
index 0000000000000000000000000000000000000000..521c5cec497301e11cba99360b662648dee4af89
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_9.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['subscription_2eclass_2einc',['Subscription.class.inc',['../_subscription_8class_8inc.html',1,'']]],
+  ['subscriptions_2eclass_2einc',['Subscriptions.class.inc',['../_subscriptions_8class_8inc.html',1,'']]],
+  ['survey_2eclass_2einc',['Survey.class.inc',['../_survey_8class_8inc.html',1,'']]],
+  ['surveys_2eclass_2einc',['Surveys.class.inc',['../_surveys_8class_8inc.html',1,'']]],
+  ['surveytype_2eclass_2einc',['SurveyType.class.inc',['../_survey_type_8class_8inc.html',1,'']]],
+  ['surveytypes_2eclass_2einc',['SurveyTypes.class.inc',['../_survey_types_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_a.html b/src/module_gtf/module/gtf.doc/api_form/search/files_a.html
new file mode 100755
index 0000000000000000000000000000000000000000..d5afd0be5fc9f003295e0b0835fa156a5bbc0d51
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_a.js b/src/module_gtf/module/gtf.doc/api_form/search/files_a.js
new file mode 100755
index 0000000000000000000000000000000000000000..7547eb3b516ef4d10d45a43ec5eb1a4728e77e10
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['token_2eclass_2einc',['Token.class.inc',['../_token_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_b.html b/src/module_gtf/module/gtf.doc/api_form/search/files_b.html
new file mode 100755
index 0000000000000000000000000000000000000000..a739686350af5f208925d328dbc4fdb1f342440b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_b.js b/src/module_gtf/module/gtf.doc/api_form/search/files_b.js
new file mode 100755
index 0000000000000000000000000000000000000000..ead5dea0b4e3f25250831090172f82e1e00d5ea8
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_b.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['user_2eclass_2einc',['User.class.inc',['../_user_8class_8inc.html',1,'']]],
+  ['user_2eclass_2esql_2einc',['User.class.sql.inc',['../_user_8class_8sql_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_c.html b/src/module_gtf/module/gtf.doc/api_form/search/files_c.html
new file mode 100755
index 0000000000000000000000000000000000000000..b85377bba6602d1e61f1b94885e80bb9b1a9c6e9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/files_c.js b/src/module_gtf/module/gtf.doc/api_form/search/files_c.js
new file mode 100755
index 0000000000000000000000000000000000000000..7318556d1b5f0626a5b98740569890405f9ef2a1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/files_c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['workspace_2eclass_2einc',['Workspace.class.inc',['../_workspace_8class_8inc.html',1,'']]],
+  ['workspaces_2eclass_2einc',['Workspaces.class.inc',['../_workspaces_8class_8inc.html',1,'']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_0.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_0.html
new file mode 100755
index 0000000000000000000000000000000000000000..cee084c21be97eab43a8e4db0c4680f61d720b97
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_0.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_0.js
new file mode 100755
index 0000000000000000000000000000000000000000..ceaa6445162f29fff45fe2313a215d1a2d08731a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['_5f_5fconstruct',['__construct',['../class_category.html#aec8d7f8f3574462d98c6cc97c5f65632',1,'Category\__construct()'],['../class_ldap.html#a34a7cbeeb3cda04818fc9a5d7bbde1eb',1,'Ldap\__construct()'],['../class_user.html#a78ba5016feb6492c9c669c02bc1205ce',1,'User\__construct()']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_1.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_1.html
new file mode 100755
index 0000000000000000000000000000000000000000..17cfc1478390056882941535b74b6b99aaaecc2a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_1.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_1.js
new file mode 100755
index 0000000000000000000000000000000000000000..5f105abd109ce146dd0a8bd4ccb9e3d3d10ba0cb
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['addline',['addLine',['../class_html_form.html#a0c4375d48a3a9c1755855ba972798a4c',1,'HtmlForm']]],
+  ['areafield',['areaField',['../class_html_form.html#ac1e92ac1c9ae25b319d922af91a370ca',1,'HtmlForm']]],
+  ['areareadfield',['areaReadField',['../class_html_form.html#a28c7a3aaa2c1487c3a4b904cc7e8d65b',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_10.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_10.html
new file mode 100755
index 0000000000000000000000000000000000000000..b9a4bf2844f74470f9431ea8cf5dbc5424242415
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_10.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_10.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_10.js
new file mode 100755
index 0000000000000000000000000000000000000000..5dc40acdf95264d4540b7da8121ea11c355a547a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_10.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['sliderfield',['SliderField',['../class_html_form.html#ac57860210f86dbd962747c2f0579abcd',1,'HtmlForm']]],
+  ['startswith',['startsWith',['../class_ldap.html#a2295d72ed4b3d123948281a5dc40e1f1',1,'Ldap']]],
+  ['subformend',['subFormEnd',['../class_html_form.html#a4dc38763973c02d8f45619ee84c5cb7e',1,'HtmlForm']]],
+  ['submitfield',['submitField',['../class_html_form.html#af3efcaf0f0d8fb31bd190efa85b8c61a',1,'HtmlForm']]],
+  ['subscription',['subscription',['../classsubscription.html#aee28839beb5d419b8e0e3196037a07e2',1,'subscription']]],
+  ['subscriptions',['subscriptions',['../classsubscriptions.html#ac86cb8d2109cd6d574dd18537a484640',1,'subscriptions']]],
+  ['survey',['survey',['../classsurvey.html#aa79e61e6ed531c40f38a385578b17a69',1,'survey']]],
+  ['surveys',['surveys',['../classsurveys.html#a98e08d921d6efcfd6f906592e51b64ad',1,'surveys']]],
+  ['surveytype',['surveyType',['../classsurvey_type.html#ac94ae7913ee906fff12665b89a4cb912',1,'surveyType']]],
+  ['surveytypes',['surveyTypes',['../classsurvey_types.html#a0f0022657278349766b2104a8c1b50b8',1,'surveyTypes']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_11.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_11.html
new file mode 100755
index 0000000000000000000000000000000000000000..1534876ff0e3cc0c488313b407622d490cce71d7
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_11.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_11.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_11.js
new file mode 100755
index 0000000000000000000000000000000000000000..5f63b84c3c300710241007bf24ca34dda12d52ba
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_11.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['textfield',['textField',['../class_html_form.html#ad916f8b421be10005737e7a7232a5aac',1,'HtmlForm']]],
+  ['token',['token',['../classtoken.html#a935356c10601999ee59fd8bc49d35236',1,'token']]],
+  ['treeviewfield',['treeviewField',['../class_html_form.html#ac11973d6df48b81e9071d55aa846d6ca',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_12.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_12.html
new file mode 100755
index 0000000000000000000000000000000000000000..311732fa973bb8ab2e9cb2ee19d7b86bc2ab9d9a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_12.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_12.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_12.js
new file mode 100755
index 0000000000000000000000000000000000000000..8050863458c6f6fbc569f940ef8950ce690c56a1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_12.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['uploadfield',['uploadField',['../class_html_form.html#a5d9fcf6054c8c670082df637f0d060b4',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_13.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_13.html
new file mode 100755
index 0000000000000000000000000000000000000000..14335ff7128b17593104d6b111962da4602c0c30
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_13.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_13.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_13.js
new file mode 100755
index 0000000000000000000000000000000000000000..632a741e4cd7a93844e1119ac84b67c39d604983
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_13.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['workspace',['workspace',['../classworkspace.html#aa6be88cfec1c6136a9cf69dbe0265caf',1,'workspace']]],
+  ['workspaces',['workspaces',['../classworkspaces.html#a1f71684f44c217b88cf4a15af8df59bd',1,'workspaces']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_2.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_2.html
new file mode 100755
index 0000000000000000000000000000000000000000..b5e38bf742892cc3074856578240a30b8e6c035e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_2.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_2.js
new file mode 100755
index 0000000000000000000000000000000000000000..5e1abad7e63c4809b7bc40eacc8e5956501d0a67
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['buttonfield',['buttonField',['../class_html_form.html#ac5e4346541e9f1e251deabf312cfb463',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_3.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_3.html
new file mode 100755
index 0000000000000000000000000000000000000000..c1007bb49ec68d43f310b36b307f2312cf24781a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_3.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_3.js
new file mode 100755
index 0000000000000000000000000000000000000000..1f4089add602a329d9c521e3416cd85f8eb6fb36
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_3.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+  ['calendardatetimefield',['calendarDateTimeField',['../class_html_form.html#acb29aa5964b1d4de444efa878ab8b5f4',1,'HtmlForm']]],
+  ['calendarfield',['calendarField',['../class_html_form.html#aefe3d5b6a2d83aa2dcdadcf9d17904e2',1,'HtmlForm']]],
+  ['cascadecalendarfield',['cascadeCalendarField',['../class_html_form.html#a78a9a6cbe314645499d7c151da9229ca',1,'HtmlForm']]],
+  ['cascadeintegerfield',['cascadeINTEGERField',['../class_html_form.html#a79df46a7b4638a3ee5db4aa9d3ec49e4',1,'HtmlForm']]],
+  ['cascadelistfield',['cascadeListField',['../class_html_form.html#a25b54a92d78241268c6ffaa1337795ef',1,'HtmlForm']]],
+  ['cascadelistparentfield',['cascadeListParentField',['../class_html_form.html#a885874295ef8566c6d27b89af5f9847c',1,'HtmlForm']]],
+  ['cascadenumberfield',['cascadeNumberField',['../class_html_form.html#a7998d85ff93ecdbae8732b5dd9f0f1f8',1,'HtmlForm']]],
+  ['cascadetextfield',['cascadeTextField',['../class_html_form.html#ab125c825127bd28060ee2ed2505a9d3d',1,'HtmlForm']]],
+  ['checkispdffile',['checkIsPdfFile',['../class_html_form.html#afa32b67f52f68a6a0ada1dd6a702f61c',1,'HtmlForm']]],
+  ['closeldap',['closeLdap',['../class_ldap.html#ac637d5e8e68ee7fea58ddf1616618c3c',1,'Ldap']]],
+  ['connectldap',['connectLdap',['../class_ldap.html#a51e19e662cfe99f98672afb703c89b4b',1,'Ldap']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_4.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_4.html
new file mode 100755
index 0000000000000000000000000000000000000000..4ea62354603fab5d8f85740241f9f4c0c020f62f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_4.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_4.js
new file mode 100755
index 0000000000000000000000000000000000000000..520f1462a42888b29fbaf02d05266381f334db70
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['displayform',['displayForm',['../class_form.html#ad8cd240613fa8c7375195e521330b7f8',1,'Form']]],
+  ['doublelistfield',['doubleListField',['../class_html_form.html#a79fe01125ba1809a8944d51380bf0719',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_5.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_5.html
new file mode 100755
index 0000000000000000000000000000000000000000..0d11a21c2debb7a780204ffddf3d009d68734c55
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_5.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_5.js
new file mode 100755
index 0000000000000000000000000000000000000000..90f6b0e8c3305674c3757ded894568a58e8bf657
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_5.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['emailoption',['emailOption',['../classemail_option.html#ae47a188d12a2d709eaac1c699b15665a',1,'emailOption']]],
+  ['emailoptions',['emailOptions',['../classemail_options.html#a4b10bbda338d14d749461e1541135ca8',1,'emailOptions']]],
+  ['end',['end',['../class_html_form.html#ad27804427679f63b2d9a18d12faf3086',1,'HtmlForm']]],
+  ['error',['error',['../classerror.html#a5fffdda82225d9ffb8f40d36ec35c939',1,'error']]],
+  ['explode_5fdn',['explode_dn',['../class_ldap.html#a0f432d65063a5ecb25a47b78b6d82bb7',1,'Ldap']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_6.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_6.html
new file mode 100755
index 0000000000000000000000000000000000000000..c3b1b7ce1d2d367ae28e0eff005cdf1aca5d11ea
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_6.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_6.js
new file mode 100755
index 0000000000000000000000000000000000000000..23f26530fab8a2df5f284a43e85f7120db959e9f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_6.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['filefield',['fileField',['../class_html_form.html#aaabac8649f945e6029f057a3f99241ba',1,'HtmlForm']]],
+  ['fmeengine',['fmeEngine',['../classfme_engine.html#a536fb33d75deee3c6091bc324f02f072',1,'fmeEngine']]],
+  ['foldertreefield',['FolderTreeField',['../class_html_form.html#afd211acd5225ec0c57dfa8c433d94563',1,'HtmlForm']]],
+  ['form',['Form',['../class_form.html#a9f280c6ba52f3872b4fa7acf3049acd5',1,'Form']]],
+  ['formatorderemail',['formatOrderEmail',['../classorder.html#a797198f26a6f0ff15e097378b77dc399',1,'order']]],
+  ['formend',['formEnd',['../class_html_form.html#a8baa8a713f9595edf9524a6c26f94a63',1,'HtmlForm']]],
+  ['formstart',['formStart',['../class_html_form.html#a26713a5b61f9467ddd83eef17cc38028',1,'HtmlForm']]],
+  ['framefield',['frameField',['../class_html_form.html#ae6bf7f06c53a8b7a14f2b93124d283a3',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_7.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_7.html
new file mode 100755
index 0000000000000000000000000000000000000000..d689b5fcc5ae8e16b1e2a95a6b1b85d013192858
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_7.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_7.js
new file mode 100755
index 0000000000000000000000000000000000000000..62a7925849d54b3886e6d57812f29f4ed0d274c1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_7.js
@@ -0,0 +1,41 @@
+var searchData=
+[
+  ['get_5faemailoption',['get_aEmailOption',['../classemail_options.html#a237cd1c82be7a389c0a41d7c9bfb995d',1,'emailOptions']]],
+  ['get_5faemailoptionid',['get_aEmailOptionId',['../classemail_options.html#a8fdf50341c2e53325e805cbc6fa72205',1,'emailOptions']]],
+  ['get_5fagtfengine',['get_aGtfEngine',['../classgtf_engines.html#a939656ae35587753a51d75ae417eb2e1',1,'gtfEngines']]],
+  ['get_5fagtfengineid',['get_aGtfEngineId',['../classgtf_engines.html#a928ad1216d7552c0b3a035e9ec4e891e',1,'gtfEngines']]],
+  ['get_5fainbox',['get_aInbox',['../classinboxes.html#a94c4b04a5e0dd9e25a49020819582392',1,'inboxes']]],
+  ['get_5fainboxid',['get_aInboxId',['../classinboxes.html#a3ed49e1169063a79b9c20aa01ba40213',1,'inboxes']]],
+  ['get_5faorder',['get_aOrder',['../classorders.html#a363f4a6cc9563d02b6858f846a51fd52',1,'orders\get_aOrder()'],['../classsubscriptions.html#a03bb9733cad9257752e408749952ddf6',1,'subscriptions\get_aOrder()'],['../classsurveys.html#a03bb9733cad9257752e408749952ddf6',1,'surveys\get_aOrder()']]],
+  ['get_5faorderid',['get_aOrderId',['../classorders.html#ae80560b73e88d8094a1c8d410b457a23',1,'orders\get_aOrderId()'],['../classsubscriptions.html#a7c538465bd41ea043c46070ec56c85c7',1,'subscriptions\get_aOrderId()'],['../classsurveys.html#a7c538465bd41ea043c46070ec56c85c7',1,'surveys\get_aOrderId()']]],
+  ['get_5faorderstatus',['get_aOrderStatus',['../classorder_status.html#a0d9e25acf18aa1dbe663db0ef563f079',1,'orderStatus']]],
+  ['get_5faorderstatusid',['get_aOrderStatusId',['../classorder_status.html#a45473f0cf5e9440482ffda631e921107',1,'orderStatus']]],
+  ['get_5faperiod',['get_aPeriod',['../classperiods.html#a50a622c90af0de49140c1ff8adf72834',1,'periods']]],
+  ['get_5faperiodid',['get_aPeriodId',['../classperiods.html#ad6e5876d4236d0f751a1d05ca4002a68',1,'periods']]],
+  ['get_5fapriority',['get_aPriority',['../classpriorities.html#a178b8227bbf1f0b29f02a1230e8e98e6',1,'priorities']]],
+  ['get_5fapriorityid',['get_aPriorityId',['../classpriorities.html#a15b53cfbd83a8280f1ad8a24f614517a',1,'priorities']]],
+  ['get_5fasurveytype',['get_aSurveyType',['../classsurvey_types.html#afe01480917b465989e6e11b580843cd3',1,'surveyTypes']]],
+  ['get_5fasurveytypeid',['get_aSurveyTypeId',['../classsurvey_types.html#aebc15591a49ec574704646d90de1f452',1,'surveyTypes']]],
+  ['get_5faworkspace',['get_aWorkspace',['../classworkspaces.html#a1c43f8182072d1cb1c3185609dcf4ec9',1,'workspaces']]],
+  ['get_5faworkspaceid',['get_aWorkspaceId',['../classworkspaces.html#a7e8b67b819d9bba36bcd4f2a27a310b0',1,'workspaces']]],
+  ['get_5fmembers',['get_members',['../class_ldap.html#a46eac38de509d795e078605e34f15bb9',1,'Ldap']]],
+  ['getcategory',['getCategory',['../classworkspace.html#ada0bf69887885f455ebdfbe878e14543',1,'workspace']]],
+  ['getcriteria',['getCriteria',['../class_ldap.html#a126095704d883d6eceeade5f855ddbbb',1,'Ldap']]],
+  ['getfmeengine',['getFmeEngine',['../classorder.html#a6352341456a6cb4477da211f256cc954',1,'order']]],
+  ['getgroup',['getGroup',['../class_ldap.html#aea165d7d1b3eaa4b36b0bfd581131c3c',1,'Ldap']]],
+  ['getgroupinfo',['getGroupInfo',['../class_ldap.html#ab2cb6908bf12835ef2d880e0d201d25c',1,'Ldap']]],
+  ['getgroups',['getGroups',['../class_ldap.html#a9d21c47ae3f5e47e377f91cf93fe0cac',1,'Ldap']]],
+  ['getgtfengine',['getGtfEngine',['../classorder.html#aaebe1bdca8a9df297f5f5deadaa516c7',1,'order']]],
+  ['getidengine',['getIdEngine',['../classorder.html#a36f36b063bb7beb1cba645be75ac89ca',1,'order\getIdEngine()'],['../classsubscription.html#a36f36b063bb7beb1cba645be75ac89ca',1,'subscription\getIdEngine()'],['../classsurvey.html#a36f36b063bb7beb1cba645be75ac89ca',1,'survey\getIdEngine()']]],
+  ['getou',['getOU',['../class_ldap.html#a1b0dc6799a052b58f45cd68a234480cf',1,'Ldap']]],
+  ['getprimarygroup',['getPrimaryGroup',['../class_ldap.html#add2aeaf3a11289e27a24e6bb7914812e',1,'Ldap']]],
+  ['gettextsid',['getTextSID',['../class_ldap.html#a188fad4ffc1509904390ed867abde786',1,'Ldap']]],
+  ['getuser',['getUser',['../classorder.html#ae81b7186fb97a7c6457edcc68c9aa2ef',1,'order']]],
+  ['getusers',['getUsers',['../class_ldap.html#a45a777494e27c3dfd7c66e9b592b467a',1,'Ldap']]],
+  ['getworkspace',['getWorkspace',['../classorder.html#ae13e5a4091f35b6ce3e2271275f4c8de',1,'order']]],
+  ['graphicspalettefield',['graphicsPaletteField',['../class_html_form.html#aefcbdf8ed85eb65902bc612e649db4ae',1,'HtmlForm']]],
+  ['groupcomponentend',['groupComponentEnd',['../class_html_form.html#a3eaea6c5b8bc42225e1b754cb20563ca',1,'HtmlForm']]],
+  ['groupcomponentstart',['groupComponentStart',['../class_html_form.html#a3c547e7880568a785c9044282fe94b7d',1,'HtmlForm']]],
+  ['gtfengine',['gtfEngine',['../classgtf_engine.html#aaae1340daf54451112d4e5235bd7d254',1,'gtfEngine']]],
+  ['gtfengines',['gtfEngines',['../classgtf_engines.html#a64048acb145b53b1dd5ffd5c7e25320a',1,'gtfEngines']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_8.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_8.html
new file mode 100755
index 0000000000000000000000000000000000000000..6089045d0caebfc01b2091c2aa7dfa5a2d32ce23
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_8.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_8.js
new file mode 100755
index 0000000000000000000000000000000000000000..0c4c77c8e7de61eae68727d91d4666989f146ad4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['hiddenfield',['hiddenField',['../class_html_form.html#a16039eee38f5285c684312e84e036e78',1,'HtmlForm']]],
+  ['htmleditor',['HtmlEditor',['../class_html_form.html#adbb88365032e417faeb5836640090cf8',1,'HtmlForm']]],
+  ['htmlform',['HtmlForm',['../class_html_form.html#a659dfa8e5e6c9a29cdd15c0f23586c4e',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_9.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_9.html
new file mode 100755
index 0000000000000000000000000000000000000000..79f1d8692381a8c688ebd25cea1eadbbb61a14db
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_9.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_9.js
new file mode 100755
index 0000000000000000000000000000000000000000..419e1956abf1702a5766a4da3fe30e6c96b4cb8c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_9.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['inbox',['inbox',['../classinbox.html#a2874bccd374608dbd26d8606f2e858d4',1,'inbox']]],
+  ['inboxes',['inboxes',['../classinboxes.html#abceb3dc628377c4bc0e947981f4cf1bb',1,'inboxes']]],
+  ['integerfield',['IntegerField',['../class_html_form.html#aa6458f60182c9b9e6d8800d80856d42e',1,'HtmlForm']]],
+  ['internalsqllistfield',['internalSqlListField',['../class_html_form.html#a4205be2f46eba5919ccce76ce5e81261',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_a.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_a.html
new file mode 100755
index 0000000000000000000000000000000000000000..d1f35eb68f1f6644125cde0208a2d276ff00a44c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_a.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_a.js
new file mode 100755
index 0000000000000000000000000000000000000000..d7bd4d9b9bc1bf51c169ec2f0df6a11e209bc8a9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_a.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['labelfield',['labelField',['../class_html_form.html#a8b1feb056ca8dbb075cd01e5d6dbba8b',1,'HtmlForm']]],
+  ['labelfromidfield',['labelFromIdField',['../class_html_form.html#a15a489f62a48c9d9a555523cab108163',1,'HtmlForm']]],
+  ['linkfield',['linkField',['../class_html_form.html#a8f0088e8565f801941c1ac466ad3d236',1,'HtmlForm']]],
+  ['listfield',['listField',['../class_html_form.html#a0d1aaed6f168ea2ec1c26139249fa8d1',1,'HtmlForm']]],
+  ['listparentfield',['listParentField',['../class_html_form.html#ad0207818f191537caeb14d28dd71f935',1,'HtmlForm']]],
+  ['littleendian',['littleEndian',['../class_ldap.html#ada8f165efcbdd05c71c041af2b1d8105',1,'Ldap']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_b.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_b.html
new file mode 100755
index 0000000000000000000000000000000000000000..0bdcc1c3fc3e737c8a6cc255f0bd6533c719acff
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_b.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_b.js
new file mode 100755
index 0000000000000000000000000000000000000000..6b87f3c0c6daf52bc78d3a2c6b2882f0401a90ef
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_b.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['multitreeviewfield',['multiTreeviewField',['../class_html_form.html#a3670ff43b4b85bdb2c7e73fb54c7cf65',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_c.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_c.html
new file mode 100755
index 0000000000000000000000000000000000000000..7c2782dc714ac968d068f5d638ea49356d0f1111
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_c.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_c.js
new file mode 100755
index 0000000000000000000000000000000000000000..2f6f2b60cea869ebdfb9acbdcf6d3e8130ed340c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['nomessageformend',['noMessageFormEnd',['../class_html_form.html#a86c30fa8203e438971ebccc1cc735055',1,'HtmlForm']]],
+  ['numberfield',['numberField',['../class_html_form.html#a0789d82fcd257f4164f715ba7dbc4863',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_d.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_d.html
new file mode 100755
index 0000000000000000000000000000000000000000..0a90b36409cbb9e2a290958cfe704fbd061d3b65
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_d.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_d.js
new file mode 100755
index 0000000000000000000000000000000000000000..30634dac611d3c7879d6d61058378460cde5b7c4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_d.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['openlayers2field',['Openlayers2Field',['../class_html_form.html#a0811ddbcc2d055293801163572798fb6',1,'HtmlForm']]],
+  ['openlayersfield',['OpenlayersField',['../class_html_form.html#ab798968964b52f05cf92a12b1bbd2d19',1,'HtmlForm']]],
+  ['order',['order',['../classorder.html#aea180aa67914c470d867e37a31bcaaf1',1,'order']]],
+  ['orders',['orders',['../classorders.html#a3bd7c0cd1ff1dc28f1f3aaaa55e71d8c',1,'orders']]],
+  ['orderstatu',['orderStatu',['../classorder_statu.html#aff8c780c8a0ca4a20d3e4346d6f75b68',1,'orderStatu']]],
+  ['orderstatus',['orderStatus',['../classorder_status.html#a1b301d21ccc915a8f51216da174208e7',1,'orderStatus']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_e.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_e.html
new file mode 100755
index 0000000000000000000000000000000000000000..d667acbc7b0bded50dc7fb3a8664e87fc64183ec
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_e.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_e.js
new file mode 100755
index 0000000000000000000000000000000000000000..779d12d395ba71d661ed65c1a1c146d643bc9cc0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_e.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['passwordfield',['PasswordField',['../class_html_form.html#a7568feb4305d1f2988b5d7a32d844981',1,'HtmlForm']]],
+  ['period',['period',['../classperiod.html#a58a71a71b556e6a66b46a0e609f236f2',1,'period']]],
+  ['periods',['periods',['../classperiods.html#ab6e188ecfd5a51c70efb197a21eb3232',1,'periods']]],
+  ['predefinedlisttag',['predefinedListTag',['../class_html_form.html#ac7d3dbae4165f41b96c10ba1d537c549',1,'HtmlForm']]],
+  ['priorities',['priorities',['../classpriorities.html#a1abbdfb96d7cebba9ce94880d565c698',1,'priorities']]],
+  ['priority',['priority',['../classpriority.html#a2a119c542c44b5bc0447c6728c9ba23d',1,'priority']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_f.html b/src/module_gtf/module/gtf.doc/api_form/search/functions_f.html
new file mode 100755
index 0000000000000000000000000000000000000000..3b8daa32abe8f192e3a6c2f49244a847a7e6a560
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/functions_f.js b/src/module_gtf/module/gtf.doc/api_form/search/functions_f.js
new file mode 100755
index 0000000000000000000000000000000000000000..9586318992037d37e90b91efe8000b18e9a44a5d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/functions_f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['radiofield',['radioField',['../class_html_form.html#a36267c4c6a13a9c8d7f56dc3963c088d',1,'HtmlForm']]],
+  ['returnengineid',['returnEngineId',['../classorder.html#a5c8360e6b64d6b9daad5a794b73ab8f1',1,'order\returnEngineId()'],['../classsubscription.html#a5c8360e6b64d6b9daad5a794b73ab8f1',1,'subscription\returnEngineId()'],['../classsurvey.html#a5c8360e6b64d6b9daad5a794b73ab8f1',1,'survey\returnEngineId()']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/mag_sel.png b/src/module_gtf/module/gtf.doc/api_form/search/mag_sel.png
new file mode 100755
index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/search/mag_sel.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/nomatches.html b/src/module_gtf/module/gtf.doc/api_form/search/nomatches.html
new file mode 100755
index 0000000000000000000000000000000000000000..07b1f2f218918358dd8fe0d1ee8b09656f035d84
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/search.css b/src/module_gtf/module/gtf.doc/api_form/search/search.css
new file mode 100755
index 0000000000000000000000000000000000000000..f8e2a8b003686dc861c8d315dee662f5be2298c0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+    float: left;
+}
+
+#MSearchBox {
+    white-space : nowrap;
+    position: absolute;
+    float: none;
+    display: inline;
+    margin-top: 0px;
+    right: 0px;
+    width: 170px;
+    z-index: 102;
+    background-color: white;
+}
+
+#MSearchBox .left
+{
+    display:block;
+    position:absolute;
+    left:10px;
+    width:20px;
+    height:19px;
+    background:url('search_l.png') no-repeat;
+    background-position:right;
+}
+
+#MSearchSelect {
+    display:block;
+    position:absolute;
+    width:20px;
+    height:19px;
+}
+
+.left #MSearchSelect {
+    left:4px;
+}
+
+.right #MSearchSelect {
+    right:5px;
+}
+
+#MSearchField {
+    display:block;
+    position:absolute;
+    height:19px;
+    background:url('search_m.png') repeat-x;
+    border:none;
+    width:111px;
+    margin-left:20px;
+    padding-left:4px;
+    color: #909090;
+    outline: none;
+    font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+    margin-left:15px;
+}
+
+#MSearchBox .right {
+    display:block;
+    position:absolute;
+    right:10px;
+    top:0px;
+    width:20px;
+    height:19px;
+    background:url('search_r.png') no-repeat;
+    background-position:left;
+}
+
+#MSearchClose {
+    display: none;
+    position: absolute;
+    top: 4px;
+    background : none;
+    border: none;
+    margin: 0px 4px 0px 0px;
+    padding: 0px 0px;
+    outline: none;
+}
+
+.left #MSearchClose {
+    left: 6px;
+}
+
+.right #MSearchClose {
+    right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 1;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/search.js b/src/module_gtf/module/gtf.doc/api_form/search/search.js
new file mode 100755
index 0000000000000000000000000000000000000000..bd49c9d2ebcb13f8b090fc9cf7479eaf26fdf1e5
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/search.js
@@ -0,0 +1,801 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+  0: "$_abcdefghilmnoprstuw",
+  1: "cefghilopstuw",
+  2: "cefghilopstuw",
+  3: "_abcdefghilmnoprstuw",
+  4: "$"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "files",
+  3: "functions",
+  4: "variables"
+};
+
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16) 
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else 
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be 
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+   
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout) 
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow(); 
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else if (window.frames.MSearchResults.searchResults)
+      {
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+        if (elem) elem.focus();
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow(); 
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow(); 
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;  
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to 
+  // their default values if necessary. 
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block' 
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {  
+        searchField.value = '';  
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {  
+           element = element.firstChild;  
+        }
+        else if (element.nextSibling)
+        {  
+           element = element.nextSibling;  
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {  
+            element = element.nextSibling;  
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length && 
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown") 
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex) 
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          { 
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        } 
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/search_l.png b/src/module_gtf/module/gtf.doc/api_form/search/search_l.png
new file mode 100755
index 0000000000000000000000000000000000000000..c872f4da4a01d0754f923e6c94fd8159c0621bd1
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/search/search_l.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/search_m.png b/src/module_gtf/module/gtf.doc/api_form/search/search_m.png
new file mode 100755
index 0000000000000000000000000000000000000000..b429a16ba641960da1e52e5da85dc80fd82635c8
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/search/search_m.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/search_r.png b/src/module_gtf/module/gtf.doc/api_form/search/search_r.png
new file mode 100755
index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/search/search_r.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/variables_0.html b/src/module_gtf/module/gtf.doc/api_form/search/variables_0.html
new file mode 100755
index 0000000000000000000000000000000000000000..8f749b0285bf573698ecaa099541d6a3e96b8af4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/variables_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Chargement...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Recherche...</div>
+<div class="SRStatus" id="NoMatches">Aucune correspondance</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/api_form/search/variables_0.js b/src/module_gtf/module/gtf.doc/api_form/search/variables_0.js
new file mode 100755
index 0000000000000000000000000000000000000000..a432f0cfb510f5d6fc6e7686e57dcb4a90dd10a9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/search/variables_0.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+  ['_24afields',['$aFields',['../class_category.html#a2f9b558d76a2d1d580a9c610c49d8219',1,'Category\$aFields()'],['../class_user.html#a2f9b558d76a2d1d580a9c610c49d8219',1,'User\$aFields()']]],
+  ['_24aldap',['$aLdap',['../class_ldap.html#ad5b739d79b0df29ce5475660fa3f9ce4',1,'Ldap']]],
+  ['_24asql',['$aSql',['../_category_8class_8sql_8inc.html#acf6ca91b10f5bccf837c39782c135bac',1,'$aSql():&#160;Category.class.sql.inc'],['../_user_8class_8sql_8inc.html#ad04f154542c7e2805c3486312944b091',1,'$aSql():&#160;User.class.sql.inc']]],
+  ['_24autocomplete',['$autoComplete',['../class_html_form.html#abe155888154196c6af13bb2713a7ba8f',1,'HtmlForm']]],
+  ['_24csslabel',['$CssLabel',['../class_html_form.html#a522c98df8aa76415f9af4c73b4f134d0',1,'HtmlForm']]],
+  ['_24csstable',['$CssTable',['../class_html_form.html#adf13e3be0a9d4ac3cf11cf2efb1202ec',1,'HtmlForm']]],
+  ['_24cssvalue',['$CssValue',['../class_html_form.html#a0193719ef585474f274104e6604ec09b',1,'HtmlForm']]],
+  ['_24externurl',['$externUrl',['../class_html_form.html#a779b437bfa81bfcdfdb208eee9847816',1,'HtmlForm']]],
+  ['_24lang',['$lang',['../class_html_form.html#a7714b111b644017933931ec69a154102',1,'HtmlForm']]],
+  ['_24methode',['$methode',['../class_html_form.html#a87c97603d5d79a9258db9486ade04428',1,'HtmlForm']]],
+  ['_24nbchamps',['$nbChamps',['../class_html_form.html#a20800c5d17fba2ea9bc73ce2ef15180e',1,'HtmlForm']]],
+  ['_24onsubmit',['$onSubmit',['../class_html_form.html#aad5d0a900d4ea7554a839231f89c6625',1,'HtmlForm']]],
+  ['_24sfolderlib',['$sFolderLib',['../class_html_form.html#a2d1691438b59a81ea0651f06639bbfad',1,'HtmlForm']]],
+  ['_24spkfield',['$sPkField',['../classorder.html#a907661236442af049dee8f42d066733b',1,'order\$sPkField()'],['../classsubscription.html#a907661236442af049dee8f42d066733b',1,'subscription\$sPkField()'],['../classsurvey.html#a907661236442af049dee8f42d066733b',1,'survey\$sPkField()'],['../classworkspace.html#a907661236442af049dee8f42d066733b',1,'workspace\$sPkField()']]],
+  ['_24sschemagtf',['$sSchemaGtf',['../class_category.html#ac018cfa750b4f5ee92b9b331a54ad989',1,'Category']]],
+  ['_24stable',['$sTable',['../classorder.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'order\$sTable()'],['../classsubscription.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'subscription\$sTable()'],['../classsurvey.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'survey\$sTable()'],['../classworkspace.html#a6b7d3b9c752a0c977de5ddae78b522a9',1,'workspace\$sTable()']]],
+  ['_24transfertfichier',['$transfertFichier',['../class_html_form.html#a4c5351d0ff65c65b928458803979ee8f',1,'HtmlForm']]]
+];
diff --git a/src/module_gtf/module/gtf.doc/api_form/sync_off.png b/src/module_gtf/module/gtf.doc/api_form/sync_off.png
new file mode 100755
index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/sync_off.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/sync_on.png b/src/module_gtf/module/gtf.doc/api_form/sync_on.png
new file mode 100755
index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/sync_on.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/tab_a.png b/src/module_gtf/module/gtf.doc/api_form/tab_a.png
new file mode 100755
index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/tab_a.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/tab_b.png b/src/module_gtf/module/gtf.doc/api_form/tab_b.png
new file mode 100755
index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/tab_b.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/tab_h.png b/src/module_gtf/module/gtf.doc/api_form/tab_h.png
new file mode 100755
index 0000000000000000000000000000000000000000..fd5cb705488e60fcf30f56fcc951dee74f3b095b
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/tab_h.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/tab_s.png b/src/module_gtf/module/gtf.doc/api_form/tab_s.png
new file mode 100755
index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50
Binary files /dev/null and b/src/module_gtf/module/gtf.doc/api_form/tab_s.png differ
diff --git a/src/module_gtf/module/gtf.doc/api_form/tabs.css b/src/module_gtf/module/gtf.doc/api_form/tabs.css
new file mode 100755
index 0000000000000000000000000000000000000000..9cf578f23a154ff026365d61ea59013ad431466b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/api_form/tabs.css
@@ -0,0 +1,60 @@
+.tabs, .tabs2, .tabs3 {
+    background-image: url('tab_b.png');
+    width: 100%;
+    z-index: 101;
+    font-size: 13px;
+    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+    font-size: 10px;
+}
+.tabs3 {
+    font-size: 9px;
+}
+
+.tablist {
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    display: table-cell;
+    background-image: url('tab_b.png');
+    line-height: 36px;
+    list-style: none;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 20px;
+    font-weight: bold;
+    background-image:url('tab_s.png');
+    background-repeat:no-repeat;
+    background-position:right;
+    color: #283A5D;
+    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-image: url('tab_h.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-image: url('tab_a.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/vas/doc/css/reset.css b/src/module_gtf/module/gtf.doc/web_services/css/reset.css
similarity index 100%
rename from vas/doc/css/reset.css
rename to src/module_gtf/module/gtf.doc/web_services/css/reset.css
diff --git a/vas/doc/css/screen.css b/src/module_gtf/module/gtf.doc/web_services/css/screen.css
similarity index 100%
rename from vas/doc/css/screen.css
rename to src/module_gtf/module/gtf.doc/web_services/css/screen.css
diff --git a/src/module_gtf/module/gtf.doc/web_services/css/style.css b/src/module_gtf/module/gtf.doc/web_services/css/style.css
new file mode 100755
index 0000000000000000000000000000000000000000..99d23e263183d4b0d8abab8632d1aa1e40558d1f
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/css/style.css
@@ -0,0 +1,42 @@
+body{
+	text-align: justify;
+	font-size: arial;
+}
+
+#logo{
+	height: 150px;
+}
+
+#logo img{
+	margin-left: 100px;
+	float:right;
+}
+
+h1{
+	font-size: 50px;
+}
+
+section{
+	margin-left: 180px;
+	margin-right: 20px;
+}
+
+nav{
+	top:10px;
+	width: 130px;
+	height: inherit;
+	margin-left: 30px;
+	position:relative;
+	float:left;
+}
+
+.separation{
+	clear: both;
+	position: absolute;
+	margin-top : 10px;
+	margin-left: 150px;
+	height: 300px;
+	width : 2px;
+	background: black;
+	overflow : hidden;
+}
\ No newline at end of file
diff --git a/vas/doc/images/gtf_ws.png b/src/module_gtf/module/gtf.doc/web_services/images/gtf_ws.png
similarity index 100%
rename from vas/doc/images/gtf_ws.png
rename to src/module_gtf/module/gtf.doc/web_services/images/gtf_ws.png
diff --git a/vas/doc/images/order.png b/src/module_gtf/module/gtf.doc/web_services/images/order.png
similarity index 100%
rename from vas/doc/images/order.png
rename to src/module_gtf/module/gtf.doc/web_services/images/order.png
diff --git a/vas/doc/images/overview.png b/src/module_gtf/module/gtf.doc/web_services/images/overview.png
similarity index 100%
rename from vas/doc/images/overview.png
rename to src/module_gtf/module/gtf.doc/web_services/images/overview.png
diff --git a/vas/doc/images/rest.png b/src/module_gtf/module/gtf.doc/web_services/images/rest.png
similarity index 100%
rename from vas/doc/images/rest.png
rename to src/module_gtf/module/gtf.doc/web_services/images/rest.png
diff --git a/vas/doc/images/throbber.gif b/src/module_gtf/module/gtf.doc/web_services/images/throbber.gif
similarity index 100%
rename from vas/doc/images/throbber.gif
rename to src/module_gtf/module/gtf.doc/web_services/images/throbber.gif
diff --git a/vas/doc/images/token.png b/src/module_gtf/module/gtf.doc/web_services/images/token.png
similarity index 100%
rename from vas/doc/images/token.png
rename to src/module_gtf/module/gtf.doc/web_services/images/token.png
diff --git a/vas/doc/images/workspace.png b/src/module_gtf/module/gtf.doc/web_services/images/workspace.png
similarity index 100%
rename from vas/doc/images/workspace.png
rename to src/module_gtf/module/gtf.doc/web_services/images/workspace.png
diff --git a/src/module_gtf/module/gtf.doc/web_services/index.phtml b/src/module_gtf/module/gtf.doc/web_services/index.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..5aef3baf04a5c5c1fc6728301ded40cca98cdbd4
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/index.phtml
@@ -0,0 +1,127 @@
+<?php
+session_start();
+require("../../gtf.client/properties.inc");
+?>
+<!DOCTYPE html>
+<html>
+<head>
+	<title>GTF-ws</title>
+	<link href='css/reset.css' rel='stylesheet' type='text/css'/>
+	<link href='css/screen.css' rel='stylesheet' type='text/css'/>
+	<link href='css/style.css' rel='stylesheet' type='text/css'/>
+	<script src='javascript/shred.bundle.js' type="text/javascript"></script>
+	<script src='javascript/jquery-1.8.0.min.js' type='text/javascript'></script>
+	<script src='javascript/jquery.slideto.min.js' type='text/javascript'></script>
+	<script src='javascript/jquery.wiggle.min.js' type='text/javascript'></script>
+	<script src='javascript/jquery.ba-bbq.min.js' type='text/javascript'></script>
+	<script src='javascript/handlebars-1.0.0.js' type='text/javascript'></script>
+	<script src='javascript/underscore-min.js' type='text/javascript'></script>
+	<script src='javascript/backbone-min.js' type='text/javascript'></script>
+	<script src='javascript/swagger.js' type='text/javascript'></script>
+	<script src='javascript/swagger-ui.min.js' type='text/javascript'></script>
+	<script src='javascript/highlight.7.3.pack.js' type='text/javascript'></script>
+	<script type="text/javascript">
+		var sToken = "";
+		var sService="overview";
+		var sServiceAlias="<?php echo $properties['services_alias']?>";
+
+		function FinToken(code) {
+			if(sService=="token"){
+				if(code.text() != ""){
+					var responseText = code.text();
+					var temp = responseText.split("    ");
+					//json
+					if(responseText[0]=="{"){
+						var temp2 = temp[3].split(" ");
+						var token = temp2[1].slice(1,-3);
+					}else{
+					//xml
+						var temp2 = temp[1].split(">");
+						var temp3 = temp2[1].split("<");
+						var token = temp3[0];
+					}
+					if(token.length>1){
+						sToken = token;
+					}
+				}
+			}
+		}
+							
+		function LoadApi() {
+			window.swaggerUi = new SwaggerUi({
+				url: "services/" + sService + "/main",
+				generalBasePath : sServiceAlias + "/" + sService,
+				dom_id: "swagger-ui-container",
+				supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
+				onComplete: function(swaggerApi, swaggerUi){
+					$('pre code').each(function(i, e) {
+						hljs.highlightBlock(e)
+					});
+					if(sToken!=""){
+						$( "input[name='token']").each(function() {
+							$(this).attr("value",sToken);
+						});
+					}	
+				},
+				onFailure: function(data) {
+					log("Unable to Load SwaggerUI");
+				},
+				docExpansion: "none"
+			});
+			window.swaggerUi.load();
+			LoadOverview();
+		}
+		
+		function LoadOverview() {
+			if(sService!="overview"){
+				var sUrl = "services/"+sService+"/overview.phtml";
+			}else{
+				var sUrl = "services/overview.phtml";
+				$('#swagger-ui-container').empty();
+			}
+			$.ajax({
+				url: sUrl,
+				success:
+					function(data){
+						$('#overview').html(data);
+						if(sService!="overview"){						
+							$('.linkOverview').remove();
+						}else{						
+							$('.titleOverview').remove();
+						}
+					}
+			});
+		}
+		$( document ).ready(function(){
+			if (top.frames.length==0){
+				$('#logo').show();
+				$('#br').hide();
+			}else{
+				sToken = "<?php echo session_id(); ?>";
+			}
+		});
+		LoadOverview();
+	</script>
+</head>
+
+<body class="swagger-section">
+		<header>
+			<div id="logo" style="display:none"><img  src="images/gtf_ws.png"></div>
+			<br id="br">
+		</header>
+	<div>
+		<nav>
+			<a href="javascript:sService='overview';LoadOverview()"><img src="images/overview.png"></a><br><br>
+			<a href="javascript:sService='token';LoadApi()"><img src="images/token.png"></a><br><br>
+			<a href="javascript:sService='rest';LoadApi();"><img src="images/rest.png"></a><br><br>
+			<a href="javascript:sService='workspace';LoadApi()"><img src="images/workspace.png"></a><br><br>
+			<a href="javascript:sService='order';LoadApi()"><img src="images/order.png"></a>
+		</nav>
+		<hr class="separation" />
+		<section>
+			<div id="overview" class="swagger-ui-wrap"></div>
+			<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
+		</section>
+	</div>
+</body>
+</html>
diff --git a/src/module_gtf/module/gtf.doc/web_services/javascript/backbone-min.js b/src/module_gtf/module/gtf.doc/web_services/javascript/backbone-min.js
new file mode 100755
index 0000000000000000000000000000000000000000..c1c0d4fff28ffcc865d0d47397f284f0ccdcc516
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/javascript/backbone-min.js
@@ -0,0 +1,38 @@
+// Backbone.js 0.9.2
+
+// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Backbone may be freely distributed under the MIT license.
+// For all details and documentation:
+// http://backbonejs.org
+(function(){var l=this,y=l.Backbone,z=Array.prototype.slice,A=Array.prototype.splice,g;g="undefined"!==typeof exports?exports:l.Backbone={};g.VERSION="0.9.2";var f=l._;!f&&"undefined"!==typeof require&&(f=require("underscore"));var i=l.jQuery||l.Zepto||l.ender;g.setDomLibrary=function(a){i=a};g.noConflict=function(){l.Backbone=y;return this};g.emulateHTTP=!1;g.emulateJSON=!1;var p=/\s+/,k=g.Events={on:function(a,b,c){var d,e,f,g,j;if(!b)return this;a=a.split(p);for(d=this._callbacks||(this._callbacks=
+{});e=a.shift();)f=(j=d[e])?j.tail:{},f.next=g={},f.context=c,f.callback=b,d[e]={tail:g,next:j?j.next:f};return this},off:function(a,b,c){var d,e,h,g,j,q;if(e=this._callbacks){if(!a&&!b&&!c)return delete this._callbacks,this;for(a=a?a.split(p):f.keys(e);d=a.shift();)if(h=e[d],delete e[d],h&&(b||c))for(g=h.tail;(h=h.next)!==g;)if(j=h.callback,q=h.context,b&&j!==b||c&&q!==c)this.on(d,j,q);return this}},trigger:function(a){var b,c,d,e,f,g;if(!(d=this._callbacks))return this;f=d.all;a=a.split(p);for(g=
+z.call(arguments,1);b=a.shift();){if(c=d[b])for(e=c.tail;(c=c.next)!==e;)c.callback.apply(c.context||this,g);if(c=f){e=c.tail;for(b=[b].concat(g);(c=c.next)!==e;)c.callback.apply(c.context||this,b)}}return this}};k.bind=k.on;k.unbind=k.off;var o=g.Model=function(a,b){var c;a||(a={});b&&b.parse&&(a=this.parse(a));if(c=n(this,"defaults"))a=f.extend({},c,a);b&&b.collection&&(this.collection=b.collection);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");this.changed={};this._silent=
+{};this._pending={};this.set(a,{silent:!0});this.changed={};this._silent={};this._pending={};this._previousAttributes=f.clone(this.attributes);this.initialize.apply(this,arguments)};f.extend(o.prototype,k,{changed:null,_silent:null,_pending:null,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.get(a);return this._escapedAttributes[a]=f.escape(null==
+b?"":""+b)},has:function(a){return null!=this.get(a)},set:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c||(c={});if(!d)return this;d instanceof o&&(d=d.attributes);if(c.unset)for(e in d)d[e]=void 0;if(!this._validate(d,c))return!1;this.idAttribute in d&&(this.id=d[this.idAttribute]);var b=c.changes={},h=this.attributes,g=this._escapedAttributes,j=this._previousAttributes||{};for(e in d){a=d[e];if(!f.isEqual(h[e],a)||c.unset&&f.has(h,e))delete g[e],(c.silent?this._silent:
+b)[e]=!0;c.unset?delete h[e]:h[e]=a;!f.isEqual(j[e],a)||f.has(h,e)!=f.has(j,e)?(this.changed[e]=a,c.silent||(this._pending[e]=!0)):(delete this.changed[e],delete this._pending[e])}c.silent||this.change(c);return this},unset:function(a,b){(b||(b={})).unset=!0;return this.set(a,null,b)},clear:function(a){(a||(a={})).unset=!0;return this.set(f.clone(this.attributes),a)},fetch:function(a){var a=a?f.clone(a):{},b=this,c=a.success;a.success=function(d,e,f){if(!b.set(b.parse(d,f),a))return!1;c&&c(b,d)};
+a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},save:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c=c?f.clone(c):{};if(c.wait){if(!this._validate(d,c))return!1;e=f.clone(this.attributes)}a=f.extend({},c,{silent:!0});if(d&&!this.set(d,c.wait?a:c))return!1;var h=this,i=c.success;c.success=function(a,b,e){b=h.parse(a,e);if(c.wait){delete c.wait;b=f.extend(d||{},b)}if(!h.set(b,c))return false;i?i(h,a):h.trigger("sync",h,a,c)};c.error=g.wrapError(c.error,
+h,c);b=this.isNew()?"create":"update";b=(this.sync||g.sync).call(this,b,this,c);c.wait&&this.set(e,a);return b},destroy:function(a){var a=a?f.clone(a):{},b=this,c=a.success,d=function(){b.trigger("destroy",b,b.collection,a)};if(this.isNew())return d(),!1;a.success=function(e){a.wait&&d();c?c(b,e):b.trigger("sync",b,e,a)};a.error=g.wrapError(a.error,b,a);var e=(this.sync||g.sync).call(this,"delete",this,a);a.wait||d();return e},url:function(){var a=n(this,"urlRoot")||n(this.collection,"url")||t();
+return this.isNew()?a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},change:function(a){a||(a={});var b=this._changing;this._changing=!0;for(var c in this._silent)this._pending[c]=!0;var d=f.extend({},a.changes,this._silent);this._silent={};for(c in d)this.trigger("change:"+c,this,this.get(c),a);if(b)return this;for(;!f.isEmpty(this._pending);){this._pending=
+{};this.trigger("change",this,a);for(c in this.changed)!this._pending[c]&&!this._silent[c]&&delete this.changed[c];this._previousAttributes=f.clone(this.attributes)}this._changing=!1;return this},hasChanged:function(a){return!arguments.length?!f.isEmpty(this.changed):f.has(this.changed,a)},changedAttributes:function(a){if(!a)return this.hasChanged()?f.clone(this.changed):!1;var b,c=!1,d=this._previousAttributes,e;for(e in a)if(!f.isEqual(d[e],b=a[e]))(c||(c={}))[e]=b;return c},previous:function(a){return!arguments.length||
+!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},isValid:function(){return!this.validate(this.attributes)},_validate:function(a,b){if(b.silent||!this.validate)return!0;var a=f.extend({},this.attributes,a),c=this.validate(a,b);if(!c)return!0;b&&b.error?b.error(this,c,b):this.trigger("error",this,c,b);return!1}});var r=g.Collection=function(a,b){b||(b={});b.model&&(this.model=b.model);b.comparator&&(this.comparator=b.comparator);
+this._reset();this.initialize.apply(this,arguments);a&&this.reset(a,{silent:!0,parse:b.parse})};f.extend(r.prototype,k,{model:o,initialize:function(){},toJSON:function(a){return this.map(function(b){return b.toJSON(a)})},add:function(a,b){var c,d,e,g,i,j={},k={},l=[];b||(b={});a=f.isArray(a)?a.slice():[a];c=0;for(d=a.length;c<d;c++){if(!(e=a[c]=this._prepareModel(a[c],b)))throw Error("Can't add an invalid model to a collection");g=e.cid;i=e.id;j[g]||this._byCid[g]||null!=i&&(k[i]||this._byId[i])?
+l.push(c):j[g]=k[i]=e}for(c=l.length;c--;)a.splice(l[c],1);c=0;for(d=a.length;c<d;c++)(e=a[c]).on("all",this._onModelEvent,this),this._byCid[e.cid]=e,null!=e.id&&(this._byId[e.id]=e);this.length+=d;A.apply(this.models,[null!=b.at?b.at:this.models.length,0].concat(a));this.comparator&&this.sort({silent:!0});if(b.silent)return this;c=0;for(d=this.models.length;c<d;c++)if(j[(e=this.models[c]).cid])b.index=c,e.trigger("add",e,this,b);return this},remove:function(a,b){var c,d,e,g;b||(b={});a=f.isArray(a)?
+a.slice():[a];c=0;for(d=a.length;c<d;c++)if(g=this.getByCid(a[c])||this.get(a[c]))delete this._byId[g.id],delete this._byCid[g.cid],e=this.indexOf(g),this.models.splice(e,1),this.length--,b.silent||(b.index=e,g.trigger("remove",g,this,b)),this._removeReference(g);return this},push:function(a,b){a=this._prepareModel(a,b);this.add(a,b);return a},pop:function(a){var b=this.at(this.length-1);this.remove(b,a);return b},unshift:function(a,b){a=this._prepareModel(a,b);this.add(a,f.extend({at:0},b));return a},
+shift:function(a){var b=this.at(0);this.remove(b,a);return b},get:function(a){return null==a?void 0:this._byId[null!=a.id?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},where:function(a){return f.isEmpty(a)?[]:this.filter(function(b){for(var c in a)if(a[c]!==b.get(c))return!1;return!0})},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");var b=f.bind(this.comparator,this);1==this.comparator.length?
+this.models=this.sortBy(b):this.models.sort(b);a.silent||this.trigger("reset",this,a);return this},pluck:function(a){return f.map(this.models,function(b){return b.get(a)})},reset:function(a,b){a||(a=[]);b||(b={});for(var c=0,d=this.models.length;c<d;c++)this._removeReference(this.models[c]);this._reset();this.add(a,f.extend({silent:!0},b));b.silent||this.trigger("reset",this,b);return this},fetch:function(a){a=a?f.clone(a):{};void 0===a.parse&&(a.parse=!0);var b=this,c=a.success;a.success=function(d,
+e,f){b[a.add?"add":"reset"](b.parse(d,f),a);c&&c(b,d)};a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},create:function(a,b){var c=this,b=b?f.clone(b):{},a=this._prepareModel(a,b);if(!a)return!1;b.wait||c.add(a,b);var d=b.success;b.success=function(e,f){b.wait&&c.add(e,b);d?d(e,f):e.trigger("sync",a,f,b)};a.save(null,b);return a},parse:function(a){return a},chain:function(){return f(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId=
+{};this._byCid={}},_prepareModel:function(a,b){b||(b={});a instanceof o?a.collection||(a.collection=this):(b.collection=this,a=new this.model(a,b),a._validate(a.attributes,b)||(a=!1));return a},_removeReference:function(a){this==a.collection&&delete a.collection;a.off("all",this._onModelEvent,this)},_onModelEvent:function(a,b,c,d){("add"==a||"remove"==a)&&c!=this||("destroy"==a&&this.remove(b,d),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,
+arguments))}});f.each("forEach,each,map,reduce,reduceRight,find,detect,filter,select,reject,every,all,some,any,include,contains,invoke,max,min,sortBy,sortedIndex,toArray,size,first,initial,rest,last,without,indexOf,shuffle,lastIndexOf,isEmpty,groupBy".split(","),function(a){r.prototype[a]=function(){return f[a].apply(f,[this.models].concat(f.toArray(arguments)))}});var u=g.Router=function(a){a||(a={});a.routes&&(this.routes=a.routes);this._bindRoutes();this.initialize.apply(this,arguments)},B=/:\w+/g,
+C=/\*\w+/g,D=/[-[\]{}()+?.,\\^$|#\s]/g;f.extend(u.prototype,k,{initialize:function(){},route:function(a,b,c){g.history||(g.history=new m);f.isRegExp(a)||(a=this._routeToRegExp(a));c||(c=this[b]);g.history.route(a,f.bind(function(d){d=this._extractParameters(a,d);c&&c.apply(this,d);this.trigger.apply(this,["route:"+b].concat(d));g.history.trigger("route",this,b,d)},this));return this},navigate:function(a,b){g.history.navigate(a,b)},_bindRoutes:function(){if(this.routes){var a=[],b;for(b in this.routes)a.unshift([b,
+this.routes[b]]);b=0;for(var c=a.length;b<c;b++)this.route(a[b][0],a[b][1],this[a[b][1]])}},_routeToRegExp:function(a){a=a.replace(D,"\\$&").replace(B,"([^/]+)").replace(C,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});var m=g.History=function(){this.handlers=[];f.bindAll(this,"checkUrl")},s=/^[#\/]/,E=/msie [\w.]+/;m.started=!1;f.extend(m.prototype,k,{interval:50,getHash:function(a){return(a=(a?a.location:window.location).href.match(/#(.*)$/))?a[1]:
+""},getFragment:function(a,b){if(null==a)if(this._hasPushState||b){var a=window.location.pathname,c=window.location.search;c&&(a+=c)}else a=this.getHash();a.indexOf(this.options.root)||(a=a.substr(this.options.root.length));return a.replace(s,"")},start:function(a){if(m.started)throw Error("Backbone.history has already been started");m.started=!0;this.options=f.extend({},{root:"/"},this.options,a);this._wantsHashChange=!1!==this.options.hashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=
+!(!this.options.pushState||!window.history||!window.history.pushState);var a=this.getFragment(),b=document.documentMode;if(b=E.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b))this.iframe=i('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(a);this._hasPushState?i(window).bind("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!b?i(window).bind("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,
+this.interval));this.fragment=a;a=window.location;b=a.pathname==this.options.root;if(this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!b)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+"#"+this.fragment),!0;this._wantsPushState&&this._hasPushState&&b&&a.hash&&(this.fragment=this.getHash().replace(s,""),window.history.replaceState({},document.title,a.protocol+"//"+a.host+this.options.root+this.fragment));if(!this.options.silent)return this.loadUrl()},
+stop:function(){i(window).unbind("popstate",this.checkUrl).unbind("hashchange",this.checkUrl);clearInterval(this._checkUrlInterval);m.started=!1},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();a==this.fragment&&this.iframe&&(a=this.getFragment(this.getHash(this.iframe)));if(a==this.fragment)return!1;this.iframe&&this.navigate(a);this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(a){var b=this.fragment=this.getFragment(a);return f.any(this.handlers,
+function(a){if(a.route.test(b))return a.callback(b),!0})},navigate:function(a,b){if(!m.started)return!1;if(!b||!0===b)b={trigger:b};var c=(a||"").replace(s,"");this.fragment!=c&&(this._hasPushState?(0!=c.indexOf(this.options.root)&&(c=this.options.root+c),this.fragment=c,window.history[b.replace?"replaceState":"pushState"]({},document.title,c)):this._wantsHashChange?(this.fragment=c,this._updateHash(window.location,c,b.replace),this.iframe&&c!=this.getFragment(this.getHash(this.iframe))&&(b.replace||
+this.iframe.document.open().close(),this._updateHash(this.iframe.location,c,b.replace))):window.location.assign(this.options.root+a),b.trigger&&this.loadUrl(a))},_updateHash:function(a,b,c){c?a.replace(a.toString().replace(/(javascript:|#).*$/,"")+"#"+b):a.hash=b}});var v=g.View=function(a){this.cid=f.uniqueId("view");this._configure(a||{});this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()},F=/^(\S+)\s*(.*)$/,w="model,collection,el,id,attributes,className,tagName".split(",");
+f.extend(v.prototype,k,{tagName:"div",$:function(a){return this.$el.find(a)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();return this},make:function(a,b,c){a=document.createElement(a);b&&i(a).attr(b);c&&i(a).html(c);return a},setElement:function(a,b){this.$el&&this.undelegateEvents();this.$el=a instanceof i?a:i(a);this.el=this.$el[0];!1!==b&&this.delegateEvents();return this},delegateEvents:function(a){if(a||(a=n(this,"events"))){this.undelegateEvents();
+for(var b in a){var c=a[b];f.isFunction(c)||(c=this[a[b]]);if(!c)throw Error('Method "'+a[b]+'" does not exist');var d=b.match(F),e=d[1],d=d[2],c=f.bind(c,this),e=e+(".delegateEvents"+this.cid);""===d?this.$el.bind(e,c):this.$el.delegate(d,e,c)}}},undelegateEvents:function(){this.$el.unbind(".delegateEvents"+this.cid)},_configure:function(a){this.options&&(a=f.extend({},this.options,a));for(var b=0,c=w.length;b<c;b++){var d=w[b];a[d]&&(this[d]=a[d])}this.options=a},_ensureElement:function(){if(this.el)this.setElement(this.el,
+!1);else{var a=n(this,"attributes")||{};this.id&&(a.id=this.id);this.className&&(a["class"]=this.className);this.setElement(this.make(this.tagName,a),!1)}}});o.extend=r.extend=u.extend=v.extend=function(a,b){var c=G(this,a,b);c.extend=this.extend;return c};var H={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};g.sync=function(a,b,c){var d=H[a];c||(c={});var e={type:d,dataType:"json"};c.url||(e.url=n(b,"url")||t());if(!c.data&&b&&("create"==a||"update"==a))e.contentType="application/json",
+e.data=JSON.stringify(b.toJSON());g.emulateJSON&&(e.contentType="application/x-www-form-urlencoded",e.data=e.data?{model:e.data}:{});if(g.emulateHTTP&&("PUT"===d||"DELETE"===d))g.emulateJSON&&(e.data._method=d),e.type="POST",e.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",d)};"GET"!==e.type&&!g.emulateJSON&&(e.processData=!1);return i.ajax(f.extend(e,c))};g.wrapError=function(a,b,c){return function(d,e){e=d===b?e:d;a?a(b,e,c):b.trigger("error",b,e,c)}};var x=function(){},G=function(a,
+b,c){var d;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){a.apply(this,arguments)};f.extend(d,a);x.prototype=a.prototype;d.prototype=new x;b&&f.extend(d.prototype,b);c&&f.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d},n=function(a,b){return!a||!a[b]?null:f.isFunction(a[b])?a[b]():a[b]},t=function(){throw Error('A "url" property or function must be specified');}}).call(this);
diff --git a/vas/doc/javascript/handlebars-1.0.0.js b/src/module_gtf/module/gtf.doc/web_services/javascript/handlebars-1.0.0.js
similarity index 100%
rename from vas/doc/javascript/handlebars-1.0.0.js
rename to src/module_gtf/module/gtf.doc/web_services/javascript/handlebars-1.0.0.js
diff --git a/vas/doc/javascript/highlight.7.3.pack.js b/src/module_gtf/module/gtf.doc/web_services/javascript/highlight.7.3.pack.js
similarity index 100%
rename from vas/doc/javascript/highlight.7.3.pack.js
rename to src/module_gtf/module/gtf.doc/web_services/javascript/highlight.7.3.pack.js
diff --git a/src/module_gtf/module/gtf.doc/web_services/javascript/jquery-1.8.0.min.js b/src/module_gtf/module/gtf.doc/web_services/javascript/jquery-1.8.0.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..f121291c4c7a6a8fb48e5c53d28c84fe07a5842c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/javascript/jquery-1.8.0.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v@1.8.0 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bY(c)&&(e[f]=p._data(c,"olddisplay",cb(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function b_(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bU[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bU[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bU[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bU[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bU[e]+"Width"))||0));return f}function ca(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?"border":"content"),e)+"px"}function cb(a){if(bR[a])return bR[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cz(a,c,d,e,"*",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=r.test(" ")?/^[\s\xA0]+|[\s\xA0]+$/g:/^\s+|\s+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":a.toString().replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete"||e.readyState!=="loading"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)(d=p._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)~f.indexOf(" "+b[g]+" ")||(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||"*",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(""),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="<a name='"+q+"'></a><div name='"+q+"'></div>",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}}),V&&($.order.push("NAME"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,"CLASS"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||"").replace(K,""),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],""),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG("*",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[],f=[":active"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML="<select><option selected></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment=="undefined"&&(c=e),a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ("show"),slideUp:cZ("hide"),slideToggle:cZ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);
\ No newline at end of file
diff --git a/vas/doc/javascript/jquery.ba-bbq.min.js b/src/module_gtf/module/gtf.doc/web_services/javascript/jquery.ba-bbq.min.js
similarity index 100%
rename from vas/doc/javascript/jquery.ba-bbq.min.js
rename to src/module_gtf/module/gtf.doc/web_services/javascript/jquery.ba-bbq.min.js
diff --git a/vas/doc/javascript/jquery.slideto.min.js b/src/module_gtf/module/gtf.doc/web_services/javascript/jquery.slideto.min.js
similarity index 100%
rename from vas/doc/javascript/jquery.slideto.min.js
rename to src/module_gtf/module/gtf.doc/web_services/javascript/jquery.slideto.min.js
diff --git a/vas/doc/javascript/jquery.wiggle.min.js b/src/module_gtf/module/gtf.doc/web_services/javascript/jquery.wiggle.min.js
similarity index 100%
rename from vas/doc/javascript/jquery.wiggle.min.js
rename to src/module_gtf/module/gtf.doc/web_services/javascript/jquery.wiggle.min.js
diff --git a/vas/doc/javascript/shred.bundle.js b/src/module_gtf/module/gtf.doc/web_services/javascript/shred.bundle.js
similarity index 100%
rename from vas/doc/javascript/shred.bundle.js
rename to src/module_gtf/module/gtf.doc/web_services/javascript/shred.bundle.js
diff --git a/vas/doc/javascript/shred/content.js b/src/module_gtf/module/gtf.doc/web_services/javascript/shred/content.js
similarity index 100%
rename from vas/doc/javascript/shred/content.js
rename to src/module_gtf/module/gtf.doc/web_services/javascript/shred/content.js
diff --git a/src/module_gtf/module/gtf.doc/web_services/javascript/swagger-ui.min.js b/src/module_gtf/module/gtf.doc/web_services/javascript/swagger-ui.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..ae67cd4673508212d023afd06a7ce0aed7c22f51
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/javascript/swagger-ui.min.js
@@ -0,0 +1 @@
+$(function(){$.fn.vAlign=function(){return this.each(function(c){var a=$(this).height();var d=$(this).parent().height();var b=(d-a)/2;$(this).css("margin-top",b)})};$.fn.stretchFormtasticInputWidthToParent=function(){return this.each(function(b){var d=$(this).closest("form").innerWidth();var c=parseInt($(this).closest("form").css("padding-left"),10)+parseInt($(this).closest("form").css("padding-right"),10);var a=parseInt($(this).css("padding-left"),10)+parseInt($(this).css("padding-right"),10);$(this).css("width",d-c-a)})};$("form.formtastic li.string input, form.formtastic textarea").stretchFormtasticInputWidthToParent();$("ul.downplayed li div.content p").vAlign();$("form.sandbox").submit(function(){var a=true;$(this).find("input.required").each(function(){$(this).removeClass("error");if($(this).val()==""){$(this).addClass("error");$(this).wiggle();a=false}});return a})});function clippyCopiedCallback(b){$("#api_key_copied").fadeIn().delay(1000).fadeOut()}log=function(){log.history=log.history||[];log.history.push(arguments);if(this.console){console.log(Array.prototype.slice.call(arguments))}};if(Function.prototype.bind&&console&&typeof console.log=="object"){["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(a){console[a]=this.bind(console[a],console)},Function.prototype.call)}var Docs={shebang:function(){var b=$.param.fragment().split("/");b.shift();switch(b.length){case 1:log("shebang resource:"+b[0]);var d="resource_"+b[0];Docs.expandEndpointListForResource(b[0]);$("#"+d).slideto({highlight:false});break;case 2:log("shebang endpoint: "+b.join("_"));Docs.expandEndpointListForResource(b[0]);$("#"+d).slideto({highlight:false});var c=b.join("_");var a=c+"_content";log("li_dom_id "+c);log("li_content_dom_id "+a);Docs.expandOperation($("#"+a));$("#"+c).slideto({highlight:false});break}},toggleEndpointListForResource:function(b){var a=$("li#resource_"+Docs.escapeResourceName(b)+" ul.endpoints");if(a.is(":visible")){Docs.collapseEndpointListForResource(b)}else{Docs.expandEndpointListForResource(b)}},expandEndpointListForResource:function(b){var b=Docs.escapeResourceName(b);if(b==""){$(".resource ul.endpoints").slideDown();return}$("li#resource_"+b).addClass("active");var a=$("li#resource_"+b+" ul.endpoints");a.slideDown()},collapseEndpointListForResource:function(b){var b=Docs.escapeResourceName(b);$("li#resource_"+b).removeClass("active");var a=$("li#resource_"+b+" ul.endpoints");a.slideUp()},expandOperationsForResource:function(a){Docs.expandEndpointListForResource(a);if(a==""){$(".resource ul.endpoints li.operation div.content").slideDown();return}$("li#resource_"+Docs.escapeResourceName(a)+" li.operation div.content").each(function(){Docs.expandOperation($(this))})},collapseOperationsForResource:function(a){Docs.expandEndpointListForResource(a);$("li#resource_"+Docs.escapeResourceName(a)+" li.operation div.content").each(function(){Docs.collapseOperation($(this))})},escapeResourceName:function(a){return a.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g,"\\$&")},expandOperation:function(a){a.slideDown()},collapseOperation:function(a){a.slideUp()}};(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.content_type=b(function(g,l,f,k,j){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);j=j||{};var i="",c,h="function",m=this;function e(r,q){var o="",p;o+="\n  ";p=f.each.call(r,r.produces,{hash:{},inverse:m.noop,fn:m.program(2,d,q),data:q});if(p||p===0){o+=p}o+="\n";return o}function d(r,q){var o="",p;o+='\n	<option value="';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+='">';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+="</option>\n	";return o}function n(p,o){return'\n  <option value="application/json">application/json</option>\n'}i+='<label for="contentType"></label>\n<select name="contentType">\n';c=f["if"].call(l,l.produces,{hash:{},inverse:m.program(4,n,j),fn:m.program(1,e,j),data:j});if(c||c===0){i+=c}i+="\n</select>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.main=b(function(g,m,f,l,k){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);k=k||{};var i="",c,h="function",j=this.escapeExpression,p=this;function e(v,u){var r="",t,s;r+='\n    <div class="info_title">'+j(((t=((t=v.info),t==null||t===false?t:t.title)),typeof t===h?t.apply(v):t))+'</div>\n    <div class="info_description">';s=((t=((t=v.info),t==null||t===false?t:t.description)),typeof t===h?t.apply(v):t);if(s||s===0){r+=s}r+="</div>\n    ";s=f["if"].call(v,((t=v.info),t==null||t===false?t:t.termsOfServiceUrl),{hash:{},inverse:p.noop,fn:p.program(2,d,u),data:u});if(s||s===0){r+=s}r+="\n    ";s=f["if"].call(v,((t=v.info),t==null||t===false?t:t.contact),{hash:{},inverse:p.noop,fn:p.program(4,q,u),data:u});if(s||s===0){r+=s}r+="\n    ";s=f["if"].call(v,((t=v.info),t==null||t===false?t:t.license),{hash:{},inverse:p.noop,fn:p.program(6,o,u),data:u});if(s||s===0){r+=s}r+="\n  ";return r}function d(u,t){var r="",s;r+='<div class="info_tos"><a href="'+j(((s=((s=u.info),s==null||s===false?s:s.termsOfServiceUrl)),typeof s===h?s.apply(u):s))+'">Terms of service</a></div>';return r}function q(u,t){var r="",s;r+="<div class='info_contact'><a href=\"mailto:"+j(((s=((s=u.info),s==null||s===false?s:s.contact)),typeof s===h?s.apply(u):s))+'">Contact the developer</a></div>';return r}function o(u,t){var r="",s;r+="<div class='info_license'><a href='"+j(((s=((s=u.info),s==null||s===false?s:s.licenseUrl)),typeof s===h?s.apply(u):s))+"'>"+j(((s=((s=u.info),s==null||s===false?s:s.license)),typeof s===h?s.apply(u):s))+"</a></div>";return r}function n(u,t){var r="",s;r+='\n        , <span style="font-variant: small-caps">api version</span>: ';if(s=f.apiVersion){s=s.call(u,{hash:{},data:t})}else{s=u.apiVersion;s=typeof s===h?s.apply(u):s}r+=j(s)+"\n        ";return r}i+="<div class='info' id='api_info'>\n  ";c=f["if"].call(m,m.info,{hash:{},inverse:p.noop,fn:p.program(1,e,k),data:k});if(c||c===0){i+=c}i+="\n</div>\n<div class='container' id='resources_container'>\n    <ul id='resources'>\n    </ul>\n\n</div>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.operation=b(function(g,s,q,m,y){this.compilerInfo=[4,">= 1.0.0"];q=this.merge(q,g.helpers);y=y||{};var r="",i,f,e="function",d=this.escapeExpression,p=this,c=q.blockHelperMissing;function o(C,B){var z="",A;z+="\n        <h4>Implementation Notes</h4>\n        <p>";if(A=q.notes){A=A.call(C,{hash:{},data:B})}else{A=C.notes;A=typeof A===e?A.apply(C):A}if(A||A===0){z+=A}z+="</p>\n        ";return z}function n(A,z){return'\n        <div class="auth">\n        <span class="api-ic ic-error"></span>'}function l(C,B){var z="",A;z+='\n          <div id="api_information_panel" style="top: 526px; left: 776px; display: none;">\n          ';A=q.each.call(C,C,{hash:{},inverse:p.noop,fn:p.program(6,k,B),data:B});if(A||A===0){z+=A}z+="\n          </div>\n        ";return z}function k(D,C){var z="",B,A;z+="\n            <div title='";A=((B=D.description),typeof B===e?B.apply(D):B);if(A||A===0){z+=A}z+="'>"+d(((B=D.scope),typeof B===e?B.apply(D):B))+"</div>\n          ";return z}function h(A,z){return"</div>"}function x(A,z){return'\n        <div class=\'access\'>\n          <span class="api-ic ic-off" title="click to authenticate"></span>\n        </div>\n        '}function w(A,z){return'\n          <h4>Response Class</h4>\n          <p><span class="model-signature" /></p>\n          <br/>\n          <div class="response-content-type" />\n        '}function v(A,z){return'\n          <h4>Parameters</h4>\n          <table class=\'fullwidth\'>\n          <thead>\n            <tr>\n            <th style="width: 100px; max-width: 100px">Parameter</th>\n            <th style="width: 310px; max-width: 310px">Value</th>\n            <th style="width: 200px; max-width: 200px">Description</th>\n            <th style="width: 100px; max-width: 100px">Parameter Type</th>\n            <th style="width: 220px; max-width: 230px">Data Type</th>\n            </tr>\n          </thead>\n          <tbody class="operation-params">\n\n          </tbody>\n          </table>\n          '}function u(A,z){return"\n          <div style='margin:0;padding:0;display:inline'></div>\n          <h4>Response Messages</h4>\n          <table class='fullwidth'>\n            <thead>\n            <tr>\n              <th>HTTP Status Code</th>\n              <th>Reason</th>\n              <th>Response Model</th>\n            </tr>\n            </thead>\n            <tbody class=\"operation-status\">\n            \n            </tbody>\n          </table>\n          "}function t(A,z){return"\n          "}function j(A,z){return"\n          <div class='sandbox_header'>\n            <input class='submit' name='commit' type='button' value='Try it out!' />\n            <a href='#' class='response_hider' style='display:none'>Hide Response</a>\n            <img alt='Throbber' class='response_throbber' src='images/throbber.gif' style='display:none' />\n          </div>\n          "}r+="\n  <ul class='operations' >\n    <li class='";if(i=q.method){i=i.call(s,{hash:{},data:y})}else{i=s.method;i=typeof i===e?i.apply(s):i}r+=d(i)+" operation' id='";if(i=q.parentId){i=i.call(s,{hash:{},data:y})}else{i=s.parentId;i=typeof i===e?i.apply(s):i}r+=d(i)+"_";if(i=q.nickname){i=i.call(s,{hash:{},data:y})}else{i=s.nickname;i=typeof i===e?i.apply(s):i}r+=d(i)+"'>\n      <div class='heading'>\n        <h3>\n          <span class='http_method'>\n          <a href='#!/";if(i=q.parentId){i=i.call(s,{hash:{},data:y})}else{i=s.parentId;i=typeof i===e?i.apply(s):i}r+=d(i)+"/";if(i=q.nickname){i=i.call(s,{hash:{},data:y})}else{i=s.nickname;i=typeof i===e?i.apply(s):i}r+=d(i)+'\' class="toggleOperation">';if(i=q.method){i=i.call(s,{hash:{},data:y})}else{i=s.method;i=typeof i===e?i.apply(s):i}r+=d(i)+"</a>\n          </span>\n          <span class='path'>\n          <a href='#!/";if(i=q.parentId){i=i.call(s,{hash:{},data:y})}else{i=s.parentId;i=typeof i===e?i.apply(s):i}r+=d(i)+"/";if(i=q.nickname){i=i.call(s,{hash:{},data:y})}else{i=s.nickname;i=typeof i===e?i.apply(s):i}r+=d(i)+'\' class="toggleOperation">';if(i=q.path){i=i.call(s,{hash:{},data:y})}else{i=s.path;i=typeof i===e?i.apply(s):i}r+=d(i)+"</a>\n          </span>\n        </h3>\n        <ul class='options'>\n          <li>\n          <a href='#!/";if(i=q.parentId){i=i.call(s,{hash:{},data:y})}else{i=s.parentId;i=typeof i===e?i.apply(s):i}r+=d(i)+"/";if(i=q.nickname){i=i.call(s,{hash:{},data:y})}else{i=s.nickname;i=typeof i===e?i.apply(s):i}r+=d(i)+'\' class="toggleOperation">';if(i=q.summary){i=i.call(s,{hash:{},data:y})}else{i=s.summary;i=typeof i===e?i.apply(s):i}if(i||i===0){r+=i}r+="</a>\n          </li>\n        </ul>\n      </div>\n      <div class='content' id='";if(i=q.parentId){i=i.call(s,{hash:{},data:y})}else{i=s.parentId;i=typeof i===e?i.apply(s):i}r+=d(i)+"_";if(i=q.nickname){i=i.call(s,{hash:{},data:y})}else{i=s.nickname;i=typeof i===e?i.apply(s):i}r+=d(i)+"_content' style='display:none'>\n        ";i=q["if"].call(s,s.notes,{hash:{},inverse:p.noop,fn:p.program(1,o,y),data:y});if(i||i===0){r+=i}r+="\n        ";f={hash:{},inverse:p.noop,fn:p.program(3,n,y),data:y};if(i=q.oauth){i=i.call(s,f)}else{i=s.oauth;i=typeof i===e?i.apply(s):i}if(!q.oauth){i=c.call(s,i,f)}if(i||i===0){r+=i}r+="\n        ";i=q.each.call(s,s.oauth,{hash:{},inverse:p.noop,fn:p.program(5,l,y),data:y});if(i||i===0){r+=i}r+="\n        ";f={hash:{},inverse:p.noop,fn:p.program(8,h,y),data:y};if(i=q.oauth){i=i.call(s,f)}else{i=s.oauth;i=typeof i===e?i.apply(s):i}if(!q.oauth){i=c.call(s,i,f)}if(i||i===0){r+=i}r+="\n        ";f={hash:{},inverse:p.noop,fn:p.program(10,x,y),data:y};if(i=q.oauth){i=i.call(s,f)}else{i=s.oauth;i=typeof i===e?i.apply(s):i}if(!q.oauth){i=c.call(s,i,f)}if(i||i===0){r+=i}r+="\n        ";i=q["if"].call(s,s.type,{hash:{},inverse:p.noop,fn:p.program(12,w,y),data:y});if(i||i===0){r+=i}r+="\n        <form accept-charset='UTF-8' class='sandbox'>\n          <div style='margin:0;padding:0;display:inline'></div>\n          ";i=q["if"].call(s,s.parameters,{hash:{},inverse:p.noop,fn:p.program(14,v,y),data:y});if(i||i===0){r+=i}r+="\n          ";i=q["if"].call(s,s.responseMessages,{hash:{},inverse:p.noop,fn:p.program(16,u,y),data:y});if(i||i===0){r+=i}r+="\n          ";i=q["if"].call(s,s.isReadOnly,{hash:{},inverse:p.program(20,j,y),fn:p.program(18,t,y),data:y});if(i||i===0){r+=i}r+="\n        </form>\n        <div class='response' style='display:none'>\n          <h4>Request URL</h4>\n          <div class='block request_url'></div>\n          <h4>Response Body</h4>\n          <div class='block response_body'></div>\n          <h4>Response Code</h4>\n          <div class='block response_code'></div>\n          <h4>Response Headers</h4>\n          <div class='block response_headers'></div>\n        </div>\n      </div>\n    </li>\n  </ul>\n";return r})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param=b(function(f,q,o,j,s){this.compilerInfo=[4,">= 1.0.0"];o=this.merge(o,f.helpers);s=s||{};var p="",g,d="function",c=this.escapeExpression,n=this;function m(x,w){var u="",v;u+="\n		";v=o["if"].call(x,x.isFile,{hash:{},inverse:n.program(4,k,w),fn:n.program(2,l,w),data:w});if(v||v===0){u+=v}u+="\n	";return u}function l(x,w){var u="",v;u+='\n			<input type="file" name=\'';if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+'\'/>\n			<div class="parameter-content-type" />\n		';return u}function k(x,w){var u="",v;u+="\n			";v=o["if"].call(x,x.defaultValue,{hash:{},inverse:n.program(7,h,w),fn:n.program(5,i,w),data:w});if(v||v===0){u+=v}u+="\n		";return u}function i(x,w){var u="",v;u+="\n				<textarea class='body-textarea' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+"'>";if(v=o.defaultValue){v=v.call(x,{hash:{},data:w})}else{v=x.defaultValue;v=typeof v===d?v.apply(x):v}u+=c(v)+"</textarea>\n			";return u}function h(x,w){var u="",v;u+="\n				<textarea class='body-textarea' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+'\'></textarea>\n				<br />\n				<div class="parameter-content-type" />\n			';return u}function e(x,w){var u="",v;u+="\n		";v=o["if"].call(x,x.defaultValue,{hash:{},inverse:n.program(12,r,w),fn:n.program(10,t,w),data:w});if(v||v===0){u+=v}u+="\n	";return u}function t(x,w){var u="",v;u+="\n			<input class='parameter' minlength='0' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+"' placeholder='' type='text' value='";if(v=o.defaultValue){v=v.call(x,{hash:{},data:w})}else{v=x.defaultValue;v=typeof v===d?v.apply(x):v}u+=c(v)+"'/>\n		";return u}function r(x,w){var u="",v;u+="\n			<input class='parameter' minlength='0' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+"' placeholder='' type='text' value=''/>\n		";return u}p+="<td class='code'>";if(g=o.name){g=g.call(q,{hash:{},data:s})}else{g=q.name;g=typeof g===d?g.apply(q):g}p+=c(g)+"</td>\n<td>\n\n	";g=o["if"].call(q,q.isBody,{hash:{},inverse:n.program(9,e,s),fn:n.program(1,m,s),data:s});if(g||g===0){p+=g}p+="\n\n</td>\n<td>";if(g=o.description){g=g.call(q,{hash:{},data:s})}else{g=q.description;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+="</td>\n<td>";if(g=o.paramType){g=g.call(q,{hash:{},data:s})}else{g=q.paramType;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+='</td>\n<td>\n	<span class="model-signature"></span>\n</td>\n';return p})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_list=b(function(h,t,r,m,y){this.compilerInfo=[4,">= 1.0.0"];r=this.merge(r,h.helpers);y=y||{};var s="",j,g,e,p=this,q=r.helperMissing,d="function",c=this.escapeExpression;function o(A,z){return" multiple='multiple'"}function n(A,z){return"\n    "}function l(C,B){var z="",A;z+="\n      ";A=r["if"].call(C,C.defaultValue,{hash:{},inverse:p.program(8,i,B),fn:p.program(6,k,B),data:B});if(A||A===0){z+=A}z+="\n    ";return z}function k(A,z){return"\n      "}function i(E,D){var z="",C,B,A;z+="\n        ";A={hash:{},inverse:p.program(11,x,D),fn:p.program(9,f,D),data:D};B=((C=r.isArray||E.isArray),C?C.call(E,E,A):q.call(E,"isArray",E,A));if(B||B===0){z+=B}z+="\n      ";return z}function f(A,z){return"\n        "}function x(A,z){return"\n          <option selected=\"\" value=''></option>\n        "}function w(C,B){var z="",A;z+="\n      ";A=r["if"].call(C,C.isDefault,{hash:{},inverse:p.program(16,u,B),fn:p.program(14,v,B),data:B});if(A||A===0){z+=A}z+="\n    ";return z}function v(C,B){var z="",A;z+='\n        <option selected="" value=\'';if(A=r.value){A=A.call(C,{hash:{},data:B})}else{A=C.value;A=typeof A===d?A.apply(C):A}z+=c(A)+"'>";if(A=r.value){A=A.call(C,{hash:{},data:B})}else{A=C.value;A=typeof A===d?A.apply(C):A}z+=c(A)+" (default)</option>\n      ";return z}function u(C,B){var z="",A;z+="\n        <option value='";if(A=r.value){A=A.call(C,{hash:{},data:B})}else{A=C.value;A=typeof A===d?A.apply(C):A}z+=c(A)+"'>";if(A=r.value){A=A.call(C,{hash:{},data:B})}else{A=C.value;A=typeof A===d?A.apply(C):A}z+=c(A)+"</option>\n      ";return z}s+="<td class='code'>";if(j=r.name){j=j.call(t,{hash:{},data:y})}else{j=t.name;j=typeof j===d?j.apply(t):j}s+=c(j)+"</td>\n<td>\n  <select ";e={hash:{},inverse:p.noop,fn:p.program(1,o,y),data:y};g=((j=r.isArray||t.isArray),j?j.call(t,t,e):q.call(t,"isArray",t,e));if(g||g===0){s+=g}s+=" class='parameter' name='";if(g=r.name){g=g.call(t,{hash:{},data:y})}else{g=t.name;g=typeof g===d?g.apply(t):g}s+=c(g)+"'>\n    ";g=r["if"].call(t,t.required,{hash:{},inverse:p.program(5,l,y),fn:p.program(3,n,y),data:y});if(g||g===0){s+=g}s+="\n    ";g=r.each.call(t,((j=t.allowableValues),j==null||j===false?j:j.descriptiveValues),{hash:{},inverse:p.noop,fn:p.program(13,w,y),data:y});if(g||g===0){s+=g}s+="\n  </select>\n</td>\n<td>";if(g=r.description){g=g.call(t,{hash:{},data:y})}else{g=t.description;g=typeof g===d?g.apply(t):g}if(g||g===0){s+=g}s+="</td>\n<td>";if(g=r.paramType){g=g.call(t,{hash:{},data:y})}else{g=t.paramType;g=typeof g===d?g.apply(t):g}if(g||g===0){s+=g}s+='</td>\n<td><span class="model-signature"></span></td>';return s})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_readonly=b(function(g,m,f,l,k){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);k=k||{};var i="",d,h="function",j=this.escapeExpression,o=this;function e(t,s){var q="",r;q+="\n        <textarea class='body-textarea' readonly='readonly' name='";if(r=f.name){r=r.call(t,{hash:{},data:s})}else{r=t.name;r=typeof r===h?r.apply(t):r}q+=j(r)+"'>";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"</textarea>\n    ";return q}function c(t,s){var q="",r;q+="\n        ";r=f["if"].call(t,t.defaultValue,{hash:{},inverse:o.program(6,n,s),fn:o.program(4,p,s),data:s});if(r||r===0){q+=r}q+="\n    ";return q}function p(t,s){var q="",r;q+="\n            ";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"\n        ";return q}function n(r,q){return"\n            (empty)\n        "}i+="<td class='code'>";if(d=f.name){d=d.call(m,{hash:{},data:k})}else{d=m.name;d=typeof d===h?d.apply(m):d}i+=j(d)+"</td>\n<td>\n    ";d=f["if"].call(m,m.isBody,{hash:{},inverse:o.program(3,c,k),fn:o.program(1,e,k),data:k});if(d||d===0){i+=d}i+="\n</td>\n<td>";if(d=f.description){d=d.call(m,{hash:{},data:k})}else{d=m.description;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+="</td>\n<td>";if(d=f.paramType){d=d.call(m,{hash:{},data:k})}else{d=m.paramType;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+='</td>\n<td><span class="model-signature"></span></td>\n';return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_readonly_required=b(function(g,m,f,l,k){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);k=k||{};var i="",d,h="function",j=this.escapeExpression,o=this;function e(t,s){var q="",r;q+="\n        <textarea class='body-textarea'  readonly='readonly' placeholder='(required)' name='";if(r=f.name){r=r.call(t,{hash:{},data:s})}else{r=t.name;r=typeof r===h?r.apply(t):r}q+=j(r)+"'>";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"</textarea>\n    ";return q}function c(t,s){var q="",r;q+="\n        ";r=f["if"].call(t,t.defaultValue,{hash:{},inverse:o.program(6,n,s),fn:o.program(4,p,s),data:s});if(r||r===0){q+=r}q+="\n    ";return q}function p(t,s){var q="",r;q+="\n            ";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"\n        ";return q}function n(r,q){return"\n            (empty)\n        "}i+="<td class='code required'>";if(d=f.name){d=d.call(m,{hash:{},data:k})}else{d=m.name;d=typeof d===h?d.apply(m):d}i+=j(d)+"</td>\n<td>\n    ";d=f["if"].call(m,m.isBody,{hash:{},inverse:o.program(3,c,k),fn:o.program(1,e,k),data:k});if(d||d===0){i+=d}i+="\n</td>\n<td>";if(d=f.description){d=d.call(m,{hash:{},data:k})}else{d=m.description;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+="</td>\n<td>";if(d=f.paramType){d=d.call(m,{hash:{},data:k})}else{d=m.paramType;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+='</td>\n<td><span class="model-signature"></span></td>\n';return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_required=b(function(f,q,o,j,u){this.compilerInfo=[4,">= 1.0.0"];o=this.merge(o,f.helpers);u=u||{};var p="",g,d="function",c=this.escapeExpression,n=this;function m(z,y){var w="",x;w+="\n		";x=o["if"].call(z,z.isFile,{hash:{},inverse:n.program(4,k,y),fn:n.program(2,l,y),data:y});if(x||x===0){w+=x}w+="\n	";return w}function l(z,y){var w="",x;w+='\n			<input type="file" name=\'';if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"'/>\n		";return w}function k(z,y){var w="",x;w+="\n			";x=o["if"].call(z,z.defaultValue,{hash:{},inverse:n.program(7,h,y),fn:n.program(5,i,y),data:y});if(x||x===0){w+=x}w+="\n		";return w}function i(z,y){var w="",x;w+="\n				<textarea class='body-textarea' placeholder='(required)' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"'>";if(x=o.defaultValue){x=x.call(z,{hash:{},data:y})}else{x=z.defaultValue;x=typeof x===d?x.apply(z):x}w+=c(x)+"</textarea>\n			";return w}function h(z,y){var w="",x;w+="\n				<textarea class='body-textarea' placeholder='(required)' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+'\'></textarea>\n				<br />\n				<div class="parameter-content-type" />\n			';return w}function e(z,y){var w="",x;w+="\n		";x=o["if"].call(z,z.isFile,{hash:{},inverse:n.program(12,t,y),fn:n.program(10,v,y),data:y});if(x||x===0){w+=x}w+="\n	";return w}function v(z,y){var w="",x;w+="\n			<input class='parameter' class='required' type='file' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"'/>\n		";return w}function t(z,y){var w="",x;w+="\n			";x=o["if"].call(z,z.defaultValue,{hash:{},inverse:n.program(15,r,y),fn:n.program(13,s,y),data:y});if(x||x===0){w+=x}w+="\n		";return w}function s(z,y){var w="",x;w+="\n				<input class='parameter required' minlength='1' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"' placeholder='(required)' type='text' value='";if(x=o.defaultValue){x=x.call(z,{hash:{},data:y})}else{x=z.defaultValue;x=typeof x===d?x.apply(z):x}w+=c(x)+"'/>\n			";return w}function r(z,y){var w="",x;w+="\n				<input class='parameter required' minlength='1' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"' placeholder='(required)' type='text' value=''/>\n			";return w}p+="<td class='code required'>";if(g=o.name){g=g.call(q,{hash:{},data:u})}else{g=q.name;g=typeof g===d?g.apply(q):g}p+=c(g)+"</td>\n<td>\n	";g=o["if"].call(q,q.isBody,{hash:{},inverse:n.program(9,e,u),fn:n.program(1,m,u),data:u});if(g||g===0){p+=g}p+="\n</td>\n<td>\n	<strong>";if(g=o.description){g=g.call(q,{hash:{},data:u})}else{g=q.description;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+="</strong>\n</td>\n<td>";if(g=o.paramType){g=g.call(q,{hash:{},data:u})}else{g=q.paramType;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+='</td>\n<td><span class="model-signature"></span></td>\n';return p})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.parameter_content_type=b(function(g,l,f,k,j){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);j=j||{};var i="",c,h="function",m=this;function e(r,q){var o="",p;o+="\n  ";p=f.each.call(r,r.consumes,{hash:{},inverse:m.noop,fn:m.program(2,d,q),data:q});if(p||p===0){o+=p}o+="\n";return o}function d(r,q){var o="",p;o+='\n  <option value="';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+='">';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+="</option>\n  ";return o}function n(p,o){return'\n  <option value="application/json">application/json</option>\n'}i+='<label for="parameterContentType"></label>\n<select name="parameterContentType">\n';c=f["if"].call(l,l.consumes,{hash:{},inverse:m.program(4,n,j),fn:m.program(1,e,j),data:j});if(c||c===0){i+=c}i+="\n</select>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.resource=b(function(f,l,e,k,j){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,f.helpers);j=j||{};var h="",c,o,g="function",i=this.escapeExpression,n=this,m=e.blockHelperMissing;function d(q,p){return" : "}h+="<div class='heading'>\n  <h2>\n    <a href='#!/";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"' onclick=\"Docs.toggleEndpointListForResource('";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"');\">";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i("Ressource: " + c)+"</a> ";o={hash:{},inverse:n.noop,fn:n.program(1,d,j),data:j};if(c=e.description){c=c.call(l,o)}else{c=l.description;c=typeof c===g?c.apply(l):c}if(!e.description){c=m.call(l,c,o)}if(c||c===0){h+=c}if(c=e.description){c=c.call(l,{hash:{},data:j})}else{c=l.description;c=typeof c===g?c.apply(l):c}if(c||c===0){h+=c}h+="\n  </h2>\n  <ul class='options'>\n    <li>\n      <a href='#!/";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"' id='endpointListTogger_";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"'\n         onclick=\"Docs.toggleEndpointListForResource('";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"');\">Show/Hide</a>\n    </li>\n    <li>\n      <a href='#' onclick=\"Docs.collapseOperationsForResource('";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"'); return false;\">\n        List Operations\n      </a>\n    </li>\n    <li>\n      <a href='#' onclick=\"Docs.expandOperationsForResource('";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"'); return false;\">\n        Expand Operations\n      </a>\n    </li>\n    <li>\n      <a href='";if(c=e.url){c=c.call(l,{hash:{},data:j})}else{c=l.url;c=typeof c===g?c.apply(l):c}h+=i(c)+"'>Raw</a>\n    </li>\n  </ul>\n</div>\n<ul class='endpoints' id='";if(c=e.id){c=c.call(l,{hash:{},data:j})}else{c=l.id;c=typeof c===g?c.apply(l):c}h+=i(c)+"_endpoint_list' style='display:none'>\n\n</ul>\n";return h})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.response_content_type=b(function(g,l,f,k,j){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);j=j||{};var i="",c,h="function",m=this;function e(r,q){var o="",p;o+="\n  ";p=f.each.call(r,r.produces,{hash:{},inverse:m.noop,fn:m.program(2,d,q),data:q});if(p||p===0){o+=p}o+="\n";return o}function d(r,q){var o="",p;o+='\n  <option value="';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+='">';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+="</option>\n  ";return o}function n(p,o){return'\n  <option value="application/json">application/json</option>\n'}i+='<label for="responseContentType"></label>\n<select name="responseContentType">\n';c=f["if"].call(l,l.produces,{hash:{},inverse:m.program(4,n,j),fn:m.program(1,e,j),data:j});if(c||c===0){i+=c}i+="\n</select>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.signature=b(function(e,k,d,j,i){this.compilerInfo=[4,">= 1.0.0"];d=this.merge(d,e.helpers);i=i||{};var g="",c,f="function",h=this.escapeExpression;g+='<div>\n<ul class="signature-nav">\n    <li><a class="description-link" href="#">Model</a></li>\n    <li><a class="snippet-link" href="#">Model Schema</a></li>\n</ul>\n<div>\n\n<div class="signature-container">\n    <div class="description">\n        ';if(c=d.signature){c=c.call(k,{hash:{},data:i})}else{c=k.signature;c=typeof c===f?c.apply(k):c}if(c||c===0){g+=c}g+='\n    </div>\n\n    <div class="snippet">\n        <pre><code>';if(c=d.sampleJSON){c=c.call(k,{hash:{},data:i})}else{c=k.sampleJSON;c=typeof c===f?c.apply(k):c}g+=h(c)+'</code></pre>\n        <small class="notice"></small>\n    </div>\n</div>\n\n';return g})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.status_code=b(function(e,k,d,j,i){this.compilerInfo=[4,">= 1.0.0"];d=this.merge(d,e.helpers);i=i||{};var g="",c,f="function",h=this.escapeExpression;g+="<td width='15%' class='code'>";if(c=d.code){c=c.call(k,{hash:{},data:i})}else{c=k.code;c=typeof c===f?c.apply(k):c}g+=h(c)+"</td>\n<td>";if(c=d.message){c=c.call(k,{hash:{},data:i})}else{c=k.message;c=typeof c===f?c.apply(k):c}if(c||c===0){g+=c}g+="</td>\n<td width='50%'><span class=\"model-signature\" /></td>";return g})})();(function(){var j,r,u,o,l,k,n,m,i,p,s,q,h,c,g,f,e,d,b,a,x,w,t={}.hasOwnProperty,v=function(B,z){for(var y in z){if(t.call(z,y)){B[y]=z[y]}}function A(){this.constructor=B}A.prototype=z.prototype;B.prototype=new A();B.__super__=z.prototype;return B};s=(function(z){v(y,z);function y(){q=y.__super__.constructor.apply(this,arguments);return q}y.prototype.dom_id="swagger_ui";y.prototype.options=null;y.prototype.api=null;y.prototype.headerView=null;y.prototype.mainView=null;y.prototype.initialize=function(A){var B=this;if(A==null){A={}}if(A.dom_id!=null){this.dom_id=A.dom_id;delete A.dom_id}if($("#"+this.dom_id)==null){$("body").append('<div id="'+this.dom_id+'"></div>')}this.options=A;this.options.success=function(){return B.render()};this.options.progress=function(C){return B.showMessage(C)};this.options.failure=function(C){return B.onLoadFailure(C)};this.headerView=new r({el:$("#header")});return this.headerView.on("update-swagger-ui",function(C){return B.updateSwaggerUi(C)})};y.prototype.updateSwaggerUi=function(A){this.options.url=A.url;return this.load()};y.prototype.load=function(){var B,A;if((A=this.mainView)!=null){A.clear()}B=this.options.url;if(B.indexOf("http")!==0){B=this.buildUrl(window.location.href.toString(),B)}this.options.url=B;this.headerView.update(B);this.api=new SwaggerApi(this.options);this.api.build();return this.api};y.prototype.render=function(){var A=this;this.showMessage("Finished Loading Resource Information. Rendering Swagger UI...");this.mainView=new u({model:this.api,el:$("#"+this.dom_id)}).render();this.showMessage();switch(this.options.docExpansion){case"full":Docs.expandOperationsForResource("");break;case"list":Docs.collapseOperationsForResource("")}if(this.options.onComplete){this.options.onComplete(this.api,this)}return setTimeout(function(){return Docs.shebang()},400)};y.prototype.buildUrl=function(C,A){var B,D;if(A.indexOf("/")===0){D=C.split("/");C=D[0]+"//"+D[2];return C+A}else{B=C.length;if(C.indexOf("?")>-1){B=Math.min(B,C.indexOf("?"))}if(C.indexOf("#")>-1){B=Math.min(B,C.indexOf("#"))}C=C.substring(0,B);if(C.indexOf("/",C.length-1)!==-1){return C+A}return C+"/"+A}};y.prototype.showMessage=function(A){if(A==null){A=""}$("#message-bar").removeClass("message-fail");$("#message-bar").addClass("message-success");return $("#message-bar").html(A)};y.prototype.onLoadFailure=function(A){var B;if(A==null){A=""}$("#message-bar").removeClass("message-success");$("#message-bar").addClass("message-fail");B=$("#message-bar").html(A);if(this.options.onFailure!=null){this.options.onFailure(A)}return B};return y})(Backbone.Router);window.SwaggerUi=s;r=(function(z){v(y,z);function y(){h=y.__super__.constructor.apply(this,arguments);return h}y.prototype.events={"click #show-pet-store-icon":"showPetStore","click #show-wordnik-dev-icon":"showWordnikDev","click #explore":"showCustom","keyup #input_baseUrl":"showCustomOnKeyup","keyup #input_apiKey":"showCustomOnKeyup"};y.prototype.initialize=function(){};y.prototype.showPetStore=function(A){return this.trigger("update-swagger-ui",{url:"http://petstore.swagger.wordnik.com/api/api-docs"})};y.prototype.showWordnikDev=function(A){return this.trigger("update-swagger-ui",{url:"http://api.wordnik.com/v4/resources.json"})};y.prototype.showCustomOnKeyup=function(A){if(A.keyCode===13){return this.showCustom()}};y.prototype.showCustom=function(A){if(A!=null){A.preventDefault()}return this.trigger("update-swagger-ui",{url:$("#input_baseUrl").val(),apiKey:$("#input_apiKey").val()})};y.prototype.update=function(B,C,A){if(A==null){A=false}$("#input_baseUrl").val(B);if(A){return this.trigger("update-swagger-ui",{url:B})}};return y})(Backbone.View);u=(function(y){v(z,y);function z(){g=z.__super__.constructor.apply(this,arguments);return g}z.prototype.initialize=function(){};z.prototype.render=function(){var B,G,D,E,C,A,F;$(this.el).html(Handlebars.templates.main(this.model));E={};B=0;F=this.model.apisArray;for(C=0,A=F.length;C<A;C++){D=F[C];G=D.name;while(typeof E[G]!=="undefined"){G=G+"_"+B;B+=1}D.id=G;E[G]=D;this.addResource(D)}return this};z.prototype.addResource=function(B){var A;A=new n({model:B,tagName:"li",id:"resource_"+B.id,className:"resource"});return $("#resources").append(A.render().el)};z.prototype.clear=function(){return $(this.el).html("")};return z})(Backbone.View);n=(function(z){v(y,z);function y(){f=y.__super__.constructor.apply(this,arguments);return f}y.prototype.initialize=function(){};y.prototype.render=function(){var B,G,D,C,E,A,F;$(this.el).html(Handlebars.templates.resource(this.model));D={};F=this.model.operationsArray;for(E=0,A=F.length;E<A;E++){C=F[E];B=0;G=C.nickname;while(typeof D[G]!=="undefined"){G=G+"_"+B;B+=1}D[G]=C;C.nickname=G;C.parentId=this.model.id;this.addOperation(C)}return this};y.prototype.addOperation=function(A){var B;A.number=this.number;B=new o({model:A,tagName:"li",className:"endpoint"});$(".endpoints",$(this.el)).append(B.render().el);return this.number++};return y})(Backbone.View);o=(function(z){v(y,z);function y(){e=y.__super__.constructor.apply(this,arguments);return e}y.prototype.invocationUrl=null;y.prototype.events={"submit .sandbox":"submitOperation","click .submit":"submitOperation","click .response_hider":"hideResponse","click .toggleOperation":"toggleOperationContent","mouseenter .api-ic":"mouseEnter","mouseout .api-ic":"mouseExit"};y.prototype.initialize=function(){};y.prototype.mouseEnter=function(F){var D,E,I,B,A,J,G,C,K,H;D=$(F.currentTarget.parentNode).find("#api_information_panel");K=event.pageX;H=event.pageY;J=$(window).scrollLeft();G=$(window).scrollTop();B=J+$(window).width();A=G+$(window).height();C=D.width();E=D.height();if(K+C>B){K=B-C}if(K<J){K=J}if(H+E>A){H=A-E}if(H<G){H=G}I={};I.top=H;I.left=K;D.css(I);return $(F.currentTarget.parentNode).find("#api_information_panel").show()};y.prototype.mouseExit=function(A){return $(A.currentTarget.parentNode).find("#api_information_panel").hide()};y.prototype.render=function(){var Q,R,P,O,I,N,J,M,K,H,L,G,F,E,C,T,V,U,S,D,B,A,W;R=true;if(!R){this.model.isReadOnly=true}this.model.oauth=null;if(this.model.authorizations){D=this.model.authorizations;for(P in D){L=D[P];if(P==="oauth2"){if(this.model.oauth===null){this.model.oauth={}}if(this.model.oauth.scopes===void 0){this.model.oauth.scopes=[]}for(G=0,T=L.length;G<T;G++){O=L[G];this.model.oauth.scopes.push(O)}}}}$(this.el).html(Handlebars.templates.operation(this.model));if(this.model.responseClassSignature&&this.model.responseClassSignature!=="string"){M={sampleJSON:this.model.responseSampleJSON,isParam:false,signature:this.model.responseClassSignature};J=new i({model:M,tagName:"div"});$(".model-signature",$(this.el)).append(J.render().el)}else{$(".model-signature",$(this.el)).html(this.model.type)}Q={isParam:false};Q.consumes=this.model.consumes;Q.produces=this.model.produces;B=this.model.parameters;for(F=0,V=B.length;F<V;F++){I=B[F];H=I.type||I.dataType;if(H.toLowerCase()==="file"){if(!Q.consumes){log("set content type ");Q.consumes="multipart/form-data"}}}N=new m({model:Q});$(".response-content-type",$(this.el)).append(N.render().el);A=this.model.parameters;for(E=0,U=A.length;E<U;E++){I=A[E];this.addParameter(I,Q.consumes)}W=this.model.responseMessages;for(C=0,S=W.length;C<S;C++){K=W[C];this.addStatusCode(K)}return this};y.prototype.addParameter=function(C,A){var B;C.consumes=A;B=new k({model:C,tagName:"tr",readOnly:this.model.isReadOnly});return $(".operation-params",$(this.el)).append(B.render().el)};y.prototype.addStatusCode=function(B){var A;A=new p({model:B,tagName:"tr"});return $(".operation-status",$(this.el)).append(A.render().el)};y.prototype.submitOperation=function(O){var Q,G,N,D,I,A,J,M,L,K,P,F,C,H,E,B;if(O!=null){O.preventDefault()}G=$(".sandbox",$(this.el));Q=true;G.find("input.required").each(function(){var R=this;$(this).removeClass("error");if(jQuery.trim($(this).val())===""){$(this).addClass("error");$(this).wiggle({callback:function(){return $(R).focus()}});return Q=false}});if(Q){D={};A={parent:this};N=false;H=G.find("input");for(M=0,P=H.length;M<P;M++){I=H[M];if((I.value!=null)&&jQuery.trim(I.value).length>0){D[I.name]=I.value}if(I.type==="file"){N=true}}E=G.find("textarea");for(L=0,F=E.length;L<F;L++){I=E[L];if((I.value!=null)&&jQuery.trim(I.value).length>0){D.body=I.value}}B=G.find("select");for(K=0,C=B.length;K<C;K++){I=B[K];J=this.getSelectedValue(I);if((J!=null)&&jQuery.trim(J).length>0){D[I.name]=J}}A.responseContentType=$("div select[name=responseContentType]",$(this.el)).val();A.requestContentType=$("div select[name=parameterContentType]",$(this.el)).val();$(".response_throbber",$(this.el)).show();if(N){return this.handleFileUpload(D,G)}else{return this.model["do"](D,A,this.showCompleteStatus,this.showErrorStatus,this)}}};y.prototype.success=function(A,B){return B.showCompleteStatus(A)};y.prototype.handleFileUpload=function(R,I){var M,H,C,N,L,K,P,J,G,F,D,Q,U,T,S,E,B,A,V,O=this;E=I.serializeArray();for(J=0,Q=E.length;J<Q;J++){N=E[J];if((N.value!=null)&&jQuery.trim(N.value).length>0){R[N.name]=N.value}}M=new FormData();P=0;B=this.model.parameters;for(G=0,U=B.length;G<U;G++){K=B[G];if(K.paramType==="form"){if(R[K.name]!==void 0){M.append(K.name,R[K.name])}}}C={};A=this.model.parameters;for(F=0,T=A.length;F<T;F++){K=A[F];if(K.paramType==="header"){C[K.name]=R[K.name]}}log(C);V=I.find('input[type~="file"]');for(D=0,S=V.length;D<S;D++){H=V[D];if(typeof H.files[0]!=="undefined"){M.append($(H).attr("name"),H.files[0]);P+=1}}log(M);this.invocationUrl=this.model.supportHeaderParams()?(C=this.model.getHeaderParams(R),this.model.urlify(R,false)):this.model.urlify(R,true);$(".request_url",$(this.el)).html("<pre>"+this.invocationUrl+"</pre>");L={type:this.model.method,url:this.invocationUrl,headers:C,data:M,dataType:"json",contentType:false,processData:false,error:function(X,Y,W){return O.showErrorStatus(O.wrap(X),O)},success:function(W){return O.showResponse(W,O)},complete:function(W){return O.showCompleteStatus(O.wrap(W),O)}};if(window.authorizations){window.authorizations.apply(L)}if(P===0){L.data.append("fake","true")}jQuery.ajax(L);return false};y.prototype.wrap=function(E){var C,F,H,B,G,D,A;H={};F=E.getAllResponseHeaders().split("\r");for(D=0,A=F.length;D<A;D++){B=F[D];C=B.split(":");if(C[0]!==void 0&&C[1]!==void 0){H[C[0].trim()]=C[1].trim()}}G={};G.content={};G.content.data=E.responseText;G.headers=H;G.request={};G.request.url=this.invocationUrl;G.status=E.status;return G};y.prototype.getSelectedValue=function(A){var D,C,F,B,E;if(!A.multiple){return A.value}else{C=[];E=A.options;for(F=0,B=E.length;F<B;F++){D=E[F];if(D.selected){C.push(D.value)}}if(C.length>0){return C.join(",")}else{return null}}};y.prototype.hideResponse=function(A){if(A!=null){A.preventDefault()}$(".response",$(this.el)).slideUp();return $(".response_hider",$(this.el)).fadeOut()};y.prototype.showResponse=function(A){var B;B=JSON.stringify(A,null,"\t").replace(/\n/g,"<br>");return $(".response_body",$(this.el)).html(escape(B))};y.prototype.showErrorStatus=function(B,A){return A.showStatus(B)};y.prototype.showCompleteStatus=function(B,A){return A.showStatus(B)};y.prototype.formatXml=function(H){var D,G,B,I,N,J,C,A,L,M,F,E,K;A=/(>)(<)(\/*)/g;M=/[ ]*(.*)[ ]+\n/g;D=/(<.+>)(.+\n)/g;H=H.replace(A,"$1\n$2$3").replace(M,"$1\n").replace(D,"$1\n$2");C=0;G="";N=H.split("\n");B=0;I="other";L={"single->single":0,"single->closing":-1,"single->opening":0,"single->other":0,"closing->single":0,"closing->closing":-1,"closing->opening":0,"closing->other":0,"opening->single":1,"opening->closing":0,"opening->opening":1,"opening->other":1,"other->single":0,"other->closing":-1,"other->opening":0,"other->other":0};F=function(T){var P,O,R,V,S,Q,U;Q={single:Boolean(T.match(/<.+\/>/)),closing:Boolean(T.match(/<\/.+>/)),opening:Boolean(T.match(/<[^!?].*>/))};S=((function(){var W;W=[];for(R in Q){U=Q[R];if(U){W.push(R)}}return W})())[0];S=S===void 0?"other":S;P=I+"->"+S;I=S;V="";B+=L[P];V=((function(){var X,Y,W;W=[];for(O=X=0,Y=B;0<=Y?X<Y:X>Y;O=0<=Y?++X:--X){W.push("  ")}return W})()).join("");if(P==="opening->closing"){return G=G.substr(0,G.length-1)+T+"\n"}else{return G+=V+T+"\n"}};for(E=0,K=N.length;E<K;E++){J=N[E];F(J)}return G};y.prototype.showStatus=function(A){var E,D,H,G,F,C,B;if(A.content===void 0){D=A.data;B=A.url}else{D=A.content.data;B=A.request.url}G=A.headers;H=G&&G["Content-Type"]?G["Content-Type"].split(";")[0].trim():null;if(!D){E=$("<code />").text("no content");F=$('<pre class="json" />').append(E)}else{if(H==="application/json"||/\+json$/.test(H)){E=$("<code />").text(JSON.stringify(JSON.parse(D),null,"  "));F=$('<pre class="json" />').append(E)}else{if(H==="application/xml"||/\+xml$/.test(H)){E=$("<code />").text(this.formatXml(D));F=$('<pre class="xml" />').append(E)}else{if(H==="text/html"){E=$("<code />").html(D);F=$('<pre class="xml" />').append(E)}else{if(/^image\//.test(H)){F=$("<img>").attr("src",B)}else{E=$("<code />").text(D);F=$('<pre class="json" />').append(E)}}}}}C=F;$(".request_url",$(this.el)).html("<pre>"+B+"</pre>");$(".response_code",$(this.el)).html("<pre>"+A.status+"</pre>");$(".response_body",$(this.el)).html(C);$(".response_headers",$(this.el)).html("<pre>"+JSON.stringify(A.headers,null,"  ").replace(/\n/g,"<br>")+"</pre>");$(".response",$(this.el)).slideDown();$(".response_hider",$(this.el)).show();$(".response_throbber",$(this.el)).hide();FinToken(E);return hljs.highlightBlock($(".response_body",$(this.el))[0])};y.prototype.toggleOperationContent=function(){var A;A=$("#"+Docs.escapeResourceName(this.model.parentId)+"_"+this.model.nickname+"_content");if(A.is(":visible")){return Docs.collapseOperation(A)}else{return Docs.expandOperation(A)}};return y})(Backbone.View);p=(function(z){v(y,z);function y(){d=y.__super__.constructor.apply(this,arguments);return d}y.prototype.initialize=function(){};y.prototype.render=function(){var B,A,C;C=this.template();$(this.el).html(C(this.model));if(swaggerUi.api.models.hasOwnProperty(this.model.responseModel)){B={sampleJSON:JSON.stringify(swaggerUi.api.models[this.model.responseModel].createJSONSample(),null,2),isParam:false,signature:swaggerUi.api.models[this.model.responseModel].getMockSignature()};A=new i({model:B,tagName:"div"});$(".model-signature",this.$el).append(A.render().el)}else{$(".model-signature",this.$el).html("")}return this};y.prototype.template=function(){return Handlebars.templates.status_code};return y})(Backbone.View);k=(function(z){v(y,z);function y(){b=y.__super__.constructor.apply(this,arguments);return b}y.prototype.initialize=function(){return Handlebars.registerHelper("isArray",function(B,A){if(B.type.toLowerCase()==="array"||B.allowMultiple){return A.fn(this)}else{return A.inverse(this)}})};y.prototype.render=function(){var G,A,C,F,B,H,E,D;D=this.model.type||this.model.dataType;if(this.model.paramType==="body"){this.model.isBody=true}if(D.toLowerCase()==="file"){this.model.isFile=true}E=this.template();$(this.el).html(E(this.model));B={sampleJSON:this.model.sampleJSON,isParam:true,signature:this.model.signature};if(this.model.sampleJSON){H=new i({model:B,tagName:"div"});$(".model-signature",$(this.el)).append(H.render().el)}else{$(".model-signature",$(this.el)).html(this.model.signature)}A=false;if(this.model.isBody){A=true}G={isParam:A};G.consumes=this.model.consumes;if(A){C=new l({model:G});$(".parameter-content-type",$(this.el)).append(C.render().el)}else{F=new m({model:G});$(".response-content-type",$(this.el)).append(F.render().el)}return this};y.prototype.template=function(){if(this.model.isList){return Handlebars.templates.param_list}else{if(this.options.readOnly){if(this.model.required){return Handlebars.templates.param_readonly_required}else{return Handlebars.templates.param_readonly}}else{if(this.model.required){return Handlebars.templates.param_required}else{return Handlebars.templates.param}}}};return y})(Backbone.View);i=(function(z){v(y,z);function y(){a=y.__super__.constructor.apply(this,arguments);return a}y.prototype.events={"click a.description-link":"switchToDescription","click a.snippet-link":"switchToSnippet","mousedown .snippet":"snippetToTextArea"};y.prototype.initialize=function(){};y.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));this.switchToDescription();this.isParam=this.model.isParam;if(this.isParam){$(".notice",$(this.el)).text("Click to set as parameter value")}return this};y.prototype.template=function(){return Handlebars.templates.signature};y.prototype.switchToDescription=function(A){if(A!=null){A.preventDefault()}$(".snippet",$(this.el)).hide();$(".description",$(this.el)).show();$(".description-link",$(this.el)).addClass("selected");return $(".snippet-link",$(this.el)).removeClass("selected")};y.prototype.switchToSnippet=function(A){if(A!=null){A.preventDefault()}$(".description",$(this.el)).hide();$(".snippet",$(this.el)).show();$(".snippet-link",$(this.el)).addClass("selected");return $(".description-link",$(this.el)).removeClass("selected")};y.prototype.snippetToTextArea=function(A){var B;if(this.isParam){if(A!=null){A.preventDefault()}B=$("textarea",$(this.el.parentNode.parentNode.parentNode));if($.trim(B.val())===""){return B.val(this.model.sampleJSON)}}};return y})(Backbone.View);j=(function(y){v(z,y);function z(){x=z.__super__.constructor.apply(this,arguments);return x}z.prototype.initialize=function(){};z.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));$("label[for=contentType]",$(this.el)).text("Response Content Type");return this};z.prototype.template=function(){return Handlebars.templates.content_type};return z})(Backbone.View);m=(function(y){v(z,y);function z(){w=z.__super__.constructor.apply(this,arguments);return w}z.prototype.initialize=function(){};z.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));$("label[for=responseContentType]",$(this.el)).text("Response Content Type");return this};z.prototype.template=function(){return Handlebars.templates.response_content_type};return z})(Backbone.View);l=(function(z){v(y,z);function y(){c=y.__super__.constructor.apply(this,arguments);return c}y.prototype.initialize=function(){};y.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));$("label[for=parameterContentType]",$(this.el)).text("Parameter content type:");return this};y.prototype.template=function(){return Handlebars.templates.parameter_content_type};return y})(Backbone.View)}).call(this);
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/javascript/swagger.js b/src/module_gtf/module/gtf.doc/web_services/javascript/swagger.js
new file mode 100755
index 0000000000000000000000000000000000000000..7bc3bafe6e0ac7971da055407be9a73965654b3b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/javascript/swagger.js
@@ -0,0 +1,1532 @@
+// swagger.js
+// version 2.0.30
+
+var __bind = function(fn, me){
+  return function(){
+    return fn.apply(me, arguments);
+  };
+};
+
+log = function(){
+  log.history = log.history || [];
+  log.history.push(arguments);
+  if(this.console){
+    console.log( Array.prototype.slice.call(arguments) );
+  }
+};
+
+if (!Array.prototype.indexOf) {
+  Array.prototype.indexOf = function(obj, start) {
+    for (var i = (start || 0), j = this.length; i < j; i++) {
+      if (this[i] === obj) { return i; }
+    }
+    return -1;
+  }
+}
+
+if (!('filter' in Array.prototype)) {
+  Array.prototype.filter= function(filter, that /*opt*/) {
+    var other= [], v;
+    for (var i=0, n= this.length; i<n; i++)
+      if (i in this && filter.call(that, v= this[i], i, this))
+        other.push(v);
+    return other;
+  };
+}
+
+if (!('map' in Array.prototype)) {
+  Array.prototype.map= function(mapper, that /*opt*/) {
+    var other= new Array(this.length);
+    for (var i= 0, n= this.length; i<n; i++)
+      if (i in this)
+        other[i]= mapper.call(that, this[i], i, this);
+    return other;
+  };
+}
+
+Object.keys = Object.keys || (function () {
+    var hasOwnProperty = Object.prototype.hasOwnProperty,
+        hasDontEnumBug = !{toString:null}.propertyIsEnumerable("toString"),
+        DontEnums = [
+            'toString',
+            'toLocaleString',
+            'valueOf',
+            'hasOwnProperty',
+            'isPrototypeOf',
+            'propertyIsEnumerable',
+            'constructor'
+        ],
+        DontEnumsLength = DontEnums.length;
+  
+    return function (o) {
+        if (typeof o != "object" && typeof o != "function" || o === null)
+            throw new TypeError("Object.keys called on a non-object");
+     
+        var result = [];
+        for (var name in o) {
+            if (hasOwnProperty.call(o, name))
+                result.push(name);
+        }
+     
+        if (hasDontEnumBug) {
+            for (var i = 0; i < DontEnumsLength; i++) {
+                if (hasOwnProperty.call(o, DontEnums[i]))
+                    result.push(DontEnums[i]);
+            }   
+        }
+     
+        return result;
+    };
+})();
+
+
+var SwaggerApi = function(url, options) {
+  this.url = null;
+  this.debug = false;
+  this.basePath = null;
+  this.authorizations = null;
+  this.authorizationScheme = null;
+  this.info = null;
+  this.generalBasePath = null;
+
+  options = (options||{});
+  if (url)
+    if (url.url)
+      options = url;
+    else
+      this.url = url;
+    if (url.generalBasePath)
+	  this.generalBasePath = url.generalBasePath;
+  else
+    options = url;
+
+  if (options.url != null)
+    this.url = options.url;
+
+  if (options.success != null)
+    this.success = options.success;
+
+  this.failure = options.failure != null ? options.failure : function() {};
+  this.progress = options.progress != null ? options.progress : function() {};
+  if (options.success != null)
+    this.build();
+}
+
+SwaggerApi.prototype.build = function() {
+  var _this = this;
+  this.progress('fetching resource list: ' + this.url);
+  var obj = {
+    useJQuery: this.useJQuery,
+    url: this.url,
+    method: "get",
+    headers: {
+      accept: "application/json"
+    },
+    on: {
+      error: function(response) {
+        if (_this.url.substring(0, 4) !== 'http') {
+          return _this.fail('Please specify the protocol for ' + _this.url);
+        } else if (response.status === 0) {
+          return _this.fail('Can\'t read from server.  It may not have the appropriate access-control-origin settings.');
+        } else if (response.status === 404) {
+          return _this.fail('Can\'t read swagger JSON from ' + _this.url);
+        } else {
+          return _this.fail(response.status + ' : ' + response.statusText + ' ' + _this.url);
+        }
+      },
+      response: function(resp) {
+        var responseObj = resp.obj || JSON.parse(resp.data);
+        _this.swaggerVersion = responseObj.swaggerVersion;
+        if (_this.swaggerVersion === "1.2") {
+          return _this.buildFromSpec(responseObj);
+        } else {
+          return _this.buildFrom1_1Spec(responseObj);
+        }
+      }
+    }
+  };
+  var e = (typeof window !== 'undefined' ? window : exports);
+  e.authorizations.apply(obj);
+  new SwaggerHttp().execute(obj);
+  return this;
+};
+
+SwaggerApi.prototype.buildFromSpec = function(response) {
+  if (response.apiVersion != null) {
+    this.apiVersion = response.apiVersion;
+  }
+  this.apis = {};
+  this.apisArray = [];
+  this.produces = response.produces;
+  this.authSchemes = response.authorizations;
+  if (response.info != null) {
+    this.info = response.info;
+  }
+  var isApi = false;
+  var i;
+  for (i = 0; i < response.apis.length; i++) {
+    var api = response.apis[i];
+    if (api.operations) {
+      var j;
+      for (j = 0; j < api.operations.length; j++) {
+        operation = api.operations[j];
+        isApi = true;
+      }
+    }
+  }
+  if (response.basePath) {
+    this.basePath = response.basePath;
+  } else if (this.url.indexOf('?') > 0) {
+    this.basePath = this.url.substring(0, this.url.lastIndexOf('?'));
+  } else {
+    this.basePath = this.url;
+  }
+  if (isApi) {
+    var newName = response.resourcePath.replace(/\//g, '');
+    this.resourcePath = response.resourcePath;
+    res = new SwaggerResource(response, this);
+    this.apis[newName] = res;
+    this.apisArray.push(res);
+  } else {
+    var k;
+    for (k = 0; k < response.apis.length; k++) {
+      var resource = response.apis[k];
+      res = new SwaggerResource(resource, this);
+      this.apis[res.name] = res;
+      this.apisArray.push(res);
+    }
+  }
+  if (this.success) {
+    this.success();
+  }
+  return this;
+};
+
+SwaggerApi.prototype.buildFrom1_1Spec = function(response) {
+  log("This API is using a deprecated version of Swagger!  Please see http://github.com/wordnik/swagger-core/wiki for more info");
+  if (response.apiVersion != null)
+    this.apiVersion = response.apiVersion;
+  this.apis = {};
+  this.apisArray = [];
+  this.produces = response.produces;
+  if (response.info != null) {
+    this.info = response.info;
+  }
+  var isApi = false;
+  for (var i = 0; i < response.apis.length; i++) {
+    var api = response.apis[i];
+    if (api.operations) {
+      for (var j = 0; j < api.operations.length; j++) {
+        operation = api.operations[j];
+        isApi = true;
+      }
+    }
+  }
+  if (response.basePath) {
+    this.basePath = response.basePath;
+  } else if (this.url.indexOf('?') > 0) {
+    this.basePath = this.url.substring(0, this.url.lastIndexOf('?'));
+  } else {
+    this.basePath = this.url;
+  }
+  if (isApi) {
+    var newName = response.resourcePath.replace(/\//g, '');
+    this.resourcePath = response.resourcePath;
+    var res = new SwaggerResource(response, this);
+    this.apis[newName] = res;
+    this.apisArray.push(res);
+  } else {
+    for (k = 0; k < response.apis.length; k++) {
+      resource = response.apis[k];
+      res = new SwaggerResource(resource, this);
+      this.apis[res.name] = res;
+      this.apisArray.push(res);
+    }
+  }
+  if (this.success) {
+    this.success();
+  }
+  return this;
+};
+
+SwaggerApi.prototype.selfReflect = function() {
+  var resource, resource_name, _ref;
+  if (this.apis == null) {
+    return false;
+  }
+  _ref = this.apis;
+  for (resource_name in _ref) {
+    resource = _ref[resource_name];
+    if (resource.ready == null) {
+      return false;
+    }
+  }
+  this.setConsolidatedModels();
+  this.ready = true;
+  if (this.success != null) {
+    return this.success();
+  }
+};
+
+SwaggerApi.prototype.fail = function(message) {
+  this.failure(message);
+  throw message;
+};
+
+SwaggerApi.prototype.setConsolidatedModels = function() {
+  var model, modelName, resource, resource_name, _i, _len, _ref, _ref1, _results;
+  this.modelsArray = [];
+  this.models = {};
+  _ref = this.apis;
+  for (resource_name in _ref) {
+    resource = _ref[resource_name];
+    for (modelName in resource.models) {
+      if (this.models[modelName] == null) {
+        this.models[modelName] = resource.models[modelName];
+        this.modelsArray.push(resource.models[modelName]);
+      }
+    }
+  }
+  _ref1 = this.modelsArray;
+  _results = [];
+  for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+    model = _ref1[_i];
+    _results.push(model.setReferencedModels(this.models));
+  }
+  return _results;
+};
+
+SwaggerApi.prototype.help = function() {
+  var operation, operation_name, parameter, resource, resource_name, _i, _len, _ref, _ref1, _ref2;
+  _ref = this.apis;
+  for (resource_name in _ref) {
+    resource = _ref[resource_name];
+    log(resource_name);
+    _ref1 = resource.operations;
+    for (operation_name in _ref1) {
+      operation = _ref1[operation_name];
+      log("  " + operation.nickname);
+      _ref2 = operation.parameters;
+      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
+        parameter = _ref2[_i];
+        log("    " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
+      }
+    }
+  }
+  return this;
+};
+
+var SwaggerResource = function(resourceObj, api) {
+  var _this = this;
+  this.api = api;
+  this.api = this.api;
+  produces = [];
+  consumes = [];
+  this.path = this.api.resourcePath != null ? this.api.resourcePath : resourceObj.path;
+  this.description = resourceObj.description;
+
+  var parts = this.path.split("/");
+  this.name = parts[parts.length - 1].replace('.{format}', '');
+  this.basePath = this.api.basePath;
+  this.operations = {};
+  this.operationsArray = [];
+  this.modelsArray = [];
+  this.models = {};
+  this.rawModels = {};
+  this.useJQuery = (typeof api.useJQuery !== 'undefined' ? api.useJQuery : null);
+
+  if ((resourceObj.apis != null) && (this.api.resourcePath != null)) {
+    this.addApiDeclaration(resourceObj);
+  } else {
+    if (this.path == null) {
+      this.api.fail("SwaggerResources must have a path.");
+    }
+    if (this.path.substring(0, 4) === 'http') {
+      this.url = this.path.replace('{format}', 'json');
+    } else {
+      this.url = this.api.basePath + this.path.replace('{format}', 'json');
+    }
+    this.api.progress('fetching resource ' + this.name + ': ' + this.url);
+    obj = {
+      url: this.url,
+      method: "get",
+      useJQuery: this.useJQuery,
+      headers: {
+        accept: "application/json"
+      },
+      on: {
+        response: function(resp) {
+          var responseObj = resp.obj || JSON.parse(resp.data);
+          return _this.addApiDeclaration(responseObj);
+        },
+        error: function(response) {
+          return _this.api.fail("Unable to read api '" +
+            _this.name + "' from path " + _this.url + " (server returned " + response.statusText + ")");
+        }
+      }
+    };
+    var e = typeof window !== 'undefined' ? window : exports;
+    e.authorizations.apply(obj);
+    new SwaggerHttp().execute(obj);
+  }
+}
+
+SwaggerResource.prototype.getAbsoluteBasePath = function(relativeBasePath) {
+  var parts, pos, url;
+  url = this.api.basePath;
+  pos = url.lastIndexOf(relativeBasePath);
+  if (pos === -1) {
+    parts = url.split("/");
+    url = parts[0] + "//" + parts[2];
+    if (relativeBasePath.indexOf("/") === 0) {
+      return url + relativeBasePath;
+    } else {
+      return url + "/" + relativeBasePath;
+    }
+  } else if (relativeBasePath === "/") {
+    return url.substring(0, pos);
+  } else {
+    return url.substring(0, pos) + relativeBasePath;
+  }
+};
+
+SwaggerResource.prototype.addApiDeclaration = function(response) {
+  if (response.produces != null)
+    this.produces = response.produces;
+  if (response.consumes != null)
+    this.consumes = response.consumes;
+  if ((response.basePath != null) && response.basePath.replace(/\s/g, '').length > 0)
+    this.basePath = response.basePath.indexOf("http") === -1 ? this.getAbsoluteBasePath(response.basePath) : response.basePath;
+  else if (this.api.generalBasePath != null)
+	this.basePath = this.api.generalBasePath.indexOf("http") === -1 ? this.getAbsoluteBasePath(this.api.generalBasePath) : this.api.generalBasePath;
+
+  this.addModels(response.models);
+  if (response.apis) {
+    for (var i = 0 ; i < response.apis.length; i++) {
+      var endpoint = response.apis[i];
+      this.addOperations(endpoint.path, endpoint.operations, response.consumes, response.produces);
+    }
+  }
+  this.api[this.name] = this;
+  this.ready = true;
+  return this.api.selfReflect();
+};
+
+SwaggerResource.prototype.addModels = function(models) {
+  if (models != null) {
+    var modelName;
+    for (modelName in models) {
+      if (this.models[modelName] == null) {
+        var swaggerModel = new SwaggerModel(modelName, models[modelName]);
+        this.modelsArray.push(swaggerModel);
+        this.models[modelName] = swaggerModel;
+        this.rawModels[modelName] = models[modelName];
+      }
+    }
+    var output = [];
+    for (var i = 0; i < this.modelsArray.length; i++) {
+      model = this.modelsArray[i];
+      output.push(model.setReferencedModels(this.models));
+    }
+    return output;
+  }
+};
+
+SwaggerResource.prototype.addOperations = function(resource_path, ops, consumes, produces) {
+  if (ops) {
+    output = [];
+    for (var i = 0; i < ops.length; i++) {
+      o = ops[i];
+      consumes = this.consumes;
+      produces = this.produces;
+      if (o.consumes != null)
+        consumes = o.consumes;
+      else
+        consumes = this.consumes;
+
+      if (o.produces != null)
+        produces = o.produces;
+      else
+        produces = this.produces;
+      type = (o.type||o.responseClass);
+
+      if (type === "array") {
+        ref = null;
+        if (o.items)
+          ref = o.items["type"] || o.items["$ref"];
+        type = "array[" + ref + "]";
+      }
+      responseMessages = o.responseMessages;
+      method = o.method;
+      if (o.httpMethod) {
+        method = o.httpMethod;
+      }
+      if (o.supportedContentTypes) {
+        consumes = o.supportedContentTypes;
+      }
+      if (o.errorResponses) {
+        responseMessages = o.errorResponses;
+        for (var j = 0; j < responseMessages.length; j++) {
+          r = responseMessages[j];
+          r.message = r.reason;
+          r.reason = null;
+        }
+      }
+      o.nickname = this.sanitize(o.nickname);
+      op = new SwaggerOperation(o.nickname, resource_path, method, o.parameters, o.summary, o.notes, type, responseMessages, this, consumes, produces, o.authorizations);
+      this.operations[op.nickname] = op;
+      output.push(this.operationsArray.push(op));
+    }
+    return output;
+  }
+};
+
+SwaggerResource.prototype.sanitize = function(nickname) {
+  var op;
+  op = nickname.replace(/[\s!@#$%^&*()_+=\[{\]};:<>|./?,\\'""-]/g, '_');
+  //'
+  op = op.replace(/((_){2,})/g, '_');
+  op = op.replace(/^(_)*/g, '');
+  op = op.replace(/([_])*$/g, '');
+  return op;
+};
+
+SwaggerResource.prototype.help = function() {
+  var op = this.operations;
+  var output = [];
+  var operation_name;
+  for (operation_name in op) {
+    operation = op[operation_name];
+    var msg = "  " + operation.nickname;
+    for (var i = 0; i < operation.parameters; i++) {
+      parameter = operation.parameters[i];
+      msg.concat("    " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
+    }
+    output.push(msg);
+  }
+  return output;
+};
+
+var SwaggerModel = function(modelName, obj) {
+  this.name = obj.id != null ? obj.id : modelName;
+  this.properties = [];
+  var propertyName;
+  for (propertyName in obj.properties) {
+    if (obj.required != null) {
+      var value;
+      for (value in obj.required) {
+        if (propertyName === obj.required[value]) {
+          obj.properties[propertyName].required = true;
+        }
+      }
+    }
+    prop = new SwaggerModelProperty(propertyName, obj.properties[propertyName]);
+    this.properties.push(prop);
+  }
+}
+
+SwaggerModel.prototype.setReferencedModels = function(allModels) {
+  var results = [];
+  for (var i = 0; i < this.properties.length; i++) {
+    var property = this.properties[i];
+    var type = property.type || property.dataType;
+    if (allModels[type] != null)
+      results.push(property.refModel = allModels[type]);
+    else if ((property.refDataType != null) && (allModels[property.refDataType] != null))
+      results.push(property.refModel = allModels[property.refDataType]);
+    else
+      results.push(void 0);
+  }
+  return results;
+};
+
+SwaggerModel.prototype.getMockSignature = function(modelsToIgnore) {
+  var propertiesStr = [];
+  for (var i = 0; i < this.properties.length; i++) {
+    prop = this.properties[i];
+    propertiesStr.push(prop.toString());
+  }
+
+  var strong = '<span class="strong">';
+  var stronger = '<span class="stronger">';
+  var strongClose = '</span>';
+  var classOpen = strong + this.name + ' {' + strongClose;
+  var classClose = strong + '}' + strongClose;
+  var returnVal = classOpen + '<div>' + propertiesStr.join(',</div><div>') + '</div>' + classClose;
+  if (!modelsToIgnore)
+    modelsToIgnore = [];
+  modelsToIgnore.push(this.name);
+
+  for (var i = 0; i < this.properties.length; i++) {
+    prop = this.properties[i];
+    if ((prop.refModel != null) && modelsToIgnore.indexOf(prop.refModel.name) === -1) {
+      returnVal = returnVal + ('<br>' + prop.refModel.getMockSignature(modelsToIgnore));
+    }
+  }
+  return returnVal;
+};
+
+SwaggerModel.prototype.createJSONSample = function(modelsToIgnore) {
+  if(sampleModels[this.name]) {
+    return sampleModels[this.name];
+  }
+  else {
+    var result = {};
+    var modelsToIgnore = (modelsToIgnore||[])
+    modelsToIgnore.push(this.name);
+    for (var i = 0; i < this.properties.length; i++) {
+      prop = this.properties[i];
+      result[prop.name] = prop.getSampleValue(modelsToIgnore);
+    }
+    modelsToIgnore.pop(this.name);
+    return result;
+  }
+};
+
+var SwaggerModelProperty = function(name, obj) {
+  this.name = name;
+  this.dataType = obj.type || obj.dataType || obj["$ref"];
+  this.isCollection = this.dataType && (this.dataType.toLowerCase() === 'array' || this.dataType.toLowerCase() === 'list' || this.dataType.toLowerCase() === 'set');
+  this.descr = obj.description;
+  this.required = obj.required;
+  if (obj.items != null) {
+    if (obj.items.type != null) {
+      this.refDataType = obj.items.type;
+    }
+    if (obj.items.$ref != null) {
+      this.refDataType = obj.items.$ref;
+    }
+  }
+  this.dataTypeWithRef = this.refDataType != null ? (this.dataType + '[' + this.refDataType + ']') : this.dataType;
+  if (obj.allowableValues != null) {
+    this.valueType = obj.allowableValues.valueType;
+    this.values = obj.allowableValues.values;
+    if (this.values != null) {
+      this.valuesString = "'" + this.values.join("' or '") + "'";
+    }
+  }
+  if (obj["enum"] != null) {
+    this.valueType = "string";
+    this.values = obj["enum"];
+    if (this.values != null) {
+      this.valueString = "'" + this.values.join("' or '") + "'";
+    }
+  }
+}
+
+SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) {
+  var result;
+  if ((this.refModel != null) && (modelsToIgnore.indexOf(prop.refModel.name) === -1)) {
+    result = this.refModel.createJSONSample(modelsToIgnore);
+  } else {
+    if (this.isCollection) {
+      result = this.toSampleValue(this.refDataType);
+    } else {
+      result = this.toSampleValue(this.dataType);
+    }
+  }
+  if (this.isCollection) {
+    return [result];
+  } else {
+    return result;
+  }
+};
+
+SwaggerModelProperty.prototype.toSampleValue = function(value) {
+  var result;
+  if (value === "integer") {
+    result = 0;
+  } else if (value === "boolean") {
+    result = false;
+  } else if (value === "double" || value === "number") {
+    result = 0.0;
+  } else if (value === "string") {
+    result = "";
+  } else {
+    result = value;
+  }
+  return result;
+};
+
+SwaggerModelProperty.prototype.toString = function() {
+  var req = this.required ? 'propReq' : 'propOpt';
+  var str = '<span class="propName ' + req + '">' + this.name + '</span> (<span class="propType">' + this.dataTypeWithRef + '</span>';
+  if (!this.required) {
+    str += ', <span class="propOptKey">optional</span>';
+  }
+  str += ')';
+  if (this.values != null) {
+    str += " = <span class='propVals'>['" + this.values.join("' or '") + "']</span>";
+  }
+  if (this.descr != null) {
+    str += ': <span class="propDesc">' + this.descr + '</span>';
+  }
+  return str;
+};
+
+var SwaggerOperation = function(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces, authorizations) {
+  var _this = this;
+
+  var errors = [];
+  this.nickname = (nickname||errors.push("SwaggerOperations must have a nickname."));
+  this.path = (path||errors.push("SwaggerOperation " + nickname + " is missing path."));
+  this.method = (method||errors.push("SwaggerOperation " + nickname + " is missing method."));
+  this.parameters = parameters != null ? parameters : [];
+  this.summary = summary;
+  this.notes = notes;
+  this.type = type;
+  this.responseMessages = (responseMessages||[]);
+  this.resource = (resource||errors.push("Resource is required"));
+  this.consumes = consumes;
+  this.produces = produces;
+  this.authorizations = authorizations;
+  this["do"] = __bind(this["do"], this);
+
+  if (errors.length > 0)
+    this.resource.api.fail(errors);
+
+  this.path = this.path.replace('{format}', 'json');
+  this.method = this.method.toLowerCase();
+  this.isGetMethod = this.method === "get";
+
+  this.resourceName = this.resource.name;
+  if(typeof this.type !== 'undefined' && this.type === 'void')
+    this.type = null;
+  else {
+    this.responseClassSignature = this.getSignature(this.type, this.resource.models);
+    this.responseSampleJSON = this.getSampleJSON(this.type, this.resource.models);
+  }
+
+  for(var i = 0; i < this.parameters.length; i ++) {
+    var param = this.parameters[i];
+    // might take this away
+    param.name = param.name || param.type || param.dataType;
+
+    // for 1.1 compatibility
+    var type = param.type || param.dataType;
+    if(type === 'array') {
+      type = 'array[' + (param.items.$ref ? param.items.$ref : param.items.type) + ']';
+    }
+    param.type = type;
+
+    if(type.toLowerCase() === 'boolean') {
+      param.allowableValues = {};
+      param.allowableValues.values = ["true", "false"];
+    }
+    param.signature = this.getSignature(type, this.resource.models);
+    param.sampleJSON = this.getSampleJSON(type, this.resource.models);
+
+    var enumValue = param["enum"];
+    if(enumValue != null) {
+      param.isList = true;
+      param.allowableValues = {};
+      param.allowableValues.descriptiveValues = [];
+
+      for(var j = 0; j < enumValue.length; j++) {
+        var v = enumValue[j];
+        if(param.defaultValue != null) {
+          param.allowableValues.descriptiveValues.push ({
+            value: String(v),
+            isDefault: (v === param.defaultValue)
+          });
+        }
+        else {
+          param.allowableValues.descriptiveValues.push ({
+            value: String(v),
+            isDefault: false
+          });
+        }
+      }
+    }
+    else if(param.allowableValues != null) {
+      if(param.allowableValues.valueType === "RANGE")
+        param.isRange = true;
+      else
+        param.isList = true;
+      if(param.allowableValues != null) {
+        param.allowableValues.descriptiveValues = [];
+        if(param.allowableValues.values) {
+          for(var j = 0; j < param.allowableValues.values.length; j++){
+            var v = param.allowableValues.values[j];
+            if(param.defaultValue != null) {
+              param.allowableValues.descriptiveValues.push ({
+                value: String(v),
+                isDefault: (v === param.defaultValue)
+              });
+            }
+            else {
+              param.allowableValues.descriptiveValues.push ({
+                value: String(v),
+                isDefault: false
+              });
+            }
+          }
+        }
+      }
+    }
+  }
+  this.resource[this.nickname] = function(args, callback, error) {
+    return _this["do"](args, callback, error);
+  };
+  this.resource[this.nickname].help = function() {
+    return _this.help();
+  };
+}
+
+SwaggerOperation.prototype.isListType = function(type) {
+  if (type && type.indexOf('[') >= 0) {
+    return type.substring(type.indexOf('[') + 1, type.indexOf(']'));
+  } else {
+    return void 0;
+  }
+};
+
+SwaggerOperation.prototype.getSignature = function(type, models) {
+  var isPrimitive, listType;
+  listType = this.isListType(type);
+  isPrimitive = ((listType != null) && models[listType]) || (models[type] != null) ? false : true;
+  if (isPrimitive) {
+    return type;
+  } else {
+    if (listType != null) {
+      return models[listType].getMockSignature();
+    } else {
+      return models[type].getMockSignature();
+    }
+  }
+};
+
+SwaggerOperation.prototype.getSampleJSON = function(type, models) {
+  var isPrimitive, listType, val;
+  listType = this.isListType(type);
+  isPrimitive = ((listType != null) && models[listType]) || (models[type] != null) ? false : true;
+  val = isPrimitive ? void 0 : (listType != null ? models[listType].createJSONSample() : models[type].createJSONSample());
+  if (val) {
+    val = listType ? [val] : val;
+    if(typeof val == "string")
+      return val;
+    else if(typeof val === "object") {
+      var t = val;
+      if(val instanceof Array && val.length > 0) {
+        t = val[0];
+      }
+      if(t.nodeName) {
+        var xmlString = new XMLSerializer().serializeToString(t);
+        return this.formatXml(xmlString);
+      }
+      else
+        return JSON.stringify(val, null, 2);
+    }
+    else 
+      return val;
+  }
+};
+
+SwaggerOperation.prototype["do"] = function(args, opts, callback, error) {
+  var key, param, params, possibleParams, req, requestContentType, responseContentType, value, _i, _len, _ref;
+  if (args == null) {
+    args = {};
+  }
+  if (opts == null) {
+    opts = {};
+  }
+  requestContentType = null;
+  responseContentType = null;
+  if ((typeof args) === "function") {
+    error = opts;
+    callback = args;
+    args = {};
+  }
+  if ((typeof opts) === "function") {
+    error = callback;
+    callback = opts;
+  }
+  if (error == null) {
+    error = function(xhr, textStatus, error) {
+      return log(xhr, textStatus, error);
+    };
+  }
+  if (callback == null) {
+    callback = function(response) {
+      var content;
+      content = null;
+      if (response != null) {
+        content = response.data;
+      } else {
+        content = "no data";
+      }
+      return log("default callback: " + content);
+    };
+  }
+  params = {};
+  params.headers = [];
+  if (args.headers != null) {
+    params.headers = args.headers;
+    delete args.headers;
+  }
+
+  var possibleParams = [];
+  for(var i = 0; i < this.parameters.length; i++) {
+    var param = this.parameters[i];
+    if(param.paramType === 'header') {
+      if(args[param.name])
+        params.headers[param.name] = args[param.name];
+    }
+    else if(param.paramType === 'form' || param.paramType.toLowerCase() === 'file')
+      possibleParams.push(param);
+  }
+
+  if (args.body != null) {
+    params.body = args.body;
+    delete args.body;
+  }
+
+  if (possibleParams) {
+    var key;
+    for (key in possibleParams) {
+      value = possibleParams[key];
+      if (args[value.name]) {
+        params[value.name] = args[value.name];
+      }
+    }
+  }
+
+  req = new SwaggerRequest(this.method, this.urlify(args), params, opts, callback, error, this);
+  if (opts.mock != null) {
+    return req;
+  } else {
+    return true;
+  }
+};
+
+SwaggerOperation.prototype.pathJson = function() {
+  return this.path.replace("{format}", "json");
+};
+
+SwaggerOperation.prototype.pathXml = function() {
+  return this.path.replace("{format}", "xml");
+};
+
+SwaggerOperation.prototype.encodePathParam = function(pathParam) {
+  var encParts, part, parts, _i, _len;
+  pathParam = pathParam.toString();
+  if (pathParam.indexOf("/") === -1) {
+    return encodeURIComponent(pathParam);
+  } else {
+    parts = pathParam.split("/");
+    encParts = [];
+    for (_i = 0, _len = parts.length; _i < _len; _i++) {
+      part = parts[_i];
+      encParts.push(encodeURIComponent(part));
+    }
+    return encParts.join("/");
+  }
+};
+
+SwaggerOperation.prototype.urlify = function(args) {
+  var url = this.resource.basePath + this.pathJson();
+  var params = this.parameters;
+  for(var i = 0; i < params.length; i ++){
+    var param = params[i];
+    if (param.paramType === 'path') {
+      if(args[param.name]) {
+        // apply path params and remove from args
+        var reg = new RegExp('\{' + param.name + '[^\}]*\}', 'gi');
+        url = url.replace(reg, this.encodePathParam(args[param.name]));
+        delete args[param.name];
+      }
+      else
+        throw "" + param.name + " is a required path param.";
+    }
+  }
+
+  var queryParams = "";
+  for(var i = 0; i < params.length; i ++){
+    var param = params[i];
+    if(param.paramType === 'query') {
+      if (args[param.name] !== undefined) {
+        if (queryParams !== '')
+          queryParams += "&";
+        queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]);
+      }
+    }
+  }
+  if ((queryParams != null) && queryParams.length > 0)
+    url += '?' + queryParams;
+  return url;
+};
+
+SwaggerOperation.prototype.supportHeaderParams = function() {
+  return this.resource.api.supportHeaderParams;
+};
+
+SwaggerOperation.prototype.supportedSubmitMethods = function() {
+  return this.resource.api.supportedSubmitMethods;
+};
+
+SwaggerOperation.prototype.getQueryParams = function(args) {
+  return this.getMatchingParams(['query'], args);
+};
+
+SwaggerOperation.prototype.getHeaderParams = function(args) {
+  return this.getMatchingParams(['header'], args);
+};
+
+SwaggerOperation.prototype.getMatchingParams = function(paramTypes, args) {
+  var matchingParams = {};
+  var params = this.parameters;
+  for (var i = 0; i < params.length; i++) {
+    param = params[i];
+    if (args && args[param.name])
+      matchingParams[param.name] = args[param.name];
+  }
+  var headers = this.resource.api.headers;
+  var name;
+  for (name in headers) {
+    var value = headers[name];
+    matchingParams[name] = value;
+  }
+  return matchingParams;
+};
+
+SwaggerOperation.prototype.help = function() {
+  var msg = "";
+  var params = this.parameters;
+  for (var i = 0; i < params.length; i++) {
+    var param = params[i];
+    if (msg !== "")
+      msg += "\n";
+    msg += "* " + param.name + (param.required ? ' (required)' : '') + " - " + param.description;
+  }
+  return msg;
+};
+
+
+SwaggerOperation.prototype.formatXml = function(xml) {
+  var contexp, formatted, indent, lastType, lines, ln, pad, reg, transitions, wsexp, _fn, _i, _len;
+  reg = /(>)(<)(\/*)/g;
+  wsexp = /[ ]*(.*)[ ]+\n/g;
+  contexp = /(<.+>)(.+\n)/g;
+  xml = xml.replace(reg, '$1\n$2$3').replace(wsexp, '$1\n').replace(contexp, '$1\n$2');
+  pad = 0;
+  formatted = '';
+  lines = xml.split('\n');
+  indent = 0;
+  lastType = 'other';
+  transitions = {
+    'single->single': 0,
+    'single->closing': -1,
+    'single->opening': 0,
+    'single->other': 0,
+    'closing->single': 0,
+    'closing->closing': -1,
+    'closing->opening': 0,
+    'closing->other': 0,
+    'opening->single': 1,
+    'opening->closing': 0,
+    'opening->opening': 1,
+    'opening->other': 1,
+    'other->single': 0,
+    'other->closing': -1,
+    'other->opening': 0,
+    'other->other': 0
+  };
+  _fn = function(ln) {
+    var fromTo, j, key, padding, type, types, value;
+    types = {
+      single: Boolean(ln.match(/<.+\/>/)),
+      closing: Boolean(ln.match(/<\/.+>/)),
+      opening: Boolean(ln.match(/<[^!?].*>/))
+    };
+    type = ((function() {
+      var _results;
+      _results = [];
+      for (key in types) {
+        value = types[key];
+        if (value) {
+          _results.push(key);
+        }
+      }
+      return _results;
+    })())[0];
+    type = type === void 0 ? 'other' : type;
+    fromTo = lastType + '->' + type;
+    lastType = type;
+    padding = '';
+    indent += transitions[fromTo];
+    padding = ((function() {
+      var _j, _ref5, _results;
+      _results = [];
+      for (j = _j = 0, _ref5 = indent; 0 <= _ref5 ? _j < _ref5 : _j > _ref5; j = 0 <= _ref5 ? ++_j : --_j) {
+        _results.push('  ');
+      }
+      return _results;
+    })()).join('');
+    if (fromTo === 'opening->closing') {
+      return formatted = formatted.substr(0, formatted.length - 1) + ln + '\n';
+    } else {
+      return formatted += padding + ln + '\n';
+    }
+  };
+  for (_i = 0, _len = lines.length; _i < _len; _i++) {
+    ln = lines[_i];
+    _fn(ln);
+  }
+  return formatted;
+};
+
+var SwaggerRequest = function(type, url, params, opts, successCallback, errorCallback, operation, execution) {
+  var _this = this;
+  var errors = [];
+  this.useJQuery = (typeof operation.useJQuery !== 'undefined' ? operation.useJQuery : null);
+  this.type = (type||errors.push("SwaggerRequest type is required (get/post/put/delete/patch/options)."));
+  this.url = (url||errors.push("SwaggerRequest url is required."));
+  this.params = params;
+  this.opts = opts;
+  this.successCallback = (successCallback||errors.push("SwaggerRequest successCallback is required."));
+  this.errorCallback = (errorCallback||errors.push("SwaggerRequest error callback is required."));
+  this.operation = (operation||errors.push("SwaggerRequest operation is required."));
+  this.execution = execution;
+  this.headers = (params.headers||{});
+
+  if(errors.length > 0) {
+    throw errors;
+  }
+
+  this.type = this.type.toUpperCase();
+
+  var myHeaders = {};
+  var body = params.body;
+  var parent = params["parent"];
+  var requestContentType = "application/json";
+
+  var formParams = [];
+  var fileParams = [];
+  var params = this.operation.parameters;
+
+
+  for(var i = 0; i < params.length; i++) {
+    var param = params[i];
+    if(param.paramType === "form")
+      formParams.push(param);
+    else if(param.paramType === "file")
+      fileParams.push(param);
+  }
+
+
+  if (body && (this.type === "POST" || this.type === "PUT" || this.type === "PATCH")) {
+    if (this.opts.requestContentType) {
+      requestContentType = this.opts.requestContentType;
+    }
+  } else {
+    // if any form params, content type must be set
+    if(formParams.length > 0) {
+      if(fileParams.length > 0)
+        requestContentType = "multipart/form-data";
+      else
+        requestContentType = "application/x-www-form-urlencoded";
+    }
+    else if (this.type != "DELETE")
+      requestContentType = null;
+  }
+
+  if (requestContentType && this.operation.consumes) {
+    if (this.operation.consumes[requestContentType] === 'undefined') {
+      log("server doesn't consume " + requestContentType + ", try " + JSON.stringify(this.operation.consumes));
+      if (this.requestContentType === null) {
+        requestContentType = this.operation.consumes[0];
+      }
+    }
+  }
+
+  var responseContentType = null;
+  if (this.opts.responseContentType) {
+    responseContentType = this.opts.responseContentType;
+  } else {
+    responseContentType = "application/json";
+  }
+  if (responseContentType && this.operation.produces) {
+    if (this.operation.produces[responseContentType] === 'undefined') {
+      log("server can't produce " + responseContentType);
+    }
+  }
+  if (requestContentType && requestContentType.indexOf("application/x-www-form-urlencoded") === 0) {
+    var fields = {};
+    var possibleParams = {};
+    var values = {};
+    var key;
+    for(key in formParams){
+      var param = formParams[key];
+      values[param.name] = param;
+    }
+
+    var encoded = "";
+    var key;
+    for(key in values) {
+      value = this.params[key];
+      if(typeof value !== 'undefined'){
+        if(encoded !== "")
+          encoded += "&";
+        encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value);
+      }
+    }
+    body = encoded;
+  }
+  var name;
+  for (name in this.headers)
+    myHeaders[name] = this.headers[name];
+  if ((requestContentType && body !== "") || (requestContentType === "application/x-www-form-urlencoded"))
+    myHeaders["Content-Type"] = requestContentType;
+  if (responseContentType)
+    myHeaders["Accept"] = responseContentType;
+
+  if (!((this.headers != null) && (this.headers.mock != null))) {
+    obj = {
+      url: this.url,
+      method: this.type,
+      headers: myHeaders,
+      body: body,
+      useJQuery: this.useJQuery,
+      on: {
+        error: function(response) {
+          return _this.errorCallback(response, _this.opts.parent);
+        },
+        redirect: function(response) {
+          return _this.successCallback(response, _this.opts.parent);
+        },
+        307: function(response) {
+          return _this.successCallback(response, _this.opts.parent);
+        },
+        response: function(response) {
+          return _this.successCallback(response, _this.opts.parent);
+        }
+      }
+    };
+    var e;
+    if (typeof window !== 'undefined') {
+      e = window;
+    } else {
+      e = exports;
+    }
+    status = e.authorizations.apply(obj, this.operation.authorizations);
+    if (opts.mock == null) {
+      if (status !== false) {
+        new SwaggerHttp().execute(obj);
+      } else {
+        obj.canceled = true;
+      }
+    } else {
+      return obj;
+    }
+  }
+};
+
+SwaggerRequest.prototype.asCurl = function() {
+  var results = [];
+  if(this.headers) {
+    var key;
+    for(key in this.headers) {
+      results.push("--header \"" + key + ": " + this.headers[v] + "\"");
+    }
+  }
+  return "curl " + (results.join(" ")) + " " + this.url;
+};
+
+/**
+ * SwaggerHttp is a wrapper for executing requests
+ */
+var SwaggerHttp = function() {};
+
+SwaggerHttp.prototype.execute = function(obj) {
+  if(obj && (typeof obj.useJQuery === 'boolean'))
+    this.useJQuery = obj.useJQuery;
+  else
+    this.useJQuery = this.isIE8();
+
+  if(this.useJQuery)
+    return new JQueryHttpClient().execute(obj);
+  else
+    return new ShredHttpClient().execute(obj);
+}
+
+SwaggerHttp.prototype.isIE8 = function() {
+  var detectedIE = false;
+  if (typeof navigator !== 'undefined' && navigator.userAgent) {
+    nav = navigator.userAgent.toLowerCase();
+    if (nav.indexOf('msie') !== -1) {
+      var version = parseInt(nav.split('msie')[1]);
+      if (version <= 8) {
+        detectedIE = true;
+      }
+    }
+  }
+  return detectedIE;
+};
+
+/*
+ * JQueryHttpClient lets a browser take advantage of JQuery's cross-browser magic
+ */
+var JQueryHttpClient = function(options) {}
+
+JQueryHttpClient.prototype.execute = function(obj) {
+  var cb = obj.on;
+  var request = obj;
+
+  obj.type = obj.method;
+  obj.cache = false;
+
+  obj.beforeSend = function(xhr) {
+    var key, results;
+    if (obj.headers) {
+      results = [];
+      var key;
+      for (key in obj.headers) {
+        if (key.toLowerCase() === "content-type") {
+          results.push(obj.contentType = obj.headers[key]);
+        } else if (key.toLowerCase() === "accept") {
+          results.push(obj.accepts = obj.headers[key]);
+        } else {
+          results.push(xhr.setRequestHeader(key, obj.headers[key]));
+        }
+      }
+      return results;
+    }
+  };
+
+  obj.data = obj.body;
+  obj.complete = function(response, textStatus, opts) {
+    headers = {};
+    headerArray = response.getAllResponseHeaders().split(":");
+
+    for(var i = 0; i < headerArray.length / 2; i++)
+      headers[headerArray[i] = headerArray[i+1]];
+
+    out = {
+      headers: headers,
+      url: request.url,
+      method: request.method,
+      status: response.status,
+      data: response.responseText,
+      headers: headers
+    };
+
+    var contentType = (headers["content-type"]||headers["Content-Type"]||null)
+
+    if(contentType != null) {
+      if(contentType.indexOf("application/json") == 0 || contentType.indexOf("+json") > 0) {
+        if(response.responseText && response.responseText !== "")
+          out.obj = JSON.parse(response.responseText);
+        else
+          out.obj = {}
+      }
+    }
+
+    if(response.status >= 200 && response.status < 300)
+      cb.response(out);
+    else if(response.status === 0 || (response.status >= 400 && response.status < 599))
+      cb.error(out);
+    else
+      return cb.response(out);
+  };
+
+  $.support.cors = true;
+  return $.ajax(obj);
+}
+
+/*
+ * ShredHttpClient is a light-weight, node or browser HTTP client
+ */
+var ShredHttpClient = function(options) {
+  this.options = (options||{});
+  this.isInitialized = false;
+
+  var identity, toString;
+
+  if (typeof window !== 'undefined') {
+    this.Shred = require("./shred");
+    this.content = require("./shred/content");
+  }
+  else
+    this.Shred = require("shred");
+  this.shred = new this.Shred();
+}
+
+ShredHttpClient.prototype.initShred = function () {
+  this.isInitialized = true;
+  this.registerProcessors(this.shred);
+}
+
+ShredHttpClient.prototype.registerProcessors = function(shred) {
+  var identity = function(x) {
+    return x;
+  };
+  var toString = function(x) {
+    return x.toString();
+  };
+
+  if (typeof window !== 'undefined') {
+    this.content.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
+      parser: identity,
+      stringify: toString
+    });
+  } else {
+    this.Shred.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
+      parser: identity,
+      stringify: toString
+    });
+  }
+}
+
+ShredHttpClient.prototype.execute = function(obj) {
+  if(!this.isInitialized)
+    this.initShred();
+
+  var cb = obj.on, res;
+
+  var transform = function(response) {
+    var out = {
+      headers: response._headers,
+      url: response.request.url,
+      method: response.request.method,
+      status: response.status,
+      data: response.content.data
+    };
+
+    var contentType = (response._headers["content-type"]||response._headers["Content-Type"]||null)
+
+    if(contentType != null) {
+      if(contentType.indexOf("application/json") == 0 || contentType.indexOf("+json") > 0) {
+        if(response.content.data && response.content.data !== "")
+          out.obj = JSON.parse(response.content.data);
+        else
+          out.obj = {}
+      }
+    }
+    return out;
+  };
+
+  res = {
+    error: function(response) {
+      if (obj)
+        return cb.error(transform(response));
+    },
+    redirect: function(response) {
+      if (obj)
+        return cb.redirect(transform(response));
+    },
+    307: function(response) {
+      if (obj)
+        return cb.redirect(transform(response));
+    },
+    response: function(response) {
+      if (obj)
+        return cb.response(transform(response));
+    }
+  };
+  if (obj) {
+    obj.on = res;
+  }
+  return this.shred.request(obj);
+};
+
+/**
+ * SwaggerAuthorizations applys the correct authorization to an operation being executed
+ */
+var SwaggerAuthorizations = function() {
+  this.authz = {};
+};
+
+SwaggerAuthorizations.prototype.add = function(name, auth) {
+  this.authz[name] = auth;
+  return auth;
+};
+
+SwaggerAuthorizations.prototype.remove = function(name) {
+  return delete this.authz[name];
+};
+
+SwaggerAuthorizations.prototype.apply = function(obj, authorizations) {
+  status = null;
+  var key;
+  for (key in this.authz) {
+    value = this.authz[key];
+    result = value.apply(obj, authorizations);
+    if (result === false)
+      status = false;
+    if (result === true)
+      status = true;
+  }
+  return status;
+};
+
+/**
+ * ApiKeyAuthorization allows a query param or header to be injected
+ */
+var ApiKeyAuthorization = function(name, value, type) {
+  this.name = name;
+  this.value = value;
+  this.type = type;
+};
+
+ApiKeyAuthorization.prototype.apply = function(obj, authorizations) {
+  if (this.type === "query") {
+    if (obj.url.indexOf('?') > 0)
+      obj.url = obj.url + "&" + this.name + "=" + this.value;
+    else
+      obj.url = obj.url + "?" + this.name + "=" + this.value;
+    return true;
+  } else if (this.type === "header") {
+    obj.headers[this.name] = this.value;
+    return true;
+  }
+};
+
+var CookieAuthorization = function(cookie) {
+  this.cookie = cookie;
+}
+
+CookieAuthorization.prototype.apply = function(obj, authorizations) {
+  obj.cookieJar = obj.cookieJar || CookieJar();
+  obj.cookieJar.setCookie(this.cookie);
+  return true;
+}
+
+/**
+ * Password Authorization is a basic auth implementation
+ */
+var PasswordAuthorization = function(name, username, password) {
+  this.name = name;
+  this.username = username;
+  this.password = password;
+  this._btoa = null;
+  if (typeof window !== 'undefined')
+    this._btoa = btoa;
+  else
+    this._btoa = require("btoa");
+};
+
+PasswordAuthorization.prototype.apply = function(obj, authorizations) {
+  var base64encoder = this._btoa;
+  obj.headers["Authorization"] = "Basic " + base64encoder(this.username + ":" + this.password);
+  return true;
+};
+
+var e = (typeof window !== 'undefined' ? window : exports);
+
+var sampleModels = {};
+var cookies = {};
+
+e.SampleModels = sampleModels;
+e.SwaggerHttp = SwaggerHttp;
+e.SwaggerRequest = SwaggerRequest;
+e.authorizations = new SwaggerAuthorizations();
+e.ApiKeyAuthorization = ApiKeyAuthorization;
+e.PasswordAuthorization = PasswordAuthorization;
+e.CookieAuthorization = CookieAuthorization;
+e.JQueryHttpClient = JQueryHttpClient;
+e.ShredHttpClient = ShredHttpClient;
+e.SwaggerOperation = SwaggerOperation;
+e.SwaggerModel = SwaggerModel;
+e.SwaggerModelProperty = SwaggerModelProperty;
+e.SwaggerResource = SwaggerResource;
+e.SwaggerApi = SwaggerApi;
diff --git a/src/module_gtf/module/gtf.doc/web_services/javascript/underscore-min.js b/src/module_gtf/module/gtf.doc/web_services/javascript/underscore-min.js
new file mode 100755
index 0000000000000000000000000000000000000000..5a0cb3b008d213ef3ecd3147c51eed08d98e2c54
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/javascript/underscore-min.js
@@ -0,0 +1,32 @@
+// Underscore.js 1.3.3
+// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Underscore is freely distributable under the MIT license.
+// Portions of Underscore are inspired or borrowed from Prototype,
+// Oliver Steele's Functional, and John Resig's Micro-Templating.
+// For all details and documentation:
+// http://documentcloud.github.com/underscore
+(function(){function r(a,c,d){if(a===c)return 0!==a||1/a==1/c;if(null==a||null==c)return a===c;a._chain&&(a=a._wrapped);c._chain&&(c=c._wrapped);if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return!1;switch(e){case "[object String]":return a==""+c;case "[object Number]":return a!=+a?c!=+c:0==a?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
+c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if("object"!=typeof a||"object"!=typeof c)return!1;for(var f=d.length;f--;)if(d[f]==a)return!0;d.push(a);var f=0,g=!0;if("[object Array]"==e){if(f=a.length,g=f==c.length)for(;f--&&(g=f in a==f in c&&r(a[f],c[f],d)););}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return!1;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&r(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,h)&&!f--)break;
+g=!f}}d.pop();return g}var s=this,I=s._,o={},k=Array.prototype,p=Object.prototype,i=k.slice,J=k.unshift,l=p.toString,K=p.hasOwnProperty,y=k.forEach,z=k.map,A=k.reduce,B=k.reduceRight,C=k.filter,D=k.every,E=k.some,q=k.indexOf,F=k.lastIndexOf,p=Array.isArray,L=Object.keys,t=Function.prototype.bind,b=function(a){return new m(a)};"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(exports=module.exports=b),exports._=b):s._=b;b.VERSION="1.3.3";var j=b.each=b.forEach=function(a,
+c,d){if(a!=null)if(y&&a.forEach===y)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===o)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===o)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(z&&a.map===z)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(A&&
+a.reduce===A){e&&(c=b.bind(c,e));return f?a.reduce(c,d):a.reduce(c)}j(a,function(a,b,i){if(f)d=c.call(e,d,a,b,i);else{d=a;f=true}});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(B&&a.reduceRight===B){e&&(c=b.bind(c,e));return f?a.reduceRight(c,d):a.reduceRight(c)}var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=function(a,
+c,b){var e;G(a,function(a,g,h){if(c.call(b,a,g,h)){e=a;return true}});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(C&&a.filter===C)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(D&&a.every===D)return a.every(c,b);j(a,function(a,g,h){if(!(e=e&&c.call(b,
+a,g,h)))return o});return!!e};var G=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(E&&a.some===E)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return o});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;if(q&&a.indexOf===q)return a.indexOf(c)!=-1;return b=G(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
+function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&
+(e={value:a,computed:b})});return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){d=Math.floor(Math.random()*(f+1));b[f]=b[d];b[d]=a});return b};b.sortBy=function(a,c,d){var e=b.isFunction(c)?c:function(a){return a[c]};return b.pluck(b.map(a,function(a,b,c){return{value:a,criteria:e.call(d,a,b,c)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c===void 0?1:d===void 0?-1:c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};
+j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:b.isArray(a)||b.isArguments(a)?i.call(a):a.toArray&&b.isFunction(a.toArray)?a.toArray():b.values(a)};b.size=function(a){return b.isArray(a)?a.length:b.keys(a).length};b.first=b.head=b.take=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,
+0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,
+e=[];a.length<3&&(c=true);b.reduce(d,function(d,g,h){if(c?b.last(d)!==g||!d.length:!b.include(d,g)){d.push(g);e.push(a[h])}return d},[]);return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1),true);return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=
+i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d){d=b.sortedIndex(a,c);return a[d]===c?d:-1}if(q&&a.indexOf===q)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(F&&a.lastIndexOf===F)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){if(arguments.length<=
+1){b=a||0;a=0}for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;){g[f++]=a;a=a+d}return g};var H=function(){};b.bind=function(a,c){var d,e;if(a.bind===t&&t)return t.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));H.prototype=a.prototype;var b=new H,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=
+i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(null,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i,j=b.debounce(function(){h=
+g=false},c);return function(){d=this;e=arguments;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);j()},c));g?h=true:i=a.apply(d,e);j();g=true;return i}};b.debounce=function(a,b,d){var e;return function(){var f=this,g=arguments;d&&!e&&a.apply(f,g);clearTimeout(e);e=setTimeout(function(){e=null;d||a.apply(f,g)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));
+return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=L||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&
+c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.pick=function(a){var c={};j(b.flatten(i.call(arguments,1)),function(b){b in a&&(c[b]=a[b])});return c};b.defaults=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return r(a,b,[])};b.isEmpty=
+function(a){if(a==null)return true;if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=p||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return l.call(a)=="[object Arguments]"};b.isArguments(arguments)||(b.isArguments=function(a){return!(!a||!b.has(a,"callee"))});b.isFunction=function(a){return l.call(a)=="[object Function]"};
+b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isFinite=function(a){return b.isNumber(a)&&isFinite(a)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,
+b){return K.call(a,b)};b.noConflict=function(){s._=I;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.result=function(a,c){if(a==null)return null;var d=a[c];return b.isFunction(d)?d.call(a):d};b.mixin=function(a){j(b.functions(a),function(c){M(c,b[c]=a[c])})};var N=0;b.uniqueId=
+function(a){var b=N++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var u=/.^/,n={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"},v;for(v in n)n[n[v]]=v;var O=/\\|'|\r|\n|\t|\u2028|\u2029/g,P=/\\(\\|'|r|n|t|u2028|u2029)/g,w=function(a){return a.replace(P,function(a,b){return n[b]})};b.template=function(a,c,d){d=b.defaults(d||{},b.templateSettings);a="__p+='"+a.replace(O,function(a){return"\\"+n[a]}).replace(d.escape||
+u,function(a,b){return"'+\n_.escape("+w(b)+")+\n'"}).replace(d.interpolate||u,function(a,b){return"'+\n("+w(b)+")+\n'"}).replace(d.evaluate||u,function(a,b){return"';\n"+w(b)+"\n;__p+='"})+"';\n";d.variable||(a="with(obj||{}){\n"+a+"}\n");var a="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+a+"return __p;\n",e=new Function(d.variable||"obj","_",a);if(c)return e(c,b);c=function(a){return e.call(this,a,b)};c.source="function("+(d.variable||"obj")+"){\n"+a+"}";return c};
+b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var x=function(a,c){return c?b(a).chain():a},M=function(a,c){m.prototype[a]=function(){var a=i.call(arguments);J.call(a,this._wrapped);return x(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return x(d,
+this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return x(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/order/insert b/src/module_gtf/module/gtf.doc/web_services/services/order/insert
new file mode 100755
index 0000000000000000000000000000000000000000..e72861947f30d1572305dc68c9d3ad319e7be71a
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/order/insert
@@ -0,0 +1,156 @@
+{
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/insert",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "insert an order",
+                    "notes": "",
+                    "type": "Order",
+                    "nickname": "insertOrder",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "workspace_key",
+                            "description": "",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "wk_params",
+                            "description": "Workspace parameters",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "priority_id",
+                            "description": "Priority level",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_notifications",
+                            "description": "Notificiation email address",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Order": {
+            "id": "Order",
+            "required": [
+                "order_id",
+                "priority_id"
+            ],
+            "properties": {
+                "order_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "unique identifier for the order",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "priority_id": {
+                    "type": "smallint",
+                    "format": "int16"
+                },
+                "workspace_id": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)"
+                },
+                "order_status_id": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "user_id": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "wk_params": {
+                    "type": "text"
+                },
+                "result_url": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)"
+                },
+                "order_date": {
+                    "type": "timestamp"
+                },
+                "log_url": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)"
+                },
+                "execution_date": {
+                    "type": "timestamp"
+                },
+                "attempt": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "email_notifications": {
+                    "type": "text"
+                },
+                "email_option_id": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "deleted": {
+                    "type": "boolean"
+                },
+                "gtf_engine_id": {
+                    "type": "smallint",
+                    "format": "int16"
+                },
+                "length_sec": {
+                    "type": "character varying",
+                    "format": "varchar"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/order/main b/src/module_gtf/module/gtf.doc/web_services/services/order/main
new file mode 100755
index 0000000000000000000000000000000000000000..8702cd9413bf6fa839b1bb718af0b718954d3d73
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/order/main
@@ -0,0 +1,9 @@
+{
+    "apiVersion": "1.0.0",
+    "swaggerVersion": "1.2",
+    "apis": [
+        {
+            "path": "/../insert"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/order/overview.phtml b/src/module_gtf/module/gtf.doc/web_services/services/order/overview.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..ec245ea914067ad08da5672c15f0a67fcf6969a2
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/order/overview.phtml
@@ -0,0 +1,4 @@
+<h1 class="titleOverview">Service order</h1>
+<p>
+	<a class="linkOverview" href="javascript:sService='order';LoadApi()">order :</a> the insert operation of the service order adds a processing request in GTF directly from an http GET request. Using the GET method to create a resource on the server is not consistent with good Rest practices but it may be convenient in certain cases (eg test). The use of the order web service is not recommended in production.
+</p>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/overview.phtml b/src/module_gtf/module/gtf.doc/web_services/services/overview.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..723293d40bf96ef5863ec48fb1846ea66bb89067
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/overview.phtml
@@ -0,0 +1,13 @@
+<html>
+	<body>
+			<h1>GTF web services</h1><br>
+			<p>GTF provides developers with 4 web services so that they can access the main features of the application without having to use the gtf.client interface.</p></br>
+		
+		<?php
+			include "token/overview.phtml";
+			include "rest/overview.phtml";
+			include "workspace/overview.phtml";
+			include "order/overview.phtml";	
+		?>
+	</body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/emailoptions b/src/module_gtf/module/gtf.doc/web_services/services/rest/emailoptions
new file mode 100755
index 0000000000000000000000000000000000000000..cec431fb7ccd9d94625a95035e8db3fe3a6e2973
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/emailoptions
@@ -0,0 +1,131 @@
+{
+    "resourcePath": "/emailoptions",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/emailoptions",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all email options",
+                    "notes": "Returns all emailoptions entities<br>1: Always<br>2: Never<br>3: Only if failed<br>4: Only if successfull",
+                    "type": "EmailOption",
+                    "nickname": "getEmailOptions",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/emailoptions/{email_option_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find an email option by ID",
+                    "notes": "Returns an emailoption entity based on ID<br>1: Always<br>2: Never<br>3: Only if failed<br>4: Only if successfull",
+                    "type": "EmailOption",
+                    "nickname": "getEmailOptionsById",
+                    "parameters": [
+                        {
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "EmailOption not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "EmailOption": {
+            "id": "EmailOption",
+            "required": [
+                "email_option_id",
+                "name"
+            ],
+            "properties": {
+                "email_option_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "unique identifier for the emailOption",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "label": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/files b/src/module_gtf/module/gtf.doc/web_services/services/rest/files
new file mode 100755
index 0000000000000000000000000000000000000000..5337bdd4b8d51d44af205d368fbdcb2eba3a4022
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/files
@@ -0,0 +1,157 @@
+{
+    "resourcePath": "/files",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/files",
+            "operations": [
+                {
+                    "method": "POST",
+                    "summary": "Iploads a file",
+                    "notes": "",
+                    "type": "File",
+                    "nickname": "uploadFile",
+                    "consumes": [
+                        "multipart/form-data"
+                    ],
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+                        {
+                            "name": "file",
+                            "description": "file to upload",
+                            "required": false,
+                            "type": "File",
+                            "paramType": "body",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/files/{file_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find a file by ID",
+                    "notes": "Returns a file entity based on ID",
+                    "type": "File",
+                    "nickname": "getFileById",
+                    "authorizations": {},
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "file_id",
+                            "description": "Unique identifier for the file",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "File not found"
+                        }
+                    ]
+                },
+                {
+                    "method": "DELETE",
+                    "summary": "Deletes a file",
+                    "notes": "",
+                    "type": "File",
+                    "nickname": "deleteFile",
+                    "parameters": [                        
+						{
+                            "name": "file_id",
+                            "description": "Unique identifier for the file",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "path",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid file value"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "File": {
+            "id": "File",
+            "required": [
+                "file_id"
+            ],
+            "properties": {
+                "file_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the file"
+                },
+                "file_name": {
+                    "type": "string",
+                    "description": "Name of the file"
+                },
+                "file_path": {
+                    "type": "string",
+                    "description": "Path to the file"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/gtfengines b/src/module_gtf/module/gtf.doc/web_services/services/rest/gtfengines
new file mode 100755
index 0000000000000000000000000000000000000000..47eb4379ac5ac55e024a3c6f0bdf8e56e14a442b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/gtfengines
@@ -0,0 +1,146 @@
+{
+    "resourcePath": "/gtfengines",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/gtfengines",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all gtf engines",
+                    "notes": "Returns all gtfengine entities",
+                    "type": "GtfEngine",
+                    "nickname": "getGtfEngines",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/gtfengines/{gtf_engine_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find a gtf engine by ID",
+                    "notes": "Returns a gtfengine entity based on ID",
+                    "type": "GtfEngine",
+                    "nickname": "getGtfEngineById",
+                    "parameters": [
+                        {
+                            "name": "gtf_engine_id",
+                            "description": "ID of gtfEngine that needs to be fetched",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "GtfEngine not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "GtfEngine": {
+            "id": "GtfEngine",
+            "required": [
+                "gtf_engine_id",
+                "name"
+            ],
+            "properties": {
+                "gtf_engine_id": {
+                    "type": "smallint",
+                    "format": "int16",
+                    "description": "unique identifier for the gtfEngine",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "name": {
+                    "type": "character varying(50)",
+                    "format": "varchar(50)"
+                },
+                "period": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "enabled": {
+                    "type": "boolean"
+                },
+                "fme_engine_id": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "server_id": {
+                    "type": "integer",
+                    "format": "int64"
+                }
+			}	
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/inboxes b/src/module_gtf/module/gtf.doc/web_services/services/rest/inboxes
new file mode 100755
index 0000000000000000000000000000000000000000..1afaf9b213b26d87c0694540ce9027eb369bce45
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/inboxes
@@ -0,0 +1,137 @@
+{
+    "resourcePath": "/inboxes",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/inboxes",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all inboxes",
+                    "notes": "Returns all inbox entities",
+                    "type": "Inbox",
+                    "nickname": "getInboxes",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/inboxes/{inbox_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find an inbox by ID",
+                    "notes": "Returns an inbox entity based on ID",
+                    "type": "Inbox",
+                    "nickname": "getInboxsById",
+                    "parameters": [
+                        {
+                            "name": "inbox_id",
+                            "description": "Inbox identifier",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Inbox not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Inbox": {
+            "id": "Inbox",
+            "required": [
+                "inbox_id",
+                "name"
+            ],
+            "properties": {
+                "inbox_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the inbox",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "name": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+					"description": "Name of the inbox"
+                },
+                "alias": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+					"description": ""
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/main b/src/module_gtf/module/gtf.doc/web_services/services/rest/main
new file mode 100755
index 0000000000000000000000000000000000000000..5bd11b8424b7d99dfbc6bcb1192bcc193c2eb7b0
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/main
@@ -0,0 +1,42 @@
+{
+    "apiVersion": "1.0.0",
+    "swaggerVersion": "1.2",
+    "apis": [
+        {
+            "path": "/../orders"
+        },
+        {
+            "path": "/../subscriptions"
+        },
+        {
+            "path": "/../surveys"
+        },
+        {
+            "path": "/../workspaces"
+        },
+        {
+            "path": "/../files"
+        },
+        {
+            "path": "/../emailoptions"
+        },
+        {
+            "path": "/../gtfengines"
+        },
+        {
+            "path": "/../inboxes"
+        },
+        {
+            "path": "/../orderstatus"
+        },
+        {
+            "path": "/../periods"
+        },
+        {
+            "path": "/../priorities"
+        },
+        {
+            "path": "/../surveytypes"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/orders b/src/module_gtf/module/gtf.doc/web_services/services/rest/orders
new file mode 100755
index 0000000000000000000000000000000000000000..8bb880ca6cfb947e664151d1207d1d5f7581f083
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/orders
@@ -0,0 +1,450 @@
+{
+    "resourcePath": "/orders",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+		{
+            "path": "/orders",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find all orders",
+                    "notes": "Returns all order entities of the logged in user",
+                    "type": "Order",
+                    "nickname": "getOrders",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                },
+				{
+                    "method": "POST",
+                    "summary": "Add a new order",
+                    "notes": "",
+                    "type": "Order",
+                    "nickname": "addOrder",
+                    "consumes": [
+                        "application/json",
+                        "application/xml",
+						"text/html"
+                    ],
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "workspace_key",
+                            "description": "Key identifier for the workspace",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "wk_params",
+                            "description": "Workspace parameters",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "priority_id",
+                            "description": "Priority level",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_notifications",
+                            "description": "Notificiation email address",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "path": "/orders/{order_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find an order by ID",
+                    "notes": "Returns an order entity based on ID. Returns a message with 'errorCode': '3' if the order doesn't exist or doesn't belong to the logged user.",
+                    "type": "Order",
+                    "nickname": "getOrderById",
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the order",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1",
+                            "maximum": "100000"
+                        },
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Order not found"
+                        }
+                    ]
+                },
+                {
+                    "method": "DELETE",
+                    "summary": "Delete an order",
+                    "notes": "",
+                    "type": "Order",
+                    "nickname": "deleteOrder",
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the order",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "path",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid order value"
+                        }
+                    ]
+                },
+                {
+                    "method": "PUT",
+                    "summary": "Update an existing order",
+                    "notes": "",
+                    "type": "Order",
+                    "nickname": "updateOrder",
+                    "consumes": [
+                        "application/x-www-form-urlencoded"
+                    ],
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the order",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "workspace_key",
+                            "description": "Key identifier for the workspace",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "wk_params",
+                            "description": "Workspace parameters",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "priority_id",
+                            "description": "Priority level",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "order_status_id",
+                            "description": "Identifier for processing status",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_notifications",
+                            "description": "Notificiation email address",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "attempt",
+                            "description": "Number of processing attempts",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "enabled",
+                            "description": "Active status of order",
+                            "required": false,
+                            "type": "boolean",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+							"code": 400,
+							"message": "Invalid ID supplied"
+						},
+						{
+							"code": 404,
+							"message": "Order not found"
+						},
+						{
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Order": {
+            "id": "Order",
+            "required": [
+                "order_id",
+                "priority_id"
+            ],
+            "properties": {
+                "order_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "unique identifier for the order",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "priority_id": {
+                    "type": "smallint",
+                    "format": "int16",
+                    "description": "Priority level"
+                },
+                "workspace_key": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "Key identifier for the workspace"
+                },
+                "workspace_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the workspace"
+                },
+                "name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+                    "description": "Workspace name (deprecated)"
+                },
+                "order_status_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Identifier for processing status"
+                },
+                "user_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "User identifier"
+                },
+                "wk_params": {
+                    "type": "text",
+                    "description": "Workspace parameters"
+                },
+                "result_url": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+                    "description": "Link to result"
+                },
+                "order_date": {
+                    "type": "timestamp",
+                    "description": "Date of order"
+                },
+                "log_url": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+                    "description": "Link to log file"
+                },
+                "execution_date": {
+                    "type": "timestamp",
+                    "description": "Start date of processing"
+                },
+                "attempt": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Number of processing attempts"
+                },
+                "email_notifications": {
+                    "type": "text",
+                    "description": "Notificiation email address"
+                },
+                "email_option_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Identifier for email option"
+                },
+                "deleted": {
+                    "type": "boolean",
+                    "description": "Indication of a deletion"
+                },
+                "gtf_engine_id": {
+                    "type": "smallint",
+                    "format": "int16",
+                    "description": "Identifier for the GTF  engine used during processing"
+                },
+                "length_sec": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "Processing length in second"
+                },
+                "workspace_name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+                    "description": "Workspace name"
+                },
+                "result_file": {
+                    "type": "text",
+                    "description": "Result file"
+                },
+                "log_file": {
+                    "type": "text",
+                    "description": "Log file"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/orderstatus b/src/module_gtf/module/gtf.doc/web_services/services/rest/orderstatus
new file mode 100755
index 0000000000000000000000000000000000000000..de7dbf1c878ecb39cfd1b41a80ab6dd3aa5c4e79
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/orderstatus
@@ -0,0 +1,132 @@
+{
+    "resourcePath": "/orderstatus",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/orderstatus",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all order status",
+                    "notes": "Returns all orderstatus entities<br>1: Stand by<br>2: Error<br>3: Processed<br>4: Critical error<br>5: Processing<br>6: Non authorized",
+                    "type": "OrderStatus",
+                    "nickname": "getOrderStatuss",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/orderstatus/{order_status_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find an order status by ID",
+                    "notes": "Returns an orderstatus entity based on ID<br>1: Stand by<br>2: Error<br>3: Processed<br>4: Critical error<br>5: Processing<br>6: Non authorized",
+                    "type": "OrderStatus",
+                    "nickname": "getOrderStatussById",
+                    "parameters": [
+                        {
+                            "name": "order_status_id",
+                            "description": "Identifier for processing status",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "OrderStatus not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "OrderStatus": {
+            "id": "OrderStatus",
+            "required": [
+                "order_status_id",
+                "name"
+            ],
+            "properties": {
+                "order_status_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the order status",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "label": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+					"description": "Label for the order status"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/overview.phtml b/src/module_gtf/module/gtf.doc/web_services/services/rest/overview.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..5bb2d004c518d2e5980563c30a0aaac933e2ad55
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/overview.phtml
@@ -0,0 +1,4 @@
+<h1 class="titleOverview">Service rest</h1>
+<p>
+	<a class="linkOverview" href="javascript:sService='rest';LoadApi()">rest :</a> this is the most comprehensive service which should be used as a preference when developing applications communicating with GTF. This service meets the highest standards of Restful web services (Representational state transfer) and operates the various methods of http: GET, PUT, POST, DELETE. Responses to requests from the Rest service are returned  in XML or JSON format.
+</p>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/periods b/src/module_gtf/module/gtf.doc/web_services/services/rest/periods
new file mode 100755
index 0000000000000000000000000000000000000000..12e5f39f9eb750006504e03968adef2ca9734a7b
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/periods
@@ -0,0 +1,140 @@
+{
+    "resourcePath": "/periods",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/periods",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all periods",
+                    "notes": "Returns all period entities",
+                    "type": "Period",
+                    "nickname": "getPeriods",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/periods/{period_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find period by ID",
+                    "notes": "Returns a period entity based on ID",
+                    "type": "Period",
+                    "nickname": "getPeriodById",
+                    "parameters": [
+                        {
+                            "name": "period_id",
+                            "description": "",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Period not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Period": {
+            "id": "Period",
+            "required": [
+                "period_id",
+                "name"
+            ],
+            "properties": {
+                "period_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the period",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "cron_expression": {
+                    "type": "text",
+					"description": "Definition of the period using cron (see: http://en.wikipedia.org/wiki/Cron)"
+                },
+                "name": {
+                    "type": "character varying(40)",
+                    "format": "varchar(40)",
+					"description": "Name of the period"
+                },
+                "enabled": {
+                    "type": "boolean",
+					"description": "Active status of the period"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/priorities b/src/module_gtf/module/gtf.doc/web_services/services/rest/priorities
new file mode 100755
index 0000000000000000000000000000000000000000..cb4b99a0028e6510c268d5293c5069ee546eb78d
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/priorities
@@ -0,0 +1,132 @@
+{
+    "resourcePath": "/priorities",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/priorities",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all priorities",
+                    "notes": "Returns all priority entities<br>0: Offpeak hours<br>1: A.S.A.P. level 1<br>2: Early as possible P2<br>3: Early as possible P3<br>4: Early as possible P4<br>5: Early as possible P5",
+                    "type": "Priority",
+                    "nickname": "getpriorities",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/priorities/{priority_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find a priority by ID",
+                    "notes": "Returns a priority entity based on ID<br>0: Offpeak hours<br>1: A.S.A.P. level 1<br>2: Early as possible P2<br>3: Early as possible P3<br>4: Early as possible P4<br>5: Early as possible P5",
+                    "type": "Priority",
+                    "nickname": "getPriorityById",
+                    "parameters": [
+                        {
+                            "name": "priority_id",
+                            "description": "Priority level",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Priority not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Priority": {
+            "id": "Priority",
+            "required": [
+                "priority_id",
+                "name"
+            ],
+            "properties": {
+                "priority_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the priority",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "label": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+					"description": "Priority description"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/subscriptions b/src/module_gtf/module/gtf.doc/web_services/services/rest/subscriptions
new file mode 100755
index 0000000000000000000000000000000000000000..e767674e7ca64f8d779f1292b90e4125887579b5
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/subscriptions
@@ -0,0 +1,403 @@
+{
+    "resourcePath": "/subscriptions",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+		{
+            "path": "/subscriptions",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find all subscriptions",
+                    "notes": "Returns all subscription entities of the logged in user",
+                    "type": "Subscription",
+                    "nickname": "getSubscriptions",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                },
+				{
+                    "method": "POST",
+                    "summary": "Add a new subscription",
+                    "notes": "",
+                    "type": "Subscription",
+                    "nickname": "addSubscription",
+                    "consumes": [
+                        "application/json",
+                        "application/xml",
+						"text/html"
+                    ],
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "workspace_key",
+                            "description": "Key identifier for the workspace",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "wk_params",
+                            "description": "Workspace parameters",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "period_id",
+                            "description": "",
+                            "required": true,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_notifications",
+                            "description": "Notificiation email address",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "path": "/subscriptions/{order_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find a subscription by ID",
+                    "notes": "Returns a subscription entity based on ID",
+                    "type": "Subscription",
+                    "nickname": "getSubscriptionById",
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the subscription",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1",
+                            "maximum": "100000"
+                        },
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Subscription not found"
+                        }
+                    ]
+                },
+                {
+                    "method": "DELETE",
+                    "summary": "Delete a subscription",
+                    "notes": "",
+                    "type": "Subscription",
+                    "nickname": "deleteSubscription",
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the subscription",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "path",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid subscription value"
+                        }
+                    ]
+                },
+                {
+                    "method": "PUT",
+                    "summary": "Update an existing subscription",
+                    "notes": "",
+                    "type": "Subscription",
+                    "nickname": "updateSubscription",
+                    "consumes": [
+                        "application/x-www-form-urlencoded"
+                    ],
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the subscription",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "period_id",
+                            "description": "",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "order_status_id",
+                            "description": "Identifier for processing status",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_notifications",
+                            "description": "Notificiation email address",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "enabled",
+                            "description": "Active status of subscription",
+                            "required": false,
+                            "type": "boolean",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+							"code": 400,
+							"message": "Invalid ID supplied"
+						},
+						{
+							"code": 404,
+							"message": "Subscription not found"
+						},
+						{
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Subscription": {
+            "id": "Subscription",
+            "required": [
+                "order_id",
+                "priority_id"
+            ],
+            "properties": {
+                "order_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the subscription",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "workspace_key": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "Key identifier for the workspace"
+                },
+                "workspace_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the workspace"
+                },
+                "label_name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+                    "description": "Workspace name (deprecated)"
+                },
+                "enabled": {
+                    "type": "boolean",
+                    "description": "Active status of subscription"
+                },
+                "order_status_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Identifier for processing status"
+                },
+                "user_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "User identifier"
+                },
+                "period_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": ""
+                },
+                "order_date": {
+                    "type": "timestamp",
+                    "description": "Date of order"
+                },
+                "execution_date": {
+                    "type": "timestamp",
+                    "description": "Start date of processing"
+                },
+                "wk_params": {
+                    "type": "text",
+                    "description": "Workspace parameters"
+                },
+                "result_url": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+                    "description": "Link to result"
+                },
+                "email_option_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Identifier for email option"
+                },
+                "email_notifications": {
+                    "type": "text",
+                    "description": "Notificiation email address"
+                },
+                "gtf_engine_id": {
+                    "type": "smallint",
+                    "format": "int16",
+                    "description": "Identifier for the GTF  engine used during processing"
+                },
+                "workspace_name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+                    "description": "Workspace name"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/surveys b/src/module_gtf/module/gtf.doc/web_services/services/rest/surveys
new file mode 100755
index 0000000000000000000000000000000000000000..4384878cf74f3e0f3e2aa1d81e926e934dd911e9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/surveys
@@ -0,0 +1,460 @@
+{
+    "resourcePath": "/surveys",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+		{
+            "path": "/surveys",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find all surveys",
+                    "notes": "Returns all survey entities of the logged in user",
+                    "type": "Survey",
+                    "nickname": "getSurveys",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                },
+				{
+                    "method": "POST",
+                    "summary": "Add a new survey",
+                    "notes": "",
+                    "type": "Survey",
+                    "nickname": "addSurvey",
+                    "consumes": [
+                        "application/json",
+                        "application/xml",
+						"text/html"
+                    ],
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "workspace_key",
+                            "description": "Key identifier for the workspace",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "wk_params",
+                            "description": "Workspace parameters",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "period_id",
+                            "description": "",
+                            "required": true,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_notifications",
+                            "description": "Notificiation email address",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "condition",
+                            "description": "Sub directory path",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "enabled",
+                            "description": "Active status of survey",
+                            "required": false,
+                            "type": "boolean",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "inbox_id",
+                            "description": "Inbox identifier",
+                            "required": true,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "path": "/surveys/{order_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find a survey by ID",
+                    "notes": "Returns a survey entity based on ID",
+                    "type": "Survey",
+                    "nickname": "getSurveyById",
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the survey",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1",
+                            "maximum": "100000"
+                        },
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Survey not found"
+                        }
+                    ]
+                },
+                {
+                    "method": "DELETE",
+                    "summary": "Delete a survey",
+                    "notes": "",
+                    "type": "Survey",
+                    "nickname": "deleteSurvey",
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the survey",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "path",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid survey value"
+                        }
+                    ]
+                },
+                {
+                    "method": "PUT",
+                    "summary": "Update an existing survey",
+                    "notes": "",
+                    "type": "Survey",
+                    "nickname": "updateSurvey",
+                    "consumes": [
+                        "application/x-www-form-urlencoded"
+                    ],
+                    "parameters": [
+                        {
+                            "name": "order_id",
+                            "description": "Unique identifier for the survey",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "priority_id",
+                            "description": "Priority level",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "order_status_id",
+                            "description": "Identifier for processing status",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_option_id",
+                            "description": "Identifier for email option",
+                            "required": false,
+                            "type": "integer",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "email_notifications",
+                            "description": "Notificiation email address",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "enabled",
+                            "description": "Active status of survey",
+                            "required": false,
+                            "type": "boolean",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "period_id",
+                            "description": "",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "form",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+							"code": 400,
+							"message": "Invalid ID supplied"
+						},
+						{
+							"code": 404,
+							"message": "Survey not found"
+						},
+						{
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Survey": {
+            "id": "Survey",
+            "required": [
+                "order_id",
+                "priority_id"
+            ],
+            "properties": {
+                "order_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the survey",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "workspace_key": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "Key identifier for the workspace"
+                },
+                "workspace_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the workspace"
+                },
+                "label_name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+                    "description": "Workspace name (deprecated)"
+                },
+                "enabled": {
+                    "type": "boolean",
+                    "description": ""
+                },
+                "order_status_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Identifier for processing status"
+                },
+                "user_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "User identifier"
+                },
+                "period_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": ""
+                },
+                "order_date": {
+                    "type": "timestamp",
+                    "description": "Date of order"
+                },
+                "execution_date": {
+                    "type": "timestamp",
+                    "description": "Start date of processing"
+                },
+                "wk_params": {
+                    "type": "text",
+                    "description": "Workspace parameters"
+                },
+                "result_url": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+                    "description": "Link to result"
+                },
+                "email_option_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Identifier for email option"
+                },
+                "email_notifications": {
+                    "type": "text",
+                    "description": "Notificiation email address"
+                },
+                "gtf_engine_id": {
+                    "type": "smallint",
+                    "format": "int16",
+                    "description": "Identifier for the GTF  engine used during processing"
+                },
+                "survey_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Monitoring type (deprecated)"
+                },
+                "condition": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+                    "description": "Sub directory path"
+                },
+                "inbox_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Inbox identifier"
+                },
+                "name": {
+                    "type": "character varying(255)",
+                    "format": "varchar(255)",
+                    "description": "User name"
+                },
+                "workspace_name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+                    "description": "Workspace name"
+                },
+                "monitoring_type": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Monitoring type"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/surveytypes b/src/module_gtf/module/gtf.doc/web_services/services/rest/surveytypes
new file mode 100755
index 0000000000000000000000000000000000000000..8fcb545456e4e84ad6020d33a1f76098c2a82cb1
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/surveytypes
@@ -0,0 +1,132 @@
+{
+    "resourcePath": "/surveytypes",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/surveytypes",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all survey types",
+                    "notes": "Returns all surveytype entities",
+                    "type": "SurveyType",
+                    "nickname": "getSurveyTypes",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/surveytypes/{survey_id}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find a survey type by ID",
+                    "notes": "Returns a surveytype entity based on ID",
+                    "type": "SurveyType",
+                    "nickname": "getSurveyTypesById",
+                    "parameters": [
+                        {
+                            "name": "survey_id",
+                            "description": "ID of surveyType that needs to be fetched",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "SurveyType not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "SurveyType": {
+            "id": "SurveyType",
+            "required": [
+                "survey_id",
+                "name"
+            ],
+            "properties": {
+                "survey_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the monitoring type",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "label": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+					"description": "Monitoring label"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/rest/workspaces b/src/module_gtf/module/gtf.doc/web_services/services/rest/workspaces
new file mode 100755
index 0000000000000000000000000000000000000000..8a4db096baac8014a835893e7ae2a45d11e4bc27
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/rest/workspaces
@@ -0,0 +1,214 @@
+{
+    "resourcePath": "/workspaces",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/workspaces",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Returns all workspaces",
+                    "notes": "Returns all workspace entities available by the logged in user",
+                    "type": "Workspace",
+                    "nickname": "getWorkspaces",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "from",
+                            "description": "From which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+                            "name": "to",
+                            "description": "To which index",
+                            "required": false,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        },
+		{
+            "path": "/workspaces/{workspace_key}",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Find a workspace by its key",
+                    "notes": "Returns a workspace entity based on the attribute workspace_key. Returns a message with 'errorCode': '13' if the workspace doesn't exist or is not available by the logged user.",
+                    "type": "Workspace",
+                    "nickname": "getWorkspacesById",
+                    "parameters": [
+                        {
+                            "name": "workspace_key",
+                            "description": "Key identifier for the workspace",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "allowMultiple": false,
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        },
+						{
+                            "name": "token",
+                            "description": "Token of the connection",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "xslstylesheet",
+							"description": "Stylesheet path",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid KEY supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Workspace not found"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Workspace": {
+            "id": "Workspace",
+            "required": [
+                "workspace_key",
+                "name"
+            ],
+            "properties": {
+                "workspace_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Unique identifier for the workspace",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "name": {
+                    "type": "character varying(100)",
+                    "format": "varchar(100)",
+                    "description": "Workspace name"
+                },
+                "description": {
+                    "type": "text",
+                    "description": "FME workspace description"
+                },
+                "subscription": {
+                    "type": "boolean",
+                    "description": "Subscription permission status"
+                },
+                "fmw_file": {
+                    "type": "character varying(150)",
+                    "format": "varchar(150)",
+                    "description": "FME workspace file"
+                },
+                "category_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Category identifier"
+                },
+                "lb_method_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "Load balancing method identifier"
+                },
+                "success_action_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "deprecated"
+                },
+                "failed_action_id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "deprecated"
+                },
+                "survey": {
+                    "type": "boolean",
+                    "description": "Monitoring permisson status"
+                },
+                "form_type": {
+                    "type": "character varying(10)",
+                    "format": "varchar(10)",
+                    "description": "Type of form"
+                },
+                "legal_terms_conditions": {
+                    "type": "text",
+                    "description": "FME workspace legal terms"
+                },
+                "usage": {
+                    "type": "text",
+                    "description": "FME workspace usage"
+                },
+                "requirements": {
+                    "type": "text",
+                    "description": "FME workspace  requirements"
+                },
+                "history": {
+                    "type": "text",
+                    "description": "FME workspace history"
+                },
+                "last_save_date": {
+                    "type": "timestamp",
+                    "description": "Date of last FME workspace save"
+                },
+                "last_save_build": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "Build number of last FME workspace save"
+                },
+                "file_encoding": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "Type of file encoding"
+                },
+                "title": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "FME workspace title"
+                },
+                "key": {
+                    "type": "character varying",
+                    "format": "varchar",
+                    "description": "Global key identifier"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/token/main b/src/module_gtf/module/gtf.doc/web_services/services/token/main
new file mode 100755
index 0000000000000000000000000000000000000000..6a803ce83ac81e1f4e60f49fc36d388742207768
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/token/main
@@ -0,0 +1,12 @@
+{
+    "apiVersion": "1.0.0",
+    "swaggerVersion": "1.2",
+    "apis": [
+        {
+            "path": "/../private"
+        },
+        {
+            "path": "/../public"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/token/overview.phtml b/src/module_gtf/module/gtf.doc/web_services/services/token/overview.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..3aa936041ffd41798223b27065402665728bd288
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/token/overview.phtml
@@ -0,0 +1,4 @@
+<h1 class="titleOverview">Service token</h1>
+<p>
+	<a class="linkOverview" href="javascript:sService='token';LoadApi()">token :</a> token generates the necessary authorization to use other services. The getToken service is the compulsory entry point for users of GTF web services. It is possible to generate public tokens without authenticating, or to generate private tokens with a time limit by providing their connection settings to gtf.
+</p>
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/token/private b/src/module_gtf/module/gtf.doc/web_services/services/token/private
new file mode 100755
index 0000000000000000000000000000000000000000..b6fb96f60385c87a31ec05d04070672ee553ecdf
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/token/private
@@ -0,0 +1,65 @@
+{
+    "produces": [
+        "application/json",
+        "application/xml"
+    ],
+    "apis": [
+        {
+            "path": "/private",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "get a token",
+                    "notes": "Return a token",
+                    "type": "Token",
+                    "nickname": "getToken",
+                    "parameters": [
+                        {
+                            "name": "user",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "password",
+							"required": true,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						},
+						{
+							"name": "validity_date",
+							"required": true,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						},
+						{
+							"name": "crypted",
+							"required": false,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Token": {
+            "id": "Token",
+            "properties": {
+                "token": {
+                    "type": "string",
+					"description": "Authenticating token"
+                },
+                "validity_date": {
+                    "type": "date",
+					"description": "Date of validity"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/token/public b/src/module_gtf/module/gtf.doc/web_services/services/token/public
new file mode 100755
index 0000000000000000000000000000000000000000..4252ba9acc41c6c41a127c05b6bad9d27ff45af9
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/token/public
@@ -0,0 +1,31 @@
+{
+    "produces": [
+        "application/json",
+        "application/xml"
+    ],
+    "apis": [
+        {
+            "path": "/public",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "get a token",
+                    "notes": "Return a token",
+                    "type": "Token",
+                    "nickname": "getToken"
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Token": {
+            "id": "Token",
+            "properties": {
+                "token": {
+                    "type": "string",
+					"description": "Authenticating token"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/workspace/form b/src/module_gtf/module/gtf.doc/web_services/services/workspace/form
new file mode 100755
index 0000000000000000000000000000000000000000..d4c894c275491cee1650ee5384dcd04916025d9c
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/workspace/form
@@ -0,0 +1,37 @@
+{
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/html"
+    ],
+    "apis": [
+        {
+            "path": "/form",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "get a form",
+                    "notes": "Form request",
+                    "type": "void",
+                    "nickname": "getForm",
+                    "parameters": [
+                        {
+                            "name": "token",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "allowMultiple": false
+                        },
+						{
+							"name": "workspace_key",
+							"required": true,
+							"type": "string",
+							"paramType": "query",
+							"allowMultiple": false
+						}
+                    ]
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/workspace/main b/src/module_gtf/module/gtf.doc/web_services/services/workspace/main
new file mode 100755
index 0000000000000000000000000000000000000000..aeb895a9d9f333db9a72d5684a77b6fd3a90fea3
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/workspace/main
@@ -0,0 +1,9 @@
+{
+    "apiVersion": "1.0.0",
+    "swaggerVersion": "1.2",
+    "apis": [
+        {
+            "path": "/../form"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/gtf.doc/web_services/services/workspace/overview.phtml b/src/module_gtf/module/gtf.doc/web_services/services/workspace/overview.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..4c3b890a6877eb4bf90c380b3c6d4165252c365e
--- /dev/null
+++ b/src/module_gtf/module/gtf.doc/web_services/services/workspace/overview.phtml
@@ -0,0 +1,4 @@
+<h1 class="titleOverview">Service workspace</h1>
+<p>
+	<a class="linkOverview" href="javascript:sService='workspace';LoadApi()">workspace :</a> the form operation of the workspace service allows you to recover a "ready to use" HTML page displaying the input form of a request for treatment. Using this service enables GTF forms to be quickly integrated into a third party application without having to describe the contents of the form.
+</p>
\ No newline at end of file
diff --git a/src/module_gtf/module/images/fme.png b/src/module_gtf/module/images/fme.png
new file mode 100755
index 0000000000000000000000000000000000000000..2a12ac3e7b9e990ac427feacbcfc38821b77140c
Binary files /dev/null and b/src/module_gtf/module/images/fme.png differ
diff --git a/src/module_gtf/module/images/icon-graph.png b/src/module_gtf/module/images/icon-graph.png
new file mode 100755
index 0000000000000000000000000000000000000000..ad6bb5b41da70f77c6e348c3acc49cfbde94f418
Binary files /dev/null and b/src/module_gtf/module/images/icon-graph.png differ
diff --git a/src/module_gtf/module/images/icon-tab.png b/src/module_gtf/module/images/icon-tab.png
new file mode 100755
index 0000000000000000000000000000000000000000..e657e5b1791721e629b379258ac1eccf32c6a070
Binary files /dev/null and b/src/module_gtf/module/images/icon-tab.png differ
diff --git a/src/module_gtf/module/javascript/controllers/administrationHelpCtrl.js b/src/module_gtf/module/javascript/controllers/administrationHelpCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..331eb40446b22304496820c376de9f30c373b1c2
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/administrationHelpCtrl.js
@@ -0,0 +1,19 @@
+// Google closure
+goog.provide("vitis.controllers.administrationHelp");
+goog.require("vitis.modules.main");
+
+/**
+ * administrationHelp Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @param {angular.$scope} $scope Angular scope.
+ * @param {service} propertiesSrvc Paramètres des properties.
+  * @ngInject
+**/
+vitisApp.administrationHelpCtrl = function ($log, $scope, propertiesSrvc) {
+        // Initialisation
+        $log.info("initAdministrationHelp");
+        // Url de la doc.
+        $scope["sUrlAdministrationHelp"] = propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["gtf_doc_alias"] + "/";
+};
+vitisApp.module.controller("administrationHelpCtrl", vitisApp.administrationHelpCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/importWorkspaceCtrl.js b/src/module_gtf/module/javascript/controllers/importWorkspaceCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..4ed23b59322e70c0be3b847acd5ae36ba1f35285
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/importWorkspaceCtrl.js
@@ -0,0 +1,15 @@
+// Google closure
+goog.provide("vitis.controllers.importWorkspace");
+goog.require("vitis.modules.main");
+
+/**
+ * importWorkspace Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @ngInject
+ **/
+vitisApp.importWorkspaceCtrl = function ($log) {
+        // Initialisation
+        $log.info("initImportWorkspace");
+};
+vitisApp.module.controller("importWorkspaceCtrl", vitisApp.importWorkspaceCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/orderCtrl.js b/src/module_gtf/module/javascript/controllers/orderCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..c641aec6b59c7e6a6711381f3997d4b16394bc74
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/orderCtrl.js
@@ -0,0 +1,15 @@
+// Google closure
+goog.provide("vitis.controllers.order");
+goog.require("vitis.modules.main");
+
+/**
+ * order Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+  * @ngInject
+**/
+vitisApp.orderCtrl = function ($log) {
+        // Initialisation
+        $log.info("initOrder");
+};
+vitisApp.module.controller("orderCtrl", vitisApp.orderCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/projectDirectoryCtrl.js b/src/module_gtf/module/javascript/controllers/projectDirectoryCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..f6fd505ec937e3f02869e772970f71d29d888ed7
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/projectDirectoryCtrl.js
@@ -0,0 +1,68 @@
+// Google closure
+goog.provide("vitis.controllers.projectDirectory");
+goog.require("vitis.modules.main");
+
+/**
+ * projectDirectory Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @param {angular.$scope} $scope Angular scope.
+ * @param {service} envSrvc Paramètres d'environnement.
+ * @param {service} propertiesSrvc Paramètres des properties.
+ * @ngInject
+ **/
+vitisApp.projectDirectoryCtrl = function ($log, $scope, propertiesSrvc, envSrvc) {
+        // Initialisation
+        $log.info("initProjectDirectory");
+        $scope["aTreeviewLogs"] = {};
+        
+        /**
+         * downloadFile function.
+         * Téléchargement du fichier sélectionné.
+         **/
+        $scope["downloadFile"] = function() {
+                var aFiles = $scope["aSelectedWorkspaceFile"];
+                var sFileName = aFiles[0].split("/").pop();
+                $scope.$root["downloadGtfWorkspaceFile"](sFileName);
+        };
+        
+        /**
+         * deleteFile function.
+         * Suppression d'un fichier dans le répertoire du projet fme.
+         **/
+        $scope["deleteFile"] = function() {
+                var aFiles = $scope["aSelectedWorkspaceFile"];
+                // Au moins un fichier à supprimer ?
+                if (aFiles.length > 0) {
+                        var oOptions = {
+                                "className": "modal-warning",
+                                "message": "CONFIRM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY",
+                                "callback": function(bResponse) {
+                                        if (bResponse) {
+                                                var oParams = {
+                                                        "file_name": aFiles[0].split("/").pop()
+                                                };
+                                                ajaxRequest({
+                                                    "method": "DELETE",
+                                                    "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/Workspaces/" + envSrvc["sId"] + "/File",
+                                                    "params": oParams,
+                                                    "scope": $scope,
+                                                    "success": function(response) {
+                                                        if (response["data"]["status"] == 1) {
+                                                                // Recharge  la liste des fichiers.
+                                                                $scope["loadTreeview"]();
+                                                        }
+                                                        else {
+                                                                // Affichage de la fenêtre modale d'erreur.
+                                                                $scope["modalWindow"]("dialog", response["data"]["errorMessage"], {"className": "modal-danger"});
+                                                        }
+                                                    }
+                                                });
+                                        }
+                                }
+                        };
+                        $scope["modalWindow"]("confirm", "", oOptions);
+                }
+        };
+};
+vitisApp.module.controller("projectDirectoryCtrl", vitisApp.projectDirectoryCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/statisticsCtrl.js b/src/module_gtf/module/javascript/controllers/statisticsCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..03cbf9cf0e2575663db6800e3705c83867fbba0c
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/statisticsCtrl.js
@@ -0,0 +1,75 @@
+// Google closure
+goog.provide("vitis.controllers.statistics");
+goog.require("vitis.modules.main");
+
+/**
+ * statistics Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @param {angular.$rootScope} $rootScope Angular rootScope.
+ * @param {angular.$scope} $scope Angular scope.
+ * @param {service} envSrvc Paramètres d'environnement.
+ * @param {service} propertiesSrvc Paramètres des properties.
+ * @ngInject
+ **/
+vitisApp.statisticsCtrl = function ($log, $rootScope, $scope, envSrvc, propertiesSrvc) {
+        // Initialisation
+        $log.info("initStatistics");
+        //
+        sessionStorage["statistics_web_service_url"] = propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/statistics/";
+        //
+        $scope["bStatsLoaded"] = false;
+        // Fichiers javascript de RGraph.
+        var aJsScript = ["javascript/externs/rgraph/RGraph.common.core_min.js",
+                        "javascript/externs/rgraph/RGraph.common.effects_min.js",
+                        "javascript/externs/rgraph/RGraph.common.dynamic_min.js",
+                        "javascript/externs/rgraph/RGraph.common.key_min.js",
+                        "javascript/externs/rgraph/RGraph.common.tooltips_min.js",
+                        "javascript/externs/rgraph/RGraph.common.context_min.js",
+                        "javascript/externs/rgraph/RGraph.drawing.text_min.js",
+                        "javascript/externs/rgraph/RGraph.drawing.rect_min.js",
+                        "javascript/externs/rgraph/RGraph.bar_min.js",
+                        "javascript/externs/rgraph/RGraph.pie_min.js",
+                        "javascript/externs/rgraph/RGraph.scatter_min.js"
+        ];
+        // Fichier "statistics.js" uniquement en mode "debug".
+        if (sessionStorage['debug'] == "true")
+            aJsScript.push("modules/gtf/javascript/statistics.js");
+        // Chargement des fichiers.
+        loadExternalJs(aJsScript, {
+                "callback": function(){
+                    $scope["bStatsLoaded"] = true;
+                }
+        });
+        
+        // Valeurs du formulaire des stats.
+        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]] = {
+                "max_elements": 5,
+                "max_labels_characters": 50,
+                "view_id": "view_graph",
+                "first_day_week": "",
+                "per_date_sql": "",
+                "date_format": "d/m/Y",
+                "graph_type": "",
+                "per_type_save": ""
+        };
+        
+        // Sauve les valeurs du form.
+        envSrvc["oFormDefaultValues"][envSrvc["sFormDefinitionName"]] = angular.copy(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]);
+        
+        // Attends la fin de la compilation du formulaire.
+        var clearListener = $rootScope.$on("formExtracted", function(event) {
+                // Supprime le "listener".
+                clearListener();
+                var iIntervalId = setInterval(function() {
+                    if ($scope["bStatsLoaded"]) {
+                        clearInterval(iIntervalId);
+                        // Lance le script des stats.
+                        initStatistics();
+                        // Recalcule les stats si les dimensions de la fenêtre changent.
+                        window.addEventListener("resize", $rootScope["refreshStatistics"]);
+                    }
+                }, 100);
+        });
+};
+vitisApp.module.controller("statisticsCtrl", vitisApp.statisticsCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/subFormCtrl.js b/src/module_gtf/module/javascript/controllers/subFormCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..87efe3a05f4d01335da31f8fe0c2496070a20cdc
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/subFormCtrl.js
@@ -0,0 +1,48 @@
+// Google closure
+goog.provide("vitis.controllers.subForm");
+goog.require("vitis.modules.main");
+
+/**
+ * subForm Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @param {angular.$scope} $scope Angular scope.
+ * @param {$translateProvider.$translate} $translate TranslateProvider translate service.
+ * @ngInject
+ **/
+vitisApp.subFormCtrl = function ($log, $scope, $translate) {
+        // Initialisation
+        $log.info("initSubForm");
+        
+        // Traductions des intitulés des actions sur le formulaire.
+        $translate([
+                "FORM_PREVISU_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_PREVISU_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_PREVISU_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_CODE_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_CODE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_CODE_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_GENERATE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_PUBLISH_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_PUBLISH_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM",
+                "FORM_COPY_DEFAULT_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM"]
+        ).then(function (translations) {
+                // Données du <select>.
+                $scope["oWorkspaceChoice"] = {
+                        "selectedOption": {"value": 1},
+                        "options": [
+                                {"label": translations["FORM_PREVISU_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 1},
+                                {"label": translations["FORM_PREVISU_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 2},
+                                {"label": translations["FORM_PREVISU_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 3},
+                                {"label": translations["FORM_CODE_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 4},
+                                {"label": translations["FORM_CODE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 5},
+                                {"label": translations["FORM_CODE_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 6},
+                                {"label": translations["FORM_GENERATE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 7},
+                                {"label": translations["FORM_PUBLISH_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 9},
+                                {"label": translations["FORM_PUBLISH_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 10},
+                                {"label": translations["FORM_COPY_DEFAULT_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM"], "value": 11}
+                        ]
+                };
+        });
+};
+vitisApp.module.controller("subFormCtrl", vitisApp.subFormCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/subscriptionCtrl.js b/src/module_gtf/module/javascript/controllers/subscriptionCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..92bd8127b0788b51944134d0d0768512d6cdaadd
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/subscriptionCtrl.js
@@ -0,0 +1,15 @@
+// Google closure
+goog.provide("vitis.controllers.subscription");
+goog.require("vitis.modules.main");
+
+/**
+ * subscription Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @ngInject
+ **/
+vitisApp.subscriptionCtrl = function ($log) {
+        // Initialisation
+        $log.info("initSubscription");
+};
+vitisApp.module.controller("subscriptionCtrl", vitisApp.subscriptionCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/surveyCtrl.js b/src/module_gtf/module/javascript/controllers/surveyCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..249dbe66c23997ae4912fcb9847ec17acc914fd9
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/surveyCtrl.js
@@ -0,0 +1,15 @@
+// Google closure
+goog.provide("vitis.controllers.survey");
+goog.require("vitis.modules.main");
+
+/**
+ * survey Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @ngInject
+ **/
+vitisApp.surveyCtrl = function ($log) {
+        // Initialisation
+        $log.info("initSurvey");
+};
+vitisApp.module.controller("surveyCtrl", vitisApp.surveyCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/userOrderCtrl.js b/src/module_gtf/module/javascript/controllers/userOrderCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..498efbab65ea5391ba3dda58e684425dc4ddcaf7
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/userOrderCtrl.js
@@ -0,0 +1,35 @@
+// Google closure
+goog.provide("vitis.controllers.userOrder");
+goog.require("vitis.modules.main");
+
+/**
+ * userOrder Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @param {angular.$rootScope} $rootScope Angular rootScope.
+ * @param {$translateProvider.$translate} $translate TranslateProvider translate service.
+ * @param {service} envSrvc Paramètres d'environnement.
+ * @param {service} formSrvc Service de gestion des formulaires.
+ * @ngInject
+ **/
+vitisApp.userOrderCtrl = function ($log, $rootScope, $translate, envSrvc, formSrvc) {
+        // Initialisation
+        $log.info("initUserOrder");
+        // Attends la fin de la compilation du formulaire.
+        var clearListener = $rootScope.$on("formExtracted", function(event) {
+                // Supprime le "listener".
+                clearListener();
+                // Texte indicatif (placeholder) si aucune date de planification est sélectionnée.
+                $translate(["FORM_MINEXECDATE_PLACE_HOLDER_MY_WORK_USER_ORDER"]).then(function (translations) {
+                    if (envSrvc["sMode"] == "insert") {
+                        var oMinExecDateFormElemDef = formSrvc["getFormElementDefinition"]("minexecdate", envSrvc["sFormDefinitionName"]);
+                        document.getElementById(oMinExecDateFormElemDef["id"]).setAttribute("placeholder", translations["FORM_MINEXECDATE_PLACE_HOLDER_MY_WORK_USER_ORDER"]);
+                    }
+                    else {
+                        if (!goog.isDefAndNotNull(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["minexecdate"]))
+                            envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["minexecdate"] = translations["FORM_MINEXECDATE_PLACE_HOLDER_MY_WORK_USER_ORDER"];
+                    }
+                });
+        });
+};
+vitisApp.module.controller("userOrderCtrl", vitisApp.userOrderCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/userSubscriptionCtrl.js b/src/module_gtf/module/javascript/controllers/userSubscriptionCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..477b9b39466eae80828cb88c99c03210fe2e102b
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/userSubscriptionCtrl.js
@@ -0,0 +1,15 @@
+// Google closure
+goog.provide("vitis.controllers.userSubscription");
+goog.require("vitis.modules.main");
+
+/**
+ * userSubscription Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @ngInject
+ **/
+vitisApp.userSubscriptionCtrl = function ($log) {
+        // Initialisation
+        $log.info("initUserSubscription");
+};
+vitisApp.module.controller("userSubscriptionCtrl", vitisApp.userSubscriptionCtrl);
diff --git a/src/module_gtf/module/javascript/controllers/userSurveyCtrl.js b/src/module_gtf/module/javascript/controllers/userSurveyCtrl.js
new file mode 100755
index 0000000000000000000000000000000000000000..eea1d1937c7cf59dc4350e1de7fd98a70be0d4e1
--- /dev/null
+++ b/src/module_gtf/module/javascript/controllers/userSurveyCtrl.js
@@ -0,0 +1,15 @@
+// Google closure
+goog.provide("vitis.controllers.userSurvey");
+goog.require("vitis.modules.main");
+
+/**
+ * userSurvey Controller.
+ * .
+ * @param {angular.$log} $log Angular log service.
+ * @ngInject
+ **/
+vitisApp.userSurveyCtrl = function ($log) {
+        // Initialisation
+        $log.info("initUserSurvey");
+};
+vitisApp.module.controller("userSurveyCtrl", vitisApp.userSurveyCtrl);
diff --git a/src/module_gtf/module/javascript/deps.js b/src/module_gtf/module/javascript/deps.js
new file mode 100755
index 0000000000000000000000000000000000000000..a61a3814aa30ebea735b168925e072abdef5e6b4
--- /dev/null
+++ b/src/module_gtf/module/javascript/deps.js
@@ -0,0 +1,35 @@
+/* global goog */
+
+'use strict';
+
+/* 
+ * Dépendances de closure pour le module "gtf".
+ */
+goog.provide("vitis.gtf");
+
+goog.require('vitis.application.config');
+
+goog.require("vitis.controllers.order");
+goog.require("vitis.controllers.statistics");
+goog.require("vitis.controllers.userOrder");
+goog.require("vitis.controllers.userSubscription");
+goog.require("vitis.controllers.userSurvey");
+goog.require("vitis.controllers.projectDirectory");
+goog.require("vitis.controllers.subForm");
+goog.require("vitis.controllers.subscription");
+goog.require("vitis.controllers.survey");
+goog.require("vitis.controllers.administrationHelp");
+goog.require("vitis.controllers.importWorkspace");
+
+goog.require("vitis.directives.order");
+goog.require("vitis.directives.statistics");
+goog.require("vitis.directives.userOrder");
+goog.require("vitis.directives.userSubscription");
+goog.require("vitis.directives.userSurvey");
+goog.require("vitis.directives.projectDirectory");
+goog.require("vitis.directives.subForm");
+goog.require("vitis.directives.order");
+goog.require("vitis.directives.subscription");
+goog.require("vitis.directives.survey");
+goog.require("vitis.directives.administrationHelp");
+goog.require("vitis.directives.importWorkspace");
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/administrationHelpDrtv.js b/src/module_gtf/module/javascript/directives/administrationHelpDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..632a95913921105936f8c44aeececc62128c94a7
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/administrationHelpDrtv.js
@@ -0,0 +1,23 @@
+// Google closure
+goog.provide("vitis.directives.administrationHelp");
+goog.require("vitis.modules.main");
+
+/**
+ * appAdministrationHelp directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appAdministrationHelpDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'administrationHelpCtrl',
+                controllerAs : 'ctrl',
+                link: function (scope, element, attrs) {
+                        // Affiche le loader ajax.
+                        showAjaxLoader();
+                        // Cache le loader ajax à la fin du chargement.
+                        element[0].onload = hideAjaxLoader;
+                }
+        }
+};
+vitisApp.module.directive("appAdministrationHelp", vitisApp.appAdministrationHelpDrtv);
diff --git a/src/module_gtf/module/javascript/directives/importWorkspaceDrtv.js b/src/module_gtf/module/javascript/directives/importWorkspaceDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..0bdfec66a0358fbad571ed1a91a42226ebab2f18
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/importWorkspaceDrtv.js
@@ -0,0 +1,63 @@
+// Google closure
+goog.provide("vitis.directives.importWorkspace");
+goog.require("vitis.modules.main");
+
+/**
+ * appImportWorkspace directive.
+ * Association du contrôleur à la directive.
+ * @param {service} propertiesSrvc Paramètres des properties.
+ * @ngInject
+ * @export
+ **/
+vitisApp.appImportWorkspaceDrtv = function(propertiesSrvc,sessionSrvc) {
+        return {
+                restrict: 'A',
+                controller : 'importWorkspaceCtrl',
+                controllerAs : 'ctrl',
+                link: function (scope, element, attrs) {
+                        $("#publication_workspace_import_workspace_fmw_file")["fileinput"]({
+                                "language": propertiesSrvc["language"],
+                                "uploadUrl": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces?mode=import",
+                                "uploadExtraData":{"mode":"import", "token":sessionSrvc['token']},
+                                "uploadAsync": false,
+                                //"showUpload": false,
+                                "showRemove": false,
+                                "minFileCount": 1,
+                                //"maxFileCount": 10,
+                                "mainClass": "input-file-xs",
+                                "allowedFileExtensions": ["fmw"],
+                                "removeFromPreviewOnError": true,
+                                "previewTemplates": {
+                                        "object": '<div class="file-preview-frame" id="{previewId}" data-fileindex="{fileindex}" title="{caption}" height:20px;">\n' +
+                                                        '{footer}\n' +
+                                                    '</div>'
+                                },
+                                "previewSettings": {
+                                        object: {width: "213px", height: "70px"}
+                                }
+                        }).on('fileloaded', function(event, file, previewId, index, reader) {
+                            var sFileExtension = document.getElementById(previewId).title.split(".").pop();
+                            if (sFileExtension == "" || sFileExtension != "fmw")
+                                document.querySelector("#" + previewId + " .kv-file-remove").click();
+                        });
+                        // Attends la suppression du scope.
+                        scope.$on("$destroy", function () {
+                            // Supprime le treeview.
+                            $("#publication_workspace_import_workspace_fmw_file")["fileinput"]("destroy");
+                        });
+                }
+        }
+};
+vitisApp.module.directive("appImportWorkspace", vitisApp.appImportWorkspaceDrtv);
+
+/**
+ * appImportWorkspaceForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appImportWorkspaceFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appImportWorkspaceForm", vitisApp.appImportWorkspaceFormDrtv);
diff --git a/src/module_gtf/module/javascript/directives/orderDrtv.js b/src/module_gtf/module/javascript/directives/orderDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..af3fa0fd063546f3351a5843fd67941e3b7df6ad
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/orderDrtv.js
@@ -0,0 +1,45 @@
+// Google closure
+goog.provide("vitis.directives.order");
+goog.require("vitis.modules.main");
+
+/**
+ * appOrder directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appOrderDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'orderCtrl',
+                controllerAs : 'ctrl'
+        }
+};
+vitisApp.module.directive("appOrder", vitisApp.appOrderDrtv);
+
+/**
+ * appOrderLeftForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appOrderLeftFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appOrderLeftForm", vitisApp.appOrderLeftFormDrtv);
+
+/**
+ * appOrderRightForm directive.
+ * Formulaire du projet FME.
+ **/
+vitisApp.appOrderRightFormDrtv = function() {
+        return {
+                replace: true,
+                scope: true,
+                link: function (scope, element, attrs) {
+                        scope["tab_id"] = "order";
+                        scope["initSubForm"](scope, element);
+                }
+        }
+};
+vitisApp.module.directive("appOrderRightForm", vitisApp.appOrderRightFormDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/projectDirectoryDrtv.js b/src/module_gtf/module/javascript/directives/projectDirectoryDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..68385c5ab6c42f5977a11190807510288fbcff17
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/projectDirectoryDrtv.js
@@ -0,0 +1,110 @@
+// Google closure
+goog.provide("vitis.directives.projectDirectory");
+goog.require("vitis.modules.main");
+
+/**
+ * appProjectDirectory directive.
+ * Association du contrôleur à la directive.
+ * @param {angular.$rootScope} $rootScope Angular rootScope.
+ * @ngInject
+ * @export
+ **/
+vitisApp.appProjectDirectoryDrtv = function($rootScope) {
+        return {
+                restrict: 'A',
+                controller : 'projectDirectoryCtrl',
+                controllerAs : 'ctrl',
+                scope: true,
+                link: function (scope, element, attrs) {
+                        // Attends le chargement de la structure et des données du formulaire.
+                        var clearListener = $rootScope.$on('endFormNgRepeat', function(event) {
+                                // Redimensionne le conteneur.
+                                scope.$root["resizeProjectDirectoryTreeviewContainer"]();
+                                window.addEventListener("resize", scope.$root["resizeProjectDirectoryTreeviewContainer"]);
+                                // Supprime le "listener".
+                                clearListener();
+                        });
+                        // Attends la suppression du scope.
+                        scope.$on("$destroy", function () {
+                            // Supprime l'évènement.
+                            window.removeEventListener("resize", scope.$root["resizeProjectDirectoryTreeviewContainer"]);
+                        });
+                }
+        }
+};
+vitisApp.module.directive("appProjectDirectory", vitisApp.appProjectDirectoryDrtv);
+
+/**
+ * appProjectDirectoryForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appProjectDirectoryFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appProjectDirectoryForm", vitisApp.appProjectDirectoryFormDrtv);
+
+/**
+ * appProjectDirectoryTreeview directive.
+ * Crée le treeview du répertoire du projet Fme.
+ * @param {service} propertiesSrvc Paramètres des properties.
+ * @param {service} envSrvc Paramètres d'environnement.
+ * @ngInject
+ **/
+vitisApp.appProjectDirectoryTreeviewDrtv = function(propertiesSrvc, envSrvc) {
+        return {
+                //replace: true,
+                link: function (scope, element, attrs) {
+                        /**
+                         * loadTreeview function.
+                         * Crée le treeview des fichiers du projet fme.
+                         **/
+                        scope["loadTreeview"] = function() {
+                        // Charge l'arborescence des logs.
+                            ajaxRequest({
+                                "method": "GET",
+                                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/Workspaces/" + envSrvc["sId"] + "/Tree",
+                                "scope": scope,
+                                "success": function(response) {
+                                    if (response["data"]["status"] == 1) {
+                                        data = response["data"]["tree"];
+                                        scope["aSelectedWorkspaceFile"] = [];
+                                        scope["aTreeviewLogs"] = data;
+                                        // Crée l'arborescence dans l'élément.
+                                        $(element)["treeview"]({
+                                                "showBorder": false,
+                                                "expandIcon": "glyphicon glyphicon-folder-close",
+                                                "collapseIcon": "glyphicon glyphicon-folder-open",
+                                                "onNodeSelected": function(event, data) {
+                                                        scope["aSelectedWorkspaceFile"].push(data["path"]);
+                                                },
+                                                "onNodeUnselected": function(event, data) {
+                                                        scope["aSelectedWorkspaceFile"] = [];
+                                                },
+                                                //"showTags": true,
+                                                "highlightSelected": true,
+                                                "multiSelect": false,
+                                                //"showCheckbox": true,
+                                                "showTags": true,
+                                                "data": scope["aTreeviewLogs"]["data"]
+                                        });
+                                    }
+                                }
+                            });
+                        };
+                                
+                        // Crée le treeview.
+                        scope["loadTreeview"]();
+                        
+                        // Attends la suppression du scope.
+                        scope.$on("$destroy", function () {
+                            // Supprime le treeview.
+                            $("#" + element[0].id)["treeview"]("remove");
+                        });
+                }
+        }
+};
+vitisApp.module.directive("appProjectDirectoryTreeview", vitisApp.appProjectDirectoryTreeviewDrtv);
+
diff --git a/src/module_gtf/module/javascript/directives/statisticsDrtv.js b/src/module_gtf/module/javascript/directives/statisticsDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..9c4506095177d916ea0a8cc4caebb5f7a4728e19
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/statisticsDrtv.js
@@ -0,0 +1,28 @@
+// Google closure
+goog.provide("vitis.directives.statistics");
+goog.require("vitis.modules.main");
+
+/**
+ * appStatisticsForm directive.
+ * Charge le template des éléments de formulaire.
+ * @export
+ **/
+vitisApp.appStatisticsFormDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'statisticsCtrl',
+                controllerAs : 'ctrl',
+                replace: true,
+                templateUrl: "templates/formTpl.html",
+                link: function (scope, element, attrs) {
+                        // Classe css du conteneur des graphiques.
+                        $("#double_form_right_section_statistics_gtf_statistics").addClass("statistics-graphs-container");
+                        // Attends la suppression du scope.
+                        scope.$on("$destroy", function () {
+                            // Supprime l'évènement.
+                            window.removeEventListener("resize", scope.$root["refreshStatistics"]);
+                        });
+                }
+        }
+};
+vitisApp.module.directive("appStatisticsForm", vitisApp.appStatisticsFormDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/subFormDrtv.js b/src/module_gtf/module/javascript/directives/subFormDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..6d07b78a376e93913f5f4d0624fb3134f7ccddf6
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/subFormDrtv.js
@@ -0,0 +1,70 @@
+// Google closure
+goog.provide("vitis.directives.subForm");
+goog.require("vitis.modules.main");
+
+/**
+ * appSubFormContainer directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appSubFormContainerDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'subFormCtrl',
+                controllerAs : 'ctrl',
+                link: function (scope, element, attrs) {
+                        // Hauteur du conteneur du formulaire.
+                        element[0].style.height = "calc(100% - 34px)";
+                }
+        }
+};
+vitisApp.module.directive("appSubFormContainer", vitisApp.appSubFormContainerDrtv);
+
+/**
+ * appSubFormFormular directive.
+ * Formulaire du projet FME.
+ * @param {angular.$templateRequest} $templateRequest Angular templateRequest service.
+ * @param {angular.$compile} $compile Angular compile.
+ * @param {angular.$rootScope} $rootScope Angular rootScope.
+ * @param {service} envSrvc Paramètres d'environnement.
+ * @param {service} formSrvc Service de gestion des formulaires.
+ * @param {service} propertiesSrvc Paramètres des properties.
+ * @param {service} sessionSrvc Service de gestion des sessions.
+ * @param {service} modesSrvc Liste des modes et objets de l'utilisateur.
+ * @ngInject
+ **/
+vitisApp.appSubFormFormularDrtv = function($templateRequest, $compile, $rootScope, envSrvc, formSrvc, propertiesSrvc, sessionSrvc, modesSrvc) {
+        return {
+                replace: true,
+                scope: true,
+                link: function (scope, element, attrs) {
+                        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+                        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+                        // Nom + url du formulaire.
+                        scope["sFormDefinitionName"] = envSrvc["sFormDefinitionName"].replace(/_form/, "_subform");
+                        // Paramètres pour la requête ajax du subform.
+                        scope["oFormRequestParams"] = {
+                                "sUrl": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces/" + envSrvc["sId"],
+                                "sResourceId": "gtf/workspaces",
+                                "oParams": {
+                                        "form": "Published"
+                                },
+                                "sExtractData": "extractSubformData(oFormRequestParams)"
+                        };
+                        // Suppression de la définition et des données du formulaire (sinon problème de cache...).
+                        scope.$root["clearFormData"](scope["sFormDefinitionName"], scope);
+                        //formSrvc["clearFormData"](scope["sFormDefinitionName"]);
+                        // Compilation du template de formulaire.
+                        $templateRequest("templates/formTpl.html").then(function(sTemplate) {
+                                $compile($(element).html(sTemplate).contents())(scope);
+                                var clearFormDefListener = $rootScope.$on('formDefinitionLoaded', function(event, sFormDefinitionName) {
+                                        // Titre du formulaire.
+                                        scope.$parent["sSubFormTitle"] = envSrvc["oFormDefinition"][scope["sFormDefinitionName"]]["title"];
+                                        // Supprime le "listener".
+                                        clearFormDefListener();
+                                });
+                        });                        
+                }
+        }
+};
+vitisApp.module.directive("appSubFormFormular", vitisApp.appSubFormFormularDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/subscriptionDrtv.js b/src/module_gtf/module/javascript/directives/subscriptionDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..5f0c279e7690679900b10ca2f271cc02e2a9f4c7
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/subscriptionDrtv.js
@@ -0,0 +1,45 @@
+// Google closure
+goog.provide("vitis.directives.subscription");
+goog.require("vitis.modules.main");
+
+/**
+ * appSubscription directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appSubscriptionDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'subscriptionCtrl',
+                controllerAs : 'ctrl'
+        }
+};
+vitisApp.module.directive("appSubscription", vitisApp.appSubscriptionDrtv);
+
+/**
+ * appSubscriptionForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appSubscriptionFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appSubscriptionForm", vitisApp.appSubscriptionFormDrtv);
+
+/**
+ * appSubscriptionRightForm directive.
+ * Formulaire du projet FME.
+ **/
+vitisApp.appSubscriptionRightFormDrtv = function() {
+        return {
+                replace: true,
+                scope: true,
+                link: function (scope, element, attrs) {
+                        scope["tab_id"] = "subscription";
+                        scope["initSubForm"](scope, element);
+                }
+        }
+};
+vitisApp.module.directive("appSubscriptionRightForm", vitisApp.appSubscriptionRightFormDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/surveyDrtv.js b/src/module_gtf/module/javascript/directives/surveyDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..43af5dfd63160befe75c21ea305549f76979eb8c
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/surveyDrtv.js
@@ -0,0 +1,45 @@
+// Google closure
+goog.provide("vitis.directives.survey");
+goog.require("vitis.modules.main");
+
+/**
+ * appSurvey directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appSurveyDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'surveyCtrl',
+                controllerAs : 'ctrl'
+        }
+};
+vitisApp.module.directive("appSurvey", vitisApp.appSurveyDrtv);
+
+/**
+ * appSurveyForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appSurveyFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appSurveyForm", vitisApp.appSurveyFormDrtv);
+
+/**
+ * appSurveyRightForm directive.
+ * Formulaire du projet FME.
+ **/
+vitisApp.appSurveyRightFormDrtv = function() {
+        return {
+                replace: true,
+                scope: true,
+                link: function (scope, element, attrs) {
+                        scope["tab_id"] = "survey";
+                        scope["initSubForm"](scope, element);
+                }
+        }
+};
+vitisApp.module.directive("appSurveyRightForm", vitisApp.appSurveyRightFormDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/userOrderDrtv.js b/src/module_gtf/module/javascript/directives/userOrderDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..a6fc10e59517d6ce4b45990b6cd021094f559004
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/userOrderDrtv.js
@@ -0,0 +1,45 @@
+// Google closure
+goog.provide("vitis.directives.userOrder");
+goog.require("vitis.modules.main");
+
+/**
+ * appUserOrder directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appUserOrderDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'userOrderCtrl',
+                controllerAs : 'ctrl'
+        }
+};
+vitisApp.module.directive("appUserOrder", vitisApp.appUserOrderDrtv);
+
+/**
+ * appUserOrderLeftForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appUserOrderLeftFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appUserOrderLeftForm", vitisApp.appUserOrderLeftFormDrtv);
+
+/**
+ * appUserOrderRightForm directive.
+ * Formulaire du projet FME.
+ **/
+vitisApp.appUserOrderRightFormDrtv = function() {
+        return {
+                replace: true,
+                scope: true,
+                link: function (scope, element, attrs) {
+                        scope["tab_id"] = "order";
+                        scope["initSubForm"](scope, element);
+                }
+        }
+};
+vitisApp.module.directive("appUserOrderRightForm", vitisApp.appUserOrderRightFormDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/userSubscriptionDrtv.js b/src/module_gtf/module/javascript/directives/userSubscriptionDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..391b047c1f240b5a8ef4c8ae4cfd1900baf77c1e
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/userSubscriptionDrtv.js
@@ -0,0 +1,45 @@
+// Google closure
+goog.provide("vitis.directives.userSubscription");
+goog.require("vitis.modules.main");
+
+/**
+ * appUserSubscription directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appUserSubscriptionDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'userSubscriptionCtrl',
+                controllerAs : 'ctrl'
+        }
+};
+vitisApp.module.directive("appUserSubscription", vitisApp.appUserSubscriptionDrtv);
+
+/**
+ * appUserSubscriptionForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appUserSubscriptionFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appUserSubscriptionForm", vitisApp.appUserSubscriptionFormDrtv);
+
+/**
+ * appUserSubscriptionRightForm directive.
+ * Formulaire du projet FME.
+ **/
+vitisApp.appUserSubscriptionRightFormDrtv = function() {
+        return {
+                replace: true,
+                scope: true,
+                link: function (scope, element, attrs) {
+                        scope["tab_id"] = "subscription";
+                        scope["initSubForm"](scope, element);
+                }
+        }
+};
+vitisApp.module.directive("appUserSubscriptionRightForm", vitisApp.appUserSubscriptionRightFormDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/directives/userSurveyDrtv.js b/src/module_gtf/module/javascript/directives/userSurveyDrtv.js
new file mode 100755
index 0000000000000000000000000000000000000000..732f922757312f0f7b8f980b18176620da2058ba
--- /dev/null
+++ b/src/module_gtf/module/javascript/directives/userSurveyDrtv.js
@@ -0,0 +1,45 @@
+// Google closure
+goog.provide("vitis.directives.userSurvey");
+goog.require("vitis.modules.main");
+
+/**
+ * appUserSurvey directive.
+ * Association du contrôleur à la directive.
+ * @export
+ **/
+vitisApp.appUserSurveyDrtv = function() {
+        return {
+                restrict: 'A',
+                controller : 'userSurveyCtrl',
+                controllerAs : 'ctrl'
+        }
+};
+vitisApp.module.directive("appUserSurvey", vitisApp.appUserSurveyDrtv);
+
+/**
+ * appUserSurveyForm directive.
+ * Charge le template des éléments de formulaire.
+ **/
+vitisApp.appUserSurveyFormDrtv = function() {
+        return {
+                replace: true,
+                templateUrl: "templates/formTpl.html"
+        }
+};
+vitisApp.module.directive("appUserSurveyForm", vitisApp.appUserSurveyFormDrtv);
+
+/**
+ * appUserSurveyRightForm directive.
+ * Formulaire du projet FME.
+ **/
+vitisApp.appUserSurveyRightFormDrtv = function() {
+        return {
+                replace: true,
+                scope: true,
+                link: function (scope, element, attrs) {
+                        scope["tab_id"] = "survey";
+                        scope["initSubForm"](scope, element);
+                }
+        }
+};
+vitisApp.module.directive("appUserSurveyRightForm", vitisApp.appUserSurveyRightFormDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/script_module.js b/src/module_gtf/module/javascript/script_module.js
new file mode 100644
index 0000000000000000000000000000000000000000..78cae4b027466856a4aacb0b9d84ae7f6d304cb6
--- /dev/null
+++ b/src/module_gtf/module/javascript/script_module.js
@@ -0,0 +1,3919 @@
+/* global vitisApp, angular, goog, oVFB */
+
+'use strict';
+
+goog.provide('vitis.gtf.script_module');
+goog.require('vitis.gtf');
+goog.require('oVFB');
+
+vitisApp.on('appMainDrtvLoaded', function () {
+
+    // S'inscrit au service WebSocket VmapEvents    
+    if (goog.isDefAndNotNull(vitisApp['oWebsocket'])) {
+        vitisApp['oWebsocket'].subscribeService('GtfEvents');
+    }
+
+    // Évènements de rechargement
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('my_work_gtf_user_order', 'order_started', function (oResult) {
+        if (!goog.isDefAndNotNull(oResult['order'])) {
+            return false;
+        }
+        if (!goog.isDefAndNotNull(oResult['order']['user_id'])) {
+            return false;
+        }
+        if (sessionStorage['user_id'] == oResult['order']['user_id']) {
+            return true;
+        }
+        return false;
+    });
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('my_work_gtf_user_order', 'order_finished_with_result', function (oResult) {
+        if (!goog.isDefAndNotNull(oResult['order'])) {
+            return false;
+        }
+        if (!goog.isDefAndNotNull(oResult['order']['user_id'])) {
+            return false;
+        }
+        if (sessionStorage['user_id'] == oResult['order']['user_id']) {
+            return true;
+        }
+        return false;
+    });
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('my_work_gtf_user_order', 'order_finished_or_error', function (oResult) {
+        if (!goog.isDefAndNotNull(oResult['order'])) {
+            return false;
+        }
+        if (!goog.isDefAndNotNull(oResult['order']['user_id'])) {
+            return false;
+        }
+        if (sessionStorage['user_id'] == oResult['order']['user_id']) {
+            return true;
+        }
+        return false;
+    });
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('supervision_gtf_order', 'order_finished_with_result');
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('supervision_gtf_order', 'order_finished_or_error');
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('supervision_gtf_order', 'order_started');
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('my_work_gtf_user_subscription', 'subscription_creating_order');
+    angular.element(vitisApp.appMainDrtv).scope()['refreshGridByEvent']('my_work_gtf_user_survey', 'survey_creating_order');
+    
+
+    angular.element(vitisApp.appHtmlFormDrtv).scope().$on("updateStudio_publication_gtf_workspace", function (event, data) {
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var sessionSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["sessionSrvc"]);
+        if (data["index"] === 3 && data["oSectionForm"]["template"] === "modules/gtf/templates/subFormTpl.html") {
+            //console.log("gtf studio update **************************");
+            oVFB["reset"]();
+            oVFB["setId"](envSrvc["sId"]);
+            oVFB["setToken"](sessionSrvc["token"]);
+            oVFB["setApplication"]("gtf");
+            oVFB["setContainer"]("#container_section_" + envSrvc["oSelectedObject"]["name"] + "_SubForm");
+            oVFB["setAppProperties"](propertiesSrvc);
+        }
+    });
+
+    /**
+     * loadStatistics function.
+     * Paramétrage avant la compilation du template de statistiques.
+     */
+    angular.element(vitisApp.appStatisticsFormDrtv).scope()["loadStatistics"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["envSrvc"]);
+        // Passage en mode "Update" (pour le formulaire).
+        envSrvc["sMode"] = "update";
+        $log.info("loadStatistics");
+    };
+
+    /**
+     * showSupervisionRecap function.
+     * Affiche le bandeau récapitulatif de la supervision (Etat des demandes, abonnements, surveillances, messages).
+     */
+    angular.element(vitisApp.appWorkspaceListDrtv).scope()["showSupervisionRecap"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var $timeout = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$timeout"]);
+        var $templateRequest = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$templateRequest"]);
+        var $compile = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$compile"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        var externFunctionSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["externFunctionSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        // Log.
+        $log.info("showSupervisionRecap");
+        // Récupération du scope de la liste actuellement affichée.
+        var $scope = angular.element("#" + envSrvc["oSelectedObject"]["name"] + "_" + envSrvc["sSelectedSectionName"] + "_grid").scope();
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], $scope);
+        // Mise à jour de l'état des demandes.
+        $scope["refreshSupervisionRecap"]();
+        // Actualisation de la barre de recap des demandes, abonnements, surveillances à chaque chargement ou raffraîchissement de la liste.
+        $rootScope["gridApi"][$scope["sSelectedGridOptionsName"]]["grid"]["options"]["appBeforeEvent"] = "refreshSupervisionRecap()";
+        // Compile le template du récap. de la supervision.
+        $timeout(function () {
+            var sTemplateUrl = 'modules/gtf/templates/supervisionStatusTpl.html';
+            $templateRequest(sTemplateUrl).then(function (sTemplate) {
+                $compile($("#" + envSrvc["oSelectedObject"]["name"] + "_" + envSrvc["sSelectedSectionName"] + "_grid_header_option_bar").html(sTemplate).contents())($scope);
+                // Attends le raffraîchissement du statut de la supervision.
+                var clearListener = $rootScope.$on('supervisionRecapRefreshed', function (event) {
+                    // Supprime le "listener".
+                    clearListener();
+                    // Attends la fin du $digest().
+                    $timeout(function () {
+                        // Redimensionne la fenêtre principale de l'application.
+                        externFunctionSrvc["resizeWin"]();
+                        // Redimensionne la liste (ui-grid).
+                        $rootScope["gridApi"][$scope["sSelectedGridOptionsName"]]["core"]["handleWindowResize"]();
+                    });
+                });
+            });
+            $log.info('compileObjectTemplate : ' + sTemplateUrl);
+        });
+    };
+
+    /**
+     * refreshSupervisionRecap function.
+     * Mise à jour du bandeau récapitulatif de la supervision (Etat des demandes, abonnements, surveillances).
+     */
+    angular.element(vitisApp.appWorkspaceListDrtv).scope()["refreshSupervisionRecap"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        // Log.
+        $log.info("refreshSupervisionRecap");
+        // Récupération du scope de la liste actuellement affichée.
+        var $scope = angular.element("#" + envSrvc["oSelectedObject"]["name"] + "_" + envSrvc["sSelectedSectionName"] + "_grid").scope();
+        //
+        $scope["gridOptions"]["appHeaderOptionBar"] = true;
+        var oSupervisionStatus = {
+            "order": {
+                "iNotUsed": "",
+                "iWaitingOrders": 0,
+                "iErrors": 0,
+                "iTreatedOrders": 0,
+                "iNonTreatableOrders": 0,
+                "iProcessingOrders": 0,
+                "iNonAuthorizedOrders": 0
+            },
+            "subscription": {
+                "iNonEnabledSubscription": 0,
+                "iEnabledSubscription": 0
+            },
+            "survey": {
+                "iNonEnabledSurvey": 0,
+                "iEnabledSurvey": 0
+            },
+            "message": {
+                "iNotUsed0": "",   // stub
+                "iWaitingMessages": 0,
+                "iErrorMessage" : 0,
+                "iTreatedMessages": 0,
+                "iNotUsed4": "",   // Non traitable
+                "iProcessingMessages": 0,
+                "iNotUsed6": ""    // Non autorisé
+            }
+        };
+
+        // Charge le résumé de la supervision.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/supervisionstatutes",
+            "scope": $scope,
+            "success": function(response) {
+                if (response["data"]["status"] === 1) {
+                    if (typeof (response["data"]["supervisionstatutes"]) !== "undefined") {
+                        var aSupervisionStatutes = response["data"]["supervisionstatutes"];
+                        var i = 0, sKey;
+                        while (i < aSupervisionStatutes.length) {
+                            sKey = Object.keys(oSupervisionStatus[aSupervisionStatutes[i]["table_name"]])[aSupervisionStatutes[i]["filter"]];
+                            oSupervisionStatus[aSupervisionStatutes[i]["table_name"]][sKey] = aSupervisionStatutes[i]["nb_order_id"];
+                            i++;
+                        }
+                    }
+                    //
+                    $scope["oSupervisionStatus"] = oSupervisionStatus;
+                    $scope.$root.$emit("supervisionRecapRefreshed");
+                }
+            }
+        });
+    };
+
+    /**
+     * testFmeEngine function.
+     * Teste le moteur FME.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["testFmeEngine"] = function (sFieldName) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $templateRequest = angular.element(vitisApp.appMainDrtv).injector().get(["$templateRequest"]);
+        var $compile = angular.element(vitisApp.appMainDrtv).injector().get(["$compile"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        // .
+        $log.info("testFmeEngine");
+        var scope = this;
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        scope["oTestFmeEngineResult"] = {};
+        // Paramètres du service web (vitis, gtf...)
+        var sResourceId = envSrvc["getSectionWebServiceResourceId"]();
+        var aResourceId = envSrvc["explodeWebServiceResourceId"](sResourceId);
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/" + aResourceId[0] + "/" + aResourceId[1] + "/" + envSrvc["sId"] + "/Test",
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] === 1) {
+                    scope["oTestFmeEngineResult"] = envSrvc["extractWebServiceData"](aResourceId[1], response["data"])[0];
+                    var sContainerElementName = scope["sFormDefinitionName"] + "_test_fme_engine_container";
+                    var oLastFormElement = document.querySelector("#" + envSrvc["oFormDefinition"][scope["sFormDefinitionName"]]["name"] + " .form-row:last-child");
+                    // Crée l'élément conteneur pour afficher le résultat.
+                    if (typeof (document.getElementById(sContainerElementName))) {
+                        var oDiv = document.createElement("div");
+                        oDiv.id = scope["sFormDefinitionName"] + "_test_fme_engine_container";
+                        oLastFormElement.parentElement.insertBefore(oDiv, oLastFormElement);
+                    }
+                    // Test en erreur ? 
+                    var sErrorMessage;
+                    var sServerType = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["fme_engine_type_id"];
+                    if (sServerType == "desktop" && scope["oTestFmeEngineResult"]["exists"] !== true)
+                        sErrorMessage = "ERROR_FME_PATH_ENGINE_FME_ENGINE"; // 
+                    else if (scope["oTestFmeEngineResult"]["expired"] === true)
+                        sErrorMessage = "ERROR_FME_LICENSE_EXPIRED_ENGINE_FME_ENGINE";
+                    else if (scope["oTestFmeEngineResult"]["request_error"] === true)
+                        sErrorMessage = "ERROR_FME_REQUEST_ERROR_ENGINE_FME_ENGINE";
+                    else if (scope["oTestFmeEngineResult"]["valid"] !== true)
+                        sErrorMessage = "ERROR_FME_LICENSE_ENGINE_FME_ENGINE";
+                    if (typeof (sErrorMessage) !== "undefined") {
+                        $translate([sErrorMessage]).then(function (translations) {
+                            scope["oTestFmeEngineResult"]["sErrorMessage"] = translations[sErrorMessage];
+                        });
+                    }
+                    // Compile le template du résultat.
+                    $templateRequest("modules/gtf/templates/testFmeEngineTpl.html").then(function (sTemplate) {
+                        $compile($("#" + sContainerElementName).html(sTemplate).contents())(scope);
+                    });
+                }
+            }
+        });
+    };
+
+    /**
+     * appGtfEngineTagsColumn directive.
+     * Mise en forme de la colonne "tags" dans la liste de l'onglet "engine_gtf_engine" (Moteur GTF).
+     * @ngInject
+     */
+    vitisApp.appGtfEngineTagsColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appGtfEngineTagsColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.  
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents wk-params-icon";
+                        // Création du "tooltip".
+                        $(element)["popover"]({
+                            "trigger": "hover",
+                            "container": "body",
+                            "title": function () {
+                                return "#" + scope["row"]["entity"]["gtf_engine_id"];
+                            },
+                            // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                            "placement": function (oPopoverNode, oElementNode) {
+                                return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                            },
+                            "content": function () {
+                                return scope["row"]["entity"][scope["col"]["field"]];
+                            }
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        };
+    };
+    vitisApp["compileProvider"].directive("appGtfEngineTagsColumn", vitisApp.appGtfEngineTagsColumnDrtv);
+
+    /**
+     * appWorkspaceDescriptionColumn directive.
+     * Mise en forme de la colonne "description" dans la liste de l'onglet "publication_workspace" (Projets FME).
+     * @param {service} $translate Translate service.
+     * @ngInject
+     */
+    vitisApp.appWorkspaceDescriptionColumnDrtv = function ($translate) {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appWorkspaceDescriptionColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.  
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents info-icon";
+                        // Traduction du titre et du contenu.
+                        $translate(["DESCRIPTION_TOOLTIP_TITLE_PUBLICATION_WORKSPACE"]).then(function (translations) {
+                            // Création du "tooltip".
+                            $(element)["popover"]({
+                                "trigger": "hover",
+                                "container": "body",
+                                "title": function () {
+                                    return "#" + translations["DESCRIPTION_TOOLTIP_TITLE_PUBLICATION_WORKSPACE"];
+                                },
+                                "content": function () {
+                                    return scope["row"]["entity"][scope["col"]["field"]];
+                                },
+                                // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                                "placement": function (oPopoverNode, oElementNode) {
+                                    return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                                },
+                                "html": true
+                            });
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        };
+    };
+    vitisApp["compileProvider"].directive("appWorkspaceDescriptionColumn", vitisApp.appWorkspaceDescriptionColumnDrtv);
+
+    /**
+     * appEmailTemplateReceiverColumn directive.
+     * Mise en forme des colonnes "to", "cc", "cci" dans la liste de l'onglet "publication_email_template" (Email template).
+     * @ngInject
+     */
+    vitisApp.appEmailTemplateReceiverColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appEmailTemplateReceiverColumn", function (value) {
+                    if (value !== "") {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents enveloppe-icon";
+                        // Création du "tooltip".
+                        $(element)["popover"]({
+                            "trigger": "hover",
+                            "container": "body",
+                            //"html": true
+                            "title": function () {
+                                return "#" + scope["row"]["entity"]["email_template_id"];
+                            },
+                            // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                            "placement": function (oPopoverNode, oElementNode) {
+                                return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                            },
+                            "content": function () {
+                                return scope["row"]["entity"][scope["col"]["field"]];
+                            }
+                        });
+                    } else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents";
+                        // Détruit le tooltip.
+                        $(element)["popover"]("destroy");
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        };
+    };
+    vitisApp["compileProvider"].directive("appEmailTemplateReceiverColumn", vitisApp.appEmailTemplateReceiverColumnDrtv);
+
+    /**
+     * extractSubformData function.
+     * Extrait les données d'un formulaire subform retourné par un web service.
+     * @param {object} oFormRequestParams Paramètres et données retournés par le web service (demande du subform).
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["extractSubformData"] = function (oFormRequestParams) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var aResourceId = envSrvc["explodeWebServiceResourceId"](oFormRequestParams["sResourceId"]);
+        return oFormRequestParams["oData"][aResourceId[1]][0]["json_form"][0];
+    };
+
+    /**
+     * appOrderStatusColumn directive.
+     * Mise en forme de la colonne "order_status_id" dans la liste de l'onglet "my_work_user_order" et "supervision_order" (les 2 onglets "demandes").
+     * @ngInject
+     */
+    vitisApp.appOrderStatusColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // Traduction des libellés de statuts des demandes.
+                if (typeof(scope["gtf_order_status_label"]) == "undefined") {
+                    var $translate = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$translate"]);
+                    var aOrderStatusLabel = ["WAITING_BOX_TITLE_SUPERVISION_ORDER", "ERROR_BOX_TITLE_SUPERVISION_ORDER", "TREATED_BOX_TITLE_SUPERVISION_ORDER", "NON_TREATABLE_BOX_TITLE_SUPERVISION_ORDER", "PROCESSING_BOX_TITLE_SUPERVISION_ORDER", "NON_AUTHORIZED_BOX_TITLE_SUPERVISION_ORDER"];
+                    scope.$root["gtf_order_status_label"] = [];
+                    $translate(aOrderStatusLabel).then(function (translations) {
+                        for(var i= 0; i < aOrderStatusLabel.length; i++)
+                            scope.$root["gtf_order_status_label"][i+1] = translations[aOrderStatusLabel[i]];
+                    });
+                }
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appOrderStatusColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.  
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents status" + scope["row"]["entity"]["order_status_id"] + "-icon";
+                        // Création du "tooltip".
+                        $(element)["popover"]({
+                            "trigger": "hover",
+                            "container": "body",
+                            "title": function () {
+                                return "#" + scope["row"]["entity"]["order_id"];
+                            },
+                            // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                            "placement": function (oPopoverNode, oElementNode) {
+                                return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                            },
+                            "content": function () {
+                                return scope.$root["gtf_order_status_label"][scope["row"]["entity"]["order_status_id"]];
+                            }
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        };
+    };
+    vitisApp["compileProvider"].directive("appOrderStatusColumn", vitisApp.appOrderStatusColumnDrtv);
+
+    /**
+     * appWorkspaceParametersColumn directive.
+     * Mise en forme de la colonne "wk_params" dans la liste de l'onglet "my_work_user_order" et "supervision_order" (les 2 onglets "demandes").
+     * @ngInject
+     */
+    vitisApp.appWorkspaceParametersColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appWorkspaceParametersColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.  
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents wk-params-icon";
+                        // Création du "tooltip".
+                        $(element)["popover"]({
+                            "trigger": "hover",
+                            "container": "body",
+                            "title": function () {
+                                return "#" + scope["row"]["entity"]["order_id"];
+                            },
+                            // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                            "placement": function (oPopoverNode, oElementNode) {
+                                return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                            },
+                            "content": function () {
+                                var sWkParams = scope["row"]["entity"]["wk_params"];
+                                if (sWkParams != null) {
+                                    sWkParams = sWkParams.replace(/\|/g, "<br>");
+                                    sWkParams = scope.$root["decodeFmeGtfTags"](sWkParams);
+                                }
+                                return sWkParams;
+                            },
+                            "html": true
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        };
+    };
+    vitisApp["compileProvider"].directive("appWorkspaceParametersColumn", vitisApp.appWorkspaceParametersColumnDrtv);
+
+    /**
+     * appOrderEmailNotificationsColumn directive.
+     * Mise en forme de la colonne "email_notifications" dans la liste de l'onglet "my_work_user_order" et "supervision_order" (les 2 onglets "demandes").
+     * @ngInject
+     */
+    vitisApp.appOrderEmailNotificationsColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appOrderEmailNotificationsColumn", function (value) {
+                    var sEmailNotifications = scope["row"]["entity"]["email_notifications"];
+                    if (sEmailNotifications != null) {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents enveloppe-icon";
+                        // Création du "tooltip".
+                        sEmailNotifications = sEmailNotifications.replace(/;/g, "<br>");
+                        $(element)["popover"]({
+                            "trigger": "hover",
+                            "container": "body",
+                            //"title": "#" + scope["row"]["entity"]["order_id"],
+                            //"content": sEmailNotifications,
+                            "title": function () {
+                                return "#" + scope["row"]["entity"]["order_id"];
+                            },
+                            // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                            "placement": function (oPopoverNode, oElementNode) {
+                                return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                            },
+                            "content": function () {
+                                return sEmailNotifications;
+                            },
+                            "html": true
+                        });
+                    } else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents";
+                        // Détruit le tooltip.
+                        $(element)["popover"]("destroy");
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        };
+    };
+    vitisApp["compileProvider"].directive("appOrderEmailNotificationsColumn", vitisApp.appOrderEmailNotificationsColumnDrtv);
+
+    /**
+     * appOrderDownloadUrlColumn directive.
+     * Mise en forme des colonnes "result_url" et "log_url" dans la liste de l'onglet "my_work_user_order" et "supervision_order" (les 2 onglets "demandes").
+     * @param {service} propertiesSrvc Paramètres des properties.
+     * @ngInject
+     */
+    vitisApp.appOrderDownloadUrlColumnDrtv = function (propertiesSrvc) {
+        return {
+            replace: true,
+            template: '<a href="" target="_blank" class="icon-link download-icon"></a>',
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appOrderDownloadUrlColumn", function (value) {
+                    // Si le champ est vide : supprime le lien.  
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        element[0].className = "icon-link download-icon";
+                        element[0].href = propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["public_alias"] + "/gtf/" + scope["row"]["entity"][scope["col"]["field"]];
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        };
+    };
+    vitisApp["compileProvider"].directive("appOrderDownloadUrlColumn", vitisApp.appOrderDownloadUrlColumnDrtv);
+
+    /**
+     * loadSubForm function.
+     * Charge le formulaire "subform" (onglets "demande", "abonnements", "surveillances").
+     * @param {integer} iWorkspaceId Id du projet Fme.
+     * @param {angular.scope} scope .
+     * @param {object} element Elément html.
+     * @param {object} oFormValues Données du formulaire.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadSubForm"] = function (iWorkspaceId, scope, element, oFormValues) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$log"]);
+        var $templateRequest = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$templateRequest"]);
+        var $compile = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$compile"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $q = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$q"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["formSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["propertiesSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        //
+        $log.info("loadSubForm");
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        if (typeof (oFormValues) === "undefined")
+            oFormValues = {};
+        // Nom + url du formulaire.
+        scope["sFormDefinitionName"] = envSrvc["sFormDefinitionName"].replace(/_form/, "_subform");
+        // Paramètres pour la requête ajax du subform.
+        scope["oFormRequestParams"] = {
+            "sUrl": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces/" + iWorkspaceId,
+            "sResourceId": "gtf/workspaces",
+            "oParams": {
+                "form": "Published"
+            },
+            "sExtractData": "extractSubformData(oFormRequestParams)",
+        };
+
+        // Suppression de la définition et des données du formulaire (sinon problème de cache...).
+        //formSrvc["clearFormData"](scope["sFormDefinitionName"]);
+        scope.$root["clearFormData"](scope["sFormDefinitionName"], scope);
+        // Pas de données de form. à charger.
+        scope["bLoadFormValues"] = false;
+        // Compilation du template de formulaire.
+        $templateRequest("templates/simpleFormTpl.html").then(function (sTemplate) {
+            $compile($(element).html(sTemplate).contents())(scope);
+            var clearFormDefListener = $rootScope.$on('formDefinitionLoaded', function (event, sFormDefinitionName) {
+                // Sauve les valeurs d'origine.
+                scope["oOriginalFormValues"] = angular.copy(oFormValues);
+                // Si des valeurs du wk_params sont utilisés par des champs de form. "double_select" -> remplace les espaces par des "pipes".
+                Object.keys(oFormValues).forEach(function (sFormElementName) {
+                    var oFormElementDefinition = formSrvc["getFormElementDefinition"](sFormElementName, sFormDefinitionName);
+                    if (typeof (oFormElementDefinition) !== "undefined" && oFormElementDefinition["type"] === "double_select")
+                        oFormValues[sFormElementName] = oFormValues[sFormElementName].replace(/ /g, "|");
+                });
+                // Sauve les données du form.
+                envSrvc["oFormValues"][sFormDefinitionName] = oFormValues;
+                // Titre du formulaire.
+                //scope.$parent["sSubFormTitle"] = envSrvc["oFormDefinition"][sFormDefinitionName]["title"];
+
+                // Vérification avant l'envoi du formulaire
+                envSrvc["oFormDefinition"][sFormDefinitionName]["beforeEvent"] = function () {
+                    var deferred = $q.defer();
+                    var promise = deferred.promise;
+                    var sErrorMessage;
+                    formSrvc["getAllFormElementDefinition"](sFormDefinitionName).forEach(function (oElementDefinition) {
+                        if (oElementDefinition["type"] === "upload") {
+                            // Vérification du fichier de ressources complémentaires.
+                            if (typeof (oFormValues[oElementDefinition["name"]]) === "object" && typeof (oFormValues[oElementDefinition["name"]]["aFiles"]) !== "undefined" && oFormValues[oElementDefinition["name"]]["aFiles"].length > 0) {
+                                var sFileExtension = oFormValues[oElementDefinition["name"]]["aFiles"][0]["name"].split(".").pop();
+                                var sForbiddenExtension = propertiesSrvc["forbidden_extension"].replace(/[^a-zA-Z0-9\|]+/g, "");
+                                if (sForbiddenExtension.split("|").indexOf(sFileExtension) === -1) {
+                                    // Taille maxi du fichier.
+                                    if (oFormValues[oElementDefinition["name"]]["aFiles"][0]["size"] > parseInt(propertiesSrvc["max_upload_file_size"]))
+                                        sErrorMessage = "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+                                } else
+                                    sErrorMessage = "ERROR_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+                            }
+                            if (typeof (sErrorMessage) !== "undefined") {
+                                deferred.reject();
+                            }
+                        }
+                    });
+                    // Affichage de la fenêtre modale d'erreur.
+                    if (typeof (sErrorMessage) !== "undefined") {
+                        var oOptions = {
+                            "className": "modal-danger",
+                            "message": sErrorMessage
+                        };
+                        scope.$root["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+                    } else
+                        deferred.resolve();
+                    return promise;
+                };
+
+                // Fonctions à appeler pendant et après l'envoi du form (insertion de la demande).
+                //envSrvc["oFormDefinition"][sFormDefinitionName]["event"] = "sendUserSurveySubForm()";
+                envSrvc["oFormDefinition"][sFormDefinitionName]["afterEvent"] = function () {
+                    if (propertiesSrvc['engines_list'] == "") {
+                        var oOptions = {
+                            "className": "modal-danger",
+                            "message": "ERROR_NO_GTF_ENGINE_CONTENT_MY_WORK_USER_ORDER"
+                        };
+                        scope.$root["modalWindow"]("alert", "ERROR_NO_GTF_ENGINE_TITLE_MY_WORK_USER_ORDER", oOptions);
+                    }
+                    else {
+                        angular.element(vitisApp.appMainDrtv).scope()["sendSubForm"](scope).then(function (bFormValid) {
+                            if (bFormValid === true) {
+                                // Rechargement obligatoire du mode supervision.
+                                delete envSrvc["oLastSelectedObjectMode"]["supervision"];
+                                // Retour vers la liste des demandes.
+                                angular.element(vitisApp.appMainDrtv).scope()["setMode"]("search");
+                            }
+                        });
+                    }
+                };
+                // Largeur du formulaire.
+                envSrvc["oFormDefinition"][sFormDefinitionName]["nb_cols"] = 8;
+                // Ajoute le bouton "demander".
+                if (envSrvc["sMode"] !== "display") {
+                    // Nom du bouton suivant le mode.
+                    var sButtonLabel;
+                    if (envSrvc["sMode"] === "insert")
+                        sButtonLabel = "FORM_BTN_CREATE_" + scope["tab_id"].toUpperCase() + "_" + envSrvc["oSelectedObject"]["name"].toUpperCase();
+                    else
+                        sButtonLabel = "FORM_BTN_UPDATE_" + scope["tab_id"].toUpperCase() + "_" + envSrvc["oSelectedObject"]["name"].toUpperCase();
+                    // Bouton submit ajouté au formulaire (si pas déja présent).
+                    if (typeof(formSrvc["getFormElementDefinition"]("form_submit", sFormDefinitionName) == "undefined")) {
+                        envSrvc["oFormDefinition"][sFormDefinitionName]["rows"].push(
+                                {
+                                    "fields": [
+                                        {
+                                            "type": "button",
+                                            "class": "btn-ungroup btn-group-sm",
+                                            "nb_cols": 12,
+                                            "buttons": [
+                                                {
+                                                    "type": "submit",
+                                                    "name": "form_submit",
+                                                    "label": sButtonLabel,
+                                                    "class": "btn-primary",
+                                                    "visibleAllTabs": true
+                                                }
+                                            ]
+                                        }
+                                    ]
+                                }
+                        );
+                    }
+                }
+                //}
+                // Supprime le "listener".
+                clearFormDefListener();
+            });
+        });
+    };
+
+    /**
+     * sendSubForm function.
+     * Envoi le formulaire "subform" (onglets "demandes", "abonnements", "surveillances") avec les paramètres du workspace.
+     * @param {angular.scope} scope .
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["sendSubForm"] = function (scope) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["formSrvc"]);
+
+        $log.info("sendSubForm");
+        // Valeurs des champs cachés du form. de la demande.
+        var oWkParams = {};
+        //var aSerializedSubForm = angular.element("#double_form_right_section_" + envSrvc["oSelectedObject"]["name"] + " form").serializeArray();
+        //mise en forme pour fme 
+        /***********************************************************************/
+
+        var encoderFME = function (str) {
+
+            if (!goog.isString(str))
+                return str;
+            // table de correspondance
+            var caracInGTF = [" ", "=", "\r\n", "(", ")", "$", "&", "@", "°", "'", ",", "\"", "{", "}", "[", "]", "|", ";", "/", "\\", "é", "à"];
+            var caracForFME = ["<space>", "<GTF_EQUAL>", "<lf>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<GTF_PIPE>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>"];
+            //variables parcours de chaine
+            var result = str;
+            var istr = 0;
+            var iresult = 0;
+            // remplacement des <> par parcours de chaine
+            // avec vérification des mots clef
+            // et gestion des caractère unicode
+            while (istr < str.length) {
+                if (str.charAt(istr) === "<") {
+
+                    var j = 0;
+                    var find = false;
+                    while (j < caracForFME.length && !find) {
+                        var clipper = result.substr(iresult, caracForFME[j].length);
+                        if (clipper === caracForFME[j]) {
+                            istr += caracForFME[j].length;
+                            iresult += caracForFME[j].length;
+                            find = true;
+                        }
+                        j++;
+                    }
+                    /*****************************/
+                    //GTF_QUOTE et GTF BACKSLASH
+                    /* var quote = "<GTF_QUOTE>";
+                     var backslash = "<GTF_BACKSLASH>";
+                     
+                     var clipper = result.substr(iresult, quote.length);
+                     if (clipper === quote) {
+                     istr += quote.length;
+                     iresult += quote.length;
+                     find = true;
+                     }
+                     
+                     clipper = result.substr(iresult, backslash.length);
+                     console.error(result,clipper, iresult);
+                     if (clipper === backslash) {
+                     istr += backslash.length;
+                     iresult += backslash.length;
+                     find = true;
+                     }
+                     /*****************************/
+
+                    if (!find) {
+                        var part1 = result.substr(0, iresult);
+                        var part2 = result.substr(iresult + 1, result.length - 1);
+                        result = part1 + "<lt>" + part2;
+                        iresult += 4;
+                        istr += 1;
+                    }
+                } else if (str.charAt(istr) === ">") {
+                    var part1 = result.substr(0, iresult);
+                    var part2 = result.substr(iresult + 1, result.length - 1);
+                    result = part1 + "<gt>" + part2;
+                    istr += 1;
+                    iresult += 4;
+                } else {
+                    //unicode
+                    var code = str.charCodeAt(istr);
+                    if (code > 127) {
+                        var part1 = result.substr(0, iresult);
+                        var part2 = result.substr(iresult + 1, result.length - 1);
+                        var charCode = (+code).toString(16);
+
+                        while (charCode.length < 4) {
+                            charCode = "0" + charCode;
+                        }
+
+                        result = part1 + "<u" + charCode + ">" + part2;
+                        istr += 1;
+                        iresult += 7;
+                    } else {
+                        istr += 1;
+                        iresult += 1;
+                    }
+                    /*******************************************/
+                }
+            }
+
+            for (var j = 0; j < caracInGTF.length; j++) {
+                while (result.indexOf(caracInGTF[j]) !== - 1)
+                    result = result.replace(caracInGTF[j], caracForFME[j]);
+            }
+
+            return result;
+        };
+
+        var decoderFME = function (str) {
+            if (!goog.isString(str))
+                return str;
+            // table de correspondance
+            var caracInGTF = ["<", ">", " ", "\n", "<GTF_EQUAL>", "(", ")", "$", "&", "@", "°", "'", "<comma>", "\"", "{", "}", "[", "]", "<GTF_PIPE>", ";", "/", "\\", "é", "à"];
+            var caracForFME = ["<lt>", "<gt>", "<lf>", "<space>", "=", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", ",", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "|", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>"];
+            //variables parcours de chaine
+            var result = str;
+
+            for (var j = 0; j < caracInGTF.length; j++) {
+                while (result.indexOf(caracForFME[j]) !== - 1)
+                    result = result.replace(caracForFME[j], caracInGTF[j]);
+            }
+
+            var code = result.search(/<u[0-9a-fA-F]{4}>/);
+            while (code !== -1) {
+                var part1 = result.substr(0, code);
+                var char = result.substr(code + 2, code + 6);
+                var part2 = result.substr(code + 7, result.length - 1);
+                char = String.fromCharCode(parseInt(char, 16));
+                result = part1 + char + part2;
+                //console.log(part1, char, part2);
+                code = result.search(/<u[0-9a-fA-F]{4}>/);
+            }
+
+            return result;
+        };
+
+        var oFormValues = goog.object.clone(scope["oFormValues"][scope["sFormDefinitionName"]]);
+        for (var i = 0; i < scope["oFormDefinition"][scope["sFormDefinitionName"]]["rows"].length; i++) {
+            for (var j = 0; j < scope["oFormDefinition"][scope["sFormDefinitionName"]]["rows"][i]["fields"].length; j++) {
+                var val = scope["oFormDefinition"][scope["sFormDefinitionName"]]["rows"][i]["fields"][j];
+                //for (var k = 0; k < aSerializedSubForm.length; k++) {
+                if (goog.isDef(oFormValues[val["name"]])) {
+                    switch (val["type"]) {
+                        //case "date":
+                        //console.log("date");
+                        //break;
+                        case "datetime":
+                            var tmp = angular.copy(oFormValues[val["name"]]);
+                            tmp = tmp.split(" ");
+                            // si il y a un espace alors mise en forme sinon c'est une valeur par défaut à ne pas retoucher
+                            if (tmp.length === 2) {
+                                var date = tmp[0];
+                                var time = tmp[1];
+                                //traitement date
+                                date = date.split("/");
+                                //traitement time
+                                time = time.split(":");
+                                if (time.length === 2) {
+                                    time.push("00");
+                                }
+                                //reconstitution
+                                oFormValues[val["name"]] = date[2] + date[1] + date[0] + time[0] + time[1] + time[2];
+                            }
+                            break;
+                        case "color_picker":
+                            var tmp = angular.copy(oFormValues[val["name"]]);
+                            if (tmp.indexOf('(') !== -1 && tmp.indexOf(')') !== -1 && tmp.indexOf(',') !== -1) {
+                                tmp = tmp.split("(");
+                                tmp = tmp[1].split(")");
+                                tmp = tmp[0].split(",");
+                                var R = (parseFloat(tmp[0]) / 255).toFixed(6);
+                                var G = (parseFloat(tmp[1]) / 255).toFixed(6);
+                                var B = (parseFloat(tmp[2]) / 255).toFixed(6);
+                                // alpha non pris en charge par fme
+                                // fme ne prend que des % de couleur
+                                oFormValues[val["name"]] = R + "," + G + "," + B;
+                            } else {
+                                console.error('ColorPicker value not acceptable: ', tmp);
+                                oFormValues[val["name"]] = '1,1,1';
+                            }
+                            break;
+                        case "list":
+                            var tmp = angular.copy(oFormValues[val["name"]]["selectedOption"]);
+                            if (goog.isArray(tmp)) {
+                                oFormValues[val["name"]] = "";
+                                if (tmp.length > 0) {
+                                    for (var choice = 0; choice < tmp.length - 1; choice++) {
+                                        //console.log(tmp[choice]["value"]);
+                                        if (!goog.isString(tmp[choice]["value"])) {
+                                            tmp[choice]["value"] = tmp[choice]["value"].toString();
+                                        }
+                                        if (tmp[choice]["value"].indexOf(" ") !== -1) {
+                                            oFormValues[val["name"]] += ("\"" + tmp[choice]["value"] + "\"" + " ");
+                                        } else {
+                                            oFormValues[val["name"]] += (tmp[choice]["value"] + " ");
+                                        }
+                                    }
+                                    if (!goog.isString(tmp[tmp.length - 1]["value"])) {
+                                        tmp[tmp.length - 1]["value"] = tmp[tmp.length - 1]["value"].toString();
+                                    }
+                                    if (tmp[tmp.length - 1]["value"].indexOf(" ") !== -1) {
+                                        //oFormValues[val["name"]] += ("\"" + tmp[tmp.length - 1]["value"] + "\"");
+                                        oFormValues[val["name"]] += tmp[tmp.length - 1]["value"];
+                                    } else {
+                                        oFormValues[val["name"]] += (tmp[tmp.length - 1]["value"]);
+                                    }
+                                }
+                                //oFormValues[val["name"]] += tmp[tmp.length - 1]["value"];
+                            } else if (goog.isObject(tmp)) {
+                                if (typeof (tmp["value"]) != "undefined")
+                                    oFormValues[val["name"]] = tmp["value"].replace("|", " ");
+                            }
+
+                            //oFormValues[val["name"]] = decoderFME(oFormValues[val["name"]]);
+                            //console.log("encoder", oFormValues[val["name"]]);
+                            oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                            break;
+                        case "select":
+                            var tmp = angular.copy(oFormValues[val["name"]]["selectedOption"]);
+                            //console.log(tmp);
+                            if (goog.isObject(tmp)) {
+                                oFormValues[val["name"]] = tmp["value"];
+                            } else {
+                                oFormValues[val["name"]] = tmp;
+                            }
+                            //oFormValues[val["name"]] = decoderFME(oFormValues[val["name"]]);
+                            oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                            break;
+                        case "double_select":
+                            var oSelectedOptions = oFormValues[val["name"]];
+                            var aSelectedOptions = [];
+                            oSelectedOptions["options"].forEach(function (oOption) {
+                                aSelectedOptions.push(oOption["value"]);
+                            });
+                            oFormValues[val["name"]] = encoderFME(aSelectedOptions.join(" "));
+                            delete oFormValues[val["name_from"]];
+                            break;
+                        case "upload":
+                            if (goog.isDefAndNotNull(oFormValues[val["name"]])) {
+                                var tmp = oFormValues[val["name"]];
+                                // Répertoire côté serveur pour tous les fichiers uploadés.
+                                var sDirectory;
+                                if (typeof(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"]) == "undefined") {
+                                    sDirectory = new Date().getTime() + parseInt(Math.random() * 100000);
+                                    envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"] = sDirectory;
+                                }
+                                else
+                                    sDirectory = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"];
+                                //
+                                envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["rows"].push({"fields": [formSrvc["getFormElementDefinition"](val["name"], scope["sFormDefinitionName"])]});
+                                envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]][val["name"]] = envSrvc["oFormValues"][scope["sFormDefinitionName"]][val["name"]];
+
+                                // Fichier sélectionné.
+                                if (typeof (tmp["aFiles"]) != "undefined" && tmp["aFiles"].length > 0) {
+                                    var aUploadFiles = [];
+                                    for (var iFileIndex = 0; iFileIndex < tmp["aFiles"].length; iFileIndex++) {
+                                        aUploadFiles.push(sDirectory + "/" + tmp["aFiles"][iFileIndex]["name"]);
+                                    }
+                                    oFormValues[val["name"]] = aUploadFiles.join(",");
+                                }
+                                else {
+                                    if (typeof (scope["oOriginalFormValues"][val["name"]]) != "undefined")
+                                        oFormValues[val["name"]] = scope["oOriginalFormValues"][val["name"]];
+                                    else
+                                        oFormValues[val["name"]] = "";
+                                }
+                            } else {
+                                if (typeof (scope["oOriginalFormValues"][val["name"]]) != "undefined")
+                                    oFormValues[val["name"]] = scope["oOriginalFormValues"][val["name"]];
+                                else
+                                    oFormValues[val["name"]] = "";
+                            }
+                            break;
+                        case "textarea":
+                            //var tmp = oFormValues[val["name"]];
+                            //oFormValues[val["name"]] = encoderFME(tmp);
+                            oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                            break;
+                        case "text":
+                            oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                            //oFormValues[val["name"]] = decoderFME(oFormValues[val["name"]]);
+                            break;
+                        case "treeview":
+                            oFormValues[val["name"]] = String(oFormValues[val["name"]]).replace(/\|/g, "<GTF_PIPE>");
+                    }
+                }
+                //}
+            }
+        }
+
+        /*************************************************************************/
+        // Dédoublonnage (select multiple).
+        //var i = 0;
+        //while (i < aSerializedSubForm.length) {
+        //    if (typeof (oWkParams[aSerializedSubForm[i]["name"]]) == "undefined")
+        //        oWkParams[aSerializedSubForm[i]["name"]] = aSerializedSubForm[i]["value"];
+        //    else
+        //        oWkParams[aSerializedSubForm[i]["name"]] += "," + aSerializedSubForm[i]["value"];
+        //    i++;
+        //}
+        // Création du paramètre wk_params.
+        var aKeys = Object.keys(oFormValues);
+        var aWkParams = [];
+        i = 0;
+        while (i < aKeys.length) {
+            aWkParams.push(aKeys[i] + "=" + oFormValues[aKeys[i]]);
+            i++;
+        }
+        var sWkParams = aWkParams.join("|");
+        // Fichiers à uploader ?
+        //var oFileInput = document.querySelector("form[name='" + envSrvc["oFormDefinition"][scope["sFormDefinitionName"]]["name"] + "']").querySelectorAll("input[type='file']");
+
+        //i = 0;
+        //while (i < oFileInput.length) {
+        //    var sDirectory = new Date().getTime() + parseInt(Math.random() * 100000);
+        //    envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"] = sDirectory;
+        // Si un fichier est sélectionné -> ajoute la définition et les valeurs du champ sur le formulaire de la demande.
+        //    if (oFileInput[i]["files"].length > 0) {
+        //        envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["rows"].push({"fields": [formSrvc["getFormElementDefinition"](oFileInput[i]["name"], scope["sFormDefinitionName"])]});
+        //        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]][oFileInput[i]["name"]] = envSrvc["oFormValues"][scope["sFormDefinitionName"]][oFileInput[i]["name"]];
+        //        sWkParams += "|" + oFileInput[i]["name"] + "=" + sDirectory + "/" + oFileInput[i]["files"][0]["name"];
+        //    }
+        //    i++;
+        //}
+        // Sauve les valeurs du formulaire du projet FME + id de l'utilisateur connecté.
+        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["wk_params"] = sWkParams;
+        //envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["user_id"] = sessionStorage["user_id"];
+        // 
+        envSrvc["sFormDefinitionName"] = envSrvc["sFormDefinitionName"].replace(/_subform/, "_form");
+        // Envoi du formulaire.
+        return scope["sendSimpleForm"](true);
+    };
+
+    /**
+     * sendSubForm function.
+     * Initialisation des onglets "demandes", "abonnements", "surveillances" (mode "my_work").
+     * @param {angular.scope} scope .
+     * @param {object} element Elément html.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["initSubForm"] = function (scope, element) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $timeout = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$timeout"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        $log.info("initSubForm");
+        // Attends la fin de l'affichage du 1er formulaire.
+        var clearListener = $rootScope.$on('formExtracted', function (event) {
+            // Supprime le "listener".
+            clearListener();
+            if (envSrvc["sMode"] != "display") {
+                // Attends la fin du $digest().
+                $timeout(function () {
+                    // Evènement sur le <select> des projets Fme.
+                    document.getElementById("workspace_id").addEventListener("change", function () {
+                        scope["loadSubForm"](this.value, scope, element);
+                    });
+                }, 100);
+            }
+        });
+
+        // Attends la fin du chargement des données et structure du formulaire.
+        var clearListener2 = $rootScope.$on('formDefinitionLoaded', function (event) {
+            // Supprime le "listener".
+            clearListener2();
+            if (envSrvc["sMode"] != "insert") {
+                // Extraction des données de formulaire du projet FME.
+                var sWkParams = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["wk_params"];
+                var oFormValues = {}, aKeysValues;
+                if (sWkParams != null) {
+                    var aWkParams = sWkParams.split("|");
+                    var i = 0;
+                    while (i < aWkParams.length) {
+                        aKeysValues = aWkParams[i].split("=");
+                        oFormValues[aKeysValues[0]] = scope.$root["decodeFmeGtfTags"](aKeysValues[1]);
+                        i++;
+                    }
+                }
+
+                // Traduction du booléen ("enabled") pour le mode "display".
+                if (envSrvc["sMode"] == "display") {
+                    scope.$root["getBooleanTranslation"](envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"]).then(function (sTranslation) {
+                        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"] = sTranslation;
+                    });
+                }
+
+                // Charge le subform.
+                scope["loadSubForm"](envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["workspace_id"], scope, element, oFormValues);
+            }
+        });
+    };
+
+    /**
+     * appMessageStatusIconColumn directive.
+     * Mise en forme de la colonne "status" avec un icône (Supervision > messages).
+     * @ngInject
+     */
+    vitisApp.appMessageStatusIconColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // Traduction des libellés de statuts des messages.
+                if (typeof(scope["gtf_message_status_label"]) == "undefined") {
+                    var $translate = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$translate"]);
+                    var aOrderStatusLabel = ["WAITING_BOX_TITLE_SUPERVISION_ORDER", "ERROR_BOX_TITLE_SUPERVISION_ORDER", "TREATED_BOX_TITLE_SUPERVISION_ORDER", "PROCESSING_BOX_TITLE_SUPERVISION_ORDER"];
+                    scope.$root["gtf_message_status_label"] = [];
+                    $translate(aOrderStatusLabel).then(function (translations) {
+                        for(var i= 0; i < aOrderStatusLabel.length; i++)
+                            scope.$root["gtf_message_status_label"][i] = translations[aOrderStatusLabel[i]];
+                    });
+                }
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appMessageStatusIconColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.  
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || String(scope["row"]["entity"][scope["col"]["field"]]) == "")
+                        element[0].className = "";
+                    else {
+                        //
+                        if (value == 0)
+                            value = 4;
+                        /*else if (value == 6)
+                            value = 5;
+                        else
+                            value = 5;*/
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents status" + value + "-icon";
+                        // Création du "tooltip".
+                        $(element)["popover"]({
+                            "trigger": "hover",
+                            "container": "body",
+                            "title": function () {
+                                return "#" + scope["row"]["entity"]["message_id"];
+                            },
+                            // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                            "placement": function (oPopoverNode, oElementNode) {
+                                return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                            },
+                            "content": function () {
+                                return scope.$root["gtf_message_status_label"][scope["row"]["entity"]["status"]];
+                            }
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        }
+    };
+    vitisApp["compileProvider"].directive("appMessageStatusIconColumn", vitisApp.appMessageStatusIconColumnDrtv);
+    
+    /**
+     * appMessageBodyColumn directive.
+     * Mise en forme de la colonne "body" dans la liste de l'onglet "my_work_3" (messages de gtf).
+     * @ngInject
+     */
+    vitisApp.appMessageBodyColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appMessageBodyColumn", function (value) {
+                    // Si le champ est vide : supprime l'icône.  
+                    if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "")
+                        element[0].className = "";
+                    else {
+                        // Classes css (ui-grid + spécifiques).
+                        element[0].className = "ui-grid-cell-contents page-icon";
+                        // Création du "tooltip".
+                        $(element)["popover"]({
+                            "trigger": "hover",
+                            "container": "body",
+                            //"title": "#" + scope["row"]["entity"]["message_id"],
+                            //"content": sWkParams,
+                            "title": function () {
+                                return "#" + scope["row"]["entity"]["message_id"];
+                            },
+                            // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément.
+                            "placement": function (oPopoverNode, oElementNode) {
+                                return scope.$root["workspaceTooltipPlacement"](oElementNode);
+                            },
+                            "content": function () {
+                                var sWkParams = scope["row"]["entity"]["body"];
+                                if (sWkParams != null)
+                                    sWkParams = sWkParams.replace(/\n/g, "<br>");
+                                return sWkParams;
+                            },
+                            "html": true
+                        });
+                    }
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime le tooltip.
+                    $(element)["popover"]("destroy");
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        }
+    };
+    vitisApp["compileProvider"].directive("appMessageBodyColumn", vitisApp.appMessageBodyColumnDrtv);
+
+    /**
+     * loadEmailTemplateAdvancedEdition function.
+     * Traitements au lancement de la section "Définition avançée" du modèle d'email.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadEmailTemplateAdvancedEdition"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("loadEmailTemplateAdvancedEdition");
+        if (envSrvc["sMode"] != "search") {
+            // Attends la fin de la compilation du formulaire.
+            var clearListener = this.$root.$on('endFormNgRepeat', function (event, sFormDefinitionName) {
+                // Supprime le "listener".
+                clearListener();
+                // Calcule la hauteur de l'éditeur CodeMirror.
+                var oSectionForm = envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]];
+                var oSectionContainer = document.querySelector("#container_section_" + envSrvc["oSelectedObject"]["name"] + "_" + oSectionForm["sections"][oSectionForm["iSelectedSectionIndex"]]["name"] + " > .simple-form");
+                var oForm = oSectionContainer.querySelector("form");
+                var oCodeMirror = oSectionContainer.querySelector(".CodeMirror");
+                oCodeMirror["CodeMirror"]["setSize"]("100%", oCodeMirror.clientHeight + oSectionContainer.clientHeight - oForm.clientHeight - 55);
+            });
+        }
+    };
+
+    /**
+     * generateEmailTemplateCode function.
+     * Génération du code du template.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["generateEmailTemplateCode"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("generateEmailTemplateCode");
+        var scope = this;
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/emailtemplates/" + envSrvc["sId"] + "/Code",
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    // Mise à jour du contenu de l'éditeur CodeMirror.
+                    var oSectionForm = envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]];
+                    var oCodeMirror = document.querySelector("#container_section_" + envSrvc["oSelectedObject"]["name"] + "_" + oSectionForm["sections"][oSectionForm["iSelectedSectionIndex"]]["name"] + " .CodeMirror");
+                    oCodeMirror["CodeMirror"]["setValue"](response["data"]["emailtemplates"][0]["code"]);
+                }
+            }
+        });
+    };
+
+    /**
+     * checkEmailTemplateCode function.
+     * Vérification du code du template.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["checkEmailTemplateCode"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"])
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("checkEmailTemplateCode");
+        var scope = this;
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        // Requête vers la validation du code php du template d'email.
+        var formData = new FormData();
+        formData.append("code", envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["code"]);
+        formData.append("error_type", "E_PARSE");
+        ajaxRequest({
+            "method": "POST",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/emailtemplates/" + envSrvc["sId"] + "/CodeValidation",
+            "data": formData,
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    deferred.resolve();
+                } else {
+                    deferred.reject();
+                    var oOptions = {"className": "modal-danger"};
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] != null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    scope["modalWindow"]("alert", "PHP_VALIDATION_ERROR", oOptions);
+                }
+            }
+        });
+        //
+        return promise;
+    };
+
+    /**
+     * checkCronExpression function.
+     * Vérification de l'expression cron de la période.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["checkCronExpression"] = function (sFieldName) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $templateRequest = angular.element(vitisApp.appMainDrtv).injector().get(["$templateRequest"]);
+        var $compile = angular.element(vitisApp.appMainDrtv).injector().get(["$compile"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        // .
+        $log.info("checkCronExpression");
+        var scope = this;
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        scope["oCheckCronExpressionResult"] = {};
+        // Paramètres du service web (vitis, gtf...)
+        var sResourceId = envSrvc["getSectionWebServiceResourceId"]();
+        var aResourceId = envSrvc["explodeWebServiceResourceId"](sResourceId);
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/" + aResourceId[0] + "/" + aResourceId[1] + "/" + envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["period_id"] + "/CronValidation/",
+            "params": {"code": envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]][sFieldName]},
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    scope["oCheckCronExpressionResult"] = envSrvc["extractWebServiceData"](aResourceId[1], response["data"])[0]["checkcron"];
+                    var sContainerElementName = scope["sFormDefinitionName"] + "_check_cron_expression_container";
+                    var oLastFormElement = document.querySelector("#" + envSrvc["oFormDefinition"][scope["sFormDefinitionName"]]["name"] + " .form-row:last-child");
+                    // Crée l'élément conteneur pour afficher le résultat.
+                    if (typeof (document.getElementById(sContainerElementName))) {
+                        var oDiv = document.createElement("div");
+                        oDiv.id = scope["sFormDefinitionName"] + "_check_cron_expression_container";
+                        oLastFormElement.parentElement.insertBefore(oDiv, oLastFormElement);
+                    }
+                    // Traduction du message du résultat.
+                    $translate([scope["oCheckCronExpressionResult"]["message"]], scope["oCheckCronExpressionResult"]).then(function (translations) {
+                        scope["sCronTestResultMessage"] = translations[scope["oCheckCronExpressionResult"]["message"]];
+                    });
+                    // Expression cron valide ?
+                    scope["bCronExpressionArguments"] = true;
+                    if (scope["oCheckCronExpressionResult"]["status"] == 1) {
+                        scope["sCronTestResultClass"] = "panel panel-success";
+                    } else {
+                        scope["sCronTestResultClass"] = "panel panel-danger";
+                        // Argument invalide ?
+                        if (typeof (scope["oCheckCronExpressionResult"]["index_error_argument"]) == "undefined")
+                            scope["bCronExpressionArguments"] = false;
+                    }
+                    // Compile le template du résultat.
+                    $templateRequest("modules/gtf/templates/checkCronExpressionTpl.html").then(function (sTemplate) {
+                        $compile($("#" + sContainerElementName).html(sTemplate).contents())(scope);
+                    });
+                }
+            }
+        });
+    };
+
+    /**
+     * setSupervisionRecapFilter function.
+     * Filtre la liste des demandes, abonnements, surveillance (mode supervision).
+     * @param {strint} sFilter Paramètre "filter" pour l'api rest.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["setSupervisionRecapFilter"] = function (sFilter) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("setSupervisionRecapFilter");
+        var scope = this;
+        var sColumn;
+        // Sauve le formulaire par défaut des filtres.
+        if (typeof (envSrvc["oWorkspaceList"][envSrvc["oSelectedObject"]["name"]]["oDefaultValues"]) == "undefined") {
+            envSrvc["oWorkspaceList"][envSrvc["oSelectedObject"]["name"]]["oDefaultValues"] = angular.copy(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]);
+            envSrvc["oWorkspaceList"][envSrvc["oSelectedObject"]["name"]]["oValues"] = angular.copy(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]);
+        }
+        // Onglet "Demandes".
+        if (envSrvc["oSelectedObject"]["name"] == "supervision_gtf_order") {
+            // Maj du <select> de l'état dans le filtre de recherche.
+            //if (typeof(envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]) != "undefined")
+            //document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] select[name='order_status_id']").value = sFilter;
+            if (typeof (envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]) != "undefined") {
+                if (typeof (envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["order_status_id"]) != "undefined")
+                    envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["order_status_id"]["selectedOption"]["value"] = sFilter;
+                envSrvc["oWorkspaceList"][envSrvc["oSelectedObject"]["name"]]["oValues"] = angular.copy(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]);
+            }
+            sColumn = "order_status_id";
+        }
+        // Onglet "Messages".
+        else if (envSrvc["oSelectedObject"]["name"] == "supervision_gtf_message"){
+            if (typeof (envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]) != "undefined" && typeof (envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"]) != "undefined")
+                envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["status"] = JSON.parse(sFilter.toLowerCase());
+            sColumn = "status";
+        }
+        // Onglet "Abonnements" / "Surveillances".
+        else {
+            if (typeof (envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]) != "undefined" && typeof (envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"]) != "undefined")
+                envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"] = JSON.parse(sFilter.toLowerCase());
+            sColumn = "enabled";
+        }
+        // Filtre la liste avec le statut passé.
+        scope["gridOptions"]["oFilter"] = {
+            "relation": "AND",
+            "operators": [{
+                "column": sColumn,
+                "compare_operator": "=",
+                "value": String(sFilter)
+            }]
+        };
+        if (scope["gridOptions"]["paginationCurrentPage"] == 1)
+            scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["pagination"]["raise"]["paginationChanged"](1, scope["gridOptions"]["paginationPageSize"]);
+        else
+            scope["gridOptions"]["paginationCurrentPage"] = 1;
+    };
+
+    /**
+     * CleanOrders function.
+     * Purge les demandes.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["CleanOrders"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("CleanOrders");
+        var scope = this;
+        var oParams = {};
+        // Des demandes sont sélectionnées ?
+        var aSelectedRows = scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"]();
+        if (aSelectedRows.length > 0) {
+            // Sauve la sélection
+            scope["saveGridSelection"](scope, scope["gridOptions"]);
+            // Liste des enregistrements à supprimer.
+            var i = 0, aIdToDelete = [];
+            while (i < aSelectedRows.length) {
+                aIdToDelete.push(aSelectedRows[i][envSrvc["oSelectedObject"]["sIdField"]]);
+                i++;
+            }
+            oParams["idList"] = aIdToDelete.join("|");
+        }
+        ajaxRequest({
+            "method": "DELETE",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/orders/clean",
+            "params": oParams,
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    // Affichage de la fenêtre modale d'erreur.
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    scope["modalWindow"]("dialog", "ERROR_CLEANING_ORDERS_SUPERVISION_ORDER", oOptions);
+                } else {
+                    // Recharge la liste des demandes.
+                    scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["pagination"]["raise"]["paginationChanged"](1, scope["gridOptions"]["paginationPageSize"]);
+                }
+            }
+        });
+    };
+
+    /**
+     * ModifyEngine function.
+     * Formulaire de changement du n° de moteur gtf pour une demande.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["ModifyEngine"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var $compile = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$compile"]);
+        var $templateRequest = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$templateRequest"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        //
+        $log.info("ModifyEngine");
+        var scope = this;
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        // Des demandes sont sélectionnées ?
+        var aSelectedRows = scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"]();
+        if (aSelectedRows.length > 0) {
+            // Sauve la sélection
+            scope["saveGridSelection"](scope, scope["gridOptions"]);
+            // Crée un nouveau scope.
+            var scope = this.$new();
+            var sFormId = "form_change_gtf_engine_" + envSrvc["oSelectedObject"]["name"];
+            // Traduction du titre et affichage de la fenêtre modale.
+            // Affichage de la fenêtre modale d'erreur.
+            var oOptions = {
+                "className": "dialog-modal-window",
+                "message": '<div id="' + sFormId + '"></div>'
+            };
+            scope["modalWindow"]("dialog", "TITLE_CHANGE_GTF_ENGINE_SUPERVISION_ORDER", oOptions);
+
+            // Nom + url du formulaire.
+            scope["sFormDefinitionName"] = envSrvc["oSelectedObject"]["name"] + "_change_gtf_engine_form";
+            envSrvc["sFormDefinitionName"] = scope["sFormDefinitionName"];
+            // Paramètres pour la requête ajax du subform.
+            scope["oFormRequestParams"] = {
+                "sUrl": "modules/gtf/forms/supervision/change_gtf_engine.json",
+            };
+            // Suppression de la définition et des données du formulaire (sinon problème de cache...).
+            //formSrvc["clearFormData"](scope["sFormDefinitionName"]);
+            scope.$root["clearFormData"](scope["sFormDefinitionName"], scope);
+            envSrvc["oFormValues"][scope["sFormDefinitionName"]] = {};
+            // Pas de données de form. à charger.
+            scope["bLoadFormValues"] = false;
+
+            // Compile le template de formulaire.
+            var sTemplateUrl = 'templates/formTpl.html';
+            $templateRequest(sTemplateUrl).then(function (sTemplate) {
+                $compile($("#" + sFormId).html(sTemplate).contents())(scope);
+            });
+            $log.info('compileObjectTemplate : ' + sTemplateUrl);
+        } else {
+            // Affichage de la fenêtre modale d'erreur.
+            var oOptions = {
+                "className": "modal-danger",
+            };
+            scope["modalWindow"]("dialog", "ERROR_NO_SELECTION_CHANGE_GTF_ENGINE_SUPERVISION_ORDER", oOptions);
+        }
+    };
+
+
+    /**
+     * setOrderGtfEngine function.
+     * Change le n° du moteur Gtf d'une ou plusieurs demandes.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["setOrderGtfEngine"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appMainDrtv).injector().get(["$q"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("setOrderGtfEngine");
+        var scope = this;
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        var oFormValues = envSrvc["oFormValues"][scope["sFormDefinitionName"]];
+        var oParams = {
+            "gtf_engine_id": oFormValues['gtf_engine_id']["selectedOption"]["value"],
+        };
+        // Des demandes sont sélectionnées ?
+        var aSelectedRows = scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"]();
+        if (aSelectedRows.length > 0) {
+            // Liste des enregistrements à supprimer.
+            var i = 0, aIdToDelete = [];
+            while (i < aSelectedRows.length) {
+                aIdToDelete.push(aSelectedRows[i][envSrvc["oSelectedObject"]["sIdField"]]);
+                i++;
+            }
+            oParams["idList"] = aIdToDelete.join("|");
+        }
+        ajaxRequest({
+            "method": "PUT",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/orders/gtfengine",
+            "data": oParams,
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    scope["modalWindow"]("dialog", "ERROR_CHANGE_GTF_ENGINE_SUPERVISION_ORDER", oOptions);
+                } else {
+                    // Ferme la fenêtre modale.
+                    bootbox["hideAll"]();
+                    // Recharge la liste des demandes.
+                    scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["pagination"]["raise"]["paginationChanged"](1, scope["gridOptions"]["paginationPageSize"]);
+                    //
+                    scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["selection"]["selectRow"](aSelectedRows);
+                }
+            }
+        });
+        // Retourne la promesse.
+        return promise;
+    };
+
+    /**
+     * appDeletedOrderColumn directive.
+     * Mise en forme de la colonne "supprimé" de l'onglet Demandes (mode supervision).
+     * @ngInject
+     */
+    vitisApp.appDeletedOrderColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appDeletedOrderColumn", function (value) {
+                    var sEnabledClassName;
+                    if (scope["row"]["entity"][scope["col"]["field"]])
+                        sEnabledClassName = "false-icon";
+                    else if (!scope["row"]["entity"][scope["col"]["field"]])
+                        sEnabledClassName = "";
+                    // Classes css (ui-grid + spécifiques).
+                    element[0].className = "ui-grid-cell-contents " + sEnabledClassName;
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        }
+    };
+    vitisApp["compileProvider"].directive("appDeletedOrderColumn", vitisApp.appDeletedOrderColumnDrtv);
+
+    /**
+     * ModifyStatus function.
+     * Réinitialise une ou plusieurs demandes.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["ModifyStatus"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appMainDrtv).injector().get(["$q"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("ModifyStatus");
+        var scope = this;
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        var oParams = {};
+        // Des demandes sont sélectionnées ?
+        var aSelectedRows = scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"]();
+        if (aSelectedRows.length > 0) {
+            // Sauve la sélection
+            scope["saveGridSelection"](scope, scope["gridOptions"]);
+            // Liste des enregistrements à supprimer.
+            var i = 0, aIdToDelete = [];
+            while (i < aSelectedRows.length) {
+                aIdToDelete.push(aSelectedRows[i][envSrvc["oSelectedObject"]["sIdField"]]);
+                i++;
+            }
+            oParams["idList"] = aIdToDelete.join("|");
+            //
+            ajaxRequest({
+                "method": "PUT",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/orders/reset",
+                "data": oParams,
+                "scope": scope,
+                "success": function(response) {
+                    if (response["data"]["status"] == 0) {
+                        // Affichage de la fenêtre modale d'erreur.
+                        var oOptions = {
+                            "className": "modal-danger",
+                            "message": response["data"]["errorMessage"]
+                        };
+                        scope["modalWindow"]("dialog", "ERROR_RESET_ORDER_SUPERVISION_ORDER", oOptions);
+                    } else {
+                        // Ferme la fenêtre modale.
+                        bootbox["hideAll"]();
+                        // Recharge la liste des demandes.
+                        scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["pagination"]["raise"]["paginationChanged"](1, scope["gridOptions"]["paginationPageSize"]);
+                    }
+                }
+            });
+        } else {
+            var oOptions = {
+                "className": "modal-danger",
+                "appDuration": 2000
+            };
+            scope["modalWindow"]("dialog", "ERROR_NO_SELECTION_RESET_ORDER_SUPERVISION_ORDER", oOptions);
+        }
+        // Retourne la promesse.
+        return promise;
+    };
+
+    /**
+     * ActivateOrder function.
+     * Active / désactive une demande.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["ActivateOrder"] = function (bActivate) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appMainDrtv).injector().get(["$q"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("ActivateOrder");
+        // Activation ou désactivation de l'abonnement ?
+        if (typeof (bActivate) == "undefined")
+            bActivate = true;
+        //
+        var scope = this;
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        var oParams = {};
+        // Des demandes sont sélectionnées ?
+        var aSelectedRows = scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"]();
+        var sOperationId;
+        if (aSelectedRows.length > 0) {
+            // Activation ou désactivation de l'abonnement ?
+            var sErrorTitle;
+            if (bActivate) {
+                sOperationId = "activate";
+                sErrorTitle = "ERROR_ACTIVATE_ORDER_SUPERVISION";
+            } else {
+                sOperationId = "desactivate";
+                sErrorTitle = "ERROR_DESACTIVATE_ORDER_SUPERVISION";
+            }
+            // Liste des enregistrements à supprimer.
+            var i = 0, aIdToDelete = [];
+            while (i < aSelectedRows.length) {
+                aIdToDelete.push(aSelectedRows[i][envSrvc["oSelectedObject"]["sIdField"]]);
+                i++;
+            }
+            oParams["idList"] = aIdToDelete.join("|");
+            ajaxRequest({
+                "method": "PUT",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/orders/" + sOperationId,
+                "data": oParams,
+                "scope": scope,
+                "success": function(response) {
+                    if (response["data"]["status"] == 0) {
+                        var oOptions = {
+                            "className": "modal-danger",
+                            "message": response["data"]["errorMessage"]
+                        };
+                        scope["modalWindow"]("dialog", sErrorTitle, oOptions);
+                    } else {
+                        // Ferme la fenêtre modale.
+                        bootbox["hideAll"]();
+                        // Recharge la liste des demandes.
+                        scope.$root["gridApi"][scope["sSelectedGridOptionsName"]]["pagination"]["raise"]["paginationChanged"](1, scope["gridOptions"]["paginationPageSize"]);
+                    }
+                }
+            });
+        } else {
+            var oOptions = {
+                "className": "modal-danger",
+                "appDuration": 2000
+            };
+            scope["modalWindow"]("dialog", "ERROR_NO_SELECTION_RESET_ORDER_SUPERVISION_ORDER", oOptions);
+        }
+        // Retourne la promesse.
+        return promise;
+    };
+
+    /**
+     * DesactivateOrder function.
+     * Désactive une demande.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["DesactivateOrder"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("DesactivateOrder");
+        this["ActivateOrder"](false);
+    }
+
+    /**
+     * afterProjectDirectory function.
+     * Actions à effectuer après l'upload d'un fichier dans le répertoire d'un projet fme.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["afterProjectDirectory"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("afterProjectDirectory");
+        // Remise à zéro du formulaire.
+        this["resetForm"]();
+        angular.element("input[type=file]")["fileinput"]("clear");
+        // Recharge la liste des fichiers.
+        this["loadTreeview"]();
+    }
+
+    /**
+     * afterMyWorkRemoval function.
+     * Actions à effectuer après la suppression d'un enregistrement dans le mode "my_work".
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["afterMyWorkRemoval"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("afterMyWorkRemoval");
+        delete envSrvc["oLastSelectedObjectMode"]["supervision"];
+    }
+
+    /**
+     * afterSupervisionRemoval function.
+     * Actions à effectuer après la suppression d'un enregistrement dans le mode "Supervision".
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["afterSupervisionRemoval"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("afterSupervisionRemoval");
+        delete envSrvc["oLastSelectedObjectMode"]["my_work"];
+    }
+
+    /**
+     * ImportWorkspaces function.
+     * Import en masse des projets fme.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["ImportWorkspaces"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $compile = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$compile"]);
+        var $templateRequest = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$templateRequest"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        //
+        $log.info("ImportWorkspaces");
+        // Supprime les données de l'onglet "Projet FME".
+        modesSrvc["clearObjectData"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"]);
+        //
+        var scope = this.$new();
+        // Paramètres de l'onglet d'importation.
+        envSrvc["oSelectedObject"] = {
+            "actions": [],
+            "columns": [],
+            "mode_id": envSrvc["oSelectedMode"]["mode_id"],
+            "name": "import_" + envSrvc["oSelectedObject"]["name"],
+            "ressource_id": null,
+            "sections": "",
+            "template_name": "importWorkspace"
+        };
+        // Sauve le nouvel onglet.
+        var oMode = modesSrvc["getMode"](envSrvc["oSelectedMode"]["mode_id"]);
+        oMode["objects"].push(angular.copy(envSrvc["oSelectedObject"]));
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        // Compilation du template "doubleFormTpl".
+        //var sTemplateUrl = 'templates/doubleFormTpl.html';
+        var sTemplateUrl = 'modules/gtf/templates/importWorkspaceTpl.html';
+        $templateRequest(sTemplateUrl).then(function (sTemplate) {
+            $compile($("#container_mode_" + envSrvc["oSelectedMode"]["mode_id"]).html(sTemplate).contents())(scope);
+        });
+    }
+
+    /**
+     * appWorkspaceFormColumn directive.
+     * Mise en forme de la colonne "form" dans la liste de l'onglet "projet FME" (Publication) .
+     * @param {service} $translate Translate service.
+     * @ngInject
+     */
+    vitisApp.appWorkspaceFormColumnDrtv = function () {
+        return {
+            link: function (scope, element, attrs) {
+                // 1er affichage ou tri de la liste : maj de la mise en forme.
+                var clearObserver = attrs.$observe("appWorkspaceFormColumn", function (value) {
+                    var sContentLabel = "", sWorkspaceFormTypeClassName;
+                    if (value == "")
+                        sWorkspaceFormTypeClassName = "false-icon";
+                    else if (value == "default")
+                        sWorkspaceFormTypeClassName = "true-icon";
+                    else if (value == "custom")
+                        sWorkspaceFormTypeClassName = "custom-icon";
+                    // Classes css (ui-grid + spécifiques).
+                    element[0].className = "ui-grid-cell-contents " + sWorkspaceFormTypeClassName;
+
+                });
+                // Attends la suppression du scope.
+                scope.$on("$destroy", function () {
+                    // Supprime l'observateur.
+                    clearObserver();
+                });
+            }
+        }
+    };
+    vitisApp["compileProvider"].directive("appWorkspaceFormColumn", vitisApp.appWorkspaceFormColumnDrtv);
+
+    /**
+     * showWorkspaceDescription function.
+     * Affiche la description des projets FME listés pour la création d'une demande.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["showWorkspaceDescription"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("showWorkspaceDescription");
+        // Cache tous les tooltip.
+        $(".popover")["popover"]('hide');
+        // Evènement "change" sur le <select> des projets FME.
+        var oWorkspaceSelectElement = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] select[name='workspace_id']");
+        oWorkspaceSelectElement.removeEventListener("change", angular.element(vitisApp.appMainDrtv).scope().showWorkspaceDescription);
+        oWorkspaceSelectElement.addEventListener("change", angular.element(vitisApp.appMainDrtv).scope().showWorkspaceDescription);
+        //
+        var aWorkspaces = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["workspace_id"]["options"];
+        if (aWorkspaces.length > 1) {
+            var aWorkspacesId = [], oWorkspacesDescription = {};
+            aWorkspaces.forEach(function (oOption) {
+                if (oOption["value"] != "")
+                    aWorkspacesId.push(oOption["value"]);
+            })
+
+            // Charge le titre et résumé des projets FME.
+            var oParams = {
+                "filter": {
+                    "relation": "AND",
+                    "operators": [
+                        {
+                            "column": "workspace_id",
+                            "compare_operator": "IN",
+                            "value": aWorkspacesId
+                        },
+                        {
+                            "column": "description",
+                            "compare_operator": "<>",
+                            "value": "NULL"
+                        }
+                    ]
+                }
+            }
+            ajaxRequest({
+                "method": "GET",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces",
+                "params": oParams,
+                "scope": $rootScope,
+                "success": function(response) {
+                    if (response["data"]["status"] == 1) {
+                        if (response["data"]["list_count"] > 0) {
+                            // Sauve le titre et résumé des projets FME.
+                            response["data"]["workspaces"].forEach(function (oWorkspace) {
+                                if (oWorkspace["description"] != "") {
+                                    oWorkspacesDescription[oWorkspace["workspace_id"]] = {
+                                        "name": oWorkspace["name"],
+                                        "description": oWorkspace["description"]
+                                    };
+                                }
+                            });
+                            $rootScope["oWorkspacesDescription"] = oWorkspacesDescription;
+                            // Création des tooltips.
+                            //var oSelectElement = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] select[name='workspace_id']");
+                            var i = 0;
+                            while (i < oWorkspaceSelectElement.length) {
+                                if (typeof (oWorkspacesDescription[oWorkspaceSelectElement.options[i].value]) != "undefined") {
+                                    var oOptions = {
+                                        "trigger": "hover",
+                                        "title": function () {
+                                            if (!isNaN(this.value))
+                                                return $rootScope["oWorkspacesDescription"][this.value]["name"];
+                                        },
+                                        "content": function () {
+                                            if (isNaN(this.value))
+                                                $(this)["popover"]("destroy");
+                                            else
+                                                return $rootScope["oWorkspacesDescription"][this.value]["description"];
+                                        },
+                                        "container": "body",
+                                        "html": true
+                                    };
+                                    $(oWorkspaceSelectElement.options[i])["popover"](oOptions);
+                                }
+                                i++;
+                            }
+                        }
+                    }
+                }
+            });
+        }
+    }
+
+    /**
+     * showGtfLicenseInfos function.
+     * Affiche les infos. de la licence de Gtf.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["showGtfLicenseInfos"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $templateRequest = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$templateRequest"]);
+        var $compile = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$compile"]);
+        var $timeout = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$timeout"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        //
+        $log.info("showGtfLicenseInfos");
+        var scope = this.$new();
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        // Attends la compilation du formulaire de la section "licence".
+        var clearListener = scope.$root.$on('endFormNgRepeat', function (event) {
+            // Supprime le "listener".
+            clearListener();
+            ajaxRequest({
+                "method": "GET",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/license",
+                "scope": scope,
+                "success": function(response) {
+                    if (response["data"]["status"] == 1) {
+                        // Attends la fin du $digest().
+                        $timeout(function () {
+                            scope["oGtfLicenseInfos"] = response["data"]["license"];
+                            var sContainerElementName = envSrvc["sFormDefinitionName"] + "_license_infos_container";
+                            var oLicenseInfosElement = document.querySelector("#" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + " .form-row:nth-child(2)");
+                            // Crée l'élément conteneur pour afficher les infos de la licence.
+                            if (document.getElementById(sContainerElementName) == null) {
+                                var oDiv = document.createElement("div");
+                                oDiv.id = envSrvc["sFormDefinitionName"] + "_license_infos_container";
+                                oLicenseInfosElement.parentElement.insertBefore(oDiv, oLicenseInfosElement);
+                            }
+                            // Le fichier de licence a été trouvé ?
+                            var sErrorMessage;
+                            if (scope["oGtfLicenseInfos"]["license"] !== true)
+                                sErrorMessage = "FORM_LICENSE_NOT_FOUND_CONFIGURATION_CONFIGURATION_GTF_LICENSE";
+                            // Compile le template du résultat.
+                            $templateRequest("modules/gtf/templates/gtfLicenceTpl.html").then(function (sTemplate) {
+                                $compile($("#" + sContainerElementName).html(sTemplate).contents())(scope);
+                            });
+                        });
+                    }
+                }
+            });
+        });
+    }
+
+    /**
+     * showGtfLincenseFileRequestForm function.
+     * Affichage de la fenêtre modale et du formulaire de demande d'un fichier de licence pour Gtf.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["showGtfLincenseFileRequestForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $compile = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$compile"]);
+        var $templateRequest = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$templateRequest"]);
+        var $translate = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        //
+        $log.info("showGtfLincenseFileRequestForm");
+        // Crée un nouveau scope.
+        var scope = this.$new();
+        // Sauve le nouveau scope crée dans la définition de l'onglet. 
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        //
+        var sFormId = "form_gtf_license_file_request_" + envSrvc["oSelectedObject"]["name"];
+        // Traduction du titre et affichage de la fenêtre modale.
+        var oOptions = {
+            "className": "dialog-modal-window",
+            "message": '<div id="' + sFormId + '"></div>',
+        };
+        scope["modalWindow"]("dialog", "FORM_TITLE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE", oOptions);
+
+        // Nom + url du formulaire.
+        scope["sFormDefinitionName"] = envSrvc["oSelectedObject"]["name"] + "_gtf_license_file_request_form";
+        envSrvc["sFormDefinitionName"] = scope["sFormDefinitionName"];
+        // Paramètres pour la requête ajax du subform.
+        scope["oFormRequestParams"] = {
+            "sUrl": "modules/gtf/forms/configuration/gtf_license_file_request.json",
+        };
+        // Suppression de la définition et des données du formulaire (sinon problème de cache...).
+        //formSrvc["clearFormData"](scope["sFormDefinitionName"]);
+        scope.$root["clearFormData"](scope["sFormDefinitionName"], scope);
+        // Pas de données de form. à charger.
+        scope["bLoadFormValues"] = false;
+
+        // Valeurs du formulaire.
+        $translate(["FORM_MAIL_BODY_MESSAGE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE"], {"sHostName": location.hostname}).then(function (oTranslations) {
+            envSrvc["oFormValues"][scope["sFormDefinitionName"]] = {
+                "to": "codes@veremes.com",
+                "message": oTranslations["FORM_MAIL_BODY_MESSAGE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE"]
+            };
+        });
+
+        // Compile le template de formulaire.
+        var sTemplateUrl = 'templates/formTpl.html';
+        $templateRequest(sTemplateUrl).then(function (sTemplate) {
+            $compile($("#" + sFormId).html(sTemplate).contents())(scope);
+        });
+        $log.info('compileObjectTemplate : ' + sTemplateUrl);
+    };
+
+    /**
+     * activateGtfLicense function.
+     * Activation de la licence de Gtf à partir du fichier fourni.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["activateGtfLicense"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("activateGtfLiecense");
+        var scope = this;
+        //
+        envSrvc["sFormDefinitionName"] = envSrvc["oSelectedObject"]["name"] + "_" + envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]]["sections"][envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]]["iSelectedSectionIndex"]]["name"] + "_" + envSrvc["sMode"] + "_form";
+        scope["sFormDefinitionName"] = envSrvc["sFormDefinitionName"];
+        // Envoi du fichier de licence.
+        ajaxRequest({
+            "method": "POST",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/license",
+            "params": {"action": "activate"},
+            "data": formSrvc["getFormData"](envSrvc["sFormDefinitionName"]),
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] == 1) {
+                    // Affichage du message de succés.
+                    $translate("LICENSE_FILE_INSTALL_SUCCESS_CONFIGURATION_CONFIGURATION_GTF_LICENSE").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                        // Reset du  formulaire.
+                        document.querySelector("form[name='" + envSrvc["oFormDefinition"][scope["sFormDefinitionName"]]["name"] + "']").reset();
+                        // Affiche les infos de la licence.
+                        scope["showGtfLicenseInfos"]();
+                        // Evènement pour raffraichir l'affichage.
+                        scope.$root.$emit('endFormNgRepeat');
+                    });
+                } else {
+                    // Affichage du message d'erreur.
+                    // Message d'erreur ?
+                    if (typeof (response["data"]["errorMessage"]) != "undefined" && response["data"]["errorMessage"] != null)
+                        var sText = response["data"]["errorMessage"];
+                    // Paramètres de la fenêtre modale.
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": sText,
+                    };
+                    // Affichage de la fenêtre modale.
+                    scope["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+                }
+            }
+        });
+    };
+
+    /**
+     * askGtfLicenseFile function.
+     * Activation de la licence de Gtf à partir du fichier fourni.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["askGtfLicenseFile"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("activateGtfLiecense");
+        var scope = this;
+        //
+        //envSrvc["sFormDefinitionName"] = envSrvc["oSelectedObject"]["name"] + "_" + envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]]["sections"][envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]]["iSelectedSectionIndex"]]["name"] + "_" + envSrvc["sMode"] + "_form";
+        //scope["sFormDefinitionName"] = envSrvc["sFormDefinitionName"];
+        // Paramètres pour le Web Service (nom + contenu des champs de form.).
+        var oWebServiceParams = formSrvc["getFormData"](envSrvc["sFormDefinitionName"], true);
+        //var sLicenseNumber = envSrvc["oFormValues"][scope["sFormDefinitionName"]]["licence_number"];
+        $translate(["MAIL_SUBJECT_LICENSE_TEMP_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE", "MAIL_SUBJECT_LICENSE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE"], oWebServiceParams).then(function (oTranslations) {
+            if (typeof (oWebServiceParams["license_number"]) == "undefined")
+                oWebServiceParams["subject"] = oTranslations["MAIL_SUBJECT_LICENSE_TEMP_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE"];
+            else
+                oWebServiceParams["subject"] = oTranslations["MAIL_SUBJECT_LICENSE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE"];
+            // Envoi du fichier de licence.
+            ajaxRequest({
+                "method": "POST",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/license",
+                "params": {"action": "ask"},
+                "scope": scope,
+                "data": oWebServiceParams,
+                "success": function(response) {
+                    // Ferme la fenêtre modale.
+                    bootbox["hideAll"]();
+                    if (response["data"]["status"] == 1) {
+                        // Affichage du message de succés.
+                        $translate("SEND_MAIL_SUCCESS_CONFIGURATION_CONFIGURATION_GTF_LICENSE").then(function (sTranslation) {
+                            $.notify(sTranslation, "success");
+                        });
+                    } else {
+                        // Affichage du message d'erreur.
+                        // Message d'erreur ?
+                        if (typeof (response["data"]["errorMessage"]) != "undefined" && response["data"]["errorMessage"] != null)
+                            var sText = response["data"]["errorMessage"];
+                        // Paramètres de la fenêtre modale.
+                        var oOptions = {
+                            "className": "modal-danger",
+                            "message": sText,
+                        };
+                        // Affichage de la fenêtre modale.
+                        scope["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+                    }
+                }
+            });
+        });
+
+    };
+
+    /**
+     * loadEmailTemplateSimpleEdition function.
+     * Chargement des tags pour l'éditeur TinyMCE de l'onglet Modèles e-mail > edition simplifié.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadEmailTemplateSimpleEdition"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $timeout = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$timeout"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("loadEmailTemplateSimpleEdition");
+        var scope = this;
+        // Suppression de tous les éditeurs de tinyMCE.
+        tinymce["remove"]();
+        // Attends la fin de l'affichage du 1er formulaire.
+        var clearListener = scope.$root.$on('endFormNgRepeat', function (event) {
+            // Supprime le "listener".
+            clearListener();
+            ajaxRequest({
+                "method": "GET",
+                "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/emailtemplates/" + envSrvc["sId"] + "/Tags",
+                "params": {"language": propertiesSrvc["language"]},
+                "scope": scope,
+                "success": function(response) {
+                    if (response["data"]["status"] == 1) {
+                        $timeout(function () {
+                            // Toolbar des boutons.
+                            var aTagsToolbar = [];
+                            response["data"]["tags"].forEach(function (oTag) {
+                                aTagsToolbar.push(oTag["name"]);
+                            });
+                            // Création de l'éditeur TinyMCE.
+                            var oFormElement = formSrvc["getFormElementDefinition"]("body", envSrvc["sFormDefinitionName"]);
+                            var oOptions = {
+                                "selector": "form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] textarea[name='" + oFormElement["name"] + "']",
+                                "theme": "modern",
+                                "entity_encoding": "raw",
+                                "mode": "exact",
+                                "min_height": 200,
+                                "setup": function (editor) {
+                                    // Création des boutons pour les tags.
+                                    response["data"]["tags"].forEach(function (oTag) {
+                                        editor["addButton"](oTag["name"], {
+                                            text: "[" + oTag["name"] + "]",
+                                            tooltip: oTag["description"],
+                                            icon: false,
+                                            size: "small",
+                                            onclick: function () {
+                                                editor["insertContent"]("[" + oTag["name"] + "]");
+                                            }
+                                        }
+                                        );
+                                    });
+                                    // Sauve le contenu de l'éditeur tinyMCE à chaque changement.
+                                    editor["on"]("change", function () {
+                                        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]][oFormElement["name"]] = editor["getContent"]();
+                                    });
+                                },
+                                "toolbar1": "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | preview fullpage | forecolor backcolor",
+                                "toolbar2": aTagsToolbar.join(" | ")
+                            };
+                            // Non modifable (mode "display").
+                            if (envSrvc["sMode"] == "display")
+                                oOptions["readonly"] = 1;
+                            if (propertiesSrvc["language"] != "en")
+                                oOptions["language"] = propertiesSrvc["language"] + "_" + propertiesSrvc["language"].toUpperCase();
+                            tinymce["init"](oOptions);
+                        });
+                    }
+                }
+            });
+        });
+    };
+
+    /**
+     * resizeProjectDirectoryTreeviewContainer function.
+     * Calcule la hauteur de l'élément conteneur du treeview pour l'onglet "Projet FME" > "Répertoire projet".
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["resizeProjectDirectoryTreeviewContainer"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("resizeProjectDirectoryTreeviewContainer");
+        // Calcule la hauteur de l'élément conteneur du treeview.
+        if (document.getElementById("project-directory") != null) {
+            var iTitleHeight = document.getElementById("project_directory_title_container").clientHeight;
+            var iFormHeight = document.getElementById("project_directory_form_container").clientHeight;
+            document.getElementById("project-directory-treeview-container").style.height = document.getElementById("project-directory").clientHeight - iTitleHeight - iFormHeight + "px";
+        }
+    };
+
+
+    /**
+     * loadGtfConfig function.
+     * Chargement de la section "Configuration GTF" dans l'onglet "Configuration".
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadGtfConfig"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("loadGtfConfig");
+        // Paramètres des properties dans les valeurs du formulaire de config de GTF.
+        angular.element(vitisApp.appMainDrtv).scope()["setPropertiesFormValues"]();
+        // Surcharge l'url du formulaire des properties de GTF.
+        var scope = this;
+        var sTable = envSrvc["oSelectedObject"]["name"];
+        scope["oFormRequestParams"] = {
+            "sUrl": "modules/gtf/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json"
+        };
+    };
+	
+    /**
+     * loadLicenseConfig function.
+     * Chargement de la section "Licence" dans l'onglet "Configuration".
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadLicenseConfig"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("loadLicenseConfig");
+        // Surcharge l'url du formulaire de la licence de GTF.
+        var scope = this;
+        var sTable = envSrvc["oSelectedObject"]["name"];
+        scope["oFormRequestParams"] = {
+            "sUrl": "modules/gtf/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json"
+        };
+        // Affichage des infos. de la licence de Gtf.
+        angular.element(vitisApp.appMainDrtv).scope()["showGtfLicenseInfos"]();
+    };
+
+    /**
+     * refreshStatistics function.
+     * Recalcule les stats.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["refreshStatistics"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("refreshStatistics");
+        if (envSrvc["oSelectedMode"]["mode_id"] === "statistics")
+            $('#btn_start_stats').click();
+    };
+
+    /**
+     * loadPublicToken function.
+     * Met à jour le champ de form. "Jeton de connexion" (Projet FME > Appel Externe)avec un token public.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadPublicToken"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("loadPublicToken");
+        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["token"] = propertiesSrvc["public_token"];
+    };
+
+    /**
+     * importToken function.
+     * Met à jour le champ de form. "Jeton de connexion" (Projet FME > Appel Externe) avec un token public.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["importToken"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $compile = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$compile"]);
+        var $templateRequest = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$templateRequest"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var modesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["modesSrvc"]);
+        //
+        $log.info("importToken");
+        var scope = this.$new();
+        modesSrvc["addScopeToObject"](envSrvc["oSelectedObject"]["name"], envSrvc["oSelectedMode"]["mode_id"], scope);
+        var sFormContainerId = envSrvc["oSelectedObject"]["name"] + "_import_token_form_container";
+        // Traduction du titre et affichage de la fenêtre modale.
+        var oOptions = {
+            "className": "dialog-modal-window",
+            "message": '<div id="' + sFormContainerId + '"></div>'
+        };
+        scope["modalWindow"]("dialog", "TOOLTIP_TITLE_IMPORT_TOKEN_CONNECTION", oOptions);
+
+        // Nom + url du formulaire.
+        scope["sFormDefinitionName"] = envSrvc["oSelectedObject"]["name"] + "_import_token_form";
+        //envSrvc["sFormDefinitionName"] = scope["sFormDefinitionName"];
+        // Paramètres pour la requête ajax du subform.
+        scope["oFormRequestParams"] = {
+            "sUrl": "modules/gtf/forms/publication/import_token_connection.json"
+        };
+        // Suppression de la définition et des données du formulaire (sinon problème de cache...).
+        //formSrvc["clearFormData"](scope["sFormDefinitionName"]);
+        scope.$root["clearFormData"](scope["sFormDefinitionName"], scope);
+        // Pas de données de form. à charger.
+        scope["bLoadFormValues"] = false;
+        envSrvc["oFormValues"][scope["sFormDefinitionName"]] = {};
+
+        // Compile le template de formulaire.
+        var sTemplateUrl = 'templates/formTpl.html';
+        $templateRequest(sTemplateUrl).then(function (sTemplate) {
+            $compile($("#" + sFormContainerId).html(sTemplate).contents())(scope);
+        });
+    };
+
+    /**
+     * loadPrivateToken function.
+     * Envoi une demande de token privé et met à jour le champ "Jeton de connexion" (Projet FME > Appel Externe).
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadPrivateToken"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var sessionSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["sessionSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        // .
+        $log.info("loadPrivateToken");
+        var scope = this;
+        var oFormValues = envSrvc["oFormValues"][scope["sFormDefinitionName"]];
+        var oEndDate = formSrvc["getFormElementDefinition"]("end_date", scope["sFormDefinitionName"]);
+        var oData = {
+            "user": oFormValues["user"],
+            "password": oFormValues["password"],
+            "duration": parseInt((parseInt($("#" + oEndDate["id"]).data("DateTimePicker")["date"]().format("x")) + 86400000 - Date.now()) / 60000) + 1 // Durée du token en minutes.
+        };
+        // Demande de token pour l'utilisateur.
+        ajaxRequest({
+            "method": "POST",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/" + sessionSrvc["web_service"] + "/privatetoken",
+            "data": oData,
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] === 1) {
+                    // Met à jour le champ "Jeton de connexion" avec le token.
+                    envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["token"] = response["data"]["token"];
+                    // Ferme la fenêtre modale.
+                    bootbox["hideAll"]();
+                } else {
+                    var oOptions = {"className": "modal-danger"};
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] !== null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    scope["modalWindow"]("alert", "ERROR_IMPORT_TOKEN_CONNECTION", oOptions);
+                }
+            }
+        });
+    };
+
+    /**
+     * generateCodeWidget function.
+     * Compile le template du widget et affiche le code dans le champ codeMirror.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["generateCodeWidget"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(['$log']);
+        var $compile = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(['$compile']);
+        var $timeout = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(['$timeout']);
+        var $templateRequest = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(['$templateRequest']);
+        var $templateCache = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(['$templateCache']);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['envSrvc']);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['formSrvc']);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['propertiesSrvc']);
+        //
+        var sFormElementName = envSrvc['oFormDefinition'][envSrvc['sFormDefinitionName']]['name'];
+        var formScope = angular.element('form[name=\'' + sFormElementName + '\']').scope();
+        // Le formulaire est valide ?
+        if (formScope[sFormElementName].$valid) {
+            $log.info('generateCodeWidget');
+            var scope = this;
+            var oFormValues = envSrvc['oFormValues'][envSrvc['sFormDefinitionName']];
+            // Paramètres pour le template du widget.
+            scope['oWidgetParams'] = {
+                'client_url': propertiesSrvc['web_server_name'] + '/' + propertiesSrvc['application_name'],
+                'button_label': vitisApp['htmlentities'](oFormValues['buttonText'])
+            };
+            // Fichiers js à charger.
+            goog.object.extend(scope['oWidgetParams'], {
+                'widget_iframe_url': scope['oWidgetParams']['client_url'] + '/modules/gtf/javascript/widget/index_iframe.html?version=' + propertiesSrvc['build'],
+                'widget_popup_init_file_url': scope['oWidgetParams']['client_url'] + '/modules/gtf/javascript/widget/initPopup.js?version=' + propertiesSrvc['build'],
+                'widget_embedded_init_file_url': scope['oWidgetParams']['client_url'] + '/modules/gtf/javascript/widget/initEmbedded.js?version=' + propertiesSrvc['build'],
+                'load_external_files': scope['oWidgetParams']['client_url'] + '/modules/gtf/javascript/widget/loadExternalFiles.js?version=' + propertiesSrvc['build'],
+                'less': scope['oWidgetParams']['client_url'] + '/javascript/externs/less/less.min.js?version=' + propertiesSrvc['build']
+            });
+            // Paramètres pour la fenêtre modale.
+            scope['oWidgetParams']['modal_window_params'] = {
+                'client_url': scope['oWidgetParams']['client_url'],
+                'web_server_name': propertiesSrvc['web_server_name'],
+                'widget_type': oFormValues['widgetType']['selectedOption']['value'],
+                'title': vitisApp['htmlentities'](oFormValues['widget_title']),
+                'width': oFormValues['width'],
+                'height': oFormValues['height'],
+                'key': oFormValues['key'],
+                'token': oFormValues['token'],
+                'window_id': oFormValues['divId'],
+                'notification_type': oFormValues['notificationsType']['selectedOption']['value'],
+                'notification': oFormValues['notifications']['selectedOption']['value'],
+                'application': sessionStorage['application'],
+                'captcha': oFormValues['captcha']['selectedOption']['value']
+            };
+            if (oFormValues['captcha']['selectedOption']['value'] === 'enable') {
+                //scope['oWidgetParams']['modal_window_params']['captcha'] = oFormValues['captcha']['selectedOption']['value'];
+                scope['oWidgetParams']['modal_window_params']['captcha_key'] = oFormValues['captcha_key'];
+            }
+            scope['sModalWindowParams'] = encodeURIComponent(JSON.stringify(scope['oWidgetParams']['modal_window_params']));
+            var sTemplateUrl = 'modules/gtf/templates/widgetTpl.html';
+            // Vide le cache des templates.
+            $templateCache.remove(sTemplateUrl + '?vitis_version=' + propertiesSrvc['build']);
+            // Compile le template du widget.
+            $templateRequest(sTemplateUrl).then(function (sTemplate) {
+                var oHtml = document.createElement('html');
+                $compile($(oHtml).html(sTemplate).contents())(scope);
+                // Attend la fin de la compilation et met à jour le champ codeMirror.
+                $timeout(function () {
+                    var sCode = oHtml.innerHTML;
+                    // Sauve les paramètres pour l'iframe.
+                    sCode = sCode.replace(/\[sModalWindowParams\]/g, scope['sModalWindowParams']);
+                    // Décode l'entité html du caractère '&'.
+                    sCode = sCode.replace(/&amp;/g, '&');
+                    // Si Page Widget, token en paramètre
+                    if (scope['oWidgetParams']['modal_window_params']['widget_type'] === 'File') {
+                        sCode = sCode.replace(oFormValues['token'], "'+token+'");
+                    }
+                    // Supprime les commentaires d'angular.
+                    sCode = sCode.replace(/<!--[\s\S]*?-->/g, '');
+                    // Supprime tous les attributs d'angular.
+                    sCode = sCode.replace(/ng-[a-z]+="[\s\S]*?"/g, '');
+                    // Supprime les lignes vides.
+                    oFormValues['code'] = sCode.replace(/^[ \t]*\n/gm, '');
+                    // Création du fichier du widget et affichage des boutons
+                    if (scope['oWidgetParams']['modal_window_params']['widget_type'] === 'File') {
+                        ajaxRequest({
+                            "method": "POST",
+                            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces/" + oFormValues['workspace_id'] + "/GenerateWidgetFile",
+                            "data": {"widgetFileContent": sCode},
+                            "scope": scope,
+                            "success": function(response) {
+                                oFormValues['url_widget_file'] = propertiesSrvc['web_server_name'] + '/' + propertiesSrvc['ws_data_alias'] + '/gtf/widget/' + response["data"]['workspace_key'] + '.html?token=' + oFormValues['token'];
+                                oFormValues['btn_download_widget_file'] = oFormValues['url_widget_file'];
+                                formSrvc['getFormElementDefinition']('url_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
+                                formSrvc['getFormElementDefinition']('btn_download_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
+                                formSrvc['getFormElementDefinition']('btn_delete_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
+                            }
+                        });
+                    }
+                    // Affiche le champ codeMirror.
+                    var oFormFieldDefinition = formSrvc['getFormElementDefinition']('code', envSrvc['sFormDefinitionName']);
+                    if (scope['oWidgetParams']['modal_window_params']['widget_type'] !== 'File') {
+                        oFormFieldDefinition['visible'] = true;
+                    } else {
+                        oFormFieldDefinition['visible'] = false;
+                    }
+                    setTimeout(function () {
+                        // Affiche le champ codeMirror.
+                        if (scope['oWidgetParams']['modal_window_params']['widget_type'] !== 'File') {
+                            // Hauteur de l'éditeur codeMirror.
+                            document.querySelector('form[name=\'' + sFormElementName + '\'] .CodeMirror')['CodeMirror']['setSize']('100%', 200);
+                        }
+                    });
+                });
+
+            });
+        }
+    };
+
+    /**
+     * loadWorkspaceEditWidget function.
+     * Traitements au lancement de la section "Appel Externe" du projet FME.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["loadWorkspaceEditWidget"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['propertiesSrvc']);
+        //
+        $log.info("loadWorkspaceEditWidget");
+        var scope = this;
+        if (envSrvc["sMode"] !== "display") {
+            // Attends la fin de la compilation du formulaire.
+            var clearListener = this.$root.$on('endFormNgRepeat', function (event, sFormDefinitionName) {
+                // Supprime le "listener".
+                clearListener();
+                var oCaptcha = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] select[name='captcha']");
+                var oCaptchaKey = formSrvc["getFormElementDefinition"]("captcha_key", envSrvc["sFormDefinitionName"]);
+                var oCaptchaKeyField = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] input[name='captcha_key']");
+                var oButtonText = formSrvc["getFormElementDefinition"]("buttonText", envSrvc["sFormDefinitionName"]);
+                var oWidgetType = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] select[name='widgetType']");
+                var oNotificationsType = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] select[name='notificationsType']");
+                var oNotifications = formSrvc["getFormElementDefinition"]("notifications", envSrvc["sFormDefinitionName"]);
+                // Pas de captcha par défaut.
+                oCaptchaKeyField.parentElement.style.display = "none";
+                // Evènement sur le <select> du captcha.
+                oCaptcha.addEventListener("change", function () {
+                    var sDisplay = "";
+                    var sRequired = true;
+                    if (this.value === "disable") {
+                        sDisplay = "none";
+                        sRequired = false;
+                    }
+                    // Si captcha : clé obligatoire.
+                    oCaptchaKeyField.parentElement.style.display = sDisplay;
+                    oCaptchaKey["required"] = sRequired;
+                });
+                // Evènement sur le <select> du type de fenêtre.
+                oWidgetType.addEventListener("change", function () {
+                    var sDisplay = "";
+                    if (this.value === "Embedded")
+                        sDisplay = "none";
+                    // Si <iframe> : pas de bouton pour ouvrir la fenêtre modale.
+                    document.getElementById(oButtonText["id"]).parentElement.style.display = sDisplay;
+                });
+                // Evènement sur le <select> de notification par e-mail
+                oNotificationsType.addEventListener("change", function () {
+                    var sDisplay = "";
+                    if (this.value === 2)
+                        sDisplay = "none";
+                    // Si pas de notification : pas de saisie de l'adresse.
+                    document.getElementById(oNotifications["id"]).parentElement.style.display = sDisplay;
+                });
+                ajaxRequest({
+                    "method": "GET",
+                    "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/Workspaces/" + envSrvc["sId"] + "/CheckWidgetFile",
+                    "scope": scope,
+                    "success": function(response) {
+                        if (response["data"]['status'] === 1) {
+                            oFormValues['url_widget_file'] = propertiesSrvc['web_server_name'] + '/' + propertiesSrvc['ws_data_alias'] + '/gtf/widget/' + response["data"]['workspace_key'] + '.html?token=' + oFormValues['token'];
+                            oFormValues['btn_download_widget_file'] = oFormValues['url_widget_file'];
+                            formSrvc['getFormElementDefinition']('url_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
+                            formSrvc['getFormElementDefinition']('btn_download_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
+                            formSrvc['getFormElementDefinition']('btn_delete_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
+                        }
+                    }
+                });
+            });
+        }
+    };
+
+    /**
+     * deleteWidgetFile function.
+     * Suppression le fichier du widget.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()['deleteWidgetFile'] = function () {
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(['envSrvc']);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['propertiesSrvc']);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['formSrvc']);
+        //
+        var scope = this;
+        ajaxRequest({
+            "method": "DELETE",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/Workspaces/" + envSrvc['sId'] + '/DeleteWidgetFile',
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]['status'] === 1) {
+                    // Supprimer le lien, et les boutons pour télécharger et supprimer le widget.
+                    formSrvc['getFormElementDefinition']('url_widget_file', envSrvc['sFormDefinitionName'])['visible'] = false;
+                    formSrvc['getFormElementDefinition']('btn_download_widget_file', envSrvc['sFormDefinitionName'])['visible'] = false;
+                    formSrvc['getFormElementDefinition']('btn_delete_widget_file', envSrvc['sFormDefinitionName'])['visible'] = false;
+
+                } else {
+                    // Affichage de la fenêtre modale d'erreur.
+                    this['modalWindow']('dialog', response["data"]['errorMessage'], {'className': 'modal-danger'});
+                }
+            }
+        });
+    };
+
+    /**
+     * regenerateWorkspaceMetaData function.
+     * Régénération des métadonnées du workspace.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["regenerateWorkspaceMetaData"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("regenerateWorkspaceMetaData");
+        var scope = this;
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces/" + envSrvc["sId"] + "/Metadata",
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] === 0) {
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    scope["modalWindow"]("dialog", "ERROR_REGENERATE_METADATA_PUBLICATION_WORKSPACE", oOptions);
+                } else {
+                    // Affiche le message de succés.
+                    $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                    });
+                    // Recharge la section "Métadonnées" du projet FME.
+                    var oWorkspaceSectionForm = envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]];
+                    var iSelectedSectionIndex = oWorkspaceSectionForm["iSelectedSectionIndex"];
+                    oWorkspaceSectionForm["sections"].forEach(function (aSection) {
+                        // Force le rechargement de la section "Métadonnées".
+                        if (aSection["name"] === "updateMetadata")
+                            aSection["bLoaded"] = false;
+                    });
+                    // Suppression du scope du formulaire (sinon bug retour chariot avec TinyMCE).
+                    var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope();
+                    formScope.$destroy();
+                    // Recharge la section.
+                    var sectionScope = angular.element("#container_mode_" + envSrvc["oSelectedMode"]["mode_id"] + " .section-form").scope();
+                    sectionScope["selectSection"](iSelectedSectionIndex, oWorkspaceSectionForm["sections"][iSelectedSectionIndex]);
+                }
+            }
+        });
+    };
+
+    /**
+     * reintegrateWorkspaceMetaData function.
+     * Réintégration des métadonnées du workspace.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["reintegrateWorkspaceMetaData"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("reintegrateWorkspaceMetaData");
+        var scope = this;
+        ajaxRequest({
+            "method": "PUT",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces/" + envSrvc["sId"],
+            "params": {"action": "Metadata"},
+            "scope": scope,
+            "success": function(response) {
+                if (response["data"]["status"] === 0) {
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    scope["modalWindow"]("dialog", "ERROR_REINTEGRATE_METADATA_PUBLICATION_WORKSPACE", oOptions);
+                } else {
+                    // Affiche le message de succés.
+                    $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                    });
+                    // Recharge la section "Métadonnées" du projet FME.
+                    var oWorkspaceSectionForm = envSrvc["oSectionForm"][envSrvc["oSelectedObject"]["name"]];
+                    //var iSelectedSectionIndex = oWorkspaceSectionForm["iSelectedSectionIndex"];
+                    oWorkspaceSectionForm["sections"].forEach(function (aSection) {
+                        // Force le rechargement de la section "Répertoire projet".
+                        if (aSection["name"] === "loadProjectDirectory")
+                            aSection["bLoaded"] = false;
+                    });
+                }
+            }
+        });
+    };
+
+    /**
+     * initPublicationWorkspaceGeneralForm function.
+     * Traitement après le chargement du formulaire du projet FME (section general).
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["initPublicationWorkspaceGeneralForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("initPublicationWorkspaceGeneralForm");
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        // Intitulé suivant l'état du formulaire (par défaut, personnalisé...)
+        var sTranslationId;
+        switch (oFormValues["form_type"]) {
+            case "custom":
+                sTranslationId = "FORM_CUSTOM_FORM_PUBLICATION_WORKSPACE";
+                break;
+            case "default":
+                sTranslationId = "FORM_DEFAULT_FORM_PUBLICATION_WORKSPACE";
+                break;
+            default:
+                sTranslationId = "FORM_MISSING_FORM_PUBLICATION_WORKSPACE";
+        }
+        //
+        $translate([sTranslationId]).then(function (aTranslation) {
+            //var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope();
+            oFormValues["form_type"] = aTranslation[sTranslationId];
+            angular.element(vitisApp.appMainDrtv).scope().$emit("WorkspaceGeneralSectionReady");
+        });
+        // Traduction des valeurs booléennes (disponible sur abonnement, disponible pour surveillance, verrou).
+        if (envSrvc["sMode"] === "display") {
+            var scope = this;
+            scope.$root["getBooleanTranslation"](oFormValues["subscription"]).then(function (sTranslation) {
+                oFormValues["subscription"] = sTranslation;
+            });
+            scope.$root["getBooleanTranslation"](oFormValues["survey"]).then(function (sTranslation) {
+                oFormValues["survey"] = sTranslation;
+            });
+            scope.$root["getBooleanTranslation"](oFormValues["dataencrypt"]).then(function (sTranslation) {
+                oFormValues["dataencrypt"] = sTranslation;
+            });
+            scope.$root["getBooleanTranslation"](oFormValues["usepersonaldata"]).then(function (sTranslation) {
+                oFormValues["usepersonaldata"] = sTranslation;
+            });
+            // Symbole "Euro".
+            if (goog.isDefAndNotNull(oFormValues["unitcost"]) && !isNaN(oFormValues["unitcost"]))
+                oFormValues["unitcost"] += " €";
+            if (goog.isDefAndNotNull(oFormValues["costpersecond"]) && !isNaN(oFormValues["costpersecond"]))
+                oFormValues["costpersecond"] += " €";
+        }
+        // Paramètres du lien vers le fichier fmw du projet fme.
+        var oFmwFileUrlElementDef = formSrvc["getFormElementDefinition"]("fmw_file_url", envSrvc["sFormDefinitionName"]);
+        oFmwFileUrlElementDef["text"] = oFormValues["fmw_file"];
+        oFormValues["fmw_file_url"] = "#";
+        if (typeof(oFmwFileUrlElementDef["id"]) != "undefined")
+            document.getElementById(oFmwFileUrlElementDef["id"]).setAttribute("onclick", "angular.element(vitisApp.appMainDrtv).injector().get([\"$rootScope\"])[\"downloadGtfWorkspaceFile\"](\"" + oFormValues["fmw_file"] + "\")");
+        else {
+            // Attends la fin de l'affichage du formulaire.
+            var clearListener = $rootScope.$on('formExtracted', function (event) {
+                clearListener();
+                document.getElementById(oFmwFileUrlElementDef["id"]).setAttribute("onclick", "angular.element(vitisApp.appMainDrtv).injector().get([\"$rootScope\"])[\"downloadGtfWorkspaceFile\"](\"" + oFormValues["fmw_file"] + "\")");
+            });
+        }
+    };
+
+    /**
+     * decodeFmeGtfTags function.
+     * Remplace les balises FME et GTF par les caractères correspondants.
+     * @param {string} str Chaine de caractère à convertir.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["decodeFmeGtfTags"] = function (str) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        //
+        $log.info("decodeFmeGtfTags");
+        if (!goog.isString(str))
+            return str;
+        // table de correspondance
+        var caracInGTF = ["<", ">", "\n", " ", "=", "(", ")", "$", "&", "@", "°", "'", ",", "\"", "{", "}", "[", "]", "|", ";", "/", "\\", "é", "à"];
+        var caracForFME = ["<lt>", "<gt>", "<lf>", "<space>", "<GTF_EQUAL>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<GTF_PIPE>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>"];
+        //variables parcours de chaine
+        var result = str;
+
+        for (var j = 0; j < caracInGTF.length; j++) {
+            while (result.indexOf(caracForFME[j]) !== - 1)
+                result = result.replace(caracForFME[j], caracInGTF[j]);
+        }
+
+        var code = result.search(/<u[0-9a-fA-F]{4}>/);
+        while (code !== -1) {
+            var part1 = result.substr(0, code);
+            var char = result.substr(code + 2, code + 6);
+            var part2 = result.substr(code + 7, result.length - 1);
+            char = String.fromCharCode(parseInt(char, 16));
+            result = part1 + char + part2;
+            code = result.search(/<u[0-9a-fA-F]{4}>/);
+        }
+
+        return result;
+    };
+
+    /**
+     * Load the studio with the gtf workspace params
+     */
+    angular.element(vitisApp.appMainDrtv).scope()['loadStudioGTF'] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["propertiesSrvc"]);
+        var sessionSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["sessionSrvc"]);
+        //
+        $log.info("loadStudioGTF");
+
+        /**
+         * config.avaliable_elems {array} Type d'éléments disponibles
+         * config.avaliable_form_types {array|undefined} Types de formulaire (update, insert etcc..) dispo. Si avaliable_form_types est null, alors l'application utilisera tous les types disponibles du formulaire
+         * config.default_form_type {string} Type de formulaire selectionné par défaut
+         * @type object
+         */
+        var config = {
+            'avaliable_elems': ["title", "label", "radio", "textarea", "select", "list", "datetime", "upload", "hidden", "text", "password", "email", "url", "integer", "float", "number", "color_picker", "slider", "hr", "map_osm", "map_bing", "map_vmap", "ui_grid", "treeview"],
+            'avaliable_form_types': ['insert'],
+            'default_form_type': 'insert'
+        };
+
+        oVFB["reset"]();
+        oVFB["setId"](envSrvc["sId"]);
+        oVFB["setToken"](sessionSrvc["token"]);
+        oVFB["setApplication"]("gtf");
+        oVFB["setContainer"]("#container_section_" + envSrvc["oSelectedObject"]["name"] + "_SubForm");
+        oVFB["setAppProperties"](propertiesSrvc);
+
+        oVFB.init(config);
+        // Attends la fin de l'affichage du formulaire.
+        var clearListener = $rootScope.$on('formExtracted', function (event) {
+            // Supprime le "listener".
+            clearListener();
+            // Rafraichissement du formulaire.
+            $rootScope.$broadcast("updateJsonModel", oVFB.getJsonOutput());
+            $rootScope.$broadcast("updateForm", oVFB.getJsonOutput());
+        });
+    };
+
+    /**
+     * initPublicationWorkspaceUpdateMetaDataForm function.
+     * Traitement après le chargement du formulaire des métadonnées.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["initPublicationWorkspaceUpdateMetaDataForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("initPublicationWorkspaceUpdateMetaDataForm");
+    };
+
+    /**
+     * initGtfEngineForm function.
+     * Traitement après le chargement du formulaire des moteurs GTF.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["initGtfEngineForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("initGtfEngineForm");
+        if (envSrvc["sMode"] === "display") {
+            var scope = this;
+            scope.$root["getBooleanTranslation"](envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"]).then(function (sTranslation) {
+                envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"] = sTranslation;
+            });
+        }
+    };
+
+    /**
+     * initPublicationEmailTemplateGeneralForm function.
+     * Traitement après le chargement du formulaire des modèles d'email (section "general").
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["initPublicationEmailTemplateGeneralForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("initPublicationEmailTemplateGeneralForm");
+        if (envSrvc["sMode"] === "display") {
+            var scope = this;
+            scope.$root["getBooleanTranslation"](envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["use_advanced"]).then(function (sTranslation) {
+                envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["use_advanced"] = sTranslation;
+            });
+        }
+    };
+
+    /**
+     * initPublicationPeriodForm function.
+     * Traitement après le chargement du formulaire des périodes.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["initPublicationPeriodForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("initPublicationPeriodForm");
+        if (envSrvc["sMode"] === "display") {
+            var scope = this;
+            scope.$root["getBooleanTranslation"](envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"]).then(function (sTranslation) {
+                envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["enabled"] = sTranslation;
+            });
+        }
+    };
+
+    /**
+     * beforeProjectDirectory function.
+     * Traitement avant l'envoi du formulaire de la section "Répertoire Projet" (publication > Projet FME).
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["beforeProjectDirectory"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("beforeProjectDirectory");
+        var scope = this;
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        //
+        var oFmwFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["fmw_file"];
+        var oCompFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["comp_file"];
+        var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]);
+        var sErrorMessage;
+
+        // Vérification du fichier .fmw.
+        if (typeof (oFmwFile) === "object" && typeof (oFmwFile["aFiles"]) !== "undefined" && oFmwFile["aFiles"].length > 0) {
+            if (oFmwFile["aFiles"][0]["name"].split(".").pop() === "fmw") {
+                // Taille maxi du fichier.
+                if (oFmwFile["aFiles"][0]["size"] > iMaxUploadFileSize)
+                    sErrorMessage = "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+            } else
+                sErrorMessage = "ERROR_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+        }
+        // Vérification du fichier de ressources complémentaires.
+        if (typeof (sErrorMessage) === "undefined") {
+            if (typeof (oCompFile) === "object" && typeof (oCompFile["aFiles"]) !== "undefined" && oCompFile["aFiles"].length > 0) {
+                var sFileExtension = oCompFile["aFiles"][0]["name"].split(".").pop();
+                var sForbiddenExtension = propertiesSrvc["forbidden_extension"].replace(/[^a-zA-Z0-9\|]+/g, "");
+                if (sForbiddenExtension.split("|").indexOf(sFileExtension) === -1) {
+                    // Taille maxi du fichier.
+                    if (oCompFile["aFiles"][0]["size"] > iMaxUploadFileSize)
+                        sErrorMessage = "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+                } else
+                    sErrorMessage = "ERROR_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+            }
+        }
+        // Validation du formulaire.
+        if (typeof (sErrorMessage) === "undefined")
+            deferred.resolve();
+
+        // Affichage de la fenêtre modale d'erreur.
+        if (typeof (sErrorMessage) !== "undefined") {
+            var oOptions = {
+                "className": "modal-danger",
+                "message": sErrorMessage
+            };
+            scope.$root["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+        }
+        //
+        return promise;
+    };
+
+    /**
+     * beforePublicationWorkspaceGeneralForm function.
+     * Traitement avant l'envoi du formulaire de la section "Répertoire Projet" (publication > Projet FME).
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["beforePublicationWorkspaceGeneralForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("beforePublicationWorkspaceGeneralForm");
+        var scope = this;
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        //
+        var oFmwFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["fmw_file"];
+        var oCompFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["comp_file"];
+        var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]);
+        var sErrorMessage;
+
+        // Vérification du fichier .fmw.
+        if (typeof (oFmwFile) === "object" && typeof (oFmwFile["aFiles"]) !== "undefined" && oFmwFile["aFiles"].length > 0) {
+            if (oFmwFile["aFiles"][0]["name"].split(".").pop() === "fmw") {
+                // Taille maxi du fichier.
+                if (oFmwFile["aFiles"][0]["size"] > iMaxUploadFileSize)
+                    sErrorMessage = "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+            } else
+                sErrorMessage = "ERROR_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+        }
+        // Vérification du fichier de ressources complémentaires.
+        if (typeof (sErrorMessage) === "undefined") {
+            if (typeof (oCompFile) === "object" && typeof (oCompFile["aFiles"]) !== "undefined" && oCompFile["aFiles"].length > 0) {
+                var sFileExtension = oCompFile["aFiles"][0]["name"].split(".").pop();
+                var sForbiddenExtension = propertiesSrvc["forbidden_extension"].replace(/[^a-zA-Z0-9\|]+/g, "");
+                if (sForbiddenExtension.split("|").indexOf(sFileExtension) === -1) {
+                    // Taille maxi du fichier.
+                    if (oCompFile["aFiles"][0]["size"] > iMaxUploadFileSize)
+                        sErrorMessage = "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+                } else
+                    sErrorMessage = "ERROR_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+            }
+        }
+
+        // Validation du formulaire.
+        if (typeof (sErrorMessage) === "undefined")
+            deferred.resolve();
+
+        // Affichage de la fenêtre modale d'erreur.
+        if (typeof (sErrorMessage) !== "undefined") {
+            var oOptions = {
+                "className": "modal-danger",
+                "message": sErrorMessage
+            };
+            scope.$root["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+        }
+        //
+        return promise;
+    };
+
+    /**
+     * getHurl function.
+     * Retourne la valeur du paramètre "H_url" dans les formulaires json d'un projet FME.
+     * @return {string}
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["getHurl"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("getHurl");
+        return (propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf");
+    };
+
+    /**
+     * loadGtfGroup function.
+     * Chargement de la section "Gtf" dans l'onglet "Groupes" (mode "Utilisateurs").
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["loadGtfGroup"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("loadGtfGroup");
+        // Surcharge l'url du formulaire des groupes de Gtf.
+        var scope = this;
+        var sTable = envSrvc["oSelectedObject"]["name"];
+        scope["oFormRequestParams"] = {
+            "sUrl": "modules/gtf/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json"
+        };
+    };
+    
+    /**
+     * displayFormFields function.
+     * Affiche la liste des champs de formulaire passée en paramètre et cache les autres.
+     * @param {array} aFormFieldsToDisplay Tableau de champs de formulaire à afficher.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["displayFormFields"] = function (aFormFieldsToDisplay) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var externFunctionSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["externFunctionSrvc"]);
+        //
+        $log.info("displayFormFields");
+        //
+        var aFormFields = formSrvc["getAllFormElementDefinition"](envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+        var i, j;
+        if (Array.isArray(aFormFields)) {
+            for (i = 0; i < aFormFields.length; i++) {
+                if (aFormFieldsToDisplay.indexOf(aFormFields[i]["name"]) == -1)
+                    aFormFields[i]["visible"] = false;
+                else
+                    aFormFields[i]["visible"] = true;
+                // Boutons
+                if (Array.isArray(aFormFields[i]["buttons"])) {
+                    for (j = 0; j < aFormFields[i]["buttons"].length; j++) {
+                        if (aFormFieldsToDisplay.indexOf(aFormFields[i]["buttons"][j]["name"]) == -1)
+                            aFormFields[i]["buttons"][j]["visible"] = false;
+                        else {
+                            aFormFields[i]["buttons"][j]["visible"] = true;
+                            aFormFields[i]["visible"] = true;
+                        }
+                    }
+                }
+            }
+            // Rafraîchit le formulaire.
+            var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope();
+            formScope.$broadcast('$$rebind::refresh');
+            formScope.$applyAsync();
+            // 
+            externFunctionSrvc["resizeWin"]();
+        }
+    };
+    
+    /**
+     * initGtfFmeEngineForm function.
+     * Traitements avant l'affichage du formulaire de l'onglet "Moteur FME".
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["initGtfFmeEngineForm"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        //
+        $log.info("initGtfFmeEngineForm");
+        //
+        var clearListener = $rootScope.$on('formExtracted', function (event, sFormDefinitionName) {
+            // Supprime le "listener".
+            clearListener();
+            // Affiche et cache les champs de form. suivant le type de moteur fme.
+            var oServerType = formSrvc["getFormElementDefinition"]("fme_engine_type_id", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]);
+            var sServerType = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["fme_engine_type_id"];
+            if (typeof(sServerType) == "object")
+                sServerType = sServerType["selectedOption"]["value"];
+            var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope();
+            formScope["server_url"] = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["server_url"];
+            // Affichage des champs de form. en fonction du type de moteur sélectionné.
+            if (envSrvc["sMode"] != "insert")
+                $rootScope["setGtfFmeEngineForm"](sServerType);
+            if (envSrvc["sMode"] != "display") {
+                document.getElementById(oServerType["id"]).addEventListener("change", function () {
+                    $rootScope["setGtfFmeEngineForm"](this.value);
+                });
+            }
+            // Désactivation des boutons de l'instance Fme Server suivant son statut .
+            if (sServerType == "fme_cloud" && envSrvc["sMode"] == "update")
+                $rootScope["refreshFmeServerInstanceStatus"]();
+        });
+    };
+    
+    /**
+     * setGtfFmeEngineForm function.
+     * Affichage des champs du formulaire de l'onglet "Moteur FME" suivant le type passé.
+     * @param {string} sServerType Type de moteur fme.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["setGtfFmeEngineForm"] = function (sServerType) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var $timeout = angular.element(vitisApp.appMainDrtv).injector().get(["$timeout"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("setGtfFmeEngineForm");
+        var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope();
+        // Champs de form. à afficher suivant le type de moteur fme.
+        var aFormFieldsToConcat = ["fme_engine_id", "name", "server_id", "fme_engine_type_id","form_submit","return_list", "useexternaldbconnection"];
+        var oFormFieldsToDisplay = {
+            "desktop": ["local_path", "test_fme_engine"],
+            "fme_server": ["server_url", "login", "password", "test_fme_engine"],
+            "fme_cloud": ["server_url", "login", "password", "fme_cloud_api_token", "fme_server_instance_title", "start_fme_server_instance", "pause_fme_server_instance", "fme_server_instance_version", "fme_server_instance_name", "refresh_fme_server_instance_status", "fme_server_instance_status"], // , "s3_access_key_id", "s3_secret_access_key", "s3_region", "amazon_s3_title", "fme_server_s3_bucket", "test_amazon_s3_bucket"
+            "fme_cloud_for_gtf": ["iam_access_key_id", "iam_secret_access_key", "s3_region", "fme_server_s3_bucket"]
+        };
+        if (envSrvc["sMode"] == "display")
+            aFormFieldsToConcat = aFormFieldsToConcat.concat(["fme_engine_type_label", "server_name"]);
+        var aFormFieldsToDisplay = [];
+        if (typeof (oFormFieldsToDisplay[sServerType]) != "undefined")
+            aFormFieldsToDisplay = oFormFieldsToDisplay[sServerType];
+        aFormFieldsToDisplay = aFormFieldsToDisplay.concat(aFormFieldsToConcat);
+        $rootScope["displayFormFields"](aFormFieldsToDisplay);
+        //
+        if (envSrvc["sMode"] != "display") {
+            $timeout(function () {
+                // Bug avec les champs de form. "password" qui reste en "readonly".
+                var aPasswordElem = document.querySelectorAll("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] input[type='password']");
+                for(var i= 0; i < aPasswordElem.length; i++)
+                     aPasswordElem[i].readOnly = false;
+                // Url du serveur non modifiable si le type de moteur = fme cloud.
+                var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+                var oServerUrl = formSrvc["getFormElementDefinition"]("server_url", envSrvc["sFormDefinitionName"]);
+                var oServerUrlElem = document.getElementById(oServerUrl["id"]);
+                if (oServerUrlElem != null) {
+                    if (sServerType == "fme_cloud") {
+                        oServerUrlElem.readOnly = true;
+                        formScope["server_url"] = oFormValues["server_url"];
+                        oFormValues["server_url"] = propertiesSrvc['fme_cloud_api_url'];
+                    }
+                    else {
+                        oServerUrlElem.readOnly = false;
+                        if (typeof(formScope["server_url"]) != "undefined")
+                            oFormValues["server_url"] = formScope["server_url"];
+                        else
+                            oFormValues["server_url"] = '';
+                    }
+                }
+            });
+        }
+    }
+    
+    /**
+     * generateGtfInstanceId function.
+     * Génération de l'identifiant de l'instance de GTF.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["generateGtfInstanceId"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("generateGtfInstanceId");
+        // Charge le résumé de la supervision.
+        var formScope = angular.element('form[name=\'' + envSrvc['oFormDefinition'][envSrvc['sFormDefinitionName']]['name'] + '\']').scope();
+        ajaxRequest({
+            "method": "POST",
+            "scope": formScope,
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/instance/generate",
+            "success": function(response) {
+                if (response["data"]["status"] === 1) {
+                    envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["gtf_instance_id"] = response["data"]["instance_id"];
+                    // Affiche le message de succés.
+                    $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                    });
+                } 
+                else {
+                    var oOptions = {"className": "modal-danger"};
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] !== null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    scope["modalWindow"]("alert", "REQUEST_ERROR", oOptions);
+                }
+            }
+        });
+    };
+    
+    /**
+     * afterGtfEngineForm function.
+     * Traitement apès l'envoi du formulaire de l'onglet "Moteur GTF".
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["afterGtfEngineForm"] = function () {
+        // Injection des services.
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("afterGtfEngineForm");
+        // Recharge les properties.
+        propertiesSrvc["getFromServer"]().then(function(){
+            // Passage en mode "update" après la création d'un moteur GTF.
+            $rootScope["editSectionForm"]()
+        });
+    };
+    
+    /**
+     * deleteGtfEngine function.
+     * Suppression d'un ou plusieurs moteurs GTF.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["deleteGtfEngine"] = function () {
+        // Injection des services.
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("deleteGtfEngine");
+        // Recharge les properties après la suppression des enregistrements.
+        var clearListener = $rootScope.$on('WorkspaceListSelectionRemoved', function (event) {
+            // Supprime le "listener".
+            clearListener();
+            // Recharge les properties.
+            propertiesSrvc["getFromServer"]();
+        });
+        // Supprime les enregistrements.
+        $rootScope["DeleteSelection"]();
+    };
+    
+    /**
+     * downloadGtfWorkspaceFile function.
+     * Téléchargement d'un fichier du répertoire "workspace" d'un projet.
+     * @param {string} sFileName Nom du fichier.
+     */
+    angular.element(vitisApp.appWorkspaceListDrtv).scope()["downloadGtfWorkspaceFile"] = function (sFileName) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        // Log.
+        $log.info("downloadGtfWorkspaceFile");
+        // Charge le résumé de la supervision.
+        var sWebServiceUrl = propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/Workspaces/" + envSrvc["sId"] + "/File";
+        // Charge le fichier au format blob.
+        ajaxRequest({
+            "method": "GET",
+            "url": sWebServiceUrl,
+            "params": {
+                "file_name": sFileName
+            },
+            //"scope": $scope,
+            "responseType": "blob",
+            "success": function(response) {
+                if (typeof(window.navigator.msSaveOrOpenBlob) == "undefined") {
+                    // Crée un lien et simule un click dessus.
+                    var link = document.createElement('a');
+                    link.href = window.URL.createObjectURL(response["data"]);
+                    link.download = sFileName;
+                    link.style.display = 'none';
+                    document.body.appendChild(link);
+                    link.click();
+                    document.body.removeChild(link);
+                }
+                else {
+                    // Pour Edge et IE.
+                    window.navigator.msSaveOrOpenBlob(response["data"], sFileName);
+                }
+            }
+        });
+    };
+    
+    /**
+     * StartFmeServerInstance function.
+     * Démarre une instance Fme Server (Fme Cloud).
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["StartFmeServerInstance"] = function () {
+        // Injection des services.
+        var $translate = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$translate"]);
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("StartFmeServerInstance");
+        $rootScope["removeFmeServerInstanceInfo"]();
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        var oParams = {
+            "fme_engine_id": oFormValues['fme_engine_id'],
+        };
+        ajaxRequest({
+            "method": "PUT",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/fmeengines/" + oFormValues['fme_engine_id'] + "/instances/" + oFormValues["fme_server_instance_name"] + "/start",
+            "data": oParams,
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    $rootScope["modalWindow"]("dialog", "REQUEST_ERROR", oOptions);
+                } else {
+                    // Mise à jour du statut de l'instance.
+                    $rootScope["setFmeServerInstanceStatus"](response["data"]["instance"]["state"]);
+                    // Affichage du message de succés.
+                    $translate("MSG_FME_SERVER_INSTANCE_EXECUTING_START_ENGINE_FME_ENGINE").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                    });
+                }
+            }
+        });
+    };
+    
+    /**
+     * PauseFmeServerInstance function.
+     * Met en pause une instance Fme Server (Fme Cloud).
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["PauseFmeServerInstance"] = function () {
+        // Injection des services.
+        var $translate = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$translate"]);
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("PauseFmeServerInstance");
+        //
+        $rootScope["removeFmeServerInstanceInfo"]();
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        var oParams = {
+            "fme_engine_id": oFormValues['fme_engine_id'],
+        };
+        ajaxRequest({
+            "method": "PUT",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/fmeengines/" + oFormValues['fme_engine_id'] + "/instances/" + oFormValues["fme_server_instance_name"] + "/pause",
+            "data": oParams,
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    // Affichage du message d'erreur.
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    $rootScope["modalWindow"]("dialog", "REQUEST_ERROR", oOptions);
+                } else {
+                    // Mise à jour du statut de l'instance.
+                    $rootScope["setFmeServerInstanceStatus"](response["data"]["instance"]["state"]);
+                    // Affichage du message de succés.
+                    $translate("MSG_FME_SERVER_INSTANCE_EXECUTING_PAUSE_ENGINE_FME_ENGINE").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                    });
+                }
+            }
+        });
+    };
+    
+    /**
+     * getFmeServerInstance function.
+     * Retourne une instance Fme Server (Fme Cloud).
+     * @param {number} sFmeEngineId Id du moteur Fme.
+     * @param {string} sFmeServerInstanceName Nom de l'instance Fme Server.
+     * @return {object}
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["getFmeServerInstance"] = function (sFmeEngineId, sFmeServerInstanceName) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $q = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$q"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var propertiesSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("getFmeServerInstance");
+        // Charge les infos de l'instance Fme Server sur Fme Cloud.
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/fmeengines/" + sFmeEngineId + "/instances/" + sFmeServerInstanceName,
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    $rootScope["modalWindow"]("dialog", "REQUEST_ERROR", oOptions);
+                    deferred.reject(false);
+                } else {
+                    deferred.resolve(response["data"]["instance"]);
+                }
+            }
+        });
+        return promise;
+    };
+
+    /**
+     * displayFmeServerInstanceInfo function.
+     * Affiche les informations d'une instance Fme Server sur Fme Cloud.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["displayFmeServerInstanceInfo"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $templateRequest = angular.element(vitisApp.appMainDrtv).injector().get(["$templateRequest"]);
+        var $compile = angular.element(vitisApp.appMainDrtv).injector().get(["$compile"]);
+        var propertiesSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("displayFmeServerInstanceInfo");
+        var scope = this;
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        // Charge les infos de l'instance Fme Server sur Fme Cloud.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/fmeengines/" + oFormValues['fme_engine_id'] + "/instances/" + oFormValues["fme_server_instance_name"] + "/info",
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    $rootScope["modalWindow"]("dialog", "REQUEST_ERROR", oOptions);
+                } else {
+                    // Informations sur Fme server pour le template.
+                    scope["oTestFmeEngineResult"] = {
+                        "exists" : true,
+                        "valid" : true,
+                        "host" : response["data"]["info"]["host"],
+                        "type" : response["data"]["info"]["version"],
+                        "version" : response["data"]["info"]["build"],
+                    };
+                    // Création de l'élément html pour afficher le template.
+                    var sContainerElementName = scope["sFormDefinitionName"] + "_fme_server_info_container";
+                    var oLastFormElement = document.querySelector(".fme_cloud_button").nextSibling;
+                    if (document.getElementById(sContainerElementName) === null) {
+                        var oDiv = document.createElement("div");
+                        oDiv.id = scope["sFormDefinitionName"] + "_fme_server_info_container";
+                        oLastFormElement.parentElement.insertBefore(oDiv, oLastFormElement);
+                    }
+                    // Compile le template du résultat.
+                    $templateRequest("modules/gtf/templates/testFmeEngineTpl.html").then(function (sTemplate) {
+                        $compile($("#" + sContainerElementName).html(sTemplate).contents())(scope);
+                    });
+                }
+            }
+        });
+    };
+    
+    /**
+     * setFmeServerInstanceButtonsStatus function.
+     * Active ou désactive les boutons de l'instance Fme Server suivant son statut.
+     * @param {string} sFmeServerInstanceName Nom de l'instance Fme Server.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["setFmeServerInstanceButtonsStatus"] = function (sFmeServerInstanceStatut) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var formSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["formSrvc"]);
+        var envSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("setFmeServerInstanceButtonsStatus");
+        // Les boutons sont désactivés par défaut.
+        var oStartInstanceFormElem = formSrvc["getFormElementDefinition"]("start_fme_server_instance", envSrvc["sFormDefinitionName"]);
+        var oPauseInstanceFormElem = formSrvc["getFormElementDefinition"]("pause_fme_server_instance", envSrvc["sFormDefinitionName"]);
+        var oInstanceVersionFormElem = formSrvc["getFormElementDefinition"]("fme_server_instance_version", envSrvc["sFormDefinitionName"]);
+        oStartInstanceFormElem["disabled"] = true;
+        oPauseInstanceFormElem["disabled"] = true;
+        oInstanceVersionFormElem["disabled"] = true;
+        if (sFmeServerInstanceStatut == "RUNNING") {
+            oPauseInstanceFormElem["disabled"] = false;
+            oInstanceVersionFormElem["disabled"] = false;
+        }
+        else if (sFmeServerInstanceStatut == "PAUSED")
+            oStartInstanceFormElem["disabled"] = false;
+        // Rafraîchit le formulaire.
+        var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope();
+        formScope.$broadcast('$$rebind::refresh');
+        formScope.$applyAsync();
+    };
+    
+    /**
+     * removeFmeServerInstanceInfo function.
+     * Supprime les informations d'une instance Fme Server sur Fme Cloud.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["removeFmeServerInstanceInfo"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var envSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("removeFmeServerInstanceInfo");
+        var oContainerElement = document.getElementById(envSrvc["sFormDefinitionName"] + "_fme_server_info_container");
+        if (oContainerElement !== null)
+            oContainerElement.parentElement.removeChild(oContainerElement);
+    };
+    
+    /**
+     * refreshFmeServerInstanceStatus function.
+     * Charge et met à jour le statut d'une instance Fme Server.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["refreshFmeServerInstanceStatus"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("refreshFmeServerInstanceStatus");
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        // Charge le statut de l'instance Fme Server sur Fme Cloud.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/fmeengines/" + oFormValues['fme_engine_id'] + "/instances/" + oFormValues["fme_server_instance_name"],
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": response["data"]["errorMessage"]
+                    };
+                    $rootScope["modalWindow"]("dialog", "REQUEST_ERROR", oOptions);
+                } else {
+                    // Met à jour le statut.
+                    $rootScope["setFmeServerInstanceStatus"](response["data"]["instance"]["state"]);
+                }
+            }
+        });
+    };
+    
+    /**
+     * setFmeServerInstanceStatus function.
+     * Met à jour le statut d'une instance Fme Server dans le formulaire "Moteur FME".
+     * @param {string} sFmeServerInstanceState Statut de l'instance Fme Server.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["setFmeServerInstanceStatus"] = function (sFmeServerInstanceState) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $translate = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("setFmeServerInstanceStatus");
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        // Activation des boutons de l'instance Fme Server suivant son statut.
+        $rootScope["setFmeServerInstanceButtonsStatus"](sFmeServerInstanceState);
+        // Supprime le loader Ajax à côté des boutons de Fme Cloud.
+        var oFmeServerInstanceStatusRefreshBtnElem = document.querySelector("button[name='refresh_fme_server_instance_status'] > span");
+        oFmeServerInstanceStatusRefreshBtnElem.classList.remove("fme-server-instance-status-button-rotation");
+        // Traitements spécifiques si une action est cours d'exécution sur l'instance Fme Server.
+        if (sFmeServerInstanceState == "executing_action") {
+            // Loader Ajax à côté des boutons de Fme Cloud.
+            oFmeServerInstanceStatusRefreshBtnElem.classList.add("fme-server-instance-status-button-rotation");
+            // Création d'un interval (si inexistant).
+            if (!goog.isNumber($rootScope["iFmeServerInstanceStatusInterval"])) {
+                // Vérification du statut de l'instance Fme Server jusqu'à démarrage.
+                var iIntervalId = setInterval(function() {
+                    $rootScope["getFmeServerInstance"](oFormValues['fme_engine_id'], oFormValues["fme_server_instance_name"]).then(function(oInstance){
+                        if (goog.isObject(oInstance)) {
+                            $rootScope["setFmeServerInstanceStatus"](oInstance["state"]);
+                            if (oInstance["state"] != "executing_action") {
+                                // Suppression de l'intervalle.
+                                clearInterval(iIntervalId);
+                                delete($rootScope["iFmeServerInstanceStatusInterval"]);
+                                // L'instance a démarré.
+                                if (oInstance["state"] == "RUNNING") {
+                                    // Affichage du message de succés.
+                                    $translate("MSG_FME_SERVER_INSTANCE_START_ENGINE_FME_ENGINE").then(function (sTranslation) {
+                                        $.notify(sTranslation, "success");
+                                    });
+                                }
+                                // L'instance est arrétée.
+                                else if (oInstance["state"] == "PAUSED") {
+                                    // Affichage du message de succés.
+                                    $translate("MSG_FME_SERVER_INSTANCE_PAUSE_ENGINE_FME_ENGINE").then(function (sTranslation) {
+                                        $.notify(sTranslation, "success");
+                                    });
+                                }
+                            }
+                        }
+                        else {
+                            clearInterval(iIntervalId);
+                            delete($rootScope["iFmeServerInstanceStatusInterval"]);
+                        }
+                    });
+                }, 6000);
+                $rootScope["iFmeServerInstanceStatusInterval"] = iIntervalId;
+                // Attends la suppression du scope.
+                var formScope = angular.element('form[name=\'' + envSrvc['oFormDefinition'][envSrvc['sFormDefinitionName']]['name'] + '\']').scope();
+                formScope.$on("$destroy", function () {
+                    clearInterval(iIntervalId);
+                    delete($rootScope["iFmeServerInstanceStatusInterval"]);
+                });
+            }
+        }
+        // Mise à jour l'affichage du statut.
+        var oFmeServerInstanceStateTranslation = {
+            "RUNNING": "FORM_FME_SERVER_INSTANCE_STATUS_RUNNING_ENGINE_FME_ENGINE",
+            "PAUSED": "FORM_FME_SERVER_INSTANCE_STATUS_PAUSED_ENGINE_FME_ENGINE",
+            "executing_action": "FORM_FME_SERVER_INSTANCE_STATUS_executing_action_ENGINE_FME_ENGINE"
+        };
+        $translate(oFmeServerInstanceStateTranslation[sFmeServerInstanceState]).then(function (sTranslation) {
+            oFormValues["fme_server_instance_status"] = sTranslation;
+        });
+    };
+    
+    /**
+     * testAmazonS3BucketConnection function.
+     * Teste la connexion vers un bucket Amazon S3.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["testAmazonS3BucketConnection"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $translate = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$translate"]);
+        var envSrvc = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("testAmazonS3BucketConnection");
+        var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        // Charge le statut de l'instance Fme Server sur Fme Cloud.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/amazonawsservices/s3/" + oFormValues['fme_server_s3_bucket'] + "/test",
+            "params": {
+                "access_key_id": oFormValues["s3_access_key_id"],
+                "secret_access_key_id": oFormValues["s3_secret_access_key"],
+                "region": oFormValues["s3_region"]["selectedOption"]["value"],
+                "bucket_name": oFormValues["fme_server_s3_bucket"]
+            },
+            "success": function(response) {
+                if (response["data"]["status"] == 0) {
+                    // Affichage du message d'erreur.
+                    var oOptions = {
+                        "className": "modal-danger"
+                    };
+                    $translate([
+                        "TEST_AMAZON_S3_BUCKET_ERROR_NO_SUCH_BUCKET_ENGINE_FME_ENGINE",
+                        "TEST_AMAZON_S3_BUCKET_ERROR_INVALID_ACCESS_KEY_ID_FME_ENGINE",
+                        "TEST_AMAZON_S3_BUCKET_ERROR_SIGNATURE_DOES_NOT_MATCH_FME_ENGINE"
+                    ]).then(function (oTranslations) {
+                        switch (response["data"]["message"]) {
+                            case "NoSuchBucket":
+                                oOptions["message"] = oTranslations["TEST_AMAZON_S3_BUCKET_ERROR_NO_SUCH_BUCKET_ENGINE_FME_ENGINE"];
+                                break;
+                            case "InvalidAccessKeyId":
+                                oOptions["message"] = oTranslations["TEST_AMAZON_S3_BUCKET_ERROR_INVALID_ACCESS_KEY_ID_FME_ENGINE"];
+                                break;
+                            case "SignatureDoesNotMatch":
+                                oOptions["message"] = oTranslations["TEST_AMAZON_S3_BUCKET_ERROR_SIGNATURE_DOES_NOT_MATCH_FME_ENGINE"];
+                                break;
+                        };
+                        $rootScope["modalWindow"]("dialog", "REQUEST_ERROR", oOptions);
+                    });
+                } else {
+                    // Affiche le message de succés.
+                    $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                    });
+                }
+            }
+        });
+    };
+    
+    /**
+     * deleteGtfOrders function.
+     * Suppression d'une ou plusieurs demandes.
+     **/
+    angular.element(vitisApp.appMainDrtv).scope()["deleteGtfOrders"] = function () {
+        // Injection des services.
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var $log = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        //
+        $log.info("deleteGtfOrders");
+        // Charge la liste des pid (job id) de demandes en cours de traitement.
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/orders/running",
+            "success": function(response) {
+                if (response["data"]["status"] === 1) {
+                    // Liste des demandes sélectionnées.
+                    var aSelectedRows = $rootScope["gridApi"][envSrvc["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"]();
+                    var aOrders = response["data"]["orders"];
+                    if (goog.isArray(aOrders) && aSelectedRows.length > 0) {
+                        var sMessage;
+                        for (var i = 0; i < aSelectedRows.length; i++) {
+                            if (aOrders.indexOf(aSelectedRows[i]["order_id"]) != -1) {
+                                sMessage = "CONFIRM_DELETE_ORDERS_SUPERVISION_ORDER";
+                                break;
+                            }
+                        }
+                    }
+                    // Supprime les enregistrements.
+                    $rootScope["DeleteSelection"]({"sMessage": sMessage});
+                }
+                else {
+                    var oOptions = {"className": "modal-danger"};
+                    // Message d'erreur ?
+                    if (response["data"]["errorMessage"] !== null)
+                        oOptions["message"] = response["data"]["errorMessage"];
+                    $rootScope["modalWindow"]("alert", "REQUEST_ERROR", oOptions);
+                }
+            }
+        });
+    };
+    
+    /**
+     * stopOrderProcess function.
+     * Arrête une demande en cours.
+     */
+    angular.element(vitisApp.appMainDrtv).scope()["stopOrderProcess"] = function () {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+        var $rootScope = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$rootScope"]);
+        var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]);
+        var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]);
+        //
+        $log.info("stopOrderProcess");
+        // Une seule demande peut être arrêté.
+        var aSelectedRows = $rootScope["gridApi"][envSrvc["sSelectedGridOptionsName"]]["selection"]["getSelectedRows"]();
+        var oOptions = {
+            "className": "modal-danger"
+        };
+        if (aSelectedRows.length > 0) {
+            if (aSelectedRows.length == 1) {
+                if (aSelectedRows[0]["order_status_id"] == 5) {
+                    ajaxRequest({
+                        "method": "PUT",
+                        "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/orders/" + aSelectedRows[0]["order_id"] + "/stop",
+                        "params": {"order_id": aSelectedRows[0]["order_id"]},
+                        //"scope": scope,
+                        "success": function(response) {
+                            if (response["data"]["status"] === 0) {
+                                var oOptions = {
+                                    "className": "modal-danger",
+                                    "message": response["data"]["errorMessage"]
+                                };
+                                scope["modalWindow"]("dialog", "REQUEST_ERROR", oOptions);
+                            } else {
+                                //
+                                $rootScope['refreshGrid']($rootScope["gridApi"][envSrvc["sSelectedGridOptionsName"]]['grid']['appScope'], envSrvc["oGridOptions"][envSrvc["sSelectedGridOptionsName"]]);
+                                $rootScope["refreshSupervisionRecap"]();
+                                // Affiche le message de succés.
+                                $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                                    $.notify(sTranslation, "success");
+                                });
+                            }
+                        }
+                    });
+                }
+                else
+                    $rootScope["modalWindow"]("dialog", "ERROR_STOP_ORDER_PROCESS_NO_RUNNING_ORDER_SUPERVISION_ORDER", oOptions);
+            }
+            else
+                $rootScope["modalWindow"]("dialog", "ERROR_STOP_ORDER_PROCESS_ONE_ORDER_ONLY_SUPERVISION_ORDER", oOptions);
+        }
+        else
+            $rootScope["modalWindow"]("dialog", "ERROR_STOP_ORDER_PROCESS_NO_SELECTION_SUPERVISION_ORDER", oOptions);
+    };
+});
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/statistics.js b/src/module_gtf/module/javascript/statistics.js
new file mode 100755
index 0000000000000000000000000000000000000000..a0b9dcc1f81fe377634f565f28f1bb5cba46cfcd
--- /dev/null
+++ b/src/module_gtf/module/javascript/statistics.js
@@ -0,0 +1,1025 @@
+"use strict";
+
+// Tableau de retour (succès ou échec)
+var REQUEST_SUCCESS = 1;
+var REQUEST_ERROR = 0;
+
+// Calendrier
+var FIRST_DAY_WEEK = 1; // 0 = dimanche, 1 = lundi (défaut)
+
+// RGraph
+var CANVAS_ID = 'statsGraph'; // Id de l'élément html <canvas>
+var BORDER_WIDTH = 100; // Bord à enlever à la largeur max du graphique (ne pas compter la largeur du form. de stats)
+var BORDER_HEIGHT = 130; //  Bord à enlever à la hauteur max du graphique
+//var GRAPH_COLORS = ['FireBrick', 'Red', 'Tomato', 'DarkOrange', 'Gold', 'Yellow', 'YellowGreen'];
+var GRAPH_COLORS = {"palette1": ['YellowGreen', 'DarkGreen', 'LightSkyBlue', 'Maroon', 'MediumSeaGreen', 'Khaki', 'Chocolate', 'MediumBlue', 'BlueViolet', 'Aqua', 'Red', 'Lime', 'Blue', 'Darkorange'],
+    "palette2": ['Red', 'OliveDrab', 'OrangeRed', 'DodgerBlue', 'DarkOrange', 'Blue', 'Gold', 'Indigo', 'Yellow', 'DarkOrchid', 'GreenYellow', 'Brown', 'Silver', 'Black']};
+
+var TITLE_POS_Y = 15; // Position verticale du titre
+var GUTTER_LEFT = 45; // Marge gauche pour les graphiques (sinon chiffres invisibles)
+var GUTTER_TOP = 40; // Marge haute pour le titre
+var TITLE_BOLD = true; // Titre du graphique en gras ?
+var TITLE_SIZE = 10; // Taille de la police du titre
+var TEXT_SIZE = 10; // Taille de la police de 'label', 'key' et des données
+var KEY_TEXT_SIZE = 10; // Taille de la police de la légende
+var SCATTER_X_SPACING = 3; // Espacement des données pour le graphique en chandelier
+var UNIT_ID_DECIMALS = '{"unit_sec":0, "unit_min":0, "unit_hour":1, "unit_pc":2}'; // Nombre de décumales suivant l'unité
+var STATS_PER_DETAIL = true; // Affichage d'un graph de stats suvant la période de la colonne cliquée (année -> un mois, mois -> un jour...)
+
+// Paramètres des graphiques pour chaque variable
+var JSON_GRAPH_ARRAY = '{"var_tjl":{"nb_graph":2, "graph_type": ["Bar","Pie"]}, "var_ujl":{"nb_graph":1, "graph_type": ["Scatter"]}, "var_jn":{"nb_graph":2, "graph_type": ["Bar","Pie"]}}';
+var JSON_GRAPH_TYPE_ARRAY = '{"Bar": "detail", "Pie": "general"}';
+var DEFAULT_MAX_ELEMENTS = 5; // Nb éléments max. à afficher par défaut
+var DEFAULT_MAX_LABELS_CHARACTERS = 50; // Longueur max. des labels
+
+// Paramètres de la légende du graphique en chandelier
+var SCATTER_POS_Y = 50; // Position verticale de la légende
+var SCATTER_LEGEND_WIDTH = 20; // Largeur
+var SCATTER_LEGEND_HEIGHT = 30; // Hauteur
+var SCATTER_LEGEND_LEFT_MARGIN = 4; // Marge gauche par rapport au graphique
+var SCATTER_LEGEND_COLOR_UP = 'black'; // Couleur de la barre max (haut)
+var SCATTER_LEGEND_COLOR_DOWN = 'white'; // // Couleur de la barre min (bas)
+
+//
+var CANVAS_PARENT_ID = "double_form_right_section_statistics_gtf_statistics"; // Element ou seront affichés les canvas
+var TABLE_ID = 'statsTable'; // Id de l'élément html contenant les stats en mode tableau 
+var TABLE_TITLE = '<p id="statsTableTitle">[title]</p>';
+var TABLE_HTML = '<table id="' + TABLE_ID + '"><thead><tr><th>[legend]</th></tr></thead><tfoot><tr></tr></tfoot><tbody></tbody></table>';
+var ERROR_MESSAGE_ELEMENT_ID = "statistics-error-message";
+//var AJAX_LOADING_IMG = "images/treeview/load-root.gif"; // Image à afficher pendant le chargement/affichage des stats
+
+/***********************************
+ Charge les données d'un graphique
+ ***********************************/
+function loadGraphData(iGraphIndex)
+{
+// Crée une chaine de caractères avec les champs du formulaire pour la requête ajax
+    var aFormParams = $("form").serializeArray();
+    // Dédoublonnage (".serializeArray()" et ".serialize()" retournent les paramètres en doubles ?).
+    var aFilteredFormParams = [], sUrlParams = "";
+    for (var i = 0; i < aFormParams.length; i++) {
+        if (typeof(aFilteredFormParams[aFormParams[i]["name"]]) == "undefined") {
+            aFilteredFormParams[aFormParams[i]["name"]] = aFormParams[i]["value"];
+            if (sUrlParams != "")
+                sUrlParams += "&";
+            sUrlParams += aFormParams[i]["name"] + "=" + aFormParams[i]["value"];
+        }
+    }    
+    //
+    var promise = $.Deferred();
+
+    //var dataStats;
+    $.ajax({
+        type: "GET",
+        url: sessionStorage["statistics_web_service_url"],
+        async: false,
+        cache: false,
+        dataType: "json", // transforme auto. le tableau en json
+        Accept: "application/json",
+        data: sUrlParams,
+        "headers": {
+             "Token": sessionStorage["session_token"]
+        },
+        error: function (jqXHR, textStatus, errorThrown) {
+            alert('Erreur Ajax : ' + textStatus);
+        },
+        success: function (data)
+        {
+            // Traduction des libellés retournés par le web service.
+            var sStatisticsResult = JSON.stringify(data);
+            var aTranslationsId = sStatisticsResult.match(/([A-Z_]+_STATISTICS_STATISTICS)+/g);
+            var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
+            $translate(aTranslationsId, data["statistics"]["translation_values"]).then(function (oTranslations) {
+                var i = 0;
+                var aKeys = Object.keys(oTranslations);
+                var regExp;
+                while (aKeys.length > i) {
+                    //sStatisticsResult = eval("sStatisticsResult.replace(/" + aKeys[i] + "/g, oTranslations[aKeys[i]])");
+                    regExp = new RegExp(aKeys[i], "g");
+                    sStatisticsResult = sStatisticsResult.replace(regExp, oTranslations[aKeys[i]]);
+                    i++;
+                }
+                //
+                data = JSON.parse(sStatisticsResult);
+                if (data["status"] == 1) {
+                    // Erreur renvoyée par la classe php ?
+                    if (data["statistics"]["status"] == REQUEST_ERROR)
+                        showErrorMsg(data["statistics"]["message"]);
+                } else
+                    showErrorMsg(data["message"]);
+                //
+                promise.resolve(data["statistics"], iGraphIndex);
+            });
+        }
+    });
+    return promise;
+}
+
+/***********************************
+ Affiche un message d'erreur
+ ***********************************/
+function showErrorMsg(message)
+{
+    $("#" + ERROR_MESSAGE_ELEMENT_ID).text(message);
+    $("#" + ERROR_MESSAGE_ELEMENT_ID).show();
+}
+
+/***********************************
+ Supprime un message d'erreur
+ ***********************************/
+function cleanErrorMsg()
+{
+    $("#" + ERROR_MESSAGE_ELEMENT_ID).hide();
+    $("#" + ERROR_MESSAGE_ELEMENT_ID).empty();
+}
+
+/***********************************
+ Affiche un graphique (Bar)
+ - aRGraphDatas : Tableau json contenant les paramètres graphiques pour RGraph (retour classe php)
+ - sCanvas : Id de l'élément html (<canvas>) contenant le graphique
+ ***********************************/
+function displayBarGraph(aJsonRGraphDatas, sCanvas)
+{
+    var myGraph = new RGraph["Bar"](sCanvas, aJsonRGraphDatas["data"]);
+
+// Type de regroupement et séparation	
+    myGraph["Set"]('grouping', 'stacked');	// Plusieurs colonnes par grain (voir demo : bar-stacked.html)
+    myGraph["Set"]('strokestyle', 'white'); // Couleur de la ligne de séparation entre les barres (sur un même label)
+    myGraph["Set"]('linewidth', 1); // Largeur de la ligne de séparation
+
+    myGraph["Set"]('chart.title.y', TITLE_POS_Y);
+
+// Marges	
+    myGraph["Set"]('gutter.left', GUTTER_LEFT); // Marge gauche pour le graphique
+    myGraph["Set"]('gutter.top', GUTTER_TOP); // Marge haute pour le graphique (par rapport au titre)
+//	myGraph["Set"]('chart.key.position', 'gutter'); // Position de la légende (key)
+
+// Largeur et position de la légende suivant la longueur de la chaine la plus longue * taille de la police
+    myGraph["Set"]('chart.key.position.y', TEXT_SIZE + 5);
+    var iMaxLengthStr = getMaxStrLength(aJsonRGraphDatas["key"]);
+    if (aJsonRGraphDatas["legend"].length > iMaxLengthStr) // Le titre de la légende est plus long que les valeurs de la légende ?
+        iMaxLengthStr = aJsonRGraphDatas["legend"].length;
+    var iKeyWidth = iMaxLengthStr * (KEY_TEXT_SIZE - 4); // Largeur de la légende
+    var iKeyPositionX = ($("#" + sCanvas).width() - 50) - iKeyWidth;
+    myGraph["Set"]('chart.key.position.x', iKeyPositionX);
+    myGraph["Set"]('gutter.right', iKeyWidth + 60); // Marge droite (pour la légende)
+
+// Titre
+    myGraph["Set"]('chart.title', aJsonRGraphDatas["title"]); // Titre du graphique
+    myGraph["Set"]('chart.title.bold', TITLE_BOLD); // Titre en gras ?
+    myGraph["Set"]('chart.title.size', TITLE_SIZE); // Taille de la police du titre
+
+// Tooltips	(infobulles)
+    myGraph["Set"]('chart.tooltips', function (i) {
+        return aJsonRGraphDatas.key[(i % aJsonRGraphDatas["key"].length)];
+    }); //
+    myGraph["Set"]('chart.tooltips.event', 'onmousemove'); // onmousemove : passage de la souris / onclick
+    myGraph["Set"]('chart.tooltips.effect', 'none'); // Effet pour l'affichage du tooltip
+    myGraph["canvas"].onmouseout = function (e) {
+        RGraph["HideTooltip"]();
+    }; // Efface les infobulles
+
+// Si clic sur une des colonnes : affiche un graph sur la période de cette colonne
+    if (STATS_PER_DETAIL)
+        myGraph["Set"]('chart.events.click', displayStatsPerDetail);
+
+// Labels et keys (légende)
+    myGraph["Set"]('chart.labels', aJsonRGraphDatas["labels"]); // Libellé par colonne (lundi, mardi...)
+    myGraph["Set"]('labels.above', true); // Afficher le total des données au dessus
+    myGraph["Set"]('chart.text.size', TEXT_SIZE);	// Taille de la police des labels
+    myGraph["Set"]('chart.key', aJsonRGraphDatas["key"]); // Légende (projets FME, utilisateurs...)
+    myGraph["Set"]('chart.key.text.size', KEY_TEXT_SIZE);	// Taille de la police des keys
+
+//	myGraph["Set"]('bevel', true);	// Effet '3D' --> ralenti si affichage avec animation
+//	myGraph["Set"]('chart.shadow', true); // Ombre portée --> ralenti si affichage avec animation
+
+// Menu (bouton droit) sur le graphique
+//	myGraph["Set"]('chart.contextmenu', [['Image', RGraph.showPNG]]);
+//	myGraph["Set"]('chart.contextmenu', [['Image', function(){showGraphImage(sCanvas)}]]);
+    myGraph["Set"]('chart.contextmenu', [['Image', function () {
+                showGraphImage(sCanvas)
+            }], ['Zoom Out', function () {
+                displayStatsZoomOut()
+            }]]);
+
+// Couleurs (Palette par défaut sauf si une palette est passée en paramètre par la classe php)
+    if (aJsonRGraphDatas["colors"] != undefined)
+        myGraph["Set"]('colors', aJsonRGraphDatas["colors"]);	// Couleurs des barres (keys / légende)
+    else
+        myGraph["Set"]('colors', GRAPH_COLORS[document.getElementById("graph_colors").value]);	// Couleurs des barres (keys / légende)
+    myGraph["Set"]('chart.background.color', 'white');
+    //myGraph["Set"]('chart.colors', $.parseJSON(getColorGradient(aJsonRGraphDatas.key.length))); // Génération d'un dégradé
+
+// Nb décimales en fonction de unit_id (heure, min, sec, %)	
+    var aUnitIdDecimals = $.parseJSON(UNIT_ID_DECIMALS);
+    myGraph["Set"]('chart.scale.decimals', aUnitIdDecimals[document.getElementById("unit_id").value]);
+    myGraph["Set"]('chart.labels.above.decimals', aUnitIdDecimals[document.getElementById("unit_id").value]);
+    myGraph["Set"]('chart.scale.point', ',');	// // Caractère précédent les décimales
+    myGraph["Set"]('chart.scale.thousand', '');	// // Caractère après mille
+
+// Unité des ordonnées (si présente : augmente la marge de gauche)
+    if (aJsonRGraphDatas["data_unit"] != undefined)
+    {
+        myGraph["Set"]('chart.units.post', aJsonRGraphDatas["data_unit"]);
+        myGraph["Set"]('gutter.left', GUTTER_LEFT + (aJsonRGraphDatas["data_unit"].length * (TEXT_SIZE - 3))); // Marge gauche pour le graphique
+    }
+    //myGraph.ondraw = function (obj){displayBarData(obj)}; // Affiche les valeurs pour chaque colonne	
+
+// Affichage (sans animation)
+    myGraph["Draw"]();
+
+// Affichage du titre de la légende
+    if (aJsonRGraphDatas["legend"] != '')
+    {
+        var oText = new RGraph["Drawing"]["Text"](sCanvas, iKeyPositionX + 5, TEXT_SIZE + 2, aJsonRGraphDatas["legend"]);
+        oText["Set"]('chart.bold', true);
+        oText["Draw"]();
+    }
+
+// Affichage avec animation	
+//	RGraph.Effects.Bar.Grow(myGraph);
+//	RGraph.Effects.Bar.Wave(myGraph);
+}
+
+/***********************************
+ Affiche un graphique (Pie)
+ - aRGraphDatas : Tableau json contenant les paramètres graphiques pour RGraph (retour classe php)
+ - sCanvas : Id de l'élément html (<canvas>) contenant le graphique
+ ***********************************/
+function displayPieGraph(aJsonRGraphDatas, sCanvas)
+{
+    var myGraph = new RGraph["Pie"](sCanvas, aJsonRGraphDatas["data"][0]);
+    myGraph["Set"]('chart.variant', 'donut'); // donut ou pie (camenbert)
+    myGraph["Set"]('gutter.top', GUTTER_TOP); // Marge haute pour le graphique (par rapport au titre)
+
+// Séparation	
+    myGraph["Set"]('strokestyle', 'white'); // Couleur de la ligne de séparation entre les barres (sur un même label)
+    myGraph["Set"]('linewidth', 1); // Largeur de la ligne de séparation
+
+// Largeur et position de la légende suivant la longueur de la chaine la plus longue * taille de la police
+    myGraph["Set"]('chart.key.position.y', TEXT_SIZE + 5);
+    var iMaxLengthStr = getMaxStrLength(aJsonRGraphDatas["key"]);
+    if (aJsonRGraphDatas["legend"].length > iMaxLengthStr) // Le titre de la légende est plus long que les valeurs de la légende ?
+        iMaxLengthStr = aJsonRGraphDatas["legend"].length;
+    var iKeyWidth = iMaxLengthStr * (KEY_TEXT_SIZE - 4); // Largeur de la légende
+    var iKeyPositionX = ($("#" + sCanvas).width() - 50) - iKeyWidth;
+    myGraph["Set"]('chart.key.position.x', iKeyPositionX);
+    myGraph["Set"]('gutter.right', iKeyWidth + 60); // Marge droite (pour la légende)
+
+// Titre	
+    myGraph["Set"]('chart.title.y', TITLE_POS_Y);
+    myGraph["Set"]('chart.title', aJsonRGraphDatas["title"]);
+    myGraph["Set"]('chart.title.bold', TITLE_BOLD);	// Titre en gras ?
+    myGraph["Set"]('chart.title.size', TITLE_SIZE);	// Taille de la police du titre
+
+// Key (légende)
+    myGraph["Set"]('chart.key', aJsonRGraphDatas["key"]); // Légende (projets FME, utilisateurs...)
+    myGraph["Set"]('chart.key.text.size', KEY_TEXT_SIZE);	// Taille de la police des keys
+    myGraph["Set"]('chart.text.size', TEXT_SIZE);	// Taille de la police des labels
+
+// Tooltips	(infobulles)
+    myGraph["Set"]('chart.tooltips', function (i) {
+        return aJsonRGraphDatas["key"][(i % aJsonRGraphDatas["key"].length)];
+    }); //
+    myGraph["Set"]('chart.tooltips.event', 'onmousemove'); // onmousemove : passage de la souris / onclick
+    myGraph["Set"]('chart.tooltips.effect', 'none'); // Effet pour l'affichage du tooltip
+    myGraph["canvas"].onmouseout = function (e) {
+        RGraph["HideTooltip"]();
+    }; // Efface les infobulles
+    //myGraph["Set"]('chart.exploded', 3); // Espace entre les tranches
+
+// Couleurs (Palette par défaut sauf si une palette est passée en paramètre par la classe php)
+    if (aJsonRGraphDatas["colors"] != undefined)
+        myGraph["Set"]('colors', aJsonRGraphDatas["colors"]);	// Couleurs des barres (keys / légende)
+    else
+        myGraph["Set"]('colors', GRAPH_COLORS[[document.getElementById("graph_colors").value]]); // Couleurs des barres
+    myGraph["Set"]('chart.background.color', 'white');
+    //myGraph["Set"]('chart.colors', $.parseJSON(getColorGradient(aJsonRGraphDatas.key.length))); // Génération d'un dégradé
+
+// Nb décimales en fonction de unit_id (heure, min, sec, %)	
+    var aUnitIdDecimals = $.parseJSON(UNIT_ID_DECIMALS);
+    myGraph["Set"]('chart.scale.decimals', aUnitIdDecimals[document.getElementById("unit_id").value]);
+    myGraph["Set"]('chart.scale.point', ',');	// // Caractère précédent les décimales
+    myGraph["Set"]('chart.scale.thousand', '');	// // Caractère après mille
+
+// Unité des ordonnées	
+    if (aJsonRGraphDatas["data_unit"] != undefined)
+        myGraph["Set"]('chart.units.post', aJsonRGraphDatas["data_unit"]);
+
+// Ombrage	
+    //myGraph["Set"]('chart.shadow', true); // Ombre portée --> ralenti si affichage avec animation
+    //myGraph["Set"]('chart.shadow.offsetx', 5);
+    //myGraph["Set"]('chart.shadow.offsety', 5);
+
+// Menu (bouton droit) sur le graphique
+//	myGraph["Set"]('chart.contextmenu', [['Image', RGraph.showPNG]]);
+    myGraph["Set"]('chart.contextmenu', [['Image', function () {
+                showGraphImage(sCanvas)
+            }]]);
+
+    RGraph["Clear"](myGraph["canvas"], 'white'); // This effectively sets the background color to be white
+
+// Affichage (sans animation)
+    //myGraph.Draw();
+
+// Affichage avec animation	
+    RGraph["Effects"]["Pie"]["RoundRobin"](myGraph, {'radius': false, frames: 30}); // Effet d'affichage
+
+// Affichage du titre de la légende	
+    if (aJsonRGraphDatas["legend"] != '')
+    {
+        var oText = new RGraph["Drawing"]["Text"](sCanvas, iKeyPositionX + 5, TEXT_SIZE + 2, aJsonRGraphDatas["legend"]);
+        oText["Set"]('chart.bold', true);
+        oText["Draw"]();
+    }
+}
+
+/***********************************
+ Affiche un graphique (Scatter)
+ - aRGraphDatas : Tableau json contenant les paramètres graphiques pour RGraph (retour classe php)
+ - sCanvas : Id de l'élément html (<canvas>) contenant le graphique
+ ***********************************/
+function displayScatterGraph(aJsonRGraphDatas, sCanvas)
+{
+    var myGraph = new RGraph["Scatter"](sCanvas, aJsonRGraphDatas["data"]);
+
+// Marges	
+    myGraph["Set"]('gutter.top', GUTTER_TOP); // Marge haute pour le titre du graphique
+    myGraph["Set"]('gutter.left', GUTTER_LEFT); // Marge gauche pour la légende des ordonnées
+    myGraph["Set"]('chart.gutter.bottom', 150); // Marge pour les labels ?
+
+// Titre	
+    myGraph["Set"]('chart.title.y', TITLE_POS_Y);
+    myGraph["Set"]('chart.title', aJsonRGraphDatas["title"]);
+    myGraph["Set"]('chart.title.bold', TITLE_BOLD);	// Titre en gras ?
+    myGraph["Set"]('chart.title.size', TITLE_SIZE);	// Taille de la police du titre
+
+    myGraph["Set"]('chart.labels', aJsonRGraphDatas["labels"]);
+    myGraph["Set"]('chart.text.size', TEXT_SIZE);	// Taille de la police des labels
+
+// Labels	
+    myGraph["Set"]('chart.tooltips.event', 'onmousemove'); // onmousemove : passage de la souris / onclick
+    myGraph["Set"]('chart.tooltips.effect', 'none'); // Effet pour l'affichage du tooltip
+
+    myGraph["Set"]('chart.boxplot.capped', false);
+    myGraph["Set"]('chart.boxplot.width', 1);
+
+    myGraph["Set"]('chart.text.angle', 30);
+
+// Unité des ordonnées (si présente : augmente la marge de gauche)
+    if (aJsonRGraphDatas.data_unit != undefined)
+    {
+        myGraph["Set"]('chart.units.post', aJsonRGraphDatas["data_unit"]);
+        myGraph["Set"]('gutter.left', GUTTER_LEFT + (aJsonRGraphDatas["data_unit"].length * (TEXT_SIZE - 3))); // Marge gauche pour le graphique
+    }
+
+// Menu (bouton droit) sur le graphique
+//	myGraph["Set"]('chart.contextmenu', [['Image', RGraph.showPNG]]);
+    myGraph["Set"]('chart.contextmenu', [['Image', function () {
+                showGraphImage(sCanvas)
+            }]]);
+    myGraph["Set"]('chart.background.color', 'white');
+
+// Nb décimales en fonction de unit_id (heure, min, sec, %)	
+    var aUnitIdDecimals = $.parseJSON(UNIT_ID_DECIMALS);
+    myGraph["Set"]('chart.scale.decimals', aUnitIdDecimals[document.getElementById("unit_id").value]);
+
+    myGraph["Set"]('chart.scale.point', ",");	// Caractère précédent les décimales
+    myGraph["Set"]('chart.scale.thousand', '');	// // Caractère après mille
+    var xmax = aJsonRGraphDatas["labels"].length * SCATTER_X_SPACING;
+    if (aJsonRGraphDatas["labels"].length == 1)
+        xmax += SCATTER_X_SPACING; // Si une seule barre : ajoute un espace sinon décalage
+    myGraph["Set"]('chart.xmax', xmax); // Nb total barres * marge entre chaque barre
+
+    myGraph["Set"]('chart.numxticks', 0);
+
+// Affiche le graphique	
+    myGraph["Draw"]();
+
+    /*
+     // Insère l'image de la légende (max, moy, min)
+     imgPosX = ($(document).width() - $("#form_edit_first").width() - BORDER_WIDTH) - 110;
+     var img = new RGraph["Drawing"]["Image"](sCanvas, imgPosX, 40, 'images/statistics/legend.png');
+     img["Draw"]();	
+     */
+
+// Légende (min, moy, max)	
+    displayScatterLegend(aJsonRGraphDatas, sCanvas);
+}
+
+/***********************************
+ Affiche la légende (min, moy, max) pour 
+ le graphique en chandelier (traitements unitaires)
+ ***********************************/
+function displayScatterLegend(aJsonRGraphDatas, sCanvas)
+{
+    var iPosX = $("#" + sCanvas).width() - 110;
+
+// Rectangle du haut	
+    var oRect = new RGraph["Drawing"]["Rect"](sCanvas, iPosX, SCATTER_POS_Y, SCATTER_LEGEND_WIDTH, SCATTER_LEGEND_HEIGHT);
+    oRect["Set"]('chart.strokestyle', 'black');
+    oRect["Set"]('chart.fillstyle', SCATTER_LEGEND_COLOR_UP);
+    oRect["Draw"]();
+
+// Rectangle du bas	
+    oRect = new RGraph["Drawing"]["Rect"](sCanvas, iPosX, (SCATTER_POS_Y + SCATTER_LEGEND_HEIGHT), SCATTER_LEGEND_WIDTH, SCATTER_LEGEND_HEIGHT);
+    oRect["Set"]('chart.strokestyle', 'black');
+    oRect["Set"]('chart.fillstyle', SCATTER_LEGEND_COLOR_DOWN);
+    oRect["Draw"]();
+
+// Légende	
+    var oText = new RGraph["Drawing"]["Text"](sCanvas, (iPosX + SCATTER_LEGEND_WIDTH + SCATTER_LEGEND_LEFT_MARGIN), (SCATTER_POS_Y + 7), aJsonRGraphDatas["scatter_legend"]["max"])["Draw"]();
+    //oText.Set('chart.bold', true);
+    oText = new RGraph["Drawing"]["Text"](sCanvas, (iPosX + SCATTER_LEGEND_WIDTH + SCATTER_LEGEND_LEFT_MARGIN), (SCATTER_POS_Y + (SCATTER_LEGEND_HEIGHT * 2) + 6), aJsonRGraphDatas["scatter_legend"]["min"])["Draw"]();
+    oText = new RGraph["Drawing"]["Text"](sCanvas, (iPosX + SCATTER_LEGEND_WIDTH + SCATTER_LEGEND_LEFT_MARGIN), (SCATTER_POS_Y + SCATTER_LEGEND_HEIGHT + 6), aJsonRGraphDatas["scatter_legend"]["avg"])["Draw"]();
+}
+
+/***********************************
+ Affiche l'image d'un graphique dans une nouvelle fenêtre
+ ***********************************/
+function showGraphImage(sCanvas)
+{
+    var canvas = document.getElementById(sCanvas);
+
+// Pas de pixel transparent
+    fillCanvasAlpha(sCanvas);
+    /*
+     var image_data = canvas.toDataURL("image/png");
+     $.post("forms/statistics/save_image.phtml", { src: image_data } );
+     */
+    var my_win = window.open("", "Image", "menubar=no, status=no, scrollbars=no, menubar=no, width=" + (canvas.width + 50) + ", height=" + (canvas.height + 50) + "");
+    var img = new Image();
+    img.src = canvas.toDataURL("image/png");
+    my_win.document.documentElement.innerHTML = '<head></head><body><img src="' + img.src + '"></body>';
+}
+
+/***********************************
+ Colorie en blanc tous les pixels transparents du canvas
+ ***********************************/
+function fillCanvasAlpha(sCanvas)
+{
+    var canvas = document.getElementById(sCanvas);
+    var context = canvas["getContext"]('2d');
+    var imageData = context["getImageData"](0, 0, canvas.width, canvas.height);
+    var pixelArray = imageData["data"];
+    var i = 0;
+    while (i < pixelArray.length)
+    {
+        // Colorie en blanc les pixels transparents
+        if (pixelArray[i + 3] === 0 && pixelArray[i] === 0 && pixelArray[i + 1] === 0 && pixelArray[i + 2] === 0)
+        {
+            pixelArray[i] = 255;
+            pixelArray[i + 1] = 255;
+            pixelArray[i + 2] = 255;
+            pixelArray[i + 3] = 255;
+        }
+        i += 4;
+    }
+    context["putImageData"](imageData, 0, 0);
+}
+
+/***********************************
+ Affiche un graphique de stats suivant la période de la colonne cliquée:
+ ex: An -> un mois / mois -> un jour...
+ e : the (standard) event object
+ shape : array of coordinates that describe the shape
+ ***********************************/
+function displayStatsPerDetail(e, shape)
+{
+// Supprime les infobulles
+    RGraph["HideTooltip"]();
+
+// Crée un objet date à partir de la date sélectionné dans le calendrier (notation GMT standard)
+    var my_date = new Date($("#per_date").data("DateTimePicker")["date"]());
+
+// Période sélectionnée
+    var per_type = $("#per_type_save").val();
+
+// Selection de la période
+    var iSetPerDate = false;
+    switch (per_type)
+    {
+        // Par semaine -> jour
+        case "per_week":
+            // Nouvelle période : par jour
+            $("#per_type").val('per_day');
+
+            // Modification de la date avec le jour cliqué
+            my_date.setDate(my_date.getDate() + shape["dataset"]);
+
+            //	
+            iSetPerDate = true;
+            break;
+
+            // Par mois -> semaine
+        case "per_month":
+            // Nouvelle période : par semaine
+            $("#per_type").val('per_week');
+
+            // Modification de la date avec le jour cliqué
+            my_date.setDate(my_date.getDate() + shape["dataset"]);
+
+            //	
+            iSetPerDate = true;
+            break;
+
+            // Par an -> mois
+        case "per_year":
+            // Nouvelle période : par mois	
+            $("#per_type").val('per_month');
+
+            // Modification de la date avec le mois cliqué
+            my_date.setMonth(shape["dataset"]);
+
+            //	
+            iSetPerDate = true;
+            break;
+    }
+
+// Remplir le champs de form. avec la nouvelle date ?
+    if (iSetPerDate)
+    {
+        // Mise à jour et vérification de la nouvelle date	
+        $("#per_date").data("DateTimePicker")["date"](my_date);
+        checkPeriodDate();
+
+        // Simule un click sur le bouton pour lancer la requête de stats	
+        $('#btn_start_stats').click();
+    }
+}
+
+/***********************************
+ Affiche un graphique de stats sur la période supérieure:
+ ex: jour -> semaine / semaine -> mois...
+ ***********************************/
+function displayStatsZoomOut()
+{
+// Supprime les infobulles
+    RGraph["HideTooltip"]();
+
+// Période sélectionnée
+    var per_type = $("#per_type_save").val();
+
+// Selection de la période
+    var iSetPerDate = false;
+    switch (per_type)
+    {
+        // Par jour -> semaine
+        case "per_day":
+            $("#per_type").val('per_week');
+            iSetPerDate = true;
+            break;
+            // Par semaine -> mois
+        case "per_week":
+            $("#per_type").val('per_month');
+            iSetPerDate = true;
+            break;
+            // Par mois -> an
+        case "per_month":
+            $("#per_type").val('per_year');
+            iSetPerDate = true;
+            break;
+    }
+// Remplir le champs de form. avec la nouvelle date ?
+    if (iSetPerDate)
+    {
+        // Vérification de la nouvelle date	
+        checkPeriodDate();
+
+        // Simule un click sur le bouton pour lancer la requête de stats	
+        $('#btn_start_stats').click();
+    }
+}
+
+/***********************************
+ Affiche un tableau de données
+ - aRGraphDatas : Tableau json contenant les paramètres graphiques pour RGraph (retour classe php)
+ - sElement : Id de l'élément html contenant le tableau
+ ***********************************/
+function displayTableStats(aJsonRGraphDatas, sElement)
+{
+// Affiche le titre du tableau
+    var title = TABLE_TITLE;
+    title = title.replace("[title]", aJsonRGraphDatas.title);
+    $("#" + sElement).append(title);
+
+// Création du tableau
+    var sMyTableHtml = TABLE_HTML.replace("[legend]", aJsonRGraphDatas["legend"]); // Légende (projet FME, utilisateur...)
+    $("#" + sElement).append(sMyTableHtml);
+
+// Si traitements unitaires : affichage différent	
+    if ($('#variable_id').val() == 'var_ujl')
+    {
+        // Insère les labels (titres) dans le thead (th)
+        $("#" + TABLE_ID + ">thead>tr").append("<th>" + aJsonRGraphDatas["scatter_legend"]["min"] + "</th>");
+        $("#" + TABLE_ID + ">thead>tr").append("<th>" + aJsonRGraphDatas["scatter_legend"]["avg"] + "</th>");
+        $("#" + TABLE_ID + ">thead>tr").append("<th>" + aJsonRGraphDatas["scatter_legend"]["max"] + "</th>");
+
+        // Insère les données pour chaque colonne (min, moy, max) dans le tbody (td)
+        var i = 0;
+        var nb_cols = 3; // min, moy, max
+        while (i < aJsonRGraphDatas["labels"].length)
+        {
+            // Insère une nouvelle ligne + la légende (label)	
+            $("#" + TABLE_ID + ">tbody").append("<tr></tr>");
+            $("#" + TABLE_ID + ">tbody>tr:last-of-type").append("<td>" + aJsonRGraphDatas["labels"][i][0] + "</td>");
+
+            // Insère les données : min, moy, max	
+            var aData = aJsonRGraphDatas["data"][i][1];
+            $("#" + TABLE_ID + ">tbody>tr:last-of-type").append("<td>" + aData[1] + "</td>");
+            $("#" + TABLE_ID + ">tbody>tr:last-of-type").append("<td>" + aData[2] + "</td>");
+            $("#" + TABLE_ID + ">tbody>tr:last-of-type").append("<td>" + aData[3] + "</td>");
+            i++;
+        }
+    } else
+    {
+
+        // Insère les labels (titres) dans le thead (th)
+        var i = 0;
+        while (i < aJsonRGraphDatas["labels"].length)
+        {
+            $("#" + TABLE_ID + ">thead>tr").append("<th>" + aJsonRGraphDatas["labels"][i] + "</th>");
+            i++;
+        }
+
+        // Insère les données pour chaque légende dans le tbody (td)
+        var i = 0;
+        var nb_cols = aJsonRGraphDatas["labels"].length;
+        while (i < aJsonRGraphDatas["key"].length)
+        {
+            // Insère une nouvelle ligne + la légende (key)	
+            $("#" + TABLE_ID + ">tbody").append("<tr></tr>");
+            $("#" + TABLE_ID + ">tbody>tr:last-of-type").append("<td>" + aJsonRGraphDatas["key"][i] + "</td>");
+
+            // Insère les données de la légende
+            var j = 0;
+            while (j < aJsonRGraphDatas["labels"].length)
+            {
+                $("#" + TABLE_ID + ">tbody>tr:last-of-type").append("<td>" + aJsonRGraphDatas["data"][j][i] + "</td>");
+                j++;
+            }
+            i++;
+        }
+    }
+
+// Calcul de la largeur des colonnes
+//	var iColsWidth = parseInt(($("#" + TABLE_ID).width() - ($('#max_labels_characters').val() * 10))); //
+    var iKeyWidth = parseInt(($("#" + TABLE_ID).width() * 25) / 100); // Largeur du titre pour chaque ligne : 15% du total
+    var iColsWidth = parseInt($("#" + TABLE_ID).width() - iKeyWidth); //
+    iColsWidth = parseInt(iColsWidth / nb_cols);
+    $("#" + TABLE_ID + ">thead>tr th").css("width", iColsWidth);
+    $("#" + TABLE_ID + ">tbody>tr td").css("width", iColsWidth);
+    $("#" + TABLE_ID + ">thead>tr>th:first-of-type").css("width", "");
+    $("#" + TABLE_ID + ">tbody>tr>td:first-of-type").css("width", "");
+}
+
+/***********************************
+ Affiche le(s) graphique(s) ou un tableau de données d'une requête de stats
+ ***********************************/
+function displayStatsRequest()
+{
+    var promise;
+// Supprime tous les graphiques sauvegardés par RGraph (sinon ralentissements)	
+    $("canvas").each(function () {
+        RGraph["Reset"](document.getElementById($(this).attr('id')));
+    });
+
+// Vide l'élément parent du/des canvas (élément des graphiques) ou d'un tableau
+    $('#' + CANVAS_PARENT_ID).empty();
+
+// Supprime le message d'erreur
+    cleanErrorMsg();
+
+// Affichage sous forme de graphique ou de tableau	?
+    if (document.getElementById("radio_view_id_0").checked)
+    {
+        // Combien de graphiques à afficher pour la variable sélectionnée ?	
+        var variable_id = $("#variable_id").val();
+        var aGraph = $.parseJSON(JSON_GRAPH_ARRAY);
+        var agraph_type = $.parseJSON(JSON_GRAPH_TYPE_ARRAY);
+
+        // Largeur et hauteur max des graphiques
+        var canvas_width = $("#" + CANVAS_PARENT_ID).width();
+        var canvas_height = parseInt($("#" + CANVAS_PARENT_ID).height() / aGraph[variable_id]["nb_graph"]);
+        /*
+         if ($(document).width() < 1200){
+         canvas_width = 1200 - $("#form_edit_first").width() - BORDER_WIDTH; // Enlève la largeur du menu de stats + une valeur fixe (BORDER_WIDTH)*
+         }else{
+         canvas_width = $(document).width() - $("#form_edit_first").width() - BORDER_WIDTH; // Enlève la largeur du menu de stats + une valeur fixe (BORDER_WIDTH)*
+         }
+         */
+        //canvas_height = parseInt(($(document).height() - BORDER_HEIGHT) / aGraph[variable_id]["nb_graph"]);
+
+        // Affichage du ou des graphiques
+        var i = 0;
+        while (i < aGraph[variable_id]["nb_graph"])
+        {
+            // Type de données à récupérer : générales ou détaillées (pie ou bar)
+            $("#graph_type").val(agraph_type[aGraph[variable_id]["graph_type"][i]]);
+
+            // Envoi une requête ajax (demande de graph. de stats à la classe php)	
+            //var data = loadGraphData();
+            promise = loadGraphData(i);
+            $.when(promise).done(function (data, iGraphIndex) {
+                // Si la classe php renvoie 'success' : affichage du graphique
+                if (data["status"] == REQUEST_SUCCESS)
+                {
+                    // Force les libellés de la légende en type "string".
+                    if (Array.isArray(data["key"])) {
+                        data["key"].forEach(function(sKey, iIndex){
+                                data["key"][iIndex] = String(sKey);
+                        });
+                    }
+                    // Elément canvas où sera affiché le graphique
+                    $('#' + CANVAS_PARENT_ID).append('<canvas id="' + CANVAS_ID + iGraphIndex + '" width="' + canvas_width + '" height="' + canvas_height + '">[No canvas support]</canvas>');
+
+                    // Un sous-titre à afficher ?
+                    if (data["subtitle"] != '')
+                        data["title"] += '\n' + data["subtitle"];
+
+                    // Type de graphique à afficher
+                    switch (aGraph[variable_id]["graph_type"][iGraphIndex])
+                    {
+                        case "Bar":
+                            displayBarGraph(data, CANVAS_ID + iGraphIndex);
+                            break;
+
+                        case "Pie":
+                            displayPieGraph(data, CANVAS_ID + iGraphIndex);
+                            break;
+
+                        case "Scatter":
+                            displayScatterGraph(data, CANVAS_ID + iGraphIndex);
+                            break;
+                    }
+                }
+            });
+            i++;
+        }
+    } else
+    {
+        // Type de données à récupérer : générales ou détaillées
+        $("#graph_type").val("detail");
+
+        // Envoi une requête ajax (demande de graph. de stats à la classe php)	
+        //var data = loadGraphData();
+        promise = loadGraphData();
+        $.when(promise).done(function (data) {
+            // Un sous-titre à afficher ?
+            if (data["subtitle"] != '')
+                data["title"] = '<b>' + data["title"] + '</b>' + '<br>' + data["subtitle"];
+
+            // Si la classe php renvoie 'success' : affichage du graphique
+            if (data["status"] == REQUEST_SUCCESS)
+            {
+                // Affiche un tableau de données	
+                displayTableStats(data, CANVAS_PARENT_ID);
+            }
+        });
+    }
+}
+
+/***********************************
+ Affiche les valeurs dans chaque barre
+ - obj : l'objet RGraph
+ ***********************************/
+function displayBarData(obj)
+{
+    for (var i = 0; i < obj["coords"].length; ++i)
+    {
+        obj["context"]["fillStyle"] = 'white';
+        RGraph["Text"](obj["context"], 'Verdana', 10, obj["coords"][i][0] + (obj["coords"][i][2] / 2), obj["coords"][i][1] + (obj["coords"][i][3] / 2), obj["data_arr"][i].toString(), 'center', 'center', null, null, null, true);
+    }
+}
+
+/***********************************
+ Vérifie si la date est valide suivant le type de la période (sinon modification de la date)
+ - Semaine : dimanche ou lundi
+ - Mois : 1er jour du mois
+ - An : 1er janvier
+ ***********************************/
+function checkPeriodDate() // sDateText, oDatePicker
+{
+    //if (document.getElementById("per_date").value != window.sessionStorage["stats_per_date"]) {
+    // Crée un objet date à partir de la date sélectionné dans le calendrier (notation GMT standard)
+    if ($("#per_date").data("DateTimePicker")["date"]() != null)
+        var my_date = new Date($("#per_date").data("DateTimePicker")["date"]());
+    else
+        var my_date = new Date();
+    var per_type = $("#per_type").val();
+
+    // Vérifie que la date sélectionné soit correcte pour le type de période sélectionné
+    switch (per_type)
+    {
+        // Par semaine : date = lundi ou dimanche
+        case "per_week":
+            var jour = my_date.getDay() - FIRST_DAY_WEEK;
+            if (jour < 0)
+                jour += 7;
+            my_date.setDate(my_date.getDate() - jour); // 1er jour de la semaine
+            break;
+
+            // Par mois : date = 1er jour du mois
+        case "per_month":
+            my_date.setDate(1); // 1er jour du mois
+            break;
+
+            // Par an : date = 1er jour de l'année
+        case "per_year":
+            my_date.setDate(1); // 1er jour du mois
+            my_date.setMonth(0); // 1er mois de l'année (janvier = 0)
+            break;
+    }
+
+    // Convertion de la date pour la requête sql (yyyy-mm-dd -> ISO 8601) et sauvegarde dans le champ caché 'per_date_sql'
+    var day = my_date.getDate();
+    if (day < 10)
+        day = '0' + day;
+    var month = my_date.getMonth();
+    month += 1;
+    if (month < 10)
+        month = '0' + month;
+    $("#per_date_sql").val(my_date.getFullYear() + '-' + month + '-' + day);
+
+    // Enlève le focus (sinon pas d'affichage du calendrier au prochain click)
+    //$("#per_date").blur();
+
+    // Sauve la nouvelle date dans la session.       
+    window.sessionStorage["stats_per_date"] = document.getElementById("per_date").value;
+
+    // Rempli le champs de form. avec la nouvelle date
+    $("#per_date").data("DateTimePicker")["date"](my_date);
+    //$("#per_date").datepicker("setDate", my_date);
+    //}
+}
+
+/***********************************
+ Crée un dégradé de couleurs au format TSL (Teinte Saturation Lumière)
+ ou HSL (Hue Saturation Light)
+ ***********************************/
+function getColorGradient(nb_colors)
+{
+    var i = 0;
+    var hue_start = 0, hue_end = 120; // 0 120
+    var light_start = 50, light_end = 50;
+    var nb_hue = (hue_end - hue_start) / nb_colors;
+    var nb_light = (light_end - light_start) / nb_colors;
+    var aColors = '[';
+    while (i < nb_colors)
+    {
+        if (i > 0)
+            aColors += ',';
+        aColors += '"hsl(' + parseInt((i * nb_hue) + hue_start) + ', 100%, ' + parseInt((i * nb_light) + light_start) + '%)"';
+        i++;
+    }
+    aColors += ']';
+    return (aColors)
+}
+
+/***********************************
+ Retourne la longueur de la chaine de caractère
+ la plus longue du tableau
+ - aStr : Tableau contenant des chaines de caractères
+ ***********************************/
+function getMaxStrLength(aStr)
+{
+    var i = 0, iMax = 0, sMyStr;
+    while (i < aStr.length)
+    {
+        if (aStr)
+            sMyStr = aStr[i];
+        if (sMyStr.length > iMax)
+            iMax = sMyStr.length;
+        i++;
+    }
+    return (iMax);
+}
+
+/***********************************
+ Initialisation
+ ***********************************/
+function initStatistics() {
+    window.sessionStorage["stats_per_date"] = null;
+// Vide le message d'erreur et cache l'élément
+    //cleanErrorMsg();
+
+// Champ texte de la date non modifiable
+    //document.getElementById("per_date").readonly = true;
+    $('#per_date').attr('readonly', 'readonly');
+
+// Paramètres du calendrier.        
+    var date_format = document.getElementById("date_format").value;
+    date_format = date_format.toLowerCase();
+    date_format = date_format.replace('d', 'dd');
+    date_format = date_format.replace('m', 'mm');
+    date_format = date_format.replace('y', 'yyyy');
+
+// 1er jour de la semaine.
+    moment["locale"]($("#per_date").data("DateTimePicker")["locale"](), {
+        week: {dow: FIRST_DAY_WEEK}
+    });
+
+// Si changement de date -> vérification suivant la période sélectionnée.
+    $("#per_date").on("dp.change", function (e) {
+        if (document.getElementById("per_date").value != window.sessionStorage["stats_per_date"])
+            checkPeriodDate();
+    });
+
+// Si sélection d'un nouveau type de période : vérification de la date
+    $("#per_type").change(function () {
+        checkPeriodDate()
+    });
+
+// Si changement de sélection de la variable : plusieurs conditions à vérifier
+    $('#variable_id').change(function ()
+    {
+        // Si 'nombre de traitements' est sélectionné ou non : désactive ou réactive le menu déroulant de l'unité
+        if ($(this).val() == 'var_jn')
+        {
+            $("#unit_id").attr("disabled", "disabled");
+            $("#unit_id").val('unit_sec');
+        } else
+            $("#unit_id").removeAttr("disabled");
+
+        // Si 'durée des traitements unitaires' est sélectionné : légende = 'Projet FME' uniquement et nb max elements désactivé
+        if ($(this).val() == 'var_ujl')
+        {
+            //$('input[type=radio][name="gb_id"][value="gb_workspace"]').click();
+            $("#gb_id").val('gb_workspace');
+            $("#max_elements").attr("disabled", "disabled");
+        } else
+            $("#max_elements").removeAttr("disabled");
+
+        // Unité en pourcentage uniquement pour 'Durée totale de traitement'
+        if ($('#unit_id').val() == 'unit_pc' && $(this).val() != 'var_tjl')
+            $('#unit_id').val('unit_sec');
+    });
+
+// Si 'durée des traitements unitaires' est sélectionné : légende = 'Projet FME' uniquement
+    //$('input[type=radio][name="gb_id"]').change(function()
+    $("#gb_id").change(function ()
+    {
+        if ($('#variable_id').val() == 'var_ujl')
+            $(this).val('gb_workspace'); //$(this)
+        //$("#gb_id").val('gb_workspace');
+        //$('input[type=radio][name="gb_id"][value="gb_workspace"]').click();
+    });
+
+// Unité en pourcentage uniquement pour 'Durée totale de traitement'
+    $('#unit_id').change(function ()
+    {
+        if ($(this).val() == 'unit_pc' && $('#variable_id').val() != 'var_tjl')
+            $(this).val('unit_sec');
+    });
+
+// Nb max d'éléments : si la valeur entrée est incorrecte : valeur par défaut
+    $('#max_elements').change(function ()
+    {
+        // La valeur entrée est un nombre ?	
+        if (isNaN($(this).val()))
+            $(this).val(DEFAULT_MAX_ELEMENTS);
+    });
+
+// Nb caractères max des libellés : si la valeur entrée est incorrecte : valeur par défaut
+    $('#max_labels_characters').change(function ()
+    {
+        // La valeur entrée est un nombre ?	
+        if (isNaN($(this).val()))
+            $(this).val(DEFAULT_MAX_LABELS_CHARACTERS);
+        else if ($(this).val() == 0)
+            $(this).val(DEFAULT_MAX_LABELS_CHARACTERS);
+    });
+
+// Bouton de lancement des stats	
+    $('#btn_start_stats').click(function ()
+    {
+        /*
+         // Affiche le gif animé de chargement de la requête ajax (et positionnement au milieu de l'écran)
+         document.getElementById("gif_ajax").style.visibility = "visible";
+         document.getElementById("gif_ajax").style.left = (parseInt($(document).width() / 2) + "px");
+         document.getElementById("gif_ajax").style.top = (parseInt($(document).height() / 2) + "px");
+         */
+        // Sauve la période sélectionnée
+        document.getElementById("per_type_save").value = document.getElementById("per_type").value;
+
+        // Lance la requête et l'affichage des stats
+        displayStatsRequest();
+
+        // Cache le gif animé de chargement de la requête ajax
+        //document.getElementById("gif_ajax").style.visibility = "hidden"; //hidden;
+    });
+
+// Initialise les valeurs par défaut ou simulation de click / changement
+    $('#max_labels_characters').change();				// 'Nombre d'éléments max' par défaut
+    checkPeriodDate(); 									// Initialise le champ date vide
+    $("#first_day_week").val(FIRST_DAY_WEEK); 	// 1er jour de la semaine dans le champ caché (pour la classe php)
+    /* $("#PHPSESSID").val(sSessId);	 */			// Session php
+    /*	
+     // Gif animé pendant le chargement des stats
+     $("body").append('<div id="gif_ajax"><img src="' + AJAX_LOADING_IMG + '"></div>');
+     document.getElementById("gif_ajax").style.left = (parseInt($(document).width() / 2) + "px");
+     document.getElementById("gif_ajax").style.top = (parseInt($(document).height() / 2) + "px");
+     */
+// Lance une requête de stats à l'affichage de la page
+    $('#btn_start_stats').click();
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/widget/deps.js b/src/module_gtf/module/javascript/widget/deps.js
new file mode 100755
index 0000000000000000000000000000000000000000..9c42bd430d8aa718a953837d257286c2a790f7ff
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/deps.js
@@ -0,0 +1,23 @@
+/* global goog */
+
+'use strict';
+
+goog.require("vitis");
+goog.provide('vitis.gtf.widget');
+//
+goog.require('vitis.loadExternalFiles');
+goog.require("vitis.services.main");
+goog.require("vitis.services.form");
+goog.require("vitis.gtf.widget.modules.main");
+//
+// FormReader
+goog.require('formReader');
+goog.require('formReader.controller.formReaderController');
+goog.require('formReader.directive.formReaderDirective');
+goog.require('formReader.service.formReaderService');
+// Controllers
+goog.require('vitis.controllers.htmlForm');
+// Directives
+goog.require("vitis.directives.htmlForm");
+// Scripts
+goog.require("vitis.gtf.widget.script");
diff --git a/src/module_gtf/module/javascript/widget/index_iframe.html b/src/module_gtf/module/javascript/widget/index_iframe.html
new file mode 100755
index 0000000000000000000000000000000000000000..8548515a6512a43ffa4f0436cf214de2bb65fb2d
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/index_iframe.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Iframe</title>
+        <meta charset="UTF-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <script src="../../../../javascript/externs/less/less.min.js"></script>
+        <script>
+            // Charge les fichiers js.
+            var aJsFiles = [
+                "../../../../modules/gtf/javascript/widget/loadExternalFiles.js",
+                "../../../../modules/gtf/javascript/widget/loadWidget.js"
+            ];
+            aJsFiles.forEach(function(sScriptUrl) {
+                var oScript = document.createElement('script');
+                oScript.setAttribute('src', sScriptUrl + "?version=" + new Date().getTime());
+                document.getElementsByTagName("head")[0].appendChild(oScript);
+            });
+        </script>
+    </head>
+    <body>
+        <div class="col-xs-12">
+            <div class="panel panel-primary widget ng-scope"><div class="panel-heading"><h3 id="widget_form_title" class="panel-title ng-binding"></h3></div><div id="widget_form_container" class="panel-body"></div></div>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/widget/index_popup.html b/src/module_gtf/module/javascript/widget/index_popup.html
new file mode 100755
index 0000000000000000000000000000000000000000..f4efa5a029ce2a7656a608f754bc46b99a2ed6c7
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/index_popup.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Iframe</title>
+        <meta charset="UTF-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <script src="../../../../javascript/externs/less/less.min.js"></script>
+        <script>
+            // Charge les fichiers js.
+            var aJsFiles = [
+                "../../../../modules/gtf/javascript/widget/loadExternalFiles.js",
+                "../../../../modules/gtf/javascript/widget/loadWidget.js"
+            ];
+            aJsFiles.forEach(function(sScriptUrl) {
+                var oScript = document.createElement('script');
+                oScript.setAttribute('src', sScriptUrl + "?version=" + new Date().getTime());
+                document.getElementsByTagName("head")[0].appendChild(oScript);
+            });
+        </script>
+    </head>
+    <body>
+        <div class="widget">
+            <div id="widget_form_container"></div>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/widget/initEmbedded.js b/src/module_gtf/module/javascript/widget/initEmbedded.js
new file mode 100755
index 0000000000000000000000000000000000000000..6108df5bff3432f9e9197c2f5be922a0d1b64f65
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/initEmbedded.js
@@ -0,0 +1,34 @@
+'use strict';
+
+var oUrlParams = {};
+location.search.replace("?", "").split("&").forEach(function (sUrlParams) {
+    var aUrlParams = sUrlParams.split("=");
+    oUrlParams[aUrlParams[0]] = aUrlParams[1];
+});
+var token;
+if (typeof oUrlParams['token'] === 'undefined')
+    token = "";
+else
+    token = oUrlParams['token'];
+/**
+ * afterIframeLoad function.
+ * Paramétrage de l'iframe et affichage du formulaire de la demande.
+ * @param {object} oIframeElement Elément html de l'iframe.
+ * @param {string} sModalWindowParams Paramètres du widget.
+ **/
+function afterIframeLoad(oIframeElement, sModalWindowParams) {
+    var oModalWindowParams = JSON.parse(decodeURIComponent(sModalWindowParams));
+    // Pas de bords.
+    oIframeElement.style.border = "none";
+    // Largeur et hauteur de l'iframe.
+    var sWidth = oModalWindowParams["width"];
+    if (!isNaN(sWidth))
+        sWidth += "px";
+    var sHeight = oModalWindowParams["height"];
+    if (!isNaN(sHeight))
+        sHeight += "px";
+    oIframeElement.style.width = sWidth;
+    oIframeElement.style.height = sHeight;
+    // Lance l'affichage du formulaire de la demande.
+    oIframeElement.contentWindow.postMessage(sModalWindowParams, "*");
+};
diff --git a/src/module_gtf/module/javascript/widget/initPopup.js b/src/module_gtf/module/javascript/widget/initPopup.js
new file mode 100755
index 0000000000000000000000000000000000000000..863044ea2ca171bb3779fa9d22e3721d876f9052
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/initPopup.js
@@ -0,0 +1,51 @@
+'use strict';
+
+var oScript = document.querySelector("[data-modal-window-params*='client_url']")
+if (oScript != null) {
+    var oModalWindowParams = JSON.parse(decodeURIComponent(oScript.getAttribute("data-modal-window-params")));
+    if (oModalWindowParams["client_url"] != null) {
+        // Charge les fichiers css.
+        var aCssFiles = [
+            oModalWindowParams["client_url"] + "/less/main.less",
+            oModalWindowParams["client_url"] + "/modules/gtf/less/widget.less",
+            oModalWindowParams["client_url"] + "/css/lib/bootstrap/css/bootstrap.min.css"
+        ];
+        loadExternalCss(aCssFiles);
+        // Charge les fichiers js.
+        var aJsFiles = [
+            oModalWindowParams["client_url"] + "/javascript/externs/jquery/jquery-1.11.3.min.js",
+            oModalWindowParams["client_url"] + "/javascript/externs/jquery/plugins/bootbox/bootbox.min.js",
+            oModalWindowParams["client_url"] + "/javascript/externs/bootstrap/bootstrap.min.js"
+        ];
+        //
+        loadExternalJs(aJsFiles, {
+            "async": false,
+            //"scriptInBody": true,
+                "callback": function () {
+                    document.getElementById("btn_open_modal_window").addEventListener("click", function () {
+                    // Affichage de la fenêtre modale.
+                    var oOptions = {
+                        "className": "dialog-modal-window widget-popup",
+                        "message": '<div id="widget_form_container"><iframe src="' + oModalWindowParams["client_url"] + '/modules/gtf/javascript/widget/index_popup.html" name="gtf_widget_popup" id="' + oModalWindowParams["window_id"] + '" class="gtf-widget-iframe" onload="this.contentWindow.postMessage(\'' + oScript.getAttribute("data-modal-window-params") + '\',\'*\')"></iframe></div>',
+                        "title": oModalWindowParams.title
+                    };
+                    var oDialog = bootbox["dialog"](oOptions);
+                    // Largeur et hauteur du widget.
+                    var sWidth = oModalWindowParams["width"];
+                    if (!isNaN(sWidth))
+                        sWidth += "px";
+                    var sHeight = oModalWindowParams["height"];
+                    if (!isNaN(sHeight))
+                        sHeight += "px";
+                    // Largeur et hauteur du widget.
+                    oDialog[0].querySelector(".modal-content").style.width = sWidth;
+                    oDialog[0].querySelector(".modal-content").style.height = sHeight;
+                    // Hauteur du header du widget.
+                    oDialog[0].querySelector(".modal-header").style.height = "56px";
+                    // Hauteur du body du widget.
+                    oDialog[0].querySelector(".modal-body").style.height = ($(oDialog).find(".modal-content").height() - 56 - 4) + "px";
+                });
+            }
+        });
+    }
+}
diff --git a/src/module_gtf/module/javascript/widget/loadExternalFiles.js b/src/module_gtf/module/javascript/widget/loadExternalFiles.js
new file mode 100755
index 0000000000000000000000000000000000000000..04455f74298fefe5efbd02992ff6b2d933aae41d
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/loadExternalFiles.js
@@ -0,0 +1,197 @@
+'use strict';
+
+/************************************************************************************
+ Chargement dynamique de script js.
+ \aScript : tableau contenant l'url des script js
+ \oOptions : objet contenant les paramètres optionnels suivants:
+ - callback : Fonction à appeler après le chargement de tous les scripts js.
+ - async : booléen pour activer (défaut) / désac. l'exécution asynchrone.
+ - scriptInBody : charge le script dans l'élément <body> (par défaut dans le <head>).
+ ************************************************************************************/
+function loadExternalJs(aScript, oOptions) {
+    var sBuild = Date.now();
+    if (typeof(oClientProperties) != "undefined")
+        sBuild = oClientProperties["build"];
+    if (typeof (aScript) == "object" && aScript != null) {
+        var callback;
+        var bAsync = true;
+        var bScriptInBody = false;
+        if (typeof (oOptions) === "object") {
+            callback = oOptions['callback'];
+            if (typeof (oOptions['async']) === "boolean")
+                bAsync = oOptions['async'];
+            if (typeof (oOptions['scriptInBody']) === "boolean")
+                bScriptInBody = oOptions['scriptInBody'];
+        }
+
+        // Liste des scripts js déja chargés.	
+        var oScript = document.getElementsByTagName('script');
+        var aDownloadedScript = new Array();
+        var i = 0;
+        while (i < oScript.length) {
+            if (oScript[i].src !== "")
+                aDownloadedScript.push(oScript[i].src);
+            i++;
+        }
+
+        // Liste des scripts à charger.
+        i = 0;
+        var aScriptToDl = new Array();
+        while (i < aScript.length) {
+            aScript[i] = aScript[i] + "?version=" + sBuild;
+            oScript = document.createElement('script');
+            oScript.setAttribute('src', aScript[i]);
+            if (in_array(oScript.src, aDownloadedScript) === -1) {
+                aScriptToDl.push(aScript[i]);
+            } else
+                console.log(aScript[i] + " -> déja chargé");
+            i++;
+        }
+
+        // Charge les scripts js (sauf ceux déja chargés)
+        i = 0;
+        while (i < aScriptToDl.length) {
+            oScript = document.createElement('script');
+            oScript.setAttribute('src', aScriptToDl[i]);
+            oScript.async = bAsync;
+            oScript.setAttribute('type', 'text/javascript');            
+            // function à appeler après le chargement de tous les scripts ?
+            if (typeof (callback) === "function") {
+                var loadJsFnc = function () {
+                    if (typeof (callback.iNbCall) === "undefined")
+                        callback.iNbCall = 0;
+                    callback.iNbCall++;
+                    if (callback.iNbCall === aScriptToDl.length) {
+                        callback();
+                        this.onload = null;
+                    }
+                };
+                // L'évenement 'onload' de l'élément <script> n'existe pas sur IE8 et <
+                if (oScript.onload !== undefined)
+                    oScript.onload = loadJsFnc;
+                else if (oScript.onreadystatechange !== undefined) {
+                    oScript.onreadystatechange = function () {
+                        if (this.readyState === 'loaded' || this.readyState === 'complete')
+                            loadJsFnc();
+                    };
+                }
+            }
+            if (bScriptInBody)
+                document.getElementsByTagName("body")[0].appendChild(oScript);
+            else
+                document.getElementsByTagName("head")[0].appendChild(oScript);
+            i++;
+        }
+        // Si tous les scripts sont déja chargés : exécute la fonction.
+        if (aScriptToDl.length === 0 && typeof (callback) === "function") {                
+            callback();
+        }
+    }
+}
+
+/*******************************************************************
+ Chargement dynamique de feuille de style.
+ /aStyleSheet : tableau contenant l'url des feuilles de style
+ *******************************************************************/
+function loadExternalCss(aStyleSheet) {
+    if (typeof (aStyleSheet) == "object" && aStyleSheet != null) {
+        var sBuild = Date.now();
+        if (typeof(oClientProperties) != "undefined")
+            sBuild = oClientProperties["build"];
+        // Liste des css déja chargés.	
+        var oLink = document.getElementsByTagName('link');
+        var aDownloadedCss = new Array();
+        var i = 0;
+        while (i < oLink.length) {
+            if (oLink[i].href != "")
+                aDownloadedCss.push(oLink[i].href);
+            i++;
+        }
+
+        // Charge les css (sauf ceux déja chargés)
+        var i = 0, bLessRefresh = false;
+        while (i < aStyleSheet.length) {
+            aStyleSheet[i] = aStyleSheet[i] + "?version=" + sBuild;
+            oLink = document.createElement('link');
+            oLink.setAttribute('href', aStyleSheet[i]);
+            if (in_array(oLink.href, aDownloadedCss) == -1) {
+                oLink.setAttribute('type', 'text/css');
+                // Fichier .css ou .less ?
+                if (aStyleSheet[i].indexOf(".less") == -1) {
+                    oLink.setAttribute('rel', 'stylesheet');
+                    document.getElementsByTagName("head")[0].appendChild(oLink);
+                } else {
+                    oLink.setAttribute('rel', 'stylesheet/less');
+                    less['sheets'].push(oLink);
+                    bLessRefresh = true;
+                }
+            } else
+                console.log(aStyleSheet[i] + " -> déja chargé");
+            i++;
+        }
+        // Si des fichiers .less sont ajoutés, il faut les compiler.
+        if (bLessRefresh)
+            less['refresh']();
+    }
+}
+
+/*******************************************************************
+ Indique si une valeur appartient à un tableau (idem fonction PHP).
+ @sValue : La valeur recherchée.
+ @aArray : Le tableau.
+ *******************************************************************/
+function in_array(sValue, aArray) {
+    var iReturn = -1;
+    if (typeof (aArray.indexOf) != "undefined") {
+        iReturn = aArray.indexOf(sValue);
+    } else {
+        // Pas de méthode "indexOf" pour les tableaux sur IE8 et <.	
+        var i = 0;
+        while (i < aArray) {
+            if (aArray[i].indexOf(sValue) != -1) {
+                iReturn = i;
+                break;
+            }
+            i++;
+        }
+    }
+    return iReturn;
+}
+
+/************************************************************************************
+ Chargement ajax utilisant l'objet natif XMLHttpRequest du navigateur
+ \oOptions : objet contenant les paramètres suivants:
+ - async : booléen pour activer (défaut) / désac. le chargement asynchrone.
+ ************************************************************************************/
+function ajaxNativeRequest(oOptions) {
+    if (typeof (oOptions) == "object" && typeof (oOptions['url']) == "string") {
+        var bAsync = true;
+        var sMethod = "GET";
+        var sParams = null;
+        if (typeof (oOptions['async']) == "boolean")
+            bAsync = oOptions['async'];
+        if (typeof (oOptions['method']) == "string")
+            sMethod = oOptions['method'];
+        sMethod = sMethod.toUpperCase();
+        if (typeof (oOptions['params']) == "string")
+            sParams = oOptions['params'];
+        //
+        var xhr = new XMLHttpRequest();
+        //xhr.onload = function() {"done"};
+        xhr.open(sMethod, oOptions['url'] + ((/\?/).test(oOptions['url']) ? "&_" : "?_") + Math.random().toString().substr(2), true, bAsync);
+        xhr.onreadystatechange = function (aEvt) {
+            if (xhr.readyState == 4) {
+                if (xhr.status == 200) {
+                    if (typeof (oOptions['success']) == "function")
+                        oOptions['success'](xhr.responseText);
+                } else {
+                    if (typeof (oOptions['error']) == "function")
+                        oOptions['error'](xhr.responseText);
+                }
+            }
+        }
+        if (sMethod == "POST")
+            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+        xhr.send(sParams);
+    }
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/widget/loadWidget.js b/src/module_gtf/module/javascript/widget/loadWidget.js
new file mode 100755
index 0000000000000000000000000000000000000000..e7b47a17bfafde79a11c8e8deb5fb55002035c1d
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/loadWidget.js
@@ -0,0 +1,108 @@
+'use strict';
+
+/**
+ * oModalWindowParams Object
+ * @type {object}
+ * @export
+ */
+var oModalWindowParams = function(){};
+
+// Mode debug ?
+if (location.search.indexOf("debug") != -1)
+        sessionStorage["debug"] = "true";
+else
+        sessionStorage["debug"] = "false";
+
+window.addEventListener("message", function(event){
+    // Charge les widgets une seule fois.
+    if (Object.keys(oModalWindowParams).length == 0) {
+        oModalWindowParams = JSON.parse(decodeURIComponent(event["data"]));
+        if (oModalWindowParams["widget_type"] == "Embedded" || oModalWindowParams["widget_type"] == "File") {
+            // Titre du formulaire.
+            document.getElementById("widget_form_title").innerHTML = oModalWindowParams["title"];
+        }
+        else if (oModalWindowParams["widget_type"] == "Pop-up") {
+            // Scrollbar sur l'iframe.
+            document.querySelector("body").style.overflow = "auto";
+        }
+        //
+        ajaxNativeRequest({"url": "../../../../conf/properties.json",
+            "success": function(data){
+                // Sauve les properties du client.
+                window["oClientProperties"] = JSON.parse(data);
+                // Surcharge le paramètre "web_server_name".
+                window["oClientProperties"]["web_server_name"] = oModalWindowParams["web_server_name"];
+                // Charge les fichiers css.
+                var aCssFiles = [
+                    "../../../../less/main.less",
+                    "../../../../modules/gtf/less/widget.less",
+                    "../../../../css/lib/bootstrap/css/bootstrap.min.css",
+                    "../../../../css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css",
+                    "../../../../css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css",
+                    "../../../../css/lib/bootstrap-checkbox/build.css",
+                    "../../../../css/lib/bootstrap-checkbox/font-awesome.css",
+                    "../../../../css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css",
+                    "../../../../css/lib/openlayers/ol.css",
+                    "../../../../css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css"
+                ];
+                loadExternalCss(aCssFiles);
+                // Charge les fichiers js.
+                var aJsFiles = [
+                    //"../../../../conf/node_modules/google-closure-library/closure/goog/base.js",
+                    "../../../../javascript/externs/jquery/jquery-1.11.3.min.js",
+                    "../../../../javascript/externs/underscore-min.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js",
+                    "../../../../javascript/externs/jquery/plugins/bootbox/bootbox.min.js",
+                    "../../../../javascript/externs/jquery/plugins/notify/notify.js",
+                    "../../../../javascript/externs/angular/angular.min.js",
+                    "../../../../javascript/externs/angular/modules/angular-translate/angular-translate.min.js",
+                    "../../../../javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js",
+                    "../../../../javascript/externs/angular-bind-notifier/bindNotifier.js",
+                    "../../../../javascript/externs/bootstrap/bootstrap.min.js",
+                    "../../../../javascript/externs/moment/moment.min.js",
+                    "../../../../javascript/externs/moment/min/moment-with-locales.min.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js",
+                    "../../../../javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js",
+                    "https://www.google.com/recaptcha/api.js?render=explicit"
+                ];
+                // Mode "debug" : charge tous les fichiers angular sinon le fichier js compilé par closure.
+                if (sessionStorage["debug"] == "true") {
+                    aJsFiles = aJsFiles.concat([
+                        "../../../../javascript/app/app.js",
+                        "../../../../javascript/app/services/mainSrvc.js",
+                        "../../../../javascript/app/services/formSrvc.js",
+                        "../../../../modules/gtf/javascript/widget/widgetMod.js",
+                        "../../../../javascript/externs/formReader/formReader.js",
+                        "../../../../javascript/externs/formReader/formReaderSrvc.js",
+                        "../../../../javascript/app/controllers/htmlFormCtrl.js",
+                        "../../../../javascript/externs/formReader/formReaderCtrl.js",
+                        "../../../../javascript/app/directives/htmlFormDrtv.js",
+                        "../../../../javascript/externs/formReader/formReaderDrtv.js",
+                        "../../../../modules/gtf/javascript/widget/script_widget.js"
+                    ]);
+                }
+                else
+                    aJsFiles.push("../../../../javascript/widget.min.js");
+                //
+                loadExternalJs(aJsFiles, {
+                    "async": false,
+                    //"scriptInBody": true,
+                    "callback": function () {
+                        // Bootstrap l'application.
+                        angular.bootstrap(document, ['vitisApp']);
+                        // Traitement postérieur au bootstrap de l'appli.
+                        vitisApp.afterBootstrap();
+                        // Sauve les fonctions dans le scope.
+                        angular.element(vitisApp.appHtmlFormDrtv).scope().widget = widget;
+                        // Affiche la fenêtre modale.
+                        widget.initWidget();
+                    }
+                });
+            }});
+    }
+}, false);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/widget/script_widget.js b/src/module_gtf/module/javascript/widget/script_widget.js
new file mode 100755
index 0000000000000000000000000000000000000000..80fe1b777052202c006f3249572fa7332093e269
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/script_widget.js
@@ -0,0 +1,735 @@
+'use strict';
+
+// Google closure
+goog.provide("vitis.gtf.widget.script");
+goog.require('goog.object');
+
+/**
+ * initWidget function.
+ * Affiche la fenêtre modale et le formulaire du projet FME.
+ * @export
+ **/
+widget.initWidget = function () {
+    // Injection des services.
+    var $log = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$log"]);
+    var $compile = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$compile"]);
+    var $templateRequest = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$templateRequest"]);
+    var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]);
+    var envSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["envSrvc"]);
+    var propertiesSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["propertiesSrvc"]);
+    var sessionSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["sessionSrvc"]);
+    var formSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["formSrvc"]);
+    //
+    $log.info("initWidget");
+    // Sauve toutes les properties.
+    var i = 0;
+    var aKeys = Object.keys(oClientProperties);
+    while (i < aKeys.length) {
+            propertiesSrvc[aKeys[i]] = oClientProperties[aKeys[i]];
+            i++;
+    }
+    // Charge les properties stockées côté serveur.
+    propertiesSrvc["getFromServer"]().then(function() {
+        // Initialisation.
+        sessionSrvc["token"] = oModalWindowParams["token"];
+        sessionStorage["application"] = oModalWindowParams["application"];
+        sessionStorage["session_token"] = oModalWindowParams["token"];
+        if (oClientProperties['environment'] != "")
+            sessionStorage['appEnv'] = sessionStorage['application'] + "_" + oClientProperties['environment'];
+        else
+            sessionStorage['appEnv'] = sessionStorage['application'];
+        
+        // Paramètres de l'onglet d'importation.
+        envSrvc["oSelectedObject"] = {
+            "actions": [],
+            "columns": [],
+            "mode_id": "widget",
+            "name": "widget",
+            "ressource_id": null,
+            "sections": ""
+        };
+        envSrvc["sMode"] = "insert";
+        // Nom + url du formulaire.
+        var scope = angular.element(vitisApp.appHtmlFormDrtv).scope();
+        scope["sFormDefinitionName"] = "widget_form";
+        envSrvc["sFormDefinitionName"] = scope["sFormDefinitionName"];
+        // 
+        delete envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
+        // Chargement de l'id du projet FME à partir de sa clé.
+        var oUrlParams = {
+            //"filter": "key='" + oModalWindowParams["key"] + "'"
+            "filter": {
+                "relation": "AND",
+                "operators": [{
+                    "column": "key",
+                    "compare_operator": "=",
+                    "value": oModalWindowParams["key"]
+                }]
+            },
+        };
+        ajaxRequest({
+            "method": "GET",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces",
+            "params": oUrlParams,
+            "scope": scope,
+            "disconnect": false,
+            "success": function(response) {
+                if (parseInt(response["data"]["status"]) == 1) {
+                    // Sauve i'id du projet FME.
+                    oModalWindowParams["workspace_id"] = response["data"]["workspaces"][0]["workspace_id"];
+                    // Paramètres pour la requête ajax du form.
+                    scope["oFormRequestParams"] = {
+                        "sUrl": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/workspaces/" + oModalWindowParams["workspace_id"],
+                        "sResourceId": "gtf/workspaces",
+                        "oParams": {
+                            "form": "Published"
+                        },
+                        "sExtractData": "widget.extractSubformData(oFormRequestParams)"
+                    };
+                    // Pas de données de form. à charger.
+                    scope["bLoadFormValues"] = false;
+                    var sFormContainerId = "widget_form_container";
+
+                    // Largeur et hauteur du widget.
+                    var sWidth = oModalWindowParams["width"];
+                    if (!isNaN(sWidth))
+                        sWidth += "px";
+                    var sHeight = oModalWindowParams["height"];
+                    if (!isNaN(sHeight))
+                        sHeight += "px";
+
+                   if (oModalWindowParams["widget_type"] == "Embedded" || oModalWindowParams["widget_type"] == "File") {
+                        // Largeur et hauteur du widget.
+                        document.querySelector(".widget").parentNode.style.width = "100%";
+                        document.querySelector(".widget").parentNode.style.height = "100%";
+                        document.querySelector(".widget").parentNode.style.padding = 0;
+                        document.querySelector(".widget").style.width = "100%";
+                        document.querySelector(".widget").style.height = "100%";
+                        // Hauteur du "body".
+                        document.querySelector(".widget .panel-body").style.height = parseInt(document.querySelector(".widget").clientHeight) - parseInt(document.querySelector(".widget .panel-heading").clientHeight) - 3 + "px";
+                    }
+                    // Création du captcha.
+                    if (oModalWindowParams["captcha"] == "enable") {
+                        var clearListener2 = scope.$root.$on('endFormNgRepeat', function(event) {
+                            // Supprime le "listener".
+                            clearListener2();
+                            // Création du conteneur.
+                            var oCaptcha = document.createElement("div");
+                            oCaptcha["id"] = "widget_captcha";
+                            var oLastFormRow = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] .form-row:last-child");
+                            oLastFormRow.parentNode.insertBefore(oCaptcha, oLastFormRow);
+                            // reCAPTCHA (google).
+                            scope["iCaptchaWidgetId"] = grecaptcha["render"]("widget_captcha", {
+                                "sitekey": oModalWindowParams["captcha_key"],
+                                "data-type": "image"
+                            });
+                        });
+                    }
+                    // Compile le template de formulaire.
+                    var sTemplateUrl = oModalWindowParams["client_url"] + '/templates/formTpl.html';
+                    $templateRequest(sTemplateUrl).then(function (sTemplate) {
+                        $compile($("#" + sFormContainerId).html(sTemplate).contents())(scope);
+                    });
+                    $log.info('compileObjectTemplate : ' + sTemplateUrl);
+                    // Ajoute un bouton submit et un "event" au formulaire.
+                    var clearFormDefListener = scope.$root.$on('formDefinitionLoaded', function (event, sFormDefinitionName) {
+                        // Supprime le "listener".
+                        clearFormDefListener();
+                        // Sauve les valeurs d'origine.
+                        scope["oOriginalFormValues"] = angular.copy(envSrvc["oFormValues"][sFormDefinitionName]);
+                        // Vérification avant l'envoi du formulaire
+                        envSrvc["oFormDefinition"][sFormDefinitionName]["beforeEvent"] = function () {
+                            var deferred = $q.defer();
+                            var promise = deferred.promise;
+                            var sErrorMessage;
+                            var oFormValues = envSrvc["oFormValues"][sFormDefinitionName];
+                            formSrvc["getAllFormElementDefinition"](sFormDefinitionName).forEach(function(oElementDefinition) {
+                                if (oElementDefinition["type"] == "upload") {
+                                    // Vérification du fichier de ressources complémentaires.
+                                    if (typeof(oFormValues[oElementDefinition["name"]]) == "object" && typeof(oFormValues[oElementDefinition["name"]]["aFiles"]) != "undefined" && oFormValues[oElementDefinition["name"]]["aFiles"].length > 0) {
+                                        var sFileExtension = oFormValues[oElementDefinition["name"]]["aFiles"][0]["name"].split(".").pop();
+                                        var sForbiddenExtension = propertiesSrvc["forbidden_extension"].replace(/[^a-zA-Z0-9\|]+/g, "");
+                                        if (sForbiddenExtension.split("|").indexOf(sFileExtension) == -1) {
+                                            // Taille maxi du fichier.
+                                            if (oFormValues[oElementDefinition["name"]]["aFiles"][0]["size"] > parseInt(propertiesSrvc["max_upload_file_size"]))
+                                                sErrorMessage = "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+                                        }
+                                        else
+                                            sErrorMessage = "ERROR_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY";
+                                    }
+                                    if (typeof(sErrorMessage) != "undefined") {
+                                        deferred.reject();
+                                    }
+                                }
+                            });
+                            // Affichage de la fenêtre modale d'erreur.
+                            if (typeof(sErrorMessage) != "undefined") {
+                                var oOptions = {
+                                    "className": "modal-danger",
+                                    "message": sErrorMessage
+                                };
+                                widget["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+                            }
+                            else
+                                deferred.resolve();
+                            return promise;
+                        };
+                        // Fonction à appeler après l'envoi du form.
+                        envSrvc["oFormDefinition"][sFormDefinitionName]["event"] = "widget.sendSubForm()";
+                        // Adresse email.
+                        if (oModalWindowParams["notification"] != "none") {
+                            var sEmailLabel, bEmailRequired;
+                            if (oModalWindowParams["notification"] == "optional") {
+                                sEmailLabel = "FORM_WIDGET_NOTIFICATIONS_OPTIONAL_PUBLICATION_WORKSPACE_EDIT_WIDGET";
+                                bEmailRequired = false;
+                            }
+                            else {
+                                sEmailLabel = "FORM_WIDGET_NOTIFICATIONS_NEEDED_PUBLICATION_WORKSPACE_EDIT_WIDGET";
+                                bEmailRequired = true;
+                            }
+                            envSrvc["oFormDefinition"][sFormDefinitionName]["rows"].push(
+                            {
+                                "fields":[
+                                    {
+                                        "type":"text",
+                                        "name":"email_notifications",
+                                        "label":sEmailLabel,
+                                        "required":bEmailRequired,
+                                        "nb_cols":12,
+                                        "pattern" : "^(([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})(\\s*(\n)\\s*))*([A-Za-z0-9_\\+\\-]+\\.)*[A-Za-z0-9_\\+\\-]+@([A-Za-z0-9_\\+\\-]+\\.)+([A-Za-z]{2,4})$",
+                                        "visibleAllTabs": true
+                                    }
+                                ]
+                            });
+                        }
+                        // Bouton submit.
+                        envSrvc["oFormDefinition"][sFormDefinitionName]["rows"].push(
+                        {
+                            "fields": [
+                                {
+                                    "type": "button",
+                                    "class": "btn-ungroup btn-group-sm",
+                                    "nb_cols": 12,
+                                    "buttons": [
+                                        {
+                                            "type": "submit",
+                                            "name": "form_submit",
+                                            "label": "FORM_BTN_CREATE_ORDER_MY_WORK_GTF_USER_ORDER",
+                                            "class": "btn-primary",
+                                            "visibleAllTabs": true
+                                        }
+                                    ]
+                                }
+                            ]
+                        });
+                    });
+                }
+            }
+        });
+    });
+};
+
+/**
+ * extractSubformData function.
+ * Extrait les données d'un formulaire subform retourné par un web service.
+ * @param {object} oFormRequestParams Paramètres et données retournés par le web service (demande du subform).
+ * @export
+ **/
+widget.extractSubformData = function (oFormRequestParams) {
+    // Injection des services.
+    var $log = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$log"]);
+    var envSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["envSrvc"]);
+    //
+    $log.info("extractSubformData");
+    var aResourceId = envSrvc["explodeWebServiceResourceId"](oFormRequestParams["sResourceId"]);
+    return oFormRequestParams["oData"][aResourceId[1]][0]["json_form"][0];
+};
+
+/**
+ * sendSubForm function.
+ * Envoi le formulaire "subform" avec les paramètres du workspace.
+ * @export
+ **/
+widget.sendSubForm = function () {
+    // Injection des services.
+    var $log = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$log"]);
+    var $translate = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$translate"]);
+    var envSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["envSrvc"]);
+    var formSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["formSrvc"]);
+    var propertiesSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["propertiesSrvc"]);
+    //var sessionSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["sessionSrvc"]);
+    var externFunctionSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["externFunctionSrvc"]);
+    //
+    $log.info("sendSubForm");
+    var scope = angular.element(vitisApp.appHtmlFormDrtv).scope();
+    var sFormElementName = envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"];
+    var formScope = angular.element("form[name='" + sFormElementName + "']").scope();
+    var bFormValid = true;
+    // Vérification du captcha.
+    var sCaptchaResponse = "";
+    if (oModalWindowParams["captcha"] == "enable") {
+        document.getElementById("widget_captcha").className = "";
+        sCaptchaResponse = grecaptcha["getResponse"](scope["iCaptchaWidgetId"]);
+        if (sCaptchaResponse == "") {
+            bFormValid = false;
+            document.getElementById("widget_captcha").className = "widget-captcha-error";
+        }
+    }
+    if (typeof(formScope[sFormElementName]["appFormSubmitted"]) == "undefined")
+        formScope[sFormElementName]["appFormSubmitted"] = false;
+    // Le formulaire est valide ?
+    if (formScope[sFormElementName].$valid && bFormValid && !formScope[sFormElementName]["appFormSubmitted"]) {
+        formScope[sFormElementName]["appFormSubmitted"] = true;
+        showAjaxLoader();
+        // Paramètres de la demande.
+        var oWebServiceParams = {
+            "wk_params": widget.formatSubForm(scope),
+            "priority_id": 1,
+            "workspace_id": oModalWindowParams["workspace_id"],
+            "email_option_id": 1,
+            "captcha_response": sCaptchaResponse
+        };
+        // Adresse email.
+        var sEmailNotifications = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["email_notifications"];
+        if (goog.isDefAndNotNull(sEmailNotifications))
+            oWebServiceParams["email_notifications"] = sEmailNotifications;
+        // Répertoire d'upload
+        if (typeof(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"]) != "undefined")
+            oWebServiceParams["upload_directory"] = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"];
+        // Création du formData.
+        var oFormData = formSrvc["getFormData"](envSrvc["sFormDefinitionName"]);
+        var aFormDataKeys = Object.keys(oWebServiceParams);
+        for (var i = 0; i < aFormDataKeys.length; i++) {
+            oFormData.append(aFormDataKeys[i], oWebServiceParams[aFormDataKeys[i]]);
+        }        
+        // Envoi du fichier.
+        ajaxRequest({
+            "method": "POST",
+            "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/gtf/userorders",
+            "data": oFormData,
+            "scope": scope,
+            "disconnect": false,
+            "success": function(response) {
+                hideAjaxLoader();
+                if (response["data"]["status"] == 1) {
+                    // Affichage du message de succés.
+                    $translate("FORM_VALIDATION_OK").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                        formScope[sFormElementName]["appFormSubmitted"] = false;
+                        // Recharge le widget.
+                        // Vidage du formulaire.
+                        //angular.element("#widget_form_container").empty();
+                        /*
+                            // Reset du formulaire et du captcha.
+                            document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").reset();
+                            if (oModalWindowParams["captcha"] == "enable")
+                                grecaptcha["reset"](scope["iCaptchaWidgetId"]);
+                        */
+                        //}
+                    });
+                } else {
+                    // Affichage du message d'erreur.
+                    if (typeof (response["data"]["errorMessage"]) != "undefined" && response["data"]["errorMessage"] != null)
+                        var sText = response["data"]["errorMessage"];
+                    // Paramètres de la fenêtre modale.
+                    var oOptions = {
+                        "className": "modal-danger",
+                        "message": sText
+                    };
+                    // Affichage de la fenêtre modale.
+                    externFunctionSrvc["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions);
+                    // Le formulaire n'a pas été envoyé.
+                    formScope[sFormElementName]["appFormSubmitted"] = false;
+                }
+            }
+        });
+    }
+};
+
+/**
+ * sendSubForm function.
+ * Envoi le formulaire "subform" avec les paramètres du workspace.
+ * @param {angular.$scope} scope Scope d'angular.
+ * @return {string}
+ * @export
+ **/
+widget.formatSubForm = function (scope) {
+    // Injection des services.
+    var envSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["envSrvc"]);
+    var formSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["formSrvc"]);
+    // Valeurs des champs cachés du form. de la demande.
+    var oWkParams = {};
+    //var aSerializedSubForm = angular.element("#double_form_right_section_" + envSrvc["oSelectedObject"]["name"] + " form").serializeArray();
+    //mise en forme pour fme 
+    /***********************************************************************/
+    var encoderFME = function (str) {
+
+        if (!goog.isString(str))
+            return str;
+        // table de correspondance
+        var caracInGTF = [" ", "=", "\r\n", "(", ")", "$", "&", "@", "°", "'", ",", "\"", "{", "}", "[", "]", "|", ";", "/", "\\", "é", "à"];
+        var caracForFME = ["<space>", "<GTF_EQUAL>", "<lf>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<GTF_PIPE>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>"];
+        //variables parcours de chaine
+        var result = str;
+        var istr = 0;
+        var iresult = 0;
+        // remplacement des <> par parcours de chaine
+        // avec vérification des mots clef
+        // et gestion des caractère unicode
+        while (istr < str.length) {
+            if (str.charAt(istr) === "<") {
+
+                var j = 0;
+                var find = false;
+                while (j < caracForFME.length && !find) {
+                    var clipper = result.substr(iresult, caracForFME[j].length);
+                    if (clipper === caracForFME[j]) {
+                        istr += caracForFME[j].length;
+                        iresult += caracForFME[j].length;
+                        find = true;
+                    }
+                    j++;
+                }
+                /*****************************/
+                //GTF_QUOTE et GTF BACKSLASH
+                /* var quote = "<GTF_QUOTE>";
+                 var backslash = "<GTF_BACKSLASH>";
+
+                 var clipper = result.substr(iresult, quote.length);
+                 if (clipper === quote) {
+                 istr += quote.length;
+                 iresult += quote.length;
+                 find = true;
+                 }
+
+                 clipper = result.substr(iresult, backslash.length);
+                 console.error(result,clipper, iresult);
+                 if (clipper === backslash) {
+                 istr += backslash.length;
+                 iresult += backslash.length;
+                 find = true;
+                 }
+                 /*****************************/
+
+                if (!find) {
+                    var part1 = result.substr(0, iresult);
+                    var part2 = result.substr(iresult + 1, result.length - 1);
+                    result = part1 + "<lt>" + part2;
+                    iresult += 4;
+                    istr += 1;
+                }
+            } else if (str.charAt(istr) === ">") {
+                var part1 = result.substr(0, iresult);
+                var part2 = result.substr(iresult + 1, result.length - 1);
+                result = part1 + "<gt>" + part2;
+                istr += 1;
+                iresult += 4;
+            } else {
+                //unicode
+                var code = str.charCodeAt(istr);
+                if (code > 127) {
+                    var part1 = result.substr(0, iresult);
+                    var part2 = result.substr(iresult + 1, result.length - 1);
+                    var charCode = (+code).toString(16);
+
+                    while (charCode.length < 4) {
+                        charCode = "0" + charCode;
+                    }
+
+                    result = part1 + "<u" + charCode + ">" + part2;
+                    istr += 1;
+                    iresult += 7;
+                } else {
+                    istr += 1;
+                    iresult += 1;
+                }
+                /*******************************************/
+            }
+        }
+
+        for (var j = 0; j < caracInGTF.length; j++) {
+            while (result.indexOf(caracInGTF[j]) !== - 1)
+                result = result.replace(caracInGTF[j], caracForFME[j]);
+        }
+
+        return result;
+    };
+    
+    var oFormValues = goog.object.clone(scope["oFormValues"][scope["sFormDefinitionName"]]);
+    //for (var i = 0; i < scope["oFormDefinition"][scope["sFormDefinitionName"]]["rows"].length; i++) {
+    scope["oFormDefinition"][scope["sFormDefinitionName"]]["rows"].forEach(function(oRow, iRowIndex, oRows) {
+        oRow["fields"].forEach(function(oField, iFieldIndex, oFields) {
+        //for (var j = 0; j < oRow["fields"].length; j++) {
+            var val = oField;
+            if (goog.isDef(oFormValues[val["name"]])) {
+                switch (val["type"]) {
+                    case "datetime":
+                        var tmp = angular.copy(oFormValues[val["name"]]);
+                        tmp = tmp.split(" ");
+                        // si il y a un espace alors mise en forme sinon c'est une valeur par défaut à ne pas retoucher
+                        if (tmp.length === 2) {
+                            var date = tmp[0];
+                            var time = tmp[1];
+                            //traitement date
+                            date = date.split("/");
+                            //traitement time
+                            time = time.split(":");
+                            if (time.length === 2) {
+                                time.push("00");
+                            }
+                            //reconstitution
+                            oFormValues[val["name"]] = date[2] + date[1] + date[0] + time[0] + time[1] + time[2];
+                        }
+                        break;
+                    case "color_picker":
+                        var tmp = angular.copy(oFormValues[val["name"]]);
+                        if (tmp.indexOf('(') !== -1 && tmp.indexOf(')') !== -1 && tmp.indexOf(',') !== -1) {
+                            tmp = tmp.split("(");
+                            tmp = tmp[1].split(")");
+                            tmp = tmp[0].split(",");
+                            var R = (parseFloat(tmp[0]) / 255).toFixed(6);
+                            var G = (parseFloat(tmp[1]) / 255).toFixed(6);
+                            var B = (parseFloat(tmp[2]) / 255).toFixed(6);
+                            // alpha non pris en charge par fme
+                            // fme ne prend que des % de couleur
+                            oFormValues[val["name"]] = R + "," + G + "," + B;
+                        } else {
+                            console.error('ColorPicker value not acceptable: ', tmp);
+                            oFormValues[val["name"]] = '1,1,1';
+                        }
+                        break;
+                    case "list":
+                        var tmp = angular.copy(oFormValues[val["name"]]["selectedOption"]);
+                        if (goog.isArray(tmp)) {
+                            oFormValues[val["name"]] = "";
+                            if (tmp.length > 0) {
+                                for (var choice = 0; choice < tmp.length - 1; choice++) {
+                                    if (!goog.isString(tmp[choice]["value"])) {
+                                        tmp[choice]["value"] = tmp[choice]["value"].toString();
+                                    }
+                                    if (tmp[choice]["value"].indexOf(" ") !== -1) {
+                                        oFormValues[val["name"]] += ("\"" + tmp[choice]["value"] + "\"" + " ");
+                                    } else {
+                                        oFormValues[val["name"]] += (tmp[choice]["value"] + " ");
+                                    }
+                                }
+                                if (!goog.isString(tmp[tmp.length - 1]["value"])) {
+                                    tmp[tmp.length - 1]["value"] = tmp[tmp.length - 1]["value"].toString();
+                                }
+                                if (tmp[tmp.length - 1]["value"].indexOf(" ") !== -1) {
+                                    oFormValues[val["name"]] += tmp[tmp.length - 1]["value"];
+                                } else {
+                                    oFormValues[val["name"]] += (tmp[tmp.length - 1]["value"]);
+                                }
+                            }
+                        } else if (goog.isObject(tmp)) {
+                            if (typeof (tmp["value"]) != "undefined")
+                                oFormValues[val["name"]] = tmp["value"].replace("|", " ");
+                        }
+
+                        oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                        break;
+                    case "select":
+                        var tmp = angular.copy(oFormValues[val["name"]]["selectedOption"]);
+                        if (goog.isObject(tmp)) {
+                            oFormValues[val["name"]] = tmp["value"];
+                        } else {
+                            oFormValues[val["name"]] = tmp;
+                        }
+                        oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                        break;
+                    case "double_select":
+                        var oSelectedOptions = oFormValues[val["name"]];
+                        var aSelectedOptions = [];
+                        oSelectedOptions["options"].forEach(function (oOption) {
+                            aSelectedOptions.push(oOption["value"]);
+                        });
+                        oFormValues[val["name"]] = encoderFME(aSelectedOptions.join(" "));
+                        delete oFormValues[val["name_from"]];
+                        break;
+                    case "upload":
+                        if (goog.isDefAndNotNull(oFormValues[val["name"]])) {
+                            var tmp = oFormValues[val["name"]];
+                            // Répertoire côté serveur pour tous les fichiers uploadés.
+                            var sDirectory;
+                            if (typeof(envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"]) == "undefined") {
+                                sDirectory = new Date().getTime() + parseInt(Math.random() * 100000);
+                                envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"] = sDirectory;
+                            }
+                            else
+                                sDirectory = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"];
+
+                            // Fichier sélectionné.
+                            if (typeof (tmp["aFiles"]) != "undefined" && tmp["aFiles"].length > 0) {
+                                var aUploadFiles = [];
+                                for (var iFileIndex = 0; iFileIndex < tmp["aFiles"].length; iFileIndex++) {
+                                    aUploadFiles.push(sDirectory + "/" + tmp["aFiles"][iFileIndex]["name"]);
+                                }
+                                oFormValues[val["name"]] = aUploadFiles.join(",");
+                            }
+                            else {
+                                if (typeof (scope["oOriginalFormValues"][val["name"]]) != "undefined")
+                                    oFormValues[val["name"]] = scope["oOriginalFormValues"][val["name"]];
+                                else
+                                    oFormValues[val["name"]] = "";
+                            }
+                        } else {
+                            if (typeof (scope["oOriginalFormValues"][val["name"]]) != "undefined")
+                                oFormValues[val["name"]] = scope["oOriginalFormValues"][val["name"]];
+                            else
+                                oFormValues[val["name"]] = "";
+                        }
+                        break;
+                    case "textarea":
+                        oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                        break;
+                    case "text":
+                        oFormValues[val["name"]] = encoderFME(oFormValues[val["name"]]);
+                        break;
+                    case "treeview":
+                        oFormValues[val["name"]] = String(oFormValues[val["name"]]).replace(/\|/g, "<GTF_PIPE>");
+                        break;
+                }
+            }
+            //}
+        });
+    });
+    /*************************************************************************/
+    // Dédoublonnage (select multiple).
+    //var i = 0;
+    //while (i < aSerializedSubForm.length) {
+    //    if (typeof (oWkParams[aSerializedSubForm[i]["name"]]) == "undefined")
+    //        oWkParams[aSerializedSubForm[i]["name"]] = aSerializedSubForm[i]["value"];
+    //    else
+    //        oWkParams[aSerializedSubForm[i]["name"]] += "," + aSerializedSubForm[i]["value"];
+    //    i++;
+    //}
+    // Création du paramètre wk_params.
+    var aKeys = Object.keys(oFormValues);
+    var aWkParams = [];
+    i = 0;
+    while (i < aKeys.length) {
+        if (aKeys[i] != "email_notifications" && aKeys[i] != "upload_directory")
+            aWkParams.push(aKeys[i] + "=" + oFormValues[aKeys[i]]);
+        i++;
+    }
+    var sWkParams = aWkParams.join("|");
+    // Fichiers à uploader ?
+    //var oFileInput = document.querySelector("form[name='" + envSrvc["oFormDefinition"][scope["sFormDefinitionName"]]["name"] + "']").querySelectorAll("input[type='file']");
+
+    //i = 0;
+    //while (i < oFileInput.length) {
+    //    var sDirectory = new Date().getTime() + parseInt(Math.random() * 100000);
+    //    envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["upload_directory"] = sDirectory;
+    // Si un fichier est sélectionné -> ajoute la définition et les valeurs du champ sur le formulaire de la demande.
+    //    if (oFileInput[i]["files"].length > 0) {
+    //        envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["rows"].push({"fields": [formSrvc["getFormElementDefinition"](oFileInput[i]["name"], scope["sFormDefinitionName"])]});
+    //        envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]][oFileInput[i]["name"]] = envSrvc["oFormValues"][scope["sFormDefinitionName"]][oFileInput[i]["name"]];
+    //        sWkParams += "|" + oFileInput[i]["name"] + "=" + sDirectory + "/" + oFileInput[i]["files"][0]["name"];
+    //    }
+    //    i++;
+    //}
+    return sWkParams;
+};
+
+/**
+ * afterBootstrap function
+ * Traitement à exécuter après le bootstrapping de l'application. 
+ * @export
+ */
+vitisApp.afterBootstrap = function () {
+    /**
+     * getPropertie function.
+     * Retourne la valeur d'une "propertie".
+     * @param {string} sPropertieName Nom de la "propertie".
+     * @return {}
+     * @expose
+     **/
+    angular.element(vitisApp.appHtmlFormDrtv).scope().getPropertie = function (sPropertieName) {
+        // Injection des services.
+        var $log = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$log"]);
+        var propertiesSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["propertiesSrvc"]);
+        // Edition d'un enregistrement.
+        $log.info("getPropertie : " + sPropertieName);
+        var sValue;
+        if (sPropertieName.indexOf(".") != -1)
+            eval("sValue = propertiesSrvc." + sPropertieName);
+        else
+            sValue = propertiesSrvc[sPropertieName];
+        return sValue;
+    };
+    
+    /**
+     * getProj function.
+     * Tous les types de projections supportés pour une carte vMap ?
+     * @return {}
+     * @expose
+     **/
+    angular.element(vitisApp.appHtmlFormDrtv).scope().getProj = function () {
+        var appMainScope = angular.element(vitisApp.appHtmlFormDrtv).scope();
+        // Get fichier de langue
+            ajaxRequest({
+                "method": "GET",
+                "url": "../../../vitis/data/proj.json",
+                "scope": appMainScope,
+                "disconnect": false,
+                "success": function(response) {
+                    // Utilisé par les autres cpmposants
+                    appMainScope['proj'] = response["data"];
+                },
+                "error": function (response) {
+                    console['error']('ERROR : (AJAX request : ' + response["status"] + ' ) On loading Projections, contact Veremes please');
+                }
+            });
+    };
+    angular.element(vitisApp.appHtmlFormDrtv).scope().getProj();
+};
+
+/**
+ * modalWindow function.
+ * Affiche une fenêtre modale.
+ * @param {string} sType Type de fenêtre (alert, confirm...).
+ * @param {string} sTitle Titre de la fenêtre.
+ * @param {object} oOptions Paramètres du composant et autres (appDuration, appBootstrapStyle).
+ * @return {promise}
+ * @export
+ **/
+widget.modalWindow = function (sType, sTitle, oOptions) {
+    // Injection des services.
+    var $log = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$log"]);
+    var externFunctionSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["externFunctionSrvc"]);
+    // 
+    $log.info("modalWindow");
+    return externFunctionSrvc["modalWindow"](sType, sTitle, oOptions);
+};
+/**
+ * isCaptchaValid function.
+ * Affiche une fenêtre modale.
+ * @param {integer} iCaptchaWidgetId Id du captcha à vérifier.
+ * @return {boolean}
+ * @export
+ **/
+/*
+widget.isCaptchaValid = function (iCaptchaWidgetId) {
+    // Injection des services.
+    var $log = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$log"]);
+    // 
+    $log.info("isCaptchaValid");
+    var bReturn = false;
+    var sCaptchaResponse = grecaptcha["getResponse"](iCaptchaWidgetId);
+    if (sCaptchaResponse != "")
+        bReturn = true;
+    return bReturn;
+};
+*/
+/**
+ * appMain directive.
+ * Directive utilisée dans sle formReader.
+ * @export
+ * @ngInject
+ **/
+vitisApp.appMainDrtv = function () {
+    return {
+    }
+};
+vitisApp.module.directive("appMain", vitisApp.appMainDrtv);
\ No newline at end of file
diff --git a/src/module_gtf/module/javascript/widget/widgetMod.js b/src/module_gtf/module/javascript/widget/widgetMod.js
new file mode 100755
index 0000000000000000000000000000000000000000..0ba42828437f919e6d1f1df9e32b6d07656e2035
--- /dev/null
+++ b/src/module_gtf/module/javascript/widget/widgetMod.js
@@ -0,0 +1,173 @@
+'use strict';
+
+// Google closure
+goog.provide("vitis.gtf.widget.modules.main");
+goog.require('vitis');
+goog.require("vitis.services.main");
+goog.require("vitis.services.form");
+
+/**
+ * widget Object
+ * @type {object}
+ * @export
+ */
+var widget = function(){};
+
+// Module.
+var aModuleDependencies = ["angular.bind.notifier", "pascalprecht.translate", "formReader"];
+
+vitisApp.module = angular.module("vitisApp", aModuleDependencies);
+
+// Services.
+vitisApp.module.service("sessionSrvc", vitisApp.sessionSrvc);
+vitisApp.module.service("envSrvc", vitisApp.envSrvc);
+vitisApp.module.service("modesSrvc", vitisApp.modesSrvc);
+vitisApp.module.value("userSrvc", vitisApp.userSrvc);
+vitisApp.module.service("externFunctionSrvc", vitisApp.externFunctionSrvc);
+vitisApp.module.service("propertiesSrvc", vitisApp.propertiesSrvc);
+vitisApp.module.service("formSrvc", vitisApp.formSrvc);
+
+/**
+ * Module config
+ * 
+ * @param {angular.$httpProvider} $httpProvider Angular httpProvider service.
+ * @param {angular.$logProvider} $logProvider Angular logProvider service.
+ * @param {angular.$compileProvider} $compileProvider Angular compileProvider service.
+ * @param {angular.$controllerProvider} $controllerProvider Angular controllerProvider service.
+ * @param {angular.$provide} $provide Angular provide service.
+ * @param {angular.$translateProvider} $translateProvider Angular translateProvider service.
+ * @param {angular.$translatePartialLoaderProvider} $translatePartialLoaderProvider Angular translatePartialLoaderProvider service.
+ * @param {angular.$sceDelegateProvider} $sceDelegateProvider Angular sceDelegateProvider service.
+ * @ngInject
+ **/
+vitisApp.config = function($httpProvider, $logProvider, $compileProvider, $controllerProvider, $provide, $translateProvider, $translatePartialLoaderProvider, $sceDelegateProvider) {
+        // Désactive les logs en mode "compilé".
+        if (sessionStorage["debug"] == "false") {
+            $logProvider["debugEnabled"](false);
+            $provide.decorator('$log', ['$delegate', function ($delegate) {
+                return {
+                    error: function (text) {
+                        //$delegate.error(text);
+                    },
+                    info: function (text) {
+                        //$delegate.info(text);
+                    },
+                    log: function (text) {
+                        //$delegate.info(text);
+                    },
+                    warn: function (text) {
+                        //$delegate.info(text);
+                    }
+                };
+            }]);
+        }
+        // Paramètrage du module de traduction.
+        $translateProvider["useLoader"]("$translatePartialLoader", {
+                "urlTemplate": "{part}/lang-{lang}.json"
+        });
+        // Charge le fichier du noyau.
+        $translatePartialLoaderProvider["addPart"](oModalWindowParams["client_url"] + '/lang');
+        // Charge le fichier de langue du module vitis.
+        $translatePartialLoaderProvider["addPart"](oModalWindowParams["client_url"] + '/modules/vitis/lang');
+        // Charge le fichier de langue du module GTF.
+        $translatePartialLoaderProvider["addPart"](oModalWindowParams["client_url"] + '/modules/gtf/lang');
+        // Langue par défaut.
+        $translateProvider["preferredLanguage"]('fr');
+        //
+        vitisApp["compileProvider"] = $compileProvider; // Registering a directive after app bootstrap
+        //vitisApp.routeProvider = $routeProvider;
+        //vitisApp.filterProvider = $filterProvider;
+        //vitisApp.provide = $provide;       
+		// Autorise le chargement des templates (formReader...) depuis au autre domaine (sinon erreur de cross-domain avec angular).
+		$sceDelegateProvider.resourceUrlWhitelist([
+			'self',
+			oModalWindowParams["client_url"] + "/**"]
+		);
+        // Interception des requêtes ajax d'angular.
+        $httpProvider.interceptors.push(function () {
+            return {
+                // Chargement.
+                "request": function (config) {
+                    // Paramètre "version" dans toutes les requêtes.
+                    if (config["url"].indexOf("ui-grid/") == -1) {
+                        if (typeof (config["params"]) == "undefined")
+                            config["params"] = {"vitis_version": oClientProperties['build']};
+                        else
+                            config["params"]["vitis_version"] = oClientProperties['build'];
+                    }
+                    // Affiche le loader.
+                    if (sessionStorage["ajaxLoader"] == "true")
+                        showAjaxLoader();
+                    // Maj du compteur des téléchargements en cours.
+                    var iLoadingCounter = parseInt(sessionStorage["loading_counter"]);
+                    iLoadingCounter++;
+                    sessionStorage["loading_counter"] = iLoadingCounter;
+                    return config;
+                },
+                // Chargement terminée.
+                "response": function (response) {
+                    // Erreur passé dans la réponse de la requête ?
+                    if (typeof (response["data"] == "object") && typeof (response["data"]["errorCode"]) != "undefined") {
+                        // Cache la fenêtre modale de chargement.
+                        hideAjaxLoader();
+                        //
+                        var sessionSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["sessionSrvc"]);
+                        var externFunctionSrvc = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["externFunctionSrvc"]);
+                        var oOptions = {
+                            "className": "modal-danger",
+                            "buttons": {
+                                "ok": {
+                                    label: "OK",
+                                    className: "btn-default"
+                                }
+                            },
+                            "callback": function () {
+                                //sessionSrvc["disconnect"]();
+                            }
+                        };
+                        var sTitle = "";
+                        switch(response["data"]["errorCode"]) {
+                            // Token expiré.
+                            case 15:
+                                // Paramètres de la fenêtre modale.
+                                oOptions["message"] = "EXPIRED_WIDGET_TOKEN_ERROR";
+                                sTitle = "EXPIRED_TOKEN_ERROR_TITLE";
+                                break;
+                            // Token invalide.
+                            case 16:
+                                // Paramètres de la fenêtre modale.
+                                oOptions["message"] = "INVALID_WIDGET_TOKEN_ERROR";
+                                sTitle = "INVALID_TOKEN_ERROR_TITLE";
+                                break;
+                        }
+                        // Affichage de la fenêtre modale.
+                        if (goog.isDef(oOptions["message"]))
+                            externFunctionSrvc["modalWindow"]("alert", sTitle, oOptions);
+                    } else {
+                        // Maj du compteur des téléchargements en cours.
+                        var iLoadingCounter = parseInt(sessionStorage["loading_counter"]);
+                        if (iLoadingCounter > 0)
+                            iLoadingCounter--;
+                        else
+                            iLoadingCounter = 0;
+                        sessionStorage["loading_counter"] = iLoadingCounter;
+                        // Si tous les chargements sont terminés : supprime le loader.
+                        if (iLoadingCounter == 0)
+                            hideAjaxLoader();
+                    }
+                    return response;
+                },
+                "requestError": function (rejection) {
+                    console.error("requestError", rejection);
+                    return rejection;
+                },
+                "responseError": function (rejection) {
+                    console.error("responseError", rejection);
+                    // Supprime le loader ajax.
+                    hideAjaxLoader();
+                    return rejection;
+                }
+            };
+        });
+};
+vitisApp.module.config(vitisApp.config);
\ No newline at end of file
diff --git a/src/module_gtf/module/lang/lang-en.json b/src/module_gtf/module/lang/lang-en.json
new file mode 100644
index 0000000000000000000000000000000000000000..ca2d7d11b3d4cf0efe55dc6d11a4c27137086335
--- /dev/null
+++ b/src/module_gtf/module/lang/lang-en.json
@@ -0,0 +1,574 @@
+{
+        "TITLE_MODE_GTF" : "GTF",
+        "TITLE_MODE_MY_WORK" : "My jobs",
+        "TITLE_MODE_ENGINE" : "Engines",
+        "TITLE_MODE_PUBLICATION" : "Publication",
+        "TITLE_MODE_SUPERVISION" : "Supervision",
+        "TITLE_MODE_STATISTICS" : "Statistics",
+        "TITLE_MODE_PUBLICATION_AUTHOR" : "Publication",
+        "TITLE_MODE_EXPLOITATION" : "Exploitation",
+        "TEXT_MODE_MY_WORK" : "User activities",
+        "TEXT_MODE_ENGINE" : "FME settings",
+        "TEXT_MODE_PUBLICATION" : "Publish FME workspaces",
+        "TEXT_MODE_SUPERVISION" : "Supervision",
+        "TEXT_MODE_STATISTICS" : "Production of graphs and tables",
+        "TEXT_MODE_PUBLICATION_AUTHOR" : "Publish FME workspaces",
+        "TEXT_MODE_EXPLOITATION" : "Exploitation",
+        "" : "",
+        "SECTION_UPDATE_TITLE_PUBLICATION_GTF_WORKSPACE" : "FME Project n°{{sId}}",
+        "SECTION_DISPLAY_TITLE_PUBLICATION_GTF_WORKSPACE" : "FME Project n°{{sId}}",
+        "SECTION_INSERT_TITLE_PUBLICATION_GTF_WORKSPACE" : "FME Project",
+        "SECTION_UPDATE_TITLE_PUBLICATION_GTF_EMAIL_TEMPLATE" : "Email template n°{{sId}}",
+        "SECTION_DISPLAY_TITLE_PUBLICATION_GTF_EMAIL_TEMPLATE" : "Email template n°{{sId}}",
+        "SECTION_INSERT_TITLE_PUBLICATION_GTF_EMAIL_TEMPLATE" : "Email template",
+        "SECTION_UPDATE_TITLE_EXPLOITATION_EXPLOITATION" : "Exploitation",
+        "" : "",
+        "FORM_CALCULATE_STATS" : "Calculate",
+        "FORM_TITLE_STATISTICS" : "Select parameters for the statistics",
+        "" : "",
+        "FORM_GENERATE_CODE_EMAIL_TEMPLATE" : "Generate code from the simple edition",
+        "" : "",
+        "ERROR_ACTIVATE_ORDER_SUPERVISION" : "Error while activating an order",
+        "ERROR_DESACTIVATE_ORDER_SUPERVISION" : "Error while deactivating an order",
+        "" : "",
+        "FORM_TITLE_DISPLAY_ORDER_SUPERVISION_ORDER" : "Display order",
+        "STATUS_TITLE_SUPERVISION_ORDER" : "Orders status",
+        "WAITING_BOX_TITLE_SUPERVISION_ORDER" : "Standby",
+        "ERROR_BOX_TITLE_SUPERVISION_ORDER" : "Error",
+        "TREATED_BOX_TITLE_SUPERVISION_ORDER" : "Treated",
+        "NON_TREATABLE_BOX_TITLE_SUPERVISION_ORDER" : "Critical error",
+        "PROCESSING_BOX_TITLE_SUPERVISION_ORDER" : "Processing",
+        "NON_AUTHORIZED_BOX_TITLE_SUPERVISION_ORDER" : "Not authorized",
+        "ERROR_CLEANING_ORDERS_SUPERVISION_ORDER" : "Error while cleaning orders",
+        "TITLE_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Change engine",
+        "FORM_GTF_ENGINE_ID_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Please select the engine number",
+        "FORM_BTN_SUBMIT_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "OK",
+        "ERROR_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Error while modifying the GTF engine",
+        "ERROR_NO_SELECTION_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Please select or one several orders",
+        "FORM_BTN_CLOSE_WINDOW_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Cancel",
+        "ERROR_NO_SELECTION_RESET_ORDER_SUPERVISION_ORDER" : "Please select or one several orders",
+        "ERROR_RESET_ORDER_SUPERVISION_ORDER" : "Error while resetting an order",
+        "FORM_USER_SUPERVISION_ORDER" : "Owner",
+        "FORM_TREATMENT_SUPERVISION_ORDER" : "Workspace",
+        "FORM_STATE_SUPERVISION_ORDER" : "State",
+        "FORM_DATE_SUPERVISION_ORDER" : "Order date",
+        "FORM_PRIORITY_SUPERVISION_ORDER" : "Priority",
+        "FORM_ENGINE_SUPERVISION_ORDER" : "Engine",
+        "FORM_DELETE_SUPERVISION_ORDER" : "Deleted",
+        "FORM_DELETE_YES_SUPERVISION_ORDER" : "Yes",
+        "FORM_DELETE_NO_SUPERVISION_ORDER" : "No",
+        "FORM_ID_SUPERVISION_ORDER" : "ID",
+        "FORM_OWNER_SUPERVISION_ORDER" : "Owner",
+        "FORM_WORK_DATE_SUPERVISION_ORDER" : "Processing date",
+        "FORM_NOTIFICATION_SUPERVISION_ORDER" : "Notification",
+        "FORM_URL_SUPERVISION_ORDER" : "Order URL",
+        "FORM_MINEXECDATE_SUPERVISION_ORDER" : "Planning date",
+        "CONFIRM_DELETE_ORDERS_SUPERVISION_ORDER" : "One or more orders are being executed and their processes will be deleted",
+        "ERROR_STOP_ORDER_PROCESS_NO_SELECTION_SUPERVISION_ORDER" : "Please select a running order to stop it",
+        "ERROR_STOP_ORDER_PROCESS_ONE_ORDER_ONLY_SUPERVISION_ORDER" : "You can only stop one running order at a time",
+        "ERROR_STOP_ORDER_PROCESS_NO_RUNNING_ORDER_SUPERVISION_ORDER" : "The selected order is not running",
+        "" : "",
+        "STATUS_TITLE_SUPERVISION_SUBSCRIPTION" : "Subscriptions",
+        "ENABLED_SUBSCRIPTION_BOX_TITLE_SUPERVISION_SUBSCRIPTION" : "Enabled",
+        "NON_ENABLED_SUBSCRIPTION_BOX_TITLE_SUPERVISION_SUBSCRIPTION" : "Disabled",
+        "FORM_TITLE_DISPLAY_SUBSCRIPTION_SUPERVISION_SUBSCRIPTION" : "Display subscription",
+        "FORM_ID_SUPERVISION_SUBSCRIPTION" : "ID",
+        "FORM_OWNER_SUPERVISION_SUBSCRIPTION" : "Owner",
+        "FORM_PERIOD_SUPERVISION_SUBSCRIPTION" : "Subscription period",
+        "FORM_TREATMENT_SUPERVISION_SUBSCRIPTION" : "Workspace",
+        "FORM_ENABLED_SUPERVISION_SUBSCRIPTION" : "Enabled?",
+        "FORM_ENABLED_YES_SUPERVISION_SUBSCRIPTION" : "Yes",
+        "FORM_ENABLED_NO_SUPERVISION_SUBSCRIPTION" : "No",
+        "FORM_DATE_SUPERVISION_SUBSCRIPTION" : "Order date",
+        "FORM_NOTIFICATION_SUPERVISION_SUBSCRIPTION" : "Notification",
+        "" : "",
+        "STATUS_TITLE_SUPERVISION_SURVEY" : "Surveys",
+        "ENABLED_SURVEY_BOX_TITLE_SUPERVISION_SURVEY" : "Enabled",
+        "NON_ENABLED_SURVEY_BOX_TITLE_SUPERVISION_SURVEY" : "Disabled",
+        "FORM_TITLE_DISPLAY_SURVEY_SUPERVISION_SURVEY" : "Display survey",
+        "FORM_OWNER_SUPERVISION_SURVEY" : "Owner",
+        "FORM_PERIOD_SUPERVISION_SURVEY" : "Subscription period",
+        "FORM_TREATMENT_SUPERVISION_SURVEY" : "Workspace",
+        "FORM_ENABLED_SUPERVISION_SURVEY" : "Enabled?",
+        "FORM_ENABLED_YES_SUPERVISION_SURVEY" : "Yes",
+        "FORM_ENABLED_NO_SUPERVISION_SURVEY" : "No",
+        "FORM_ID_SUPERVISION_SURVEY" : "ID",
+        "FORM_WORKSPACE_SUPERVISION_SURVEY" : "Workspace",
+        "FORM_DATE_SUPERVISION_SURVEY" : "Order date",
+        "FORM_NOTIFICATION_SUPERVISION_SURVEY" : "Notification",
+        "FORM_SURVEY_TYPE_SUPERVISION_SURVEY" : "Survey type",
+        "FORM_DIRECTORY_SUPERVISION_SURVEY" : "Directory",
+        "" : "",
+        "FORM_NAME_PUBLICATION_WORKSPACE" : "Workspace name",
+        "FORM_CATEGORY_PUBLICATION_WORKSPACE" : "Category",
+        "FORM_FMW_FILE_PUBLICATION_WORKSPACE" : "fmw file",
+        "FORM_OWNER_PUBLICATION_WORKSPACE" : "Owner",
+        "FORM_BUILD_PUBLICATION_WORKSPACE" : "FME version",
+        "FORM_TAG_PUBLICATION_WORKSPACE" : "Tag",
+        "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE" : "Subscription available",
+        "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE" : "Yes",
+        "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE" : "No",
+        "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE" : "Survey available",
+        "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE" : "Yes",
+        "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE" : "No",
+        "FORM_ID_PUBLICATION_WORKSPACE" : "ID",
+        "FORM_KEY_PUBLICATION_WORKSPACE" : "Workspace key",
+        "FORM_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE" : "Identifiant global du projet. Sa valeur est conservée en cas d'installation du projet sur un nouveau serveur contrairement à l'identifiant système ID",
+        "FORM_CREATE_DATE_PUBLICATION_WORKSPACE" : "Creation date",
+        "FORM_ADDITIONNAL_RESOURCES_PUBLICATION_WORKSPACE" : "Additionnal resources",
+        "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE" : "Email templates",
+        "FORM_LOCKED_PUBLICATION_WORKSPACE" : "Locked",
+        "FORM_LOCKED_YES_PUBLICATION_WORKSPACE" : "Yes",
+        "FORM_LOCKED_NO_PUBLICATION_WORKSPACE" : "No",
+        "FORM_FORM_PUBLICATION_WORKSPACE" : "Form",
+        "FORM_TITLE_PUBLICATION_WORKSPACE" : "FME Project {{::name}}",
+        "FORM_CUSTOM_FORM_PUBLICATION_WORKSPACE" : "Custom form",
+        "FORM_DEFAULT_FORM_PUBLICATION_WORKSPACE" : "Default form",
+        "FORM_MISSING_FORM_PUBLICATION_WORKSPACE" : "Missing form",
+        "FORM_WORKSPACE_NAME_EXISTS_PUBLICATION_WORKSPACE" : "This name is already used by another workspace",
+        "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE" : "fmw file of the workspace",
+        "FORM_DATAENCRYPT_PUBLICATION_WORKSPACE" : "Data encryption",
+        "FORM_USEPERSONALDATA_PUBLICATION_WORKSPACE" : "Use of personal data",
+        "FORM_UNITCOST_PUBLICATION_WORKSPACE": "Unit cost",
+        "FORM_COSTPERSECOND_PUBLICATION_WORKSPACE": "Cost per second",
+        "" : "",
+        "FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "ID",
+        "FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Project title",
+        "FORM_TITLE_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Nom du projet FME tel qu'il est défini dans les métadonnées FME  (Navigateur/ Propriétés d'un projet). Il diffère du nom du traitement qui correspond au nom attribué  à un projet  dans GTF.",
+        "FORM_CATEGORY_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Category",
+        "FORM_LAST_SAVE_DATE_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Last save date",
+        "FORM_BUILD_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "FME version",
+        "FORM_FILE_ENCODING_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "File encoding",
+        "FORM_DESCRIPTION_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Description",
+        "FORM_USAGE_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Usage",
+        "FORM_REQUIREMENTS_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Requirements",
+        "FORM_LEGAL_TERMS_CONDITIONS_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Legal conditions",
+        "FORM_TITLE_IMPORT_PROJECT_PUBLICATION_WORKSPACE" : "FME Projects Import",
+        "FORM_FMW_FILE_IMPORT_PROJECT_PUBLICATION_WORKSPACE" : ".fmw file",
+        "FORM_BTN_UPLOAD_IMPORT_PROJECT_PUBLICATION_WORKSPACE" : "Upload",
+        "FORM_BTN_REGENERATE_METADATA_PUBLICATION_WORKSPACE" : "Read again project",
+        "FORM_BTN_REINTEGRATE_METADATA_PUBLICATION_WORKSPACE" : "Write project",
+        "FORM_BTN_REINTEGRATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE" : "Remplacement des champs Description, Utilisation, Prérequis et Conditions d'utilisation du projet source FME par les valeurs correspondantes saisies dans GTF. Le projet .fmw modifié est disponible dans la section 'Répertoire projet'.",
+        "ERROR_REGENERATE_METADATA_PUBLICATION_WORKSPACE" : "Error while reading again project",
+        "ERROR_REINTEGRATE_METADATA_PUBLICATION_WORKSPACE" : "Error while project",
+        "CONFIRM_DELETE_LOCKED_WOKSPACE_PUBLICATION_WORKSPACE": "One or more projects are locked and can not be deleted. Continue ?",
+        "FORM_BTN_REGENERATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE" : "Remplacement des champs Description, Utilisation, Prérequis et Conditions d'utilisation saisis dans GTF par les valeurs correspondantes contenues dans le projet FME source. Attention, les valeurs actuelles seront supprimées.",
+        "" : "",
+        "TOOLTIP_TITLE_IMPORT_TOKEN_CONNECTION" : "Generate a token",
+        "FORM_USER_IMPORT_TOKEN_CONNECTION" : "User",
+        "FORM_PASSWORD_IMPORT_TOKEN_CONNECTION" : "Password",
+        "FORM_END_DATE_IMPORT_TOKEN_CONNECTION" : "End date",
+        "FORM_BTN_GENERATE_TOKEN_IMPORT_TOKEN_CONNECTION" : "Generate",
+        "ERROR_IMPORT_TOKEN_CONNECTION" : "Error while generating the token",
+        "" : "",
+        "FORM_ID_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "ID",
+        "FORM_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "Groups",
+        "FORM_AVAILABLE_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "Available groups",
+        "FORM_LINKED_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "Groups linked to processing",
+        "" : "",
+        "FORM_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "ID",
+        "FORM_WORKSPACE_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Workspace key",
+        "FORM_WIDGET_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Widget type",
+        "FORM_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Title",
+        "FORM_BUTTON_TEXT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Button text",
+        "FORM_HEIGHT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Height",
+        "FORM_WIDTH_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Width",
+        "FORM_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Token",
+        "FORM_TOKEN_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Token:",
+        "FORM_TOKEN_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "The token allows to insert an order by using user rights without having to complete the connection settings (user name and password). The token has a limited lifetime (see Rest API documentation). The administrator can set a public token with unlimited lifetime (see Setup Mode).",
+        "FORM_PUBLIC_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Public token",
+        "FORM_GENERATE_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Generate a private token",
+        "FORM_WINDOW_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Window (div) ID",
+        "FORM_WINDOW_ID_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Identifiant de l'élément html qui contient le formulaire du widget",
+        "FORM_CAPTCHA_SELECT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Captcha",
+        "FORM_CAPTCHA_SELECT_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "insertion d'un test CAPTCHA. L'obtention d'une clé sur le service web Google est nécessaire : <a href=\"https://www.google.com/recaptcha/admin\">https://www.google.com/recaptcha/admin</a>",
+        "FORM_CAPTCHA_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "ReCaptcha site key (Google)",
+        "FORM_CAPTCHA_KEY_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "ReCaptcha key:",
+        "FORM_CAPTCHA_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "To generate a ReCaptcha key: <br/><a href=\" https://www.google.com/recaptcha/admin\" >https://www.google.com/recaptcha/admin</a>",
+        "FORM_NOTIFICATIONS_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Email notification",
+        "FORM_NOTIFICATIONS_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Email notifications",
+        "FORM_GENERATE_CODE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Generate code",
+        "FORM_WIDGET_TYPE_POPUP_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Button + modal window",
+        "FORM_WIDGET_TYPE_EMBEDDED_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Embedded",
+        "FORM_CAPTCHA_DISABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Pas de Captcha",
+        "FORM_CAPTCHA_ENABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Utiliser Recaptcha (Google)",
+        "FORM_NOTIFICATIONS_OPTIONAL_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Optional",
+        "FORM_NOTIFICATIONS_NEEDED_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Mandatory",
+        "FORM_NOTIFICATIONS_NONE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "None",
+        "FORM_WIDGET_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "GTF",
+        "FORM_WIDGET_BTN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Open handling window",
+        "FORM_BUTTON_DOWNLOAD_WIDGET" : "Download the widget",
+        "FORM_BUTTON_DELETE_WIDGET" : "Delete the widget",
+        "" : "",
+        "ERROR_WORKSPACE_NOT_LINKED_USER_GROUPS_WIDGET" : "The workspace is not linked to any group of users",
+        "ERROR_CAPTCHA_VALIDATION_WIDGET" : "The validation of the captcha failed",
+        "" : "",
+        "FORM_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "fmw file",
+        "FORM_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Additionnal resources",
+        "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Download file",
+        "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Delete file",
+        "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Reload directory",
+        "FORM_UPLOAD_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Upload",
+        "FORM_UPLOAD_ADDITIONAL_RESOURCE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Upload",
+        "DELETE_FILE_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Error while deleting the file",
+        "FILE_NOT_FOUND_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "File not found",
+        "FILE_READING_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Error while reading the file",
+        "CONFIRM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Delete the selected file?",
+        "ERROR_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "The selected file is not a valid fmw file",
+        "ERROR_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "The selected file type is not allowed",
+        "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "The file size exceeds the maximum allowed size.",
+        "" : "",
+        "DESCRIPTION_TOOLTIP_TITLE_PUBLICATION_WORKSPACE" : "Description",
+        "" : "",
+        "FORM_TITLE_INSERT_ORDER_MY_WORK_USER_ORDER" : "Add order",
+        "FORM_TITLE_DISPLAY_ORDER_MY_WORK_USER_ORDER" : "Display order",
+        "FORM_ORDER_ID_MY_WORK_USER_ORDER" : "ID",
+        "FORM_ORDER_DATE_MY_WORK_USER_ORDER" : "Order date",
+        "FORM_CATEGORY_MY_WORK_USER_ORDER" : "Category",
+        "FORM_TREATMENT_MY_WORK_USER_ORDER" : "Workspace",
+        "FORM_PRIORITY_MY_WORK_USER_ORDER" : "Priority",
+        "FORM_SEND_MAIL_MY_WORK_USER_ORDER" : "Send email notification",
+        "FORM_SEND_MAIL_COPY_MY_WORK_USER_ORDER" : "Send an email copy to",
+        "FORM_ORDER_STATE_MY_WORK_USER_ORDER" : "State",
+        "FORM_BTN_CREATE_ORDER_MY_WORK_GTF_USER_ORDER" : "Order",
+        "FORM_EXECUTION_DATE_MY_WORK_USER_ORDER" : "Execution date",
+        "FORM_ALL_CATEGORIES_MY_WORK_USER_ORDER" : "All categories",
+        "FORM_WORKSPACES_MY_WORK_USER_ORDER" : "Workspaces",
+        "FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER" : "Available Workspaces",
+        "FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER" : "Workspaces linked to treatment",
+        "ERROR_NO_GTF_ENGINE_CONTENT_MY_WORK_USER_ORDER" : "Please create a GTF engine to add orders",
+        "ERROR_NO_GTF_ENGINE_TITLE_MY_WORK_USER_ORDER" : "No GTF engine",
+        "FORM_MINEXECDATE_MY_WORK_USER_ORDER" : "Planning date",
+        "FORM_MINEXECDATE_PLACE_HOLDER_MY_WORK_USER_ORDER" : "As soon as possible",
+        "" : "",
+        "FORM_EXECUTE_WORKSPACE_PUBLICATION_WORKSPACE_SUB_FORM" : "Execute",
+        "FORM_PREVISU_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM" : "Preview the published form",
+        "FORM_PREVISU_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Preview the default form",
+        "FORM_PREVISU_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Preview the custom form",
+        "FORM_CODE_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM" : "Show the code of the published form",
+        "FORM_CODE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Show the code of the default form",
+        "FORM_CODE_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Edit the custom form",
+        "FORM_GENERATE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Regenerate the default form",
+        "FORM_PUBLISH_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Publish the default form",
+        "FORM_PUBLISH_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Publish the custom form",
+        "FORM_COPY_DEFAULT_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Reset the custom form",
+        "" : "",
+        "FORM_BTN_TEST_FME_ENGINE_ENGINE_FME_ENGINE" : "Test",
+        "ERROR_FME_ENGINE_FME_ENGINE" : "Error",
+        "SUCCESS_FME_ENGINE_FME_ENGINE" : "Success",
+        "ERROR_FME_PATH_ENGINE_FME_ENGINE" : "Invalid path",
+        "ERROR_FME_LICENSE_ENGINE_FME_ENGINE" : "Invalid license file",
+        "FME_HOST_ENGINE_FME_ENGINE" : "Host",
+        "FME_VERSION_ENGINE_FME_ENGINE" : "Version",
+        "FME_VALIDITY_ENGINE_FME_ENGINE" : "Validity",
+        "FME_TYPE_ENGINE_FME_ENGINE" : "Type",
+        "ERROR_FME_LICENSE_EXPIRED_ENGINE_FME_ENGINE" : "The licence has expired",
+        "ERROR_FME_REQUEST_ERROR_ENGINE_FME_ENGINE" : "The request returned an error",
+        "FORM_BTN_START_FME_SERVER_INSTANCE_ENGINE_FME_ENGINE" : "Start",
+        "FORM_BTN_PAUSE_FME_SERVER_INSTANCE_ENGINE_FME_ENGINE" : "Stop",
+        "FORM_BTN_FME_SERVER_INSTANCE_VERSION_ENGINE_FME_ENGINE" : "Version",
+        "MSG_FME_SERVER_INSTANCE_EXECUTING_PAUSE_ENGINE_FME_ENGINE" : "The Fme Server instance is in the process of being stopped",
+        "MSG_FME_SERVER_INSTANCE_PAUSE_ENGINE_FME_ENGINE" : "The Fme Server instance is stopped",
+        "MSG_FME_SERVER_INSTANCE_EXECUTING_START_ENGINE_FME_ENGINE" : "The Fme Server instance is starting up",
+        "MSG_FME_SERVER_INSTANCE_START_ENGINE_FME_ENGINE" : "The Fme Server instance is running",
+        "FORM_FME_SERVER_INSTANCE_NAME_ENGINE_FME_ENGINE" : "Nom de l'instance",
+        "FORM_BTN_REFRESH_FME_SERVER_INSTANCE_STATUT_STATUT_ENGINE_FME_ENGINE" : "Refresh",
+        "FORM_FME_SERVER_INSTANCE_STATUS_ENGINE_FME_ENGINE" : "Status",
+        "FORM_FME_SERVER_INSTANCE_STATUS_RUNNING_ENGINE_FME_ENGINE" : "Instance started",
+        "FORM_FME_SERVER_INSTANCE_STATUS_PAUSED_ENGINE_FME_ENGINE" : "Instance stopped",
+        "FORM_FME_SERVER_INSTANCE_STATUS_executing_action_ENGINE_FME_ENGINE" : "Instance in the process of stopping or starting",
+        "" : "",
+        "FORM_BTN_CREATE_SUBSCRIPTION_MY_WORK_GTF_USER_SUBSCRIPTION" : "Order",
+        "FORM_BTN_UPDATE_SUBSCRIPTION_MY_WORK_GTF_USER_SUBSCRIPTION" : "Update subscription",
+        "FORM_TITLE_INSERT_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION" : "Add subscription",
+        "FORM_TITLE_DISPLAY_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION" : "Display subscription",
+        "FORM_TITLE_UPDATE_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION" : "Update subscription",
+        "FORM_ALL_CATEGORIES_MY_WORK_USER_SUBSCRIPTION" : "All categories",
+        "FORM_DATE_MY_WORK_USER_SUBSCRIPTION" : "Order date",
+        "FORM_TREATMENT_MY_WORK_USER_SUBSCRIPTION" : "Workspace",
+        "FORM_PERIOD_MY_WORK_USER_SUBSCRIPTION" : "Subscription period",
+        "FORM_ID_MY_WORK_USER_SUBSCRIPTION" : "ID",
+        "FORM_ENABLED_MY_WORK_USER_SUBSCRIPTION" : "Enabled?",
+        "FORM_ENABLED_YES_MY_WORK_USER_SUBSCRIPTION" : "Yes",
+        "FORM_ENABLED_NO_MY_WORK_USER_SUBSCRIPTION" : "No",
+        "FORM_CATEGORY_MY_WORK_USER_SUBSCRIPTION" : "Category",
+        "FORM_SEND_MAIL_MY_WORK_USER_SUBSCRIPTION" : "Send email notification",
+        "FORM_SEND_MAIL_COPY_MY_WORK_USER_SUBSCRIPTION" : "Send an email copy to",
+        "" : "",
+        "FORM_BTN_CREATE_SURVEY_MY_WORK_GTF_USER_SURVEY" : "Order",
+        "FORM_BTN_UPDATE_SURVEY_MY_WORK_GTF_USER_SURVEY" : "Update survey",
+        "FORM_TITLE_INSERT_SURVEY_MY_WORK_USER_SURVEY" : "Add survey",
+        "FORM_TITLE_DISPLAY_SURVEY_MY_WORK_USER_SURVEY" : "Display survey",
+        "FORM_TITLE_UPDATE_SURVEY_MY_WORK_USER_SURVEY" : "Update survey",
+        "FORM_ALL_CATEGORIES_MY_WORK_USER_SURVEY" : "All categories",
+        "FORM_DATE_MY_WORK_USER_SURVEY" : "Order date",
+        "FORM_TREATMENT_MY_WORK_USER_SURVEY" : "Workspace",
+        "FORM_PERIOD_MY_WORK_USER_SURVEY" : "Subscription period",
+        "FORM_ID_MY_WORK_USER_SURVEY" : "ID",
+        "FORM_ENABLED_MY_WORK_USER_SURVEY" : "Enabled?",
+        "FORM_ENABLED_YES_MY_WORK_USER_SURVEY" : "Yes",
+        "FORM_ENABLED_NO_MY_WORK_USER_SURVEY" : "No",
+        "FORM_CATEGORY_MY_WORK_USER_SURVEY" : "Category",
+        "FORM_SEND_MAIL_MY_WORK_USER_SURVEY" : "Send email notification",
+        "FORM_SEND_MAIL_COPY_MY_WORK_USER_SURVEY" : "Send an email copy to",
+        "FORM_SURVEY_TYPE_MY_WORK_USER_SURVEY" : "Survey type",
+        "FORM_DIRECTORY_MY_WORK_USER_SURVEY" : "Directory",
+        "FORM_SUBDIRECTORY_MY_WORK_USER_SURVEY" : "Subdirectory",
+        "" : "",
+        "FORM_PROCESSED_MESSAGE_SUPERVISION_MESSAGE" : "Processed",
+        "FORM_PENDING_MESSAGE_SUPERVISION_MESSAGE" : "Pending",
+        "FORM_PROCESSING_MESSAGE_SUPERVISION_MESSAGE" : "Processing",
+        "FORM_MESSAGECLASS_SUPERVISION_MESSAGE" : "Message class",
+        "FORM_STATE_SUPERVISION_MESSAGE" : "State",
+        "STATUS_TITLE_SUPERVISION_MESSAGE" : "Messages status",
+        "ERROR_BOX_TITLE_SUPERVISION_MESSAGE" : "Error",
+        "WAITING_BOX_TITLE_SUPERVISION_MESSAGE" : "Standby",
+        "TREATED_BOX_TITLE_SUPERVISION_MESSAGE" : "Treated",
+        "PROCESSING_BOX_TITLE_SUPERVISION_MESSAGE" : "Processing",
+        "" : "",
+        "FORM_BTN_TEST_PERIOD_PUBLICATION_PERIOD" : "Test",
+        "FORM_CRON_HELP_TOOLTIP_TITLE_PUBLICATION_PERIOD" : "Cron code",
+        "FORM_CRON_HELP_TOOLTIP_CONTENT_PUBLICATION_PERIOD" : "The cron code is made of five values, separated by spaces.<br> - Minutes 0-59<br> - Hours 0-23<br> - Month day 1-31<br> - Month 1-12 or JAN-DEC<br> - Week day 1-7 or MON-FRI",
+        "FORM_CRON_ERROR_MSG_PUBLICATION_PERIOD" : "Error : Code does not have five values separated by spaces.",
+        "FORM_CRON_ERROR_MSG2_PUBLICATION_PERIOD" : "Error : Cron code invalid (argument {index_error_argument})",
+        "FORM_CRON_ARG1_PUBLICATION_PERIOD" : "Argument 1 (minutes)",
+        "FORM_CRON_ARG2_PUBLICATION_PERIOD" : "Argument 2 (hours)",
+        "FORM_CRON_ARG3_PUBLICATION_PERIOD" : "Argument 3 (month day)",
+        "FORM_CRON_ARG4_PUBLICATION_PERIOD" : "Argument 4 (month)",
+        "FORM_CRON_ARG5_PUBLICATION_PERIOD" : "Argument 5 (week day)",
+        "FORM_CRON_VALID_PUBLICATION_PERIOD" : "Cron code valid",
+        "" : "",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_TJL_DETAIL_STATISTICS_STATISTICS" : "Total processing time",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_TJL_GENERAL_STATISTICS_STATISTICS" : "Division of processing time",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_JN_DETAIL_STATISTICS_STATISTICS" : "Processing amount",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_JN_GENERAL_STATISTICS_STATISTICS" : "Division of processing amount",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_UJL_STATISTICS_STATISTICS" : "Average time",
+        "LUNDI_STATISTICS_STATISTICS" : "Monday",
+        "MARDI_STATISTICS_STATISTICS" : "Tuesday",
+        "MERCREDI_STATISTICS_STATISTICS" : "Wednesday",
+        "JEUDI_STATISTICS_STATISTICS" : "Thursday",
+        "VENDREDI_STATISTICS_STATISTICS" : "Friday",
+        "SAMEDI_STATISTICS_STATISTICS" : "Saturday",
+        "DIMANCHE_STATISTICS_STATISTICS" : "Sunday",
+        "JANVIER_STATISTICS_STATISTICS" : "January",
+        "FEVRIER_STATISTICS_STATISTICS" : "February",
+        "MARS_STATISTICS_STATISTICS" : "March",
+        "AVRIL_STATISTICS_STATISTICS" : "April",
+        "MAI_STATISTICS_STATISTICS" : "May",
+        "JUIN_STATISTICS_STATISTICS" : "June",
+        "JUILLET_STATISTICS_STATISTICS" : "July",
+        "AOUT_STATISTICS_STATISTICS" : "August",
+        "SEPTEMBRE_STATISTICS_STATISTICS" : "September",
+        "OCTOBRE_STATISTICS_STATISTICS" : "October",
+        "NOVEMBRE_STATISTICS_STATISTICS" : "November",
+        "DECEMBRE_STATISTICS_STATISTICS" : "December",
+        "PERIOD_TEXT_PER_YEAR_STATISTICS_STATISTICS" : "Year {{sPerYear}}",
+        "PERIOD_TEXT_PER_MONTH_STATISTICS_STATISTICS" : "Month {{sPerMonth}}",
+        "PERIOD_TEXT_PER_WEEK_STATISTICS_STATISTICS" : "Week from {{sPerDate}} to {{sEndPerDate}}",
+        "PERIOD_TEXT_PER_DAY_STATISTICS_STATISTICS" : "Day{{sPerDate}}",
+        "SQL_MAX_ELEMENTS_OTHERS_STATISTICS_STATISTICS" : "÷others",
+        "ERROR_NO_PERIOD_DATA_STATISTICS_STATISTICS" : "No data for the chosen period",
+        "ERROR_MISSING_DATA_STATISTICS_STATISTICS" : "Mandatory parameters missing",
+        "SCATTER_LEGEND_MIN_STATISTICS_STATISTICS" : "Minimum",
+        "SCATTER_LEGEND_AVG_STATISTICS_STATISTICS" : "Average",
+        "SCATTER_LEGEND_MAX_STATISTICS_STATISTICS" : "Maximum",
+        "FORM_STATS_VARIABLE_ID_TITLE_STATISTICS_STATISTICS" : "Parameter",
+        "FORM_STATS_VARIABLE_ID_VAR_TJL_STATISTICS_STATISTICS" : "Total processing time",
+        "FORM_STATS_VARIABLE_ID_VAR_UJL_STATISTICS_STATISTICS" : "Average time by FME Workspace",
+        "FORM_STATS_VARIABLE_ID_VAR_JN_STATISTICS_STATISTICS" : "Amount of processing units",
+        "FORM_STATS_UNIT_ID_TITLE_STATISTICS_STATISTICS" : "Unit",
+        "FORM_STATS_UNIT_ID_UNIT_SEC_STATISTICS_STATISTICS" : "Second",
+        "FORM_STATS_UNIT_ID_UNIT_MIN_STATISTICS_STATISTICS" : "Minute",
+        "FORM_STATS_UNIT_ID_UNIT_HOUR_STATISTICS_STATISTICS" : "Hour",
+        "FORM_STATS_UNIT_ID_UNIT_PC_STATISTICS_STATISTICS" : "%",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_SEC_STATISTICS_STATISTICS" : "Sec",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_MIN_STATISTICS_STATISTICS" : "Min",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_HOUR_STATISTICS_STATISTICS" : "Hour",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_PC_STATISTICS_STATISTICS" : "%",
+        "FORM_STATS_PER_TYPE_TITLE_STATISTICS_STATISTICS" : "Period",
+        "FORM_STATS_PER_TYPE_PER_YEAR_STATISTICS_STATISTICS" : "Year",
+        "FORM_STATS_PER_TYPE_PER_MONTH_STATISTICS_STATISTICS" : "Month",
+        "FORM_STATS_PER_TYPE_PER_WEEK_STATISTICS_STATISTICS" : "Week",
+        "FORM_STATS_PER_TYPE_PER_DAY_STATISTICS_STATISTICS" : "Day",
+        "FORM_STATS_LEGEND_TITLE_STATISTICS_STATISTICS" : "Caption",
+        "FORM_STATS_LEGEND_GB_WORKSPACE_STATISTICS_STATISTICS" : "FME workspace",
+        "FORM_STATS_LEGEND_GB_USER_STATISTICS_STATISTICS" : "User",
+        "FORM_STATS_LEGEND_GB_ENGINE_STATISTICS_STATISTICS" : "GTF Engine",
+        "FORM_STATS_LEGEND_GB_STATUS_STATISTICS_STATISTICS" : "State",
+        "FORM_STATS_DISPLAY_TITLE_STATISTICS_STATISTICS" : "Display",
+        "FORM_STATS_DISPLAY_GRAPHIC_STATISTICS_STATISTICS" : "Diagram",
+        "FORM_STATS_DISPLAY_TABLE_STATISTICS_STATISTICS" : "Table",
+        "FORM_STATS_BTN_SUBMIT_STATISTICS_STATISTICS" : "Calculate",
+        "FORM_STATS_TITLE_STATISTICS_STATISTICS" : "Statistics",
+        "FORM_STATS_PRESENTATION_STATISTICS_STATISTICS" : "Select parameters for the statistics",
+        "FORM_STATS_MAX_ELEMENTS_STATISTICS_STATISTICS" : "Maximum number of elements",
+        "FORM_STATS_MAX_LABELS_CHARACTERS_STATISTICS_STATISTICS" : "Shorten names to",
+        "FORM_STATS_PER_DATE_STATISTICS_STATISTICS" : "from:",
+        "FORM_STATS_COLORS_TITLE_STATISTICS_STATISTICS" : "Color palette",
+        "FORM_STATS_COLORS_PALETTE_1_STATISTICS_STATISTICS" : "Palette 1",
+        "FORM_STATS_COLORS_PALETTE_2_STATISTICS_STATISTICS" : "Palette 2",
+        "" : "",
+        "TITLE_PROPERTIES_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "GTF module properties setting",
+        "FORM_GTF_SCHEMA_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "GTF schema",
+        "FORM_GTF_HOME_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "GTF directory",
+        "FORM_NOT_COMPRESSED_EXTENSION_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "File extensions to not compress",
+        "FORM_NBR_ORDER_MAX_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Maximum number of requests processed simultaneously",
+        "FORM_MAX_ATTEMPT_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Maximum number of attempts",
+        "FORM_RADIO_TRUE_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Yes",
+        "FORM_RADIO_FALSE_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "No",
+        "FORM_THEME_ENGINE_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Engines",
+        "FORM_HEURE_CREUSE_MIN_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Offpeak hour starts (hh:mm)",
+        "FORM_HEURE_CREUSE_MAX_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Offpeak hour ends (hh:mm)",
+        "FORM_THEME_SERVEUR_HTTP_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Http server",
+        "FORM_SHARED_DIR_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Shared directories",
+        "FORM_THEME_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Proxy server",
+        "FORM_URL_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Proxy server url",
+        "FORM_PORT_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Proxy server port",
+        "FORM_LOGIN_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Proxy server login",
+        "FORM_PASSWORD_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Proxy server password",
+        "FORM_DEFAULT_MAIL_MODEL_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Default email template",
+        "FORM_LOG_SECTION_CONFIGURATION_CONFIGURATION_GTF_CONFIG": "Log",
+        "FORM_PYCRON_DIR_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Pycron directory",
+        "FORM_PYCRON_LOG_DIRECTORY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Directory Pycron logs",
+        "FORM_GTF_INSTANCE_ID_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "GTF instance identifier",
+        "FORM_BTN_GENERATE_GTF_INSTANCE_ID_WORKSPACE_EDIT_WIDGET" : "Generate",
+        "FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_GTF_CONFIG" :"External use of GTF_CONNECTION_STRING",
+        "FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_CONNECTIONSTRINGIP" : "Public IP for database's connection",
+        "FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_CONNECTIONSTRINGPORT" : "Public Port for database's connection",
+        "" : "",
+        "FORM_SUBTITLE_INFORMATIONS_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Informations",
+        "FORM_SUBTITLE_REQUEST_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Request license",
+        "FORM_ACTIVATION_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Activation",
+        "FORM_FILE_REQUEST_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Request the license file",
+        "FORM_ACTIVATE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Activate",
+        "FORM_LICENSE_FILE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "License file",
+        "FORM_LICENSE_NOT_FOUND_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "License file not installed",
+        "FORM_LICENSE_FOUND_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "License file installed",
+        "FORM_LICENSE_NUMBER_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "License number",
+        "FORM_LICENSE_OWNER_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Owner",
+        "FORM_LICENSE_PERMANENT_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Permanent license",
+        "FORM_LICENSE_ENGINES_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Engines number",
+        "FORM_LICENSE_EXPIRE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Expiry date: {{::expiry_date}}",
+        "FORM_TITLE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Contact Form",
+        "FORM_TO_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Recipient",
+        "FORM_REPLY_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Your email adress",
+        "FORM_LICENSE_NUMBER_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "License Number",
+        "FORM_MAIL_BODY_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Message",
+        "FORM_SEND_MAIL_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Send",
+        "FORM_MAIL_BODY_MESSAGE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Hi,\n\nThank you for being willing to send me a license file.\nHostname : {{::sHostName}}\n\nRegards,",
+        "MAIL_SUBJECT_LICENSE_TEMP_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Request of temporary license file for GTF",
+        "MAIL_SUBJECT_LICENSE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Request of license file for GTF. License number: {{::license_number}}",
+        "FORM_LICENSE_FILE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "txt file",
+        "SEND_MAIL_ERROR_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Error while sending email",
+        "SEND_MAIL_SUCCESS_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Mail sent successfully",
+        "LICENSE_FILE_INSTALL_ERROR_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Error while installing the license file.",
+        "LICENSE_FILE_INSTALL_SUCCESS_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "License file successfully installed",
+        "" : "",
+        "FORM_NAME_ENGINE_GTF_ENGINE" : "Name",
+        "FORM_SERVER_ENGINE_GTF_ENGINE" : "Server",
+        "FORM_ID_ENGINE_GTF_ENGINE" : "ID",
+        "FORM_PERIOD_ENGINE_GTF_ENGINE" : "Period (in minutes)",
+        "FORM_ENABLED_ENGINE_GTF_ENGINE" : "Enabled?",
+        "FORM_ENABLED_YES_ENGINE_GTF_ENGINE" : "Yes",
+        "FORM_ENABLED_NO_ENGINE_GTF_ENGINE" : "No",
+        "FORM_FME_ENGINE_GTF_ENGINE" : "FME Engine",
+        "FORM_TAGS_ENGINE_GTF_ENGINE" : "Tags",
+        "FORM_AVAILABLE_TAGS_ENGINE_GTF_ENGINE" : "Available tags",
+        "FORM_LINKED_TAGS_ENGINE_GTF_ENGINE" : "Tags linked to GTF engine",
+        "FORM_TITLE_ENGINE_GTF_ENGINE" : "GTF engine {{::name}}",
+        "" : "",
+        "FORM_NAME_ENGINE_FME_ENGINE" : "Name",
+        "FORM_SERVER_ENGINE_FME_ENGINE" : "Server",
+        "FORM_ID_ENGINE_FME_ENGINE" : "ID",
+        "FORM_PATH_ENGINE_FME_ENGINE" : "Path to the FME executable",
+        "FORM_TITLE_ENGINE_FME_ENGINE" : "FME engine {{::name}}",
+        "FORM_TYPE_ENGINE_FME_ENGINE" : "Type",
+        "FORM_SERVER_URL_ENGINE_FME_ENGINE" : "Server url",
+        "FORM_LOGIN_ENGINE_FME_ENGINE" : "User",
+        "FORM_PASSWORD_ENGINE_FME_ENGINE" : "Password",
+        "FORM_S3_ACCESS_KEY_ID_ENGINE_FME_ENGINE" : "S3 access key id",
+        "FORM_S3_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE" : "S3 secret access key",
+        "FORM_FME_CLOUD_API_TOKEN_ENGINE_FME_ENGINE" : "FME Cloud API token",
+        "FORM_S3_REGION_ENGINE_FME_ENGINE" : "S3 region",
+        "FORM_S3_REGION_US-EAST-2_ENGINE_FME_ENGINE" : "US East (Ohio)",
+        "FORM_S3_REGION_US-EAST-1_ENGINE_FME_ENGINE" : "US East (N. Virginia)",
+        "FORM_S3_REGION_US-WEST-1_ENGINE_FME_ENGINE" : "US West (N. California)",
+        "FORM_S3_REGION_US-WEST-2_ENGINE_FME_ENGINE" : "US West (Oregon)",
+        "FORM_S3_REGION_AP-SOUTH-1_ENGINE_FME_ENGINE" : "Asia Pacific (Mumbai)",
+        "FORM_S3_REGION_AP-NORTHEAST-2_ENGINE_FME_ENGINE" : "Asia Pacific (Seoul)",
+        "FORM_S3_REGION_AP-SOUTHEAST-1_ENGINE_FME_ENGINE" : "Asia Pacific (Singapore)",
+        "FORM_S3_REGION_AP-SOUTHEAST-2_ENGINE_FME_ENGINE" : "Asia Pacific (Sydney)",
+        "FORM_S3_REGION_AP-NORTHEAST-1_ENGINE_FME_ENGINE" : "Asia Pacific (Tokyo)",
+        "FORM_S3_REGION_CA-CENTRAL-1_ENGINE_FME_ENGINE" : "Canada (Central)",
+        "FORM_S3_REGION_CN-NORTH-1_ENGINE_FME_ENGINE" : "China (Beijing)",
+        "FORM_S3_REGION_EU-CENTRAL-1_ENGINE_FME_ENGINE" : "EU (Frankfurt)",
+        "FORM_S3_REGION_EU-WEST-1_ENGINE_FME_ENGINE" : "EU (Ireland)",
+        "FORM_S3_REGION_EU-WEST-2_ENGINE_FME_ENGINE" : "EU (London)",
+        "FORM_S3_REGION_EU-WEST-3_ENGINE_FME_ENGINE" : "EU (Paris)",
+        "FORM_S3_REGION_SA-EAST-1_ENGINE_FME_ENGINE" : "South America (São Paulo)",
+        "FORM_FME_SERVER_INSTANCE_TITLE_ENGINE_FME_ENGINE" : "FME Server instance",
+        "FORM_AMAZON_S3_TITLE_ENGINE_FME_ENGINE" : "Amazon S3",
+        "FORM_IAM_ACCESS_KEY_ID_ENGINE_FME_ENGINE" : "IAM access key to the FME Cloud for GTF service",
+        "FORM_IAM_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE" : "IAM secret access key to the FME Cloud for GTF service",
+        "FORM_FME_SERVER_S3_BUCKET_ENGINE_FME_ENGINE" : "Bucket name",
+        "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE" : "Do you want use external GTF_CONNECTION_STRING ?",
+        "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_YES" : "Yes (Public database informations)",
+        "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_NO" : "No (Private database informations)",
+        "FORM_BTN_TEST_AMAZON_S3_BUCKET_ENGINE_FME_ENGINE" : "Tester",
+        "TEST_AMAZON_S3_BUCKET_ERROR_NO_SUCH_BUCKET_ENGINE_FME_ENGINE" : "The specified bucket does not exist",
+        "TEST_AMAZON_S3_BUCKET_ERROR_INVALID_ACCESS_KEY_ID_FME_ENGINE" : "The S3 Access Key you provided does not exist",
+        "TEST_AMAZON_S3_BUCKET_ERROR_SIGNATURE_DOES_NOT_MATCH_FME_ENGINE" : "The calculation of the signature does not match. Check your S3 secret access key.",
+        "" : "",
+        "FORM_ID_ENGINE_SERVER" : "ID",
+        "FORM_NAME_ENGINE_SERVER" : "Name",
+        "FORM_SCHEDULER_ENGINE_SERVER" : "Crontab file path from GTF server(write access needed)",
+        "FORM_ENGINE_ENGINE_SERVER" : "Directory to GTF engines (gtf.engines directory)",
+        "FORM_TITLE_ENGINE_SERVER" : "Server {{::hostname}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_CATEGORY" : "ID",
+        "FORM_NAME_PUBLICATION_CATEGORY" : "Name",
+        "FORM_DESCRIPTION_PUBLICATION_CATEGORY" : "Description",
+        "FORM_WORKSPACE_PUBLICATION_CATEGORY" : "Workspaces",
+        "FORM_AVAILABLE_WORKSPACE_PUBLICATION_CATEGORY" : "Available workspaces",
+        "FORM_LINKED_WORKSPACE_PUBLICATION_CATEGORY" : "Workspaces linked to category",
+        "FORM_TITLE_PUBLICATION_CATEGORY" : "Category {{::name}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_INBOX" : "ID",
+        "FORM_PATH_PUBLICATION_INBOX" : "Path",
+        "FORM_PATH_TOOLTIP_CONTENT_PUBLICATION_INBOX" : "Chemin du répertoire à surveiller",
+        "FORM_ALIAS_PUBLICATION_INBOX" : "Alias",
+        "FORM_GROUP_PUBLICATION_INBOX" : "Groups",
+        "FORM_AVAILABLE_GROUP_PUBLICATION_INBOX" : "Available groups",
+        "FORM_LINKED_GROUP_PUBLICATION_INBOX" : "Groups linked to inbox",
+        "FORM_TITLE_PUBLICATION_INBOX" : "Inbox {{::name}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_PERIOD" : "ID",
+        "FORM_NAME_PUBLICATION_PERIOD" : "Name",
+        "FORM_CODE_PUBLICATION_PERIOD" : "Code",
+        "FORM_PUBLISHED_PUBLICATION_PERIOD" : "Published",
+        "FORM_PUBLISHED_YES_PUBLICATION_PERIOD" : "Yes",
+        "FORM_PUBLISHED_NO_PUBLICATION_PERIOD" : "No",
+        "FORM_TITLE_PUBLICATION_PERIOD" : "Period {{::name}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_EMAIL_TEMPLATE" : "ID",
+        "FORM_NAME_PUBLICATION_EMAIL_TEMPLATE" : "Name",
+        "FORM_CONTEXT_PUBLICATION_EMAIL_TEMPLATE" : "Context",
+        "FORM_USE_ADVANCED_PUBLICATION_EMAIL_TEMPLATE" : "Use advanced definition?",
+        "FORM_USE_ADVANCED_YES_PUBLICATION_EMAIL_TEMPLATE" : "Yes",
+        "FORM_USE_ADVANCED_NO_PUBLICATION_EMAIL_TEMPLATE" : "No",
+        "FORM_CODE_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_ADVANCED_EDITION" : "Code",
+        "FORM_TO_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Recipient",
+        "FORM_CC_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Cc",
+        "FORM_CCI_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Cci",
+        "FORM_SUBJECT_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Subject",
+        "FORM_BODY_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Message",
+        "FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE" : "Email template {{::name}}",
+        "" : "",
+        "FORM_WIDGET_NOTIFICATIONS_NEEDED_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Email (Mandatory)",
+        "FORM_WIDGET_NOTIFICATIONS_OPTIONAL_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Email (Optional)",
+        "EXPIRED_WIDGET_TOKEN_ERROR_TITLE": "Session timed out",
+        "INVALID_WIDGET_TOKEN_ERROR_TITLE": "Invalid Session",
+        "FORM_USERS_GROUP_QUALIGEO_DOUBLE_SELECT": "Schemas",
+        "FORM_USERS_GROUP_QUALIGEO_SCHEMA_AVAILABLE": "Available schemas",
+        "FORM_USERS_GROUP_QUALIGEO_SCHEMA_ASSOCIATE": "Associated schemas"
+}
diff --git a/src/module_gtf/module/lang/lang-fr.json b/src/module_gtf/module/lang/lang-fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..608d664c6e8780c3847bf3fad57dad32399d6caf
--- /dev/null
+++ b/src/module_gtf/module/lang/lang-fr.json
@@ -0,0 +1,574 @@
+{
+        "TITLE_MODE_GTF" : "GTF",
+        "TITLE_MODE_MY_WORK" : "Mon travail",
+        "TITLE_MODE_ENGINE" : "Moteurs",
+        "TITLE_MODE_PUBLICATION" : "Publication",
+        "TITLE_MODE_SUPERVISION" : "Supervision",
+        "TITLE_MODE_STATISTICS" : "Statistiques",
+        "TITLE_MODE_PUBLICATION_AUTHOR" : "Publication",
+        "TITLE_MODE_EXPLOITATION" : "Exploitation",
+        "TEXT_MODE_MY_WORK" : "Activités propres à l'utilisateur connecté",
+        "TEXT_MODE_ENGINE" : "Gestion des moteurs",
+        "TEXT_MODE_PUBLICATION" : "Publication des projets FME",
+        "TEXT_MODE_SUPERVISION" : "Supervision",
+        "TEXT_MODE_STATISTICS" : "Production de graphiques et d'états sur l'utilisation des ressources",
+        "TEXT_MODE_PUBLICATION_AUTHOR" : "Publication des projets FME",
+        "TEXT_MODE_EXPLOITATION" : "Exploitation",
+        "" : "",
+        "SECTION_UPDATE_TITLE_PUBLICATION_GTF_WORKSPACE" : "Projet FME n°{{sId}}",
+        "SECTION_DISPLAY_TITLE_PUBLICATION_GTF_WORKSPACE" : "Projet FME n°{{sId}}",
+        "SECTION_INSERT_TITLE_PUBLICATION_GTF_WORKSPACE" : "Projet FME",
+        "SECTION_UPDATE_TITLE_PUBLICATION_GTF_EMAIL_TEMPLATE" : "Modèle e-mail n°{{sId}}",
+        "SECTION_DISPLAY_TITLE_PUBLICATION_GTF_EMAIL_TEMPLATE" : "Modèle e-mail n°{{sId}}",
+        "SECTION_INSERT_TITLE_PUBLICATION_GTF_EMAIL_TEMPLATE" : "Modèle e-mail",
+        "SECTION_UPDATE_TITLE_EXPLOITATION_EXPLOITATION" : "Exploitation",
+        "" : "",
+        "FORM_CALCULATE_STATS" : "Calculer",
+        "FORM_TITLE_STATISTICS" : "Sélectionnez les différents critères afin de générer votre rapport statistique",
+        "" : "",
+        "FORM_GENERATE_CODE_EMAIL_TEMPLATE" : "Générer le code à partir de l'édition simple",
+        "" : "",
+        "ERROR_ACTIVATE_ORDER_SUPERVISION" : "Erreur pendant l'activation d'une demande",
+        "ERROR_DESACTIVATE_ORDER_SUPERVISION" : "Erreur pendant la désactivation d'une demande",
+        "" : "",
+        "FORM_TITLE_DISPLAY_ORDER_SUPERVISION_ORDER" : "Voir demande",
+        "STATUS_TITLE_SUPERVISION_ORDER" : "État des demandes",
+        "WAITING_BOX_TITLE_SUPERVISION_ORDER" : "En attente",
+        "ERROR_BOX_TITLE_SUPERVISION_ORDER" : "En erreur",
+        "TREATED_BOX_TITLE_SUPERVISION_ORDER" : "Traité",
+        "NON_TREATABLE_BOX_TITLE_SUPERVISION_ORDER" : "Non traitable",
+        "PROCESSING_BOX_TITLE_SUPERVISION_ORDER" : "En cours",
+        "NON_AUTHORIZED_BOX_TITLE_SUPERVISION_ORDER" : "Non autorisé",
+        "ERROR_CLEANING_ORDERS_SUPERVISION_ORDER" : "Erreur pendant la purge des demandes",
+        "TITLE_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Modifier moteur",
+        "FORM_GTF_ENGINE_ID_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Veuillez sélectionner un numéro de moteur",
+        "FORM_BTN_SUBMIT_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "OK",
+        "ERROR_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Erreur pendant la modification du moteur GTF",
+        "ERROR_NO_SELECTION_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Veuillez sélectionner une ou plusieurs demandes",
+        "FORM_BTN_CLOSE_WINDOW_CHANGE_GTF_ENGINE_SUPERVISION_ORDER" : "Annuler",
+        "ERROR_NO_SELECTION_RESET_ORDER_SUPERVISION_ORDER" : "Veuillez sélectionner une ou plusieurs demandes",
+        "ERROR_RESET_ORDER_SUPERVISION_ORDER" : "Erreur pendant la réinitialisation d'une demande",
+        "FORM_USER_SUPERVISION_ORDER" : "Propriétaire",
+        "FORM_TREATMENT_SUPERVISION_ORDER" : "Projet FME",
+        "FORM_STATE_SUPERVISION_ORDER" : "État",
+        "FORM_DATE_SUPERVISION_ORDER" : "Date de demande",
+        "FORM_PRIORITY_SUPERVISION_ORDER" : "Priorité",
+        "FORM_ENGINE_SUPERVISION_ORDER" : "Moteur",
+        "FORM_DELETE_SUPERVISION_ORDER" : "Supprimée",
+        "FORM_DELETE_YES_SUPERVISION_ORDER" : "Oui",
+        "FORM_DELETE_NO_SUPERVISION_ORDER" : "Non",
+        "FORM_ID_SUPERVISION_ORDER" : "ID",
+        "FORM_OWNER_SUPERVISION_ORDER" : "Propriétaire",
+        "FORM_WORK_DATE_SUPERVISION_ORDER" : "Date de traitement",
+        "FORM_NOTIFICATION_SUPERVISION_ORDER" : "Notification",
+        "FORM_URL_SUPERVISION_ORDER" : "URL de la demande",
+        "FORM_MINEXECDATE_SUPERVISION_ORDER" : "Date de planification",
+        "CONFIRM_DELETE_ORDERS_SUPERVISION_ORDER" : "Une ou plusieurs demandes sont en cours d'exécution et leurs processus seront supprimés.",
+        "ERROR_STOP_ORDER_PROCESS_NO_SELECTION_SUPERVISION_ORDER" : "Veuillez sélectioner une demande en cours pour la stopper.",
+        "ERROR_STOP_ORDER_PROCESS_ONE_ORDER_ONLY_SUPERVISION_ORDER" : "Vous ne pouvez stopper qu'une seule demande en cours à la fois.",
+        "ERROR_STOP_ORDER_PROCESS_NO_RUNNING_ORDER_SUPERVISION_ORDER" : "La demande sélectionnée n'est pas en cours d'exécution.",
+        "" : "",
+        "STATUS_TITLE_SUPERVISION_SUBSCRIPTION" : "Abonnements",
+        "ENABLED_SUBSCRIPTION_BOX_TITLE_SUPERVISION_SUBSCRIPTION" : "Actif",
+        "NON_ENABLED_SUBSCRIPTION_BOX_TITLE_SUPERVISION_SUBSCRIPTION" : "Inactif",
+        "FORM_TITLE_DISPLAY_SUBSCRIPTION_SUPERVISION_SUBSCRIPTION" : "Voir abonnement",
+        "FORM_ID_SUPERVISION_SUBSCRIPTION" : "ID",
+        "FORM_OWNER_SUPERVISION_SUBSCRIPTION" : "Propriétaire",
+        "FORM_PERIOD_SUPERVISION_SUBSCRIPTION" : "Période d'abonnement",
+        "FORM_TREATMENT_SUPERVISION_SUBSCRIPTION" : "Projet FME",
+        "FORM_ENABLED_SUPERVISION_SUBSCRIPTION" : "Actif ?",
+        "FORM_ENABLED_YES_SUPERVISION_SUBSCRIPTION" : "Oui",
+        "FORM_ENABLED_NO_SUPERVISION_SUBSCRIPTION" : "Non",
+        "FORM_DATE_SUPERVISION_SUBSCRIPTION" : "Date de demande",
+        "FORM_NOTIFICATION_SUPERVISION_SUBSCRIPTION" : "Notification",
+        "" : "",
+        "STATUS_TITLE_SUPERVISION_SURVEY" : "Surveillances",
+        "ENABLED_SURVEY_BOX_TITLE_SUPERVISION_SURVEY" : "Actif",
+        "NON_ENABLED_SURVEY_BOX_TITLE_SUPERVISION_SURVEY" : "Inactif",
+        "FORM_TITLE_DISPLAY_SURVEY_SUPERVISION_SURVEY" : "Voir surveillance",
+        "FORM_OWNER_SUPERVISION_SURVEY" : "Propriétaire",
+        "FORM_PERIOD_SUPERVISION_SURVEY" : "Période d'abonnement",
+        "FORM_TREATMENT_SUPERVISION_SURVEY" : "Projet FME",
+        "FORM_ENABLED_SUPERVISION_SURVEY" : "Actif ?",
+        "FORM_ENABLED_YES_SUPERVISION_SURVEY" : "Oui",
+        "FORM_ENABLED_NO_SUPERVISION_SURVEY" : "Non",
+        "FORM_ID_SUPERVISION_SURVEY" : "ID",
+        "FORM_WORKSPACE_SUPERVISION_SURVEY" : "Traitement",
+        "FORM_DATE_SUPERVISION_SURVEY" : "Date de demande",
+        "FORM_NOTIFICATION_SUPERVISION_SURVEY" : "Notification",
+        "FORM_SURVEY_TYPE_SUPERVISION_SURVEY" : "Type de surveillance",
+        "FORM_DIRECTORY_SUPERVISION_SURVEY" : "Répertoire",
+        "" : "",
+        "FORM_NAME_PUBLICATION_WORKSPACE" : "Nom du traitement",
+        "FORM_CATEGORY_PUBLICATION_WORKSPACE" : "Catégorie",
+        "FORM_FMW_FILE_PUBLICATION_WORKSPACE" : "Fichier .fmw",
+        "FORM_OWNER_PUBLICATION_WORKSPACE" : "Propriétaire",
+        "FORM_BUILD_PUBLICATION_WORKSPACE" : "Version FME",
+        "FORM_TAG_PUBLICATION_WORKSPACE" : "Mot clef du moteur GTF",
+        "FORM_SUBSCRIPTION_AVAILABLE_PUBLICATION_WORKSPACE" : "Disponible sur abonnement",
+        "FORM_SUBSCRIPTION_AVAILABLE_YES_PUBLICATION_WORKSPACE" : "Oui",
+        "FORM_SUBSCRIPTION_AVAILABLE_NO_PUBLICATION_WORKSPACE" : "Non",
+        "FORM_SURVEY_AVAILABLE_PUBLICATION_WORKSPACE" : "Disponible pour surveillance",
+        "FORM_SURVEY_AVAILABLE_YES_PUBLICATION_WORKSPACE" : "Oui",
+        "FORM_SURVEY_AVAILABLE_NO_PUBLICATION_WORKSPACE" : "Non",
+        "FORM_ID_PUBLICATION_WORKSPACE" : "ID",
+        "FORM_KEY_PUBLICATION_WORKSPACE" : "Clef du projet",
+        "FORM_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE" : "Identifiant global du projet. Sa valeur est conservée en cas d'installation du projet sur un nouveau serveur contrairement à l'identifiant système ID",
+        "FORM_CREATE_DATE_PUBLICATION_WORKSPACE" : "Date de création",
+        "FORM_ADDITIONNAL_RESOURCES_PUBLICATION_WORKSPACE" : "Ressources complémentaires",
+        "FORM_MAIL_MODEL_PUBLICATION_WORKSPACE" : "Modèle e-mail",
+        "FORM_LOCKED_PUBLICATION_WORKSPACE" : "Verrou",
+        "FORM_LOCKED_YES_PUBLICATION_WORKSPACE" : "Oui",
+        "FORM_LOCKED_NO_PUBLICATION_WORKSPACE" : "Non",
+        "FORM_FORM_PUBLICATION_WORKSPACE" : "Formulaire",
+        "FORM_TITLE_PUBLICATION_WORKSPACE" : "Projet FME {{::name}}",
+        "FORM_CUSTOM_FORM_PUBLICATION_WORKSPACE" : "Formulaire personnalisé",
+        "FORM_DEFAULT_FORM_PUBLICATION_WORKSPACE" : "Formulaire par défaut",
+        "FORM_MISSING_FORM_PUBLICATION_WORKSPACE" : "Formulaire absent",
+        "FORM_WORKSPACE_NAME_EXISTS_PUBLICATION_WORKSPACE" : "Ce nom est déja utilisé par un autre projet.",
+        "FORM_FMW_FILE_URL_PUBLICATION_WORKSPACE" : "Fichier fmw du projet",
+        "FORM_DATAENCRYPT_PUBLICATION_WORKSPACE" : "Cryptage des données",
+        "FORM_USEPERSONALDATA_PUBLICATION_WORKSPACE" : "Utilisation de données personnelles",
+        "FORM_UNITCOST_PUBLICATION_WORKSPACE": "Coût unitaire",
+        "FORM_COSTPERSECOND_PUBLICATION_WORKSPACE": "Coût à la seconde",
+        "" : "",
+        "FORM_ID_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "ID",
+        "FORM_TITLE_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Titre du projet",
+        "FORM_TITLE_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Nom du projet FME tel qu'il est défini dans les métadonnées FME  (Navigateur/ Propriétés d'un projet). Il diffère du nom du traitement qui correspond au nom attribué  à un projet  dans GTF.",
+        "FORM_CATEGORY_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Catégorie",
+        "FORM_LAST_SAVE_DATE_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Date de dernière sauvegarde",
+        "FORM_BUILD_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Version FME",
+        "FORM_FILE_ENCODING_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Encodage du fichier",
+        "FORM_DESCRIPTION_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Description",
+        "FORM_USAGE_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Utilisation",
+        "FORM_REQUIREMENTS_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Prérequis",
+        "FORM_LEGAL_TERMS_CONDITIONS_PUBLICATION_WORKSPACE_UPDATE_METADATA" : "Conditions d'utilisation",
+        "FORM_TITLE_IMPORT_PROJECT_PUBLICATION_WORKSPACE" : "Import des projets FME",
+        "FORM_FMW_FILE_IMPORT_PROJECT_PUBLICATION_WORKSPACE" : "Fichier .fmw",
+        "FORM_BTN_UPLOAD_IMPORT_PROJECT_PUBLICATION_WORKSPACE" : "Charger",
+        "FORM_BTN_REGENERATE_METADATA_PUBLICATION_WORKSPACE" : "Relire le projet",
+        "FORM_BTN_REINTEGRATE_METADATA_PUBLICATION_WORKSPACE" : "Ecrire le projet",
+        "FORM_BTN_REINTEGRATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE" : "Remplacement des champs Description, Utilisation, Prérequis et Conditions d'utilisation du projet source FME par les valeurs correspondantes saisies dans GTF. Le projet .fmw modifié est disponible dans la section 'Répertoire projet'.",
+        "ERROR_REGENERATE_METADATA_PUBLICATION_WORKSPACE" : "Erreur pendant la relecture du projet",
+        "ERROR_REINTEGRATE_METADATA_PUBLICATION_WORKSPACE" : "Erreur pendant l'écriture du projet",
+        "CONFIRM_DELETE_LOCKED_WOKSPACE_PUBLICATION_WORKSPACE": "Un ou plusieurs projets sont verrouillés et ne pourront être supprimés. Continuer ?",
+        "FORM_BTN_REGENERATE_METADATA_TOOLTIP_PUBLICATION_WORKSPACE" : "Remplacement des champs Description, Utilisation, Prérequis et Conditions d'utilisation saisis dans GTF par les valeurs correspondantes contenues dans le projet FME source. Attention, les valeurs actuelles seront supprimées.",
+        "" : "",
+        "TOOLTIP_TITLE_IMPORT_TOKEN_CONNECTION" : "Générer un jeton",
+        "FORM_USER_IMPORT_TOKEN_CONNECTION" : "Utilisateur",
+        "FORM_PASSWORD_IMPORT_TOKEN_CONNECTION" : "Mot de passe",
+        "FORM_END_DATE_IMPORT_TOKEN_CONNECTION" : "Date de fin de validité",
+        "FORM_BTN_GENERATE_TOKEN_IMPORT_TOKEN_CONNECTION" : "Générer",
+        "ERROR_IMPORT_TOKEN_CONNECTION" : "Erreur pendant la génération du jeton",
+        "" : "",
+        "FORM_ID_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "ID",
+        "FORM_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "Groupes",
+        "FORM_AVAILABLE_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "Groupes disponibles",
+        "FORM_LINKED_GROUP_PUBLICATION_WORKSPACE_UPDATE_RIGHT" : "Groupes liés au traitement",
+        "" : "",
+        "FORM_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "ID",
+        "FORM_WORKSPACE_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Clef du projet",
+        "FORM_WIDGET_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Type de fenêtre",
+        "FORM_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Titre",
+        "FORM_BUTTON_TEXT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Texte du bouton",
+        "FORM_HEIGHT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Hauteur",
+        "FORM_WIDTH_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Largeur",
+        "FORM_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Jeton de connexion",
+        "FORM_TOKEN_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Jeton de connexion :",
+        "FORM_TOKEN_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Le jeton de connexion permet d'ajouter une demande de traitement en utilisant les droits d'un utilisateur sans avoir à saisir ses paramètres de connexion. Un jeton a une durée de vie limitée (cf. documentation API Rest). L'administrateur peut définir un jeton public de durée illimitée.",
+        "FORM_PUBLIC_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Jeton public",
+        "FORM_GENERATE_TOKEN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Générer un jeton privé",
+        "FORM_WINDOW_ID_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Identifiant de la fenêtre (div id)",
+        "FORM_WINDOW_ID_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Identifiant de l'élément html qui contient le formulaire du widget",
+        "FORM_CAPTCHA_SELECT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Captcha",
+        "FORM_CAPTCHA_SELECT_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "insertion d'un test CAPTCHA. L'obtention d'une clé sur le service web Google est nécessaire : <a href=\"https://www.google.com/recaptcha/admin\">https://www.google.com/recaptcha/admin</a>",
+        "FORM_CAPTCHA_KEY_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Clef du site du ReCaptcha (Google)",
+        "FORM_CAPTCHA_KEY_TOOLTIP_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Clef ReCaptcha :",
+        "FORM_CAPTCHA_KEY_TOOLTIP_CONTENT_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Pour générer une clef pour ReCaptcha : <br/><a href=\" https://www.google.com/recaptcha/admin\" >https://www.google.com/recaptcha/admin</a>",
+        "FORM_NOTIFICATIONS_TYPE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Notification par e-mail",
+        "FORM_NOTIFICATIONS_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Saisie de l'adresse e-mail du demandeur pour notification",
+        "FORM_GENERATE_CODE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Générer le code",
+        "FORM_WIDGET_TYPE_POPUP_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Bouton + Fenêtre modale",
+        "FORM_WIDGET_TYPE_EMBEDDED_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Intégrée dans la page",
+        "FORM_CAPTCHA_DISABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Pas de Captcha",
+        "FORM_CAPTCHA_ENABLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Utiliser Recaptcha (Google)",
+        "FORM_NOTIFICATIONS_OPTIONAL_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Optionnelle",
+        "FORM_NOTIFICATIONS_NEEDED_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Obligatoire",
+        "FORM_NOTIFICATIONS_NONE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Pas de saisie",
+        "FORM_WIDGET_TITLE_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "GTF",
+        "FORM_WIDGET_BTN_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Voir la fenêtre de traitement",
+        "FORM_BUTTON_DOWNLOAD_WIDGET" : "Télécharger le widget",
+        "FORM_BUTTON_DELETE_WIDGET" : "Supprimer le widget",
+        "" : "",
+        "ERROR_WORKSPACE_NOT_LINKED_USER_GROUPS_WIDGET" : "Le traitement n'est lié à aucun groupe de l'utilisateur.",
+        "ERROR_CAPTCHA_VALIDATION_WIDGET" : "La validation du captcha a échoué.",
+        "" : "",
+        "FORM_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Fichier .fmw",
+        "FORM_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Ressources complémentaires",
+        "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Télécharger le fichier",
+        "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Supprimer le fichier",
+        "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Recharger le répertoire",
+        "FORM_UPLOAD_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Télécharger",
+        "FORM_UPLOAD_ADDITIONAL_RESOURCE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Télécharger",
+        "DELETE_FILE_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Erreur pendant la suppression du fichier",
+        "FILE_NOT_FOUND_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Le fichier est introuvable",
+        "FILE_READING_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Erreur pendant la lecture du fichier",
+        "CONFIRM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Supprimer le fichier sélectionné ?",
+        "ERROR_FMW_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Le fichier sélectionné n'est pas un fichier fmw valide.",
+        "ERROR_ADDITIONAL_RESOURCES_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "Le type de fichier sélectionné n'est pas autorisé.",
+        "ERROR_FILE_SIZE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY" : "La taille du fichier est supérieure à la taille maximale autorisée.",
+        "" : "",
+        "DESCRIPTION_TOOLTIP_TITLE_PUBLICATION_WORKSPACE" : "Description",
+        "" : "",
+        "FORM_TITLE_INSERT_ORDER_MY_WORK_USER_ORDER" : "Ajouter demande",
+        "FORM_TITLE_DISPLAY_ORDER_MY_WORK_USER_ORDER" : "Voir demande",
+        "FORM_ORDER_ID_MY_WORK_USER_ORDER" : "ID",
+        "FORM_ORDER_DATE_MY_WORK_USER_ORDER" : "Date de demande",
+        "FORM_CATEGORY_MY_WORK_USER_ORDER" : "Catégorie",
+        "FORM_TREATMENT_MY_WORK_USER_ORDER" : "Projet FME",
+        "FORM_PRIORITY_MY_WORK_USER_ORDER" : "Priorité",
+        "FORM_SEND_MAIL_MY_WORK_USER_ORDER" : "Envoyer un e-mail de notification",
+        "FORM_SEND_MAIL_COPY_MY_WORK_USER_ORDER" : "Envoyer une copie de l'e-mail à",
+        "FORM_ORDER_STATE_MY_WORK_USER_ORDER" : "État",
+        "FORM_BTN_CREATE_ORDER_MY_WORK_GTF_USER_ORDER" : "Demander",
+        "FORM_EXECUTION_DATE_MY_WORK_USER_ORDER" : "Date de traitement",
+        "FORM_ALL_CATEGORIES_MY_WORK_USER_ORDER" : "Toutes les catégories",
+        "FORM_WORKSPACES_MY_WORK_USER_ORDER" : "Projets FME",
+        "FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER" : "Projets disponibles",
+        "FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER" : "Projets liés à la demande",
+        "ERROR_NO_GTF_ENGINE_CONTENT_MY_WORK_USER_ORDER" : "Veuillez créer un moteur GTF pour ajouter des demandes.",
+        "ERROR_NO_GTF_ENGINE_TITLE_MY_WORK_USER_ORDER" : "Aucun Moteur GTF",
+        "FORM_MINEXECDATE_MY_WORK_USER_ORDER" : "Date de planification",
+        "FORM_MINEXECDATE_PLACE_HOLDER_MY_WORK_USER_ORDER" : "Au plus tôt",
+        "" : "",
+        "FORM_EXECUTE_WORKSPACE_PUBLICATION_WORKSPACE_SUB_FORM" : "Exécuter",
+        "FORM_PREVISU_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM" : "Prévisualiser le formulaire publié",
+        "FORM_PREVISU_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Prévisualiser le formulaire par défaut",
+        "FORM_PREVISU_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Prévisualiser le formulaire personnalisé",
+        "FORM_CODE_PUBLISHED_PUBLICATION_WORKSPACE_SUB_FORM" : "Visualiser le code du formulaire publié",
+        "FORM_CODE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Visualiser le code du formulaire par défaut",
+        "FORM_CODE_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Éditer le formulaire personnalisé",
+        "FORM_GENERATE_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Regénérer le formulaire par défaut",
+        "FORM_PUBLISH_DEFAULT_PUBLICATION_WORKSPACE_SUB_FORM" : "Publier le formulaire par défaut",
+        "FORM_PUBLISH_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Publier le formulaire personnalisé",
+        "FORM_COPY_DEFAULT_CUSTOM_PUBLICATION_WORKSPACE_SUB_FORM" : "Réinitialiser le formulaire personnalisé",
+        "" : "",
+        "FORM_BTN_TEST_FME_ENGINE_ENGINE_FME_ENGINE" : "Test",
+        "ERROR_FME_ENGINE_FME_ENGINE" : "Erreur",
+        "SUCCESS_FME_ENGINE_FME_ENGINE" : "Succès",
+        "ERROR_FME_PATH_ENGINE_FME_ENGINE" : "Chemin non valide",
+        "ERROR_FME_LICENSE_ENGINE_FME_ENGINE" : "Fichier de licence non valide",
+        "FME_HOST_ENGINE_FME_ENGINE" : "Hôte",
+        "FME_VERSION_ENGINE_FME_ENGINE" : "Version",
+        "FME_VALIDITY_ENGINE_FME_ENGINE" : "Validité",
+        "FME_TYPE_ENGINE_FME_ENGINE" : "Type",
+        "ERROR_FME_LICENSE_EXPIRED_ENGINE_FME_ENGINE" : "La licence a expiré",
+        "ERROR_FME_REQUEST_ERROR_ENGINE_FME_ENGINE" : "La requête a retourné une erreur",
+        "FORM_BTN_START_FME_SERVER_INSTANCE_ENGINE_FME_ENGINE" : "Démarrer",
+        "FORM_BTN_PAUSE_FME_SERVER_INSTANCE_ENGINE_FME_ENGINE" : "Arrêter",
+        "FORM_BTN_FME_SERVER_INSTANCE_VERSION_ENGINE_FME_ENGINE" : "Version",
+        "MSG_FME_SERVER_INSTANCE_EXECUTING_PAUSE_ENGINE_FME_ENGINE" : "L'instance Fme Server est en cours d'arrêt",
+        "MSG_FME_SERVER_INSTANCE_PAUSE_ENGINE_FME_ENGINE" : "L'instance Fme Server est arrêtée",
+        "MSG_FME_SERVER_INSTANCE_EXECUTING_START_ENGINE_FME_ENGINE" : "L'instance Fme Server est en cours de démarrage",
+        "MSG_FME_SERVER_INSTANCE_START_ENGINE_FME_ENGINE" : "L'instance Fme Server est opérationnelle",
+        "FORM_FME_SERVER_INSTANCE_NAME_ENGINE_FME_ENGINE" : "Nom de l'instance",
+        "FORM_BTN_REFRESH_FME_SERVER_INSTANCE_STATUT_STATUT_ENGINE_FME_ENGINE" : "Actualiser",
+        "FORM_FME_SERVER_INSTANCE_STATUS_ENGINE_FME_ENGINE" : "Statut",
+        "FORM_FME_SERVER_INSTANCE_STATUS_RUNNING_ENGINE_FME_ENGINE" : "Instance démarrée",
+        "FORM_FME_SERVER_INSTANCE_STATUS_PAUSED_ENGINE_FME_ENGINE" : "Instance arrêtée",
+        "FORM_FME_SERVER_INSTANCE_STATUS_executing_action_ENGINE_FME_ENGINE" : "Instance en cours d'arrêt ou de démarrage",
+        "" : "",
+        "FORM_BTN_CREATE_SUBSCRIPTION_MY_WORK_GTF_USER_SUBSCRIPTION" : "Demander",
+        "FORM_BTN_UPDATE_SUBSCRIPTION_MY_WORK_GTF_USER_SUBSCRIPTION" : "MAJ abonnement",
+        "FORM_TITLE_INSERT_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION" : "Ajouter abonnement",
+        "FORM_TITLE_DISPLAY_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION" : "Voir abonnement",
+        "FORM_TITLE_UPDATE_SUBSCRIPTION_MY_WORK_USER_SUBSCRIPTION" : "Modifier abonnement",
+        "FORM_ALL_CATEGORIES_MY_WORK_USER_SUBSCRIPTION" : "Toutes les catégories",
+        "FORM_DATE_MY_WORK_USER_SUBSCRIPTION" : "Date de demande",
+        "FORM_TREATMENT_MY_WORK_USER_SUBSCRIPTION" : "Projet FME",
+        "FORM_PERIOD_MY_WORK_USER_SUBSCRIPTION" : "Période d'abonnement",
+        "FORM_ID_MY_WORK_USER_SUBSCRIPTION" : "ID",
+        "FORM_ENABLED_MY_WORK_USER_SUBSCRIPTION" : "Actif ?",
+        "FORM_ENABLED_YES_MY_WORK_USER_SUBSCRIPTION" : "Oui",
+        "FORM_ENABLED_NO_MY_WORK_USER_SUBSCRIPTION" : "Non",
+        "FORM_CATEGORY_MY_WORK_USER_SUBSCRIPTION" : "Catégorie",
+        "FORM_SEND_MAIL_MY_WORK_USER_SUBSCRIPTION" : "Envoyer un e-mail de notification",
+        "FORM_SEND_MAIL_COPY_MY_WORK_USER_SUBSCRIPTION" : "Envoyer une copie de l'e-mail à",
+        "" : "",
+        "FORM_BTN_CREATE_SURVEY_MY_WORK_GTF_USER_SURVEY" : "Demander",
+        "FORM_BTN_UPDATE_SURVEY_MY_WORK_GTF_USER_SURVEY" : "MAJ surveillance",
+        "FORM_TITLE_INSERT_SURVEY_MY_WORK_USER_SURVEY" : "Ajouter surveillance",
+        "FORM_TITLE_DISPLAY_SURVEY_MY_WORK_USER_SURVEY" : "Voir surveillance",
+        "FORM_TITLE_UPDATE_SURVEY_MY_WORK_USER_SURVEY" : "Modifier surveillance",
+        "FORM_ALL_CATEGORIES_MY_WORK_USER_SURVEY" : "Toutes les catégories",
+        "FORM_DATE_MY_WORK_USER_SURVEY" : "Date de demande",
+        "FORM_TREATMENT_MY_WORK_USER_SURVEY" : "Projet FME",
+        "FORM_PERIOD_MY_WORK_USER_SURVEY" : "Période d'abonnement",
+        "FORM_ID_MY_WORK_USER_SURVEY" : "ID",
+        "FORM_ENABLED_MY_WORK_USER_SURVEY" : "Actif ?",
+        "FORM_ENABLED_YES_MY_WORK_USER_SURVEY" : "Oui",
+        "FORM_ENABLED_NO_MY_WORK_USER_SURVEY" : "Non",
+        "FORM_CATEGORY_MY_WORK_USER_SURVEY" : "Catégorie",
+        "FORM_SEND_MAIL_MY_WORK_USER_SURVEY" : "Envoyer un e-mail de notification",
+        "FORM_SEND_MAIL_COPY_MY_WORK_USER_SURVEY" : "Envoyer une copie de l'e-mail à",
+        "FORM_SURVEY_TYPE_MY_WORK_USER_SURVEY" : "Type de surveillance",
+        "FORM_DIRECTORY_MY_WORK_USER_SURVEY" : "Répertoire",
+        "FORM_SUBDIRECTORY_MY_WORK_USER_SURVEY" : "Sous-répertoire",
+        "" : "",
+        "FORM_PROCESSED_MESSAGE_SUPERVISION_MESSAGE" : "Traité",
+        "FORM_PENDING_MESSAGE_SUPERVISION_MESSAGE" : "En attente",
+        "FORM_PROCESSING_MESSAGE_SUPERVISION_MESSAGE" : "En cours",
+        "FORM_MESSAGECLASS_SUPERVISION_MESSAGE" : "Classe du message",
+        "FORM_STATE_SUPERVISION_MESSAGE" : "État",
+        "STATUS_TITLE_SUPERVISION_MESSAGE" : "État des messages",
+        "ERROR_BOX_TITLE_SUPERVISION_MESSAGE" : "En erreur",
+        "WAITING_BOX_TITLE_SUPERVISION_MESSAGE" : "En attente",
+        "TREATED_BOX_TITLE_SUPERVISION_MESSAGE" : "Traité",
+        "PROCESSING_BOX_TITLE_SUPERVISION_MESSAGE" : "En cours",
+        "" : "",
+        "FORM_BTN_TEST_PERIOD_PUBLICATION_PERIOD" : "Tester",
+        "FORM_CRON_HELP_TOOLTIP_TITLE_PUBLICATION_PERIOD" : "Code cron",
+        "FORM_CRON_HELP_TOOLTIP_CONTENT_PUBLICATION_PERIOD" : "Le code cron est composé de cinq valeurs séparées par des espaces.<br> - Minutes 0-59<br> - Heures 0-23<br> - Jour du mois 1-31<br> - Mois 1-12 ou JAN-DEC (format anglais)<br> - Jour de la semaine 1-7 ou MON-FRI (format anglais)",
+        "FORM_CRON_ERROR_MSG_PUBLICATION_PERIOD" : "Erreur : Le code ne contient pas cinq valeurs séparées par un espace.",
+        "FORM_CRON_ERROR_MSG2_PUBLICATION_PERIOD" : "Erreur : Code cron non valide (argument {{index_error_argument}})",
+        "FORM_CRON_ARG1_PUBLICATION_PERIOD" : "Argument 1 (minutes)",
+        "FORM_CRON_ARG2_PUBLICATION_PERIOD" : "Argument 2 (heures)",
+        "FORM_CRON_ARG3_PUBLICATION_PERIOD" : "Argument 3 (jour du mois)",
+        "FORM_CRON_ARG4_PUBLICATION_PERIOD" : "Argument 4 (mois)",
+        "FORM_CRON_ARG5_PUBLICATION_PERIOD" : "Argument 5 (jour de la semaine)",
+        "FORM_CRON_VALID_PUBLICATION_PERIOD" : "Code cron valide",
+        "" : "",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_TJL_DETAIL_STATISTICS_STATISTICS" : "Durée totale de traitement",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_TJL_GENERAL_STATISTICS_STATISTICS" : "Répartition des temps de traitement",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_JN_DETAIL_STATISTICS_STATISTICS" : "Nombre de traitements",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_JN_GENERAL_STATISTICS_STATISTICS" : "Répartition du nombre de traitements",
+        "GRAPH_TITLE_VARIABLE_ID_VAR_UJL_STATISTICS_STATISTICS" : "Durée des traitements unitaires",
+        "LUNDI_STATISTICS_STATISTICS" : "Lundi",
+        "MARDI_STATISTICS_STATISTICS" : "Mardi",
+        "MERCREDI_STATISTICS_STATISTICS" : "Mercredi",
+        "JEUDI_STATISTICS_STATISTICS" : "Jeudi",
+        "VENDREDI_STATISTICS_STATISTICS" : "Vendredi",
+        "SAMEDI_STATISTICS_STATISTICS" : "Samedi",
+        "DIMANCHE_STATISTICS_STATISTICS" : "Dimanche",
+        "JANVIER_STATISTICS_STATISTICS" : "Janvier",
+        "FEVRIER_STATISTICS_STATISTICS" : "Février",
+        "MARS_STATISTICS_STATISTICS" : "Mars",
+        "AVRIL_STATISTICS_STATISTICS" : "Avril",
+        "MAI_STATISTICS_STATISTICS" : "Mai",
+        "JUIN_STATISTICS_STATISTICS" : "Juin",
+        "JUILLET_STATISTICS_STATISTICS" : "Juillet",
+        "AOUT_STATISTICS_STATISTICS" : "Août",
+        "SEPTEMBRE_STATISTICS_STATISTICS" : "Septembre",
+        "OCTOBRE_STATISTICS_STATISTICS" : "Octobre",
+        "NOVEMBRE_STATISTICS_STATISTICS" : "Novembre",
+        "DECEMBRE_STATISTICS_STATISTICS" : "Décembre",
+        "PERIOD_TEXT_PER_YEAR_STATISTICS_STATISTICS" : "Année {{sPerYear}}",
+        "PERIOD_TEXT_PER_MONTH_STATISTICS_STATISTICS" : "Mois{{sPerMonth}}",
+        "PERIOD_TEXT_PER_WEEK_STATISTICS_STATISTICS" : "Semaine du {{sPerDate}} au {{sEndPerDate}}",
+        "PERIOD_TEXT_PER_DAY_STATISTICS_STATISTICS" : "Jour{{sPerDate}}",
+        "SQL_MAX_ELEMENTS_OTHERS_STATISTICS_STATISTICS" : "÷autres",
+        "ERROR_NO_PERIOD_DATA_STATISTICS_STATISTICS" : "Pas de données pour la période sélectionnée !",
+        "ERROR_MISSING_DATA_STATISTICS_STATISTICS" : "Il manque des variables obligatoires !",
+        "SCATTER_LEGEND_MIN_STATISTICS_STATISTICS" : "Minimum",
+        "SCATTER_LEGEND_AVG_STATISTICS_STATISTICS" : "Moyenne",
+        "SCATTER_LEGEND_MAX_STATISTICS_STATISTICS" : "Maximum",
+        "FORM_STATS_VARIABLE_ID_TITLE_STATISTICS_STATISTICS" : "Variable",
+        "FORM_STATS_VARIABLE_ID_VAR_TJL_STATISTICS_STATISTICS" : "Durée totale de traitement",
+        "FORM_STATS_VARIABLE_ID_VAR_UJL_STATISTICS_STATISTICS" : "Durée des traitements unitaires",
+        "FORM_STATS_VARIABLE_ID_VAR_JN_STATISTICS_STATISTICS" : "Nombre de traitements",
+        "FORM_STATS_UNIT_ID_TITLE_STATISTICS_STATISTICS" : "Unité",
+        "FORM_STATS_UNIT_ID_UNIT_SEC_STATISTICS_STATISTICS" : "Seconde",
+        "FORM_STATS_UNIT_ID_UNIT_MIN_STATISTICS_STATISTICS" : "Minute",
+        "FORM_STATS_UNIT_ID_UNIT_HOUR_STATISTICS_STATISTICS" : "Heure",
+        "FORM_STATS_UNIT_ID_UNIT_PC_STATISTICS_STATISTICS" : "%",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_SEC_STATISTICS_STATISTICS" : "sec",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_MIN_STATISTICS_STATISTICS" : "min",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_HOUR_STATISTICS_STATISTICS" : "h",
+        "FORM_STATS_UNIT_ID_SHORT_UNIT_PC_STATISTICS_STATISTICS" : "%",
+        "FORM_STATS_PER_TYPE_TITLE_STATISTICS_STATISTICS" : "Période",
+        "FORM_STATS_PER_TYPE_PER_YEAR_STATISTICS_STATISTICS" : "An",
+        "FORM_STATS_PER_TYPE_PER_MONTH_STATISTICS_STATISTICS" : "Mois",
+        "FORM_STATS_PER_TYPE_PER_WEEK_STATISTICS_STATISTICS" : "Semaine",
+        "FORM_STATS_PER_TYPE_PER_DAY_STATISTICS_STATISTICS" : "Jour",
+        "FORM_STATS_LEGEND_TITLE_STATISTICS_STATISTICS" : "Légende",
+        "FORM_STATS_LEGEND_GB_WORKSPACE_STATISTICS_STATISTICS" : "Projet FME",
+        "FORM_STATS_LEGEND_GB_USER_STATISTICS_STATISTICS" : "Utilisateur",
+        "FORM_STATS_LEGEND_GB_ENGINE_STATISTICS_STATISTICS" : "Moteur",
+        "FORM_STATS_LEGEND_GB_STATUS_STATISTICS_STATISTICS" : "État",
+        "FORM_STATS_DISPLAY_TITLE_STATISTICS_STATISTICS" : "Affichage",
+        "FORM_STATS_DISPLAY_GRAPHIC_STATISTICS_STATISTICS" : "Graphique",
+        "FORM_STATS_DISPLAY_TABLE_STATISTICS_STATISTICS" : "Tableau",
+        "FORM_STATS_BTN_SUBMIT_STATISTICS_STATISTICS" : "Calculer",
+        "FORM_STATS_TITLE_STATISTICS_STATISTICS" : "Statistiques",
+        "FORM_STATS_PRESENTATION_STATISTICS_STATISTICS" : "Sélectionnez les différents critères afin de générer votre rapport statistique",
+        "FORM_STATS_MAX_ELEMENTS_STATISTICS_STATISTICS" : "Nombre d'éléments max",
+        "FORM_STATS_MAX_LABELS_CHARACTERS_STATISTICS_STATISTICS" : "Tronquer les libellés à",
+        "FORM_STATS_PER_DATE_STATISTICS_STATISTICS" : "à partir du :",
+        "FORM_STATS_COLORS_TITLE_STATISTICS_STATISTICS" : "Palette de couleurs",
+        "FORM_STATS_COLORS_PALETTE_1_STATISTICS_STATISTICS" : "Palette 1",
+        "FORM_STATS_COLORS_PALETTE_2_STATISTICS_STATISTICS" : "Palette 2",
+        "" : "",
+        "TITLE_PROPERTIES_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Configuration des propriétés du module GTF",
+        "FORM_GTF_SCHEMA_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Schéma de GTF",
+        "FORM_GTF_HOME_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Répertoire de GTF",
+        "FORM_NOT_COMPRESSED_EXTENSION_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Extensions des fichiers à ne pas compresser",
+        "FORM_NBR_ORDER_MAX_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Nombre maximum de demandes traitées simultanément",
+        "FORM_MAX_ATTEMPT_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Nombre maximum de tentatives",
+        "FORM_RADIO_TRUE_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Oui",
+        "FORM_RADIO_FALSE_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Non",
+        "FORM_THEME_ENGINE_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Moteurs",
+        "FORM_HEURE_CREUSE_MIN_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Début heure creuse (hh:mm)",
+        "FORM_HEURE_CREUSE_MAX_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Fin heure creuse (hh:mm)",
+        "FORM_THEME_SERVEUR_HTTP_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Serveur http",
+        "FORM_SHARED_DIR_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Répertoire partagé",
+        "FORM_THEME_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Serveur proxy",
+        "FORM_URL_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Url du serveur proxy",
+        "FORM_PORT_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Port du serveur proxy",
+        "FORM_LOGIN_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Login du serveur proxy",
+        "FORM_PASSWORD_PROXY_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Mot de passe du serveur proxy",
+        "FORM_DEFAULT_MAIL_MODEL_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Modèle d' e-mail par défaut",
+        "FORM_LOG_SECTION_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Journaux",
+        "FORM_PYCRON_DIR_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Répertoire de pycron",
+        "FORM_PYCRON_LOG_DIRECTORY_CONFIGURATION_CONFIGURATION_GTF_CONFIG": "Répertoire des logs de pycron",
+        "FORM_GTF_INSTANCE_ID_CONFIGURATION_CONFIGURATION_GTF_CONFIG" : "Identifiant de l'instance de GTF",
+        "FORM_BTN_GENERATE_GTF_INSTANCE_ID_WORKSPACE_EDIT_WIDGET" : "Générer",
+        "FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_GTF_CONFIG" :"Utilisation de GTF_CONNECTION_STRING Externe",
+        "FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_CONNECTIONSTRINGIP" : "IP Public de la base de donnée",
+        "FORM_EXTERNAL_CONNSTRING_SECTION_CONFIGURATION_CONFIGURATION_CONNECTIONSTRINGPORT" : "Port Public de la base de donnée",
+        "" : "",
+        "FORM_SUBTITLE_INFORMATIONS_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Informations",
+        "FORM_SUBTITLE_REQUEST_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Demander la licence",
+        "FORM_ACTIVATION_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Activation",
+        "FORM_FILE_REQUEST_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Demander le fichier de licence",
+        "FORM_ACTIVATE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Activer",
+        "FORM_LICENSE_FILE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Fichier de licence",
+        "FORM_LICENSE_NOT_FOUND_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Fichier de licence non installé",
+        "FORM_LICENSE_FOUND_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Fichier de licence installé",
+        "FORM_LICENSE_NUMBER_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Numéro de licence",
+        "FORM_LICENSE_OWNER_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Propriétaire",
+        "FORM_LICENSE_PERMANENT_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Licence permanente",
+        "FORM_LICENSE_ENGINES_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Nombre de moteurs",
+        "FORM_LICENSE_EXPIRE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Date d'expiration: {{::expiry_date}}",
+        "FORM_TITLE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Formulaire de contact",
+        "FORM_TO_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Destinataire",
+        "FORM_REPLY_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Votre adresse email",
+        "FORM_LICENSE_NUMBER_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Numéro de licence",
+        "FORM_MAIL_BODY_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Message",
+        "FORM_SEND_MAIL_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Envoyer",
+        "FORM_MAIL_BODY_MESSAGE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Bonjour,\n\nMerci de bien vouloir me faire parvenir un fichier de licence.\nHostname : {{::sHostName}}\n\nCordialement,",
+        "MAIL_SUBJECT_LICENSE_TEMP_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Demande de fichier de licence temporaire pour GTF",
+        "MAIL_SUBJECT_LICENSE_REQUEST_LICENCE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Demande de fichier de licence pour GTF. Numéro de licence: {{::license_number}}",
+        "FORM_LICENSE_FILE_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Fichier .txt",
+        "SEND_MAIL_ERROR_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Erreur pendant l'envoi du mail.",
+        "SEND_MAIL_SUCCESS_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Mail envoyé avec succés",
+        "LICENSE_FILE_INSTALL_ERROR_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Erreur pendant l'installation du fichier de licence.",
+        "LICENSE_FILE_INSTALL_SUCCESS_CONFIGURATION_CONFIGURATION_GTF_LICENSE" : "Fichier de licence installé avec succés",
+        "" : "",
+        "FORM_NAME_ENGINE_GTF_ENGINE" : "Nom",
+        "FORM_SERVER_ENGINE_GTF_ENGINE" : "Serveur",
+        "FORM_ID_ENGINE_GTF_ENGINE" : "ID",
+        "FORM_PERIOD_ENGINE_GTF_ENGINE" : "Période (en minutes)",
+        "FORM_ENABLED_ENGINE_GTF_ENGINE" : "Actif ?",
+        "FORM_ENABLED_YES_ENGINE_GTF_ENGINE" : "Oui",
+        "FORM_ENABLED_NO_ENGINE_GTF_ENGINE" : "Non",
+        "FORM_FME_ENGINE_GTF_ENGINE" : "Moteur FME",
+        "FORM_TAGS_ENGINE_GTF_ENGINE" : "Mots clefs",
+        "FORM_AVAILABLE_TAGS_ENGINE_GTF_ENGINE" : "Mots clefs disponibles",
+        "FORM_LINKED_TAGS_ENGINE_GTF_ENGINE" : "Mots clefs liés au moteur GTF",
+        "FORM_TITLE_ENGINE_GTF_ENGINE" : "Moteur GTF {{::name}}",
+        "" : "",
+        "FORM_NAME_ENGINE_FME_ENGINE" : "Nom",
+        "FORM_SERVER_ENGINE_FME_ENGINE" : "Serveur",
+        "FORM_ID_ENGINE_FME_ENGINE" : "ID",
+        "FORM_PATH_ENGINE_FME_ENGINE" : "Chemin vers l'exécutable de FME",
+        "FORM_TITLE_ENGINE_FME_ENGINE" : "Moteur FME {{::name}}",
+        "FORM_TYPE_ENGINE_FME_ENGINE" : "Type",
+        "FORM_SERVER_URL_ENGINE_FME_ENGINE" : "Url du serveur",
+        "FORM_LOGIN_ENGINE_FME_ENGINE" : "Utilisateur",
+        "FORM_PASSWORD_ENGINE_FME_ENGINE" : "Mot de passe",
+        "FORM_S3_ACCESS_KEY_ID_ENGINE_FME_ENGINE" : "Id de la clé d'accès S3",
+        "FORM_S3_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE" : "Clé d'accès secrète S3",
+        "FORM_FME_CLOUD_API_TOKEN_ENGINE_FME_ENGINE" : "Token de l'API de FME Cloud",
+        "FORM_S3_REGION_ENGINE_FME_ENGINE" : "Région S3",
+        "FORM_S3_REGION_US-EAST-2_ENGINE_FME_ENGINE" : "USA Est (Ohio)",
+        "FORM_S3_REGION_US-EAST-1_ENGINE_FME_ENGINE" : "USA Est (Virginie du Nord)",
+        "FORM_S3_REGION_US-WEST-1_ENGINE_FME_ENGINE" : "USA Ouest (Californie du Nord)",
+        "FORM_S3_REGION_US-WEST-2_ENGINE_FME_ENGINE" : "USA Ouest (Oregon)",
+        "FORM_S3_REGION_AP-SOUTH-1_ENGINE_FME_ENGINE" : "Asie-Pacifique (Mumbai)",
+        "FORM_S3_REGION_AP-NORTHEAST-2_ENGINE_FME_ENGINE" : "Asie-Pacifique (Séoul)",
+        "FORM_S3_REGION_AP-SOUTHEAST-1_ENGINE_FME_ENGINE" : "Asie-Pacifique (Singapour)",
+        "FORM_S3_REGION_AP-SOUTHEAST-2_ENGINE_FME_ENGINE" : "Asie-Pacifique (Sydney)",
+        "FORM_S3_REGION_AP-NORTHEAST-1_ENGINE_FME_ENGINE" : "Asie-Pacifique (Tokyo)",
+        "FORM_S3_REGION_CA-CENTRAL-1_ENGINE_FME_ENGINE" : "Canada (Centre)",
+        "FORM_S3_REGION_CN-NORTH-1_ENGINE_FME_ENGINE" : "Chine (Pékin)",
+        "FORM_S3_REGION_EU-CENTRAL-1_ENGINE_FME_ENGINE" : "UE (Francfort)",
+        "FORM_S3_REGION_EU-WEST-1_ENGINE_FME_ENGINE" : "UE (Irlande)",
+        "FORM_S3_REGION_EU-WEST-2_ENGINE_FME_ENGINE" : "UE (Londres)",
+        "FORM_S3_REGION_EU-WEST-3_ENGINE_FME_ENGINE" : "EU (Paris)",
+        "FORM_S3_REGION_SA-EAST-1_ENGINE_FME_ENGINE" : "Amérique du Sud (São Paulo)",
+        "FORM_FME_SERVER_INSTANCE_TITLE_ENGINE_FME_ENGINE" : "Instance FME Server",
+        "FORM_AMAZON_S3_TITLE_ENGINE_FME_ENGINE" : "Amazon S3",
+        "FORM_IAM_ACCESS_KEY_ID_ENGINE_FME_ENGINE" : "Id de la clé d'accès IAM au service FME Cloud for GTF",
+        "FORM_IAM_SECRET_ACCESS_KEY_ENGINE_FME_ENGINE" : "Clé d'accès secrète IAM au service FME Cloud for GTF",
+        "FORM_FME_SERVER_S3_BUCKET_ENGINE_FME_ENGINE" : "Nom du compartiment",
+        "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE" : "Voulez-vous utiliser la GTF_CONNECTION_STRING externe ?",
+        "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_YES" : "Oui (Informations de connexion public à la base)",
+        "FORM_USEEXTERNALDBCONNECTION_ENGINE_FME_ENGINE_NO" : "Non (Informations de connexion privée à la base)",
+        "FORM_BTN_TEST_AMAZON_S3_BUCKET_ENGINE_FME_ENGINE" : "Tester",
+        "TEST_AMAZON_S3_BUCKET_ERROR_NO_SUCH_BUCKET_ENGINE_FME_ENGINE" : "Le compartiment spécifié n'existe pas.",
+        "TEST_AMAZON_S3_BUCKET_ERROR_INVALID_ACCESS_KEY_ID_FME_ENGINE" : "La clé d'accès S3 spécifiée n'existe pas.",
+        "TEST_AMAZON_S3_BUCKET_ERROR_SIGNATURE_DOES_NOT_MATCH_FME_ENGINE" : "Le calcul de la signature ne correspond pas. Vérifiez votre clé d'accès secrète S3.",
+        "" : "",
+        "FORM_ID_ENGINE_SERVER" : "ID",
+        "FORM_NAME_ENGINE_SERVER" : "Nom",
+        "FORM_SCHEDULER_ENGINE_SERVER" : "Chemin du fichier crontab à partir du serveur GTF (accès en écriture nécessaire)",
+        "FORM_ENGINE_ENGINE_SERVER" : "Répertoire des moteurs GTF (répertoire gtf.engines)",
+        "FORM_TITLE_ENGINE_SERVER" : "Serveur {{::hostname}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_CATEGORY" : "ID",
+        "FORM_NAME_PUBLICATION_CATEGORY" : "Nom",
+        "FORM_DESCRIPTION_PUBLICATION_CATEGORY" : "Description",
+        "FORM_WORKSPACE_PUBLICATION_CATEGORY" : "Traitements",
+        "FORM_AVAILABLE_WORKSPACE_PUBLICATION_CATEGORY" : "Traitements disponibles",
+        "FORM_LINKED_WORKSPACE_PUBLICATION_CATEGORY" : "Traitements liés à la catégorie",
+        "FORM_TITLE_PUBLICATION_CATEGORY" : "Catégorie {{::name}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_INBOX" : "ID",
+        "FORM_PATH_PUBLICATION_INBOX" : "Chemin",
+        "FORM_PATH_TOOLTIP_CONTENT_PUBLICATION_INBOX" : "Chemin du répertoire à surveiller",
+        "FORM_ALIAS_PUBLICATION_INBOX" : "Alias",
+        "FORM_GROUP_PUBLICATION_INBOX" : "Groupes",
+        "FORM_AVAILABLE_GROUP_PUBLICATION_INBOX" : "Groupes disponibles",
+        "FORM_LINKED_GROUP_PUBLICATION_INBOX" : "Groupes liés au dépôt",
+        "FORM_TITLE_PUBLICATION_INBOX" : "Dépôt {{::name}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_PERIOD" : "ID",
+        "FORM_NAME_PUBLICATION_PERIOD" : "Libellé",
+        "FORM_CODE_PUBLICATION_PERIOD" : "Code",
+        "FORM_PUBLISHED_PUBLICATION_PERIOD" : "Publié",
+        "FORM_PUBLISHED_YES_PUBLICATION_PERIOD" : "Oui",
+        "FORM_PUBLISHED_NO_PUBLICATION_PERIOD" : "Non",
+        "FORM_TITLE_PUBLICATION_PERIOD" : "Période {{::name}}",
+        "" : "",
+        "FORM_ID_PUBLICATION_EMAIL_TEMPLATE" : "ID",
+        "FORM_NAME_PUBLICATION_EMAIL_TEMPLATE" : "Nom",
+        "FORM_CONTEXT_PUBLICATION_EMAIL_TEMPLATE" : "Contexte",
+        "FORM_USE_ADVANCED_PUBLICATION_EMAIL_TEMPLATE" : "Utiliser la définition avancée ?",
+        "FORM_USE_ADVANCED_YES_PUBLICATION_EMAIL_TEMPLATE" : "Oui",
+        "FORM_USE_ADVANCED_NO_PUBLICATION_EMAIL_TEMPLATE" : "Non",
+        "FORM_CODE_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_ADVANCED_EDITION" : "Code",
+        "FORM_TO_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Destinataire",
+        "FORM_CC_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Cc",
+        "FORM_CCI_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Cci",
+        "FORM_SUBJECT_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Sujet",
+        "FORM_BODY_PUBLICATION_EMAIL_TEMPLATE_EMAIL_TEMPLATE_SIMPLE_EDITION" : "Message",
+        "FORM_TITLE_PUBLICATION_EMAIL_TEMPLATE" : "Modèle e-mail {{::name}}",
+        "" : "",
+        "FORM_WIDGET_NOTIFICATIONS_NEEDED_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Adresse e-mail (Obligatoire)",
+        "FORM_WIDGET_NOTIFICATIONS_OPTIONAL_PUBLICATION_WORKSPACE_EDIT_WIDGET" : "Adresse e-mail (Optionnelle)",
+        "EXPIRED_WIDGET_TOKEN_ERROR": "Votre session a expirée.",
+        "INVALID_WIDGET_TOKEN_ERROR": "Votre session est invalide.",
+        "FORM_USERS_GROUP_QUALIGEO_DOUBLE_SELECT": "Schémas",
+        "FORM_USERS_GROUP_QUALIGEO_SCHEMA_AVAILABLE": "Schémas disponibles",
+        "FORM_USERS_GROUP_QUALIGEO_SCHEMA_ASSOCIATE": "Schémas associés"
+}
diff --git a/src/module_gtf/module/less/administrationHelp.less b/src/module_gtf/module/less/administrationHelp.less
new file mode 100755
index 0000000000000000000000000000000000000000..907129182cd77d85a660a8fa8f452cea530f22a2
--- /dev/null
+++ b/src/module_gtf/module/less/administrationHelp.less
@@ -0,0 +1,8 @@
+// 
+.administration-help {
+        width: 100%;
+        height: 100%;
+        overflow: hidden;
+        border: none;
+        border-left: 1px solid silver;
+}
diff --git a/src/module_gtf/module/less/checkCronExpression.less b/src/module_gtf/module/less/checkCronExpression.less
new file mode 100755
index 0000000000000000000000000000000000000000..5d5095804d25bfad829ae23c7750bbd5e5315043
--- /dev/null
+++ b/src/module_gtf/module/less/checkCronExpression.less
@@ -0,0 +1,8 @@
+// 
+.check-cron-expression-container {
+        font-size: 12px;
+}
+
+.check-cron-expression-container .list-group > li > span {
+        font-weight: bold;
+}
diff --git a/src/module_gtf/module/less/configuration.less b/src/module_gtf/module/less/configuration.less
new file mode 100755
index 0000000000000000000000000000000000000000..99d9f38605959cb8c7e2aefda35c2758f5b93ad4
--- /dev/null
+++ b/src/module_gtf/module/less/configuration.less
@@ -0,0 +1,8 @@
+// Bouton de connexion (Demande d'un fichier de licence de Gtf)
+.gtf-license-file-request-connect-btn {
+        float: right !important;
+}
+// Bouton de génération de l'instance de GTF.
+.gtf-instance-id > div:nth-child(2) {
+    padding: 0;
+}
diff --git a/src/module_gtf/module/less/fmeEngines.less b/src/module_gtf/module/less/fmeEngines.less
new file mode 100755
index 0000000000000000000000000000000000000000..1b6dcc949574b6d4f5cf7e5f784ca7c705be7ef2
--- /dev/null
+++ b/src/module_gtf/module/less/fmeEngines.less
@@ -0,0 +1,6 @@
+// Rotation du bouton d'actualisation d'une l'instance Fme Server.
+.fme-server-instance-status-button-rotation {
+    -webkit-animation:spin 1.5s linear infinite;
+    -moz-animation:spin 1.5s linear infinite;
+    animation:spin 1.5s linear infinite;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/importWorkspace.less b/src/module_gtf/module/less/importWorkspace.less
new file mode 100755
index 0000000000000000000000000000000000000000..f5f6713c15d4343416eb3609b4d44d998c3019a6
--- /dev/null
+++ b/src/module_gtf/module/less/importWorkspace.less
@@ -0,0 +1,33 @@
+// Conteneur
+.import-workspace {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        padding: 10px 15px;
+        overflow: hidden;
+        background-color: #f8f8f8;
+}
+.import-workspace > div {
+        min-height: 100%
+}
+// Titre
+.import-workspace-title {
+        color: @font-color-purple;
+        font-size: 16px;
+        font-weight: bold;
+        margin-bottom: 20px;
+}
+// Conteneur du drag and drop.
+#import_workspace_form_container .file-preview {
+        background-color: #ffffff;
+} 
+
+#import_workspace_form_container .file-footer-caption {
+        width: 15%;
+        margin: 0;
+        padding: 10px 35px;
+        text-align: left;
+	background: url(../images/fme.png) 0 -0 no-repeat;
+        float:left;
+} 
diff --git a/src/module_gtf/module/less/main.less b/src/module_gtf/module/less/main.less
new file mode 100755
index 0000000000000000000000000000000000000000..c220a40001548b885fc48ab63e78dac96b2bcd6c
--- /dev/null
+++ b/src/module_gtf/module/less/main.less
@@ -0,0 +1,89 @@
+// LESS
+@ui-grid-bg-image: "../images/ui-grid/wbg.gif";
+@font-color-purple: #6d1a67;
+@import 'statistics.less';
+@import 'projectDirectory.less';
+@import 'userOrders.less';
+@import 'subForm.less';
+@import 'testFmeEngine.less';
+@import 'userSubscriptions.less';
+@import 'orders.less';
+@import 'subscriptions.less';
+@import 'userSurveys.less';
+@import 'surveys.less';
+@import 'administrationHelp.less';
+@import 'checkCronExpression.less';
+@import 'importWorkspace.less';
+@import 'configuration.less';
+@import 'workspace.less';
+@import 'fmeEngines.less';
+
+// Récap. de supervision (Etat des demandes, abo., surv.)
+.recap{
+	float:left;
+	display : inline;
+	padding-left:10px;
+	padding-bottom:10px;
+	background-color:#f8f8f8;
+	width:100%;
+}
+
+.recap_title{
+	color: #535353;
+	font-weight : bold;
+	font-size:11px;
+	text-transform: uppercase;
+	font-family:arial;
+	padding-top:10px;
+}
+
+.box_recap{
+	min-width: 80px;
+	//height : 46px;
+	border-style: solid;
+	border-color: #e0e0e0;
+	border-width:1px;
+	border-radius: 5px;
+	float:left;
+	display : inline;
+	background-color:#ffffff;
+        cursor: pointer;
+	
+}
+
+.box_number {
+    padding: 0 15px 0 20px;
+    color: #000000;
+    text-align: center;
+    //display: inline;
+    font-family: arial;
+    font-size: 20px;
+    font-weight: bold;
+    //padding-left: 20px;
+    //padding-top: 5px;
+    //right: 15px;
+}
+
+.box_text {
+    padding: 5px 0 2px;
+    color: #a3a3a3;
+    font-family: arial;
+    font-size: 9px;
+    font-weight: bold;
+    //padding-top: 6px;
+    text-transform: uppercase;
+    text-align: center;
+}
+
+.box_waiting {background: #ffffff url("../../../images/sql_list/st1.gif") 2px 2px no-repeat;}
+.box_error {background: #ffffff url("../../../images/sql_list/st2.png") 2px 2px no-repeat;}
+.box_treated {background: #ffffff url("../../../images/sql_list/st3.png") 2px 2px no-repeat;}
+.box_non_treatable {background: #ffffff url("../../../images/sql_list/st4.png") 2px 2px no-repeat;}
+.box_processing {background: #ffffff url("../../../images/sql_list/st5.gif") 2px 2px no-repeat;}
+.box_non_authorized {background: #ffffff url("../../../images/sql_list/st6.png") 2px 2px no-repeat;}
+
+.box_enabled_subscription {background: #ffffff url("../../../images/sql_list/st3.png") 2px 2px no-repeat;}
+.box_non_enabled_subscription {background: #ffffff url("../../../images/sql_list/st2.png") 2px 2px no-repeat;}
+
+.box_enabled_survey {background: #ffffff url("../../../images/sql_list/st3.png") 2px 2px no-repeat;}
+.box_non_enabled_survey {background: #ffffff url("../../../images/sql_list/st2.png") 2px 2px no-repeat;}
diff --git a/src/module_gtf/module/less/orders.less b/src/module_gtf/module/less/orders.less
new file mode 100755
index 0000000000000000000000000000000000000000..995c4a3b804cf4a1002003ff5540241b5ba46dd2
--- /dev/null
+++ b/src/module_gtf/module/less/orders.less
@@ -0,0 +1,14 @@
+// 
+.order-content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        //padding: 15px;
+        overflow-x: hidden;
+        overflow-y: scroll;
+        background-color: #f8f8f8;
+}
+.order-content .simple-form {
+        overflow: hidden;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/projectDirectory.less b/src/module_gtf/module/less/projectDirectory.less
new file mode 100755
index 0000000000000000000000000000000000000000..4334c66fcc2aeaf5228d9707fabf298ddcc670b0
--- /dev/null
+++ b/src/module_gtf/module/less/projectDirectory.less
@@ -0,0 +1,54 @@
+@import '../../../conf/less/variables.less';
+
+// Conteneur
+.project-directory {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        padding: 10px 15px;
+        overflow: hidden;
+        background-color: #f8f8f8;
+}
+.project-directory > div {
+        min-height: 100%
+}
+// Titre
+.project-directory-title {
+        color: @font-color-purple;
+        font-size: 16px;
+        font-weight: bold;
+        margin-bottom: 20px;
+}
+// Treeview
+.project-directory-treeview {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        padding: 15px;     
+        overflow-x: hidden;
+        overflow-y: scroll;
+}
+.project-directory-treeview > ul.list-group {
+        min-height: 100%;
+        padding: 5px;     
+        margin-bottom: 0;
+        background-color: #ffffff;
+        border: 1px solid #838383;
+        border-radius: 10px;
+}
+.project-directory-treeview-container {
+        height: 100%
+}
+// 
+.project-directory-treeview .badge {
+    margin: 2px 5px 0 0;
+    font-weight: inherit;
+    background-color: @application-color-theme;
+}
+
+// Formulaire (upload)
+.project-directory-upload-form-container {
+        padding: 5px 0 15px 0;
+}
diff --git a/src/module_gtf/module/less/statistics.less b/src/module_gtf/module/less/statistics.less
new file mode 100755
index 0000000000000000000000000000000000000000..07dd9f926e04dee19243a2c4ab477848f936352f
--- /dev/null
+++ b/src/module_gtf/module/less/statistics.less
@@ -0,0 +1,79 @@
+.form-stats-view-mode .radio:first-child .control-label {
+        display: block;
+        padding-left: 25px;
+	background: url(../images/icon-graph.png) 0 -2px no-repeat;
+}
+.form-stats-view-mode .radio:last-child .control-label {
+        display: block;
+        padding-left: 25px;
+	background: url(../images/icon-tab.png) 0 -2px no-repeat;
+}
+form[name="statistics"] .form-subtitle {
+        border-bottom: 1px solid silver;
+}
+
+.statistics-form {
+        padding: 10px;
+        background-color: #ffffff;
+        border: 1px solid #838383;
+        border-radius: 10px;
+}
+
+.statistics-form-title {
+        font-size: 11px;
+        font-style: italic;
+        color: #535353;
+}
+
+// Bouton de connexion
+.stats-calc-btn {
+        width: 100%;
+        margin-top: 1em;
+        text-align: center;
+}
+.stats-calc-btn > button {
+        float: none !important;
+}
+
+// Message d'erreur
+.statistics-error-message {
+        display: none;
+        font-size: 12px;
+        font-weight: bold;        
+        color: red;
+}
+
+// Conteneur des graphs.
+.statistics-graphs-container {
+        padding: 10px;
+}
+
+/* Tableau des stats (affichage en mode tableau) */
+#statsTable {
+	width: 95%;
+	border-collapse:collapse;
+	border: 1px solid #aaaaaa;
+	margin: auto;
+}
+#statsTable tr td, #statsTable tr th{
+	font-family: arial;
+	font-size: 9pt;
+	border: 1px solid #aaaaaa;
+}
+#statsTable tr th {
+	text-align: center;
+}
+#statsTable tr th:first-child, #statsTable tr td:first-child {
+	text-align: left;
+}
+#statsTable tr td {
+	text-align: right;
+}
+
+/* Titre du tableau de stats (affichage en mode tableau) */
+#statsTableTitle {
+	width: 100%;
+	font-family: arial;
+	font-size: 10pt;
+	text-align: center;
+}
diff --git a/src/module_gtf/module/less/subForm.less b/src/module_gtf/module/less/subForm.less
new file mode 100755
index 0000000000000000000000000000000000000000..5d0f5e36a685af24c132363b4429779566a6c882
--- /dev/null
+++ b/src/module_gtf/module/less/subForm.less
@@ -0,0 +1,23 @@
+// 
+.sub-form-container {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        padding: 15px;
+        overflow-x: hidden;
+        overflow-y: scroll;
+        background-color: #f8f8f8;
+}
+//
+.workspace-choice {
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        background: rgba(0, 0, 0, 0) url("../../../images/ui-grid/wbg.gif") repeat-x scroll 0 -1px;
+        border-color: -moz-use-text-color #cccccc #cccccc;
+        border-style: none solid solid;
+        border-width: 0 1px 1px 0;
+        line-height: 32px;
+        z-index: 999;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/subscriptions.less b/src/module_gtf/module/less/subscriptions.less
new file mode 100755
index 0000000000000000000000000000000000000000..ba8f2c7e7b9957ace6074f165c5cf13090dc1218
--- /dev/null
+++ b/src/module_gtf/module/less/subscriptions.less
@@ -0,0 +1,14 @@
+// 
+.subscription-content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        //padding: 15px;
+        overflow-x: hidden;
+        overflow-y: scroll;
+        background-color: #f8f8f8;
+}
+.subscription-content .simple-form {
+        overflow: hidden;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/surveys.less b/src/module_gtf/module/less/surveys.less
new file mode 100755
index 0000000000000000000000000000000000000000..4dd31b8806439e90ab682cbc891b91329c502c1e
--- /dev/null
+++ b/src/module_gtf/module/less/surveys.less
@@ -0,0 +1,14 @@
+// 
+.survey-content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        //padding: 15px;
+        overflow-x: hidden;
+        overflow-y: scroll;
+        background-color: #f8f8f8;
+}
+.survey-content .simple-form {
+        overflow: hidden;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/testFmeEngine.less b/src/module_gtf/module/less/testFmeEngine.less
new file mode 100755
index 0000000000000000000000000000000000000000..f042a093053347f4a8a1f26252994a000aa20d23
--- /dev/null
+++ b/src/module_gtf/module/less/testFmeEngine.less
@@ -0,0 +1,8 @@
+// 
+.test-fme-engine-container {
+        font-size: 12px;
+}
+
+.test-fme-engine-container .list-group > li > span {
+        font-weight: bold;
+}
diff --git a/src/module_gtf/module/less/userOrders.less b/src/module_gtf/module/less/userOrders.less
new file mode 100755
index 0000000000000000000000000000000000000000..23fceab4483f779a93f900ee75c492c6af2aefb6
--- /dev/null
+++ b/src/module_gtf/module/less/userOrders.less
@@ -0,0 +1,14 @@
+// 
+.user-order-content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        //padding: 15px;
+        overflow-x: hidden;
+        overflow-y: hidden;
+        background-color: #f8f8f8;
+}
+.user-order-content .simple-form {
+        overflow-y: scroll;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/userSubscriptions.less b/src/module_gtf/module/less/userSubscriptions.less
new file mode 100755
index 0000000000000000000000000000000000000000..a5c9383bb0f70b44c59ded2394d2ff4a0cb92aef
--- /dev/null
+++ b/src/module_gtf/module/less/userSubscriptions.less
@@ -0,0 +1,14 @@
+// 
+.user-subscription-content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        //padding: 15px;
+        overflow-x: hidden;
+        overflow-y: scroll;
+        background-color: #f8f8f8;
+}
+.user-subscription-content .simple-form {
+        overflow: hidden;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/userSurveys.less b/src/module_gtf/module/less/userSurveys.less
new file mode 100755
index 0000000000000000000000000000000000000000..59aa54f258dfc99ac498747c54f8a3cff0e77b19
--- /dev/null
+++ b/src/module_gtf/module/less/userSurveys.less
@@ -0,0 +1,14 @@
+// 
+.user-survey-content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        margin: 0 0;
+        //padding: 15px;
+        overflow-x: hidden;
+        overflow-y: scroll;
+        background-color: #f8f8f8;
+}
+.user-survey-content .simple-form {
+        overflow: hidden;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/widget.less b/src/module_gtf/module/less/widget.less
new file mode 100755
index 0000000000000000000000000000000000000000..7bbf55273c9d463572932c91ea04677e8e7c642c
--- /dev/null
+++ b/src/module_gtf/module/less/widget.less
@@ -0,0 +1,29 @@
+.widget .panel-body {
+    overflow-y: auto;
+}
+#widget_captcha {
+    margin: 5px 0;
+}
+.widget-popup .bootbox-body, .widget-popup .bootbox-body > div {
+    width: 100%;
+    height: 100%;
+}
+.widget-popup iframe {
+    width: 100%;
+    height: 100%;
+    border: none;
+}
+// Affichage de la scrollbar dans l'iframe.
+.widget-popup iframe body {
+    overflow: auto !important;
+}
+
+.widget-popup .modal-body {
+    padding: 0;
+}
+
+// Captcha en erreur.
+.widget-captcha-error > div:first-child {
+    border: 1px solid #a94442;
+    border-radius: 4px;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/less/workspace.less b/src/module_gtf/module/less/workspace.less
new file mode 100755
index 0000000000000000000000000000000000000000..5d538874fca8f928845d454aa83cf86d06287bae
--- /dev/null
+++ b/src/module_gtf/module/less/workspace.less
@@ -0,0 +1,9 @@
+// 
+.widget_codemirror .CodeMirror-hscrollbar {
+    overflow-x: scroll;
+}
+
+//
+.project-directory-treeview > .list-group > .list-group-item {
+    width: auto;
+}
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/administrationHelpTpl.html b/src/module_gtf/module/templates/administrationHelpTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..6c1335f2a7e9e683d57eaf419094e4cf80cc0532
--- /dev/null
+++ b/src/module_gtf/module/templates/administrationHelpTpl.html
@@ -0,0 +1 @@
+<iframe data-app-administration-help="" src="{{::sUrlAdministrationHelp}}" class="administration-help"></iframe>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/checkCronExpressionTpl.html b/src/module_gtf/module/templates/checkCronExpressionTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..d57c7b86c852b4b9fe43d621a9ab1e189a98b366
--- /dev/null
+++ b/src/module_gtf/module/templates/checkCronExpressionTpl.html
@@ -0,0 +1,14 @@
+<div class="col-xs-12 no_bs_padding check-cron-expression-container">
+        <div ng-class="::sCronTestResultClass">
+                <div class="panel-heading">
+                        <h3 class="panel-title">{{::sCronTestResultMessage}}</h3>
+                </div>
+                <ul ng-if="::bCronExpressionArguments" class="list-group">
+                        <li class="list-group-item"><span data-translate="FORM_CRON_ARG1_PUBLICATION_PERIOD"></span> : {{::oCheckCronExpressionResult.arguments[0]}}</li>
+                        <li class="list-group-item"><span data-translate="FORM_CRON_ARG2_PUBLICATION_PERIOD"></span> : {{::oCheckCronExpressionResult.arguments[1]}}</li>
+                        <li class="list-group-item"><span data-translate="FORM_CRON_ARG3_PUBLICATION_PERIOD"></span> : {{::oCheckCronExpressionResult.arguments[2]}}</li>
+                        <li class="list-group-item"><span data-translate="FORM_CRON_ARG4_PUBLICATION_PERIOD"></span> : {{::oCheckCronExpressionResult.arguments[3]}}</li>
+                        <li class="list-group-item"><span data-translate="FORM_CRON_ARG5_PUBLICATION_PERIOD"></span> : {{::oCheckCronExpressionResult.arguments[4]}}</li>
+                </ul>
+        </div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/gtfLicenceTpl.html b/src/module_gtf/module/templates/gtfLicenceTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..04742d8b505786ecf27cfe63d96302604039a348
--- /dev/null
+++ b/src/module_gtf/module/templates/gtfLicenceTpl.html
@@ -0,0 +1,20 @@
+<div class="gtf-license-infos-container">
+        <!-- License ok -->
+        <div ng-if="::(oGtfLicenseInfos.license === true)" class="panel panel-success">
+                <div class="panel-heading">
+                        <h3 class="panel-title" data-translate="FORM_LICENSE_FOUND_CONFIGURATION_CONFIGURATION_GTF_LICENSE"></h3>
+                </div>
+                <ul class="list-group">
+                        <li class="list-group-item"><span data-translate="FORM_LICENSE_NUMBER_CONFIGURATION_CONFIGURATION_GTF_LICENSE"></span>: {{::oGtfLicenseInfos.license_number}}</li>
+                        <li class="list-group-item"><span data-translate="FORM_LICENSE_OWNER_CONFIGURATION_CONFIGURATION_GTF_LICENSE"></span>: {{::oGtfLicenseInfos.owner}}</li>
+                        <li class="list-group-item"><span data-translate="{{(oGtfLicenseInfos.expiry_date == 'Permanent') ? 'FORM_LICENSE_PERMANENT_CONFIGURATION_CONFIGURATION_GTF_LICENSE' : 'FORM_LICENSE_EXPIRE_CONFIGURATION_CONFIGURATION_GTF_LICENSE'}}" data-translate-values="::oGtfLicenseInfos"></span></li>
+                        <li class="list-group-item"><span data-translate="FORM_LICENSE_ENGINES_CONFIGURATION_CONFIGURATION_GTF_LICENSE"></span>: {{::oGtfLicenseInfos.engines}}</li>
+                </ul>                        
+        </div>
+        <!-- Erreur -->
+        <div ng-if="::(oGtfLicenseInfos.license !== true && oGtfLicenseInfos.valid !== true)" class="panel panel-danger">
+                <div class="panel-heading">
+                        <h3 class="panel-title" data-translate="FORM_LICENSE_NOT_FOUND_CONFIGURATION_CONFIGURATION_GTF_LICENSE"></h3>
+                </div>
+        </div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/importWorkspaceTpl.html b/src/module_gtf/module/templates/importWorkspaceTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..d123964b82945e3d6689b6825a5edc2b6eab5ec2
--- /dev/null
+++ b/src/module_gtf/module/templates/importWorkspaceTpl.html
@@ -0,0 +1,15 @@
+<div data-app-import-workspace="" class="row no-bs-row-margin import-workspace">
+        <div style="height: 95%;">
+                <!-- Titre --> 
+                <div id="import_workspace_title_container" class="row">
+                        <div class="col-xs-12 import-workspace-title"data-translate="{{oFormDefinition[sFormDefinitionName].title}}"></div>
+                </div>
+                <!-- Formulaire (upload) --> 
+                <div id="import_workspace_form_container" class="row import-workspace-upload-form-container" style="height:90%;">
+                        <div style="height: 100%;">
+                                <input id="publication_workspace_import_workspace_fmw_file" name="fmw_file[]" type="file" multiple class="file-loading">
+                        </div>
+                        <div data-app-import-workspace-form="" style="height: 100%;" ></div>
+                </div>
+        </div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/ordersLeftTpl.html b/src/module_gtf/module/templates/ordersLeftTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..3d6bd759ddcd96442eb959a84416385d4bcbfcf2
--- /dev/null
+++ b/src/module_gtf/module/templates/ordersLeftTpl.html
@@ -0,0 +1,3 @@
+<div class="double-form-form">
+        <div data-app-order-left-form></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/ordersRightTpl.html b/src/module_gtf/module/templates/ordersRightTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..15363e9310c3fc6975163c6cf5f4361b0bdfb9fe
--- /dev/null
+++ b/src/module_gtf/module/templates/ordersRightTpl.html
@@ -0,0 +1,3 @@
+<div data-app-order="" class="row no-bs-row-margin order-content">
+        <div data-app-order-right-form="" class="col-xs-12 no-bs-col-padding"></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/projectDirectoryTpl.html b/src/module_gtf/module/templates/projectDirectoryTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..4db814b2528eabf4c19db666feb485ce0e861fe7
--- /dev/null
+++ b/src/module_gtf/module/templates/projectDirectoryTpl.html
@@ -0,0 +1,16 @@
+<div data-app-project-directory="" id="project-directory" class="row no-bs-row-margin project-directory">
+        <div class="col-xs-12 no_bs_padding">
+                <!-- Titre --> 
+                <div id="project_directory_title_container" class="row">
+                        <div class="col-xs-12 project-directory-title">Projet FME {{oFormValues[sFormDefinitionName].name}}</div>
+                </div>
+                <!-- Treeview --> 
+                <div id="project-directory-treeview-container" class="row project-directory-treeview-container">
+                        <div data-app-project-directory-treeview="" class="col-xs-12 project-directory-treeview"></div>
+                </div>
+                <!-- Formulaire (upload) --> 
+                <div id="project_directory_form_container" class="row project-directory-upload-form-container">
+                        <div data-app-project-directory-form="" class="col-xs-{{oFormDefinition[sFormDefinitionName].nb_cols}}"></div>
+                </div>
+        </div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/statisticsLeftTpl.html b/src/module_gtf/module/templates/statisticsLeftTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..0a8ea9310c8200b0c52d36efbaa42632c1f82827
--- /dev/null
+++ b/src/module_gtf/module/templates/statisticsLeftTpl.html
@@ -0,0 +1,5 @@
+<div class="statistics-form">
+        <p class="statistics-form-title" data-translate="FORM_TITLE_STATISTICS"></p>
+        <div data-app-statistics-form></div>
+        <p id="statistics-error-message" class="statistics-error-message"></p>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/statisticsRightTpl.html b/src/module_gtf/module/templates/statisticsRightTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..5e6c197a1d7b3a0d8badefcc06b5936460079b39
--- /dev/null
+++ b/src/module_gtf/module/templates/statisticsRightTpl.html
@@ -0,0 +1,2 @@
+<div data-app-statistics="">
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/subFormTpl.html b/src/module_gtf/module/templates/subFormTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..a88085d70e68f4dbd2f649a80124822241d24102
--- /dev/null
+++ b/src/module_gtf/module/templates/subFormTpl.html
@@ -0,0 +1,20 @@
+<!--<div data-app-sub-form-container="" class="row no-bs-row-margin sub-form-container">
+        <div class="-12">
+                <div class="row">
+                        <div class="-12 double-form-title">{{sSubFormTitle}}</div>
+                </div>
+                <div class="row">
+                        <div data-app-sub-form-formular="" class="-{{oFormDefinition[sFormDefinitionName].nb_cols}}"></div>
+                </div>
+        </div>
+</div>
+<div class="-12 workspace-choice">
+        <div class="form-inline">
+                <div class="form-group form-group-xs btn-group-xs">
+                        <select ng-model="oWorkspaceChoice.selectedOption" ng-options="option.label for option in ::oWorkspaceChoice.options track by option.value" name="link_execute_workspace" id="link_execute_workspace" class="form-control"></select>                        
+                        <button type="button" ng-click="" data-translate="FORM_EXECUTE_WORKSPACE_PUBLICATION_WORKSPACE_SUB_FORM" name="" id="" class="btn btn-primary"></button>
+                </div>
+        </div>
+</div>-->
+
+<div data-app-studio-main-directive></div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/subscriptionsLeftTpl.html b/src/module_gtf/module/templates/subscriptionsLeftTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..a2715d175ef826cb8db5fc39f1918f493fd64097
--- /dev/null
+++ b/src/module_gtf/module/templates/subscriptionsLeftTpl.html
@@ -0,0 +1,3 @@
+<div class="double-form-form">
+        <div data-app-subscription-form></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/subscriptionsRightTpl.html b/src/module_gtf/module/templates/subscriptionsRightTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..ee4605a8db099ddfefb5a42f590591d3ef89fe0e
--- /dev/null
+++ b/src/module_gtf/module/templates/subscriptionsRightTpl.html
@@ -0,0 +1,3 @@
+<div data-app-subscription="" class="row no-bs-row-margin subscription-content">
+        <div data-app-subscription-right-form="" class="col-xs-12 no-bs-col-padding"></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/supervisionStatusTpl.html b/src/module_gtf/module/templates/supervisionStatusTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..f0ad53d6a5f5c1b05ad134e240c7797b36476303
--- /dev/null
+++ b/src/module_gtf/module/templates/supervisionStatusTpl.html
@@ -0,0 +1,78 @@
+<div id="list_recap" class="col-xs-12 no_bs_padding">
+        <div ng-if="sSelectedObjectName == 'supervision_gtf_order'" class="recap">
+                <div class="recap_title" data-translate="STATUS_TITLE_SUPERVISION_ORDER"></div>
+                <div class="recap_boxes">
+                        <div class="box_recap box_waiting" ng-click="setSupervisionRecapFilter(1)">
+                                <div class="box_number">{{oSupervisionStatus.order.iWaitingOrders}}</div>
+                                <div class="box_text" data-translate="WAITING_BOX_TITLE_SUPERVISION_ORDER"></div>
+                        </div>
+                        <div class="box_recap box_error" ng-click="setSupervisionRecapFilter(2)">
+                                <div class="box_number">{{oSupervisionStatus.order.iErrors}}</div>
+                                <div class="box_text" data-translate="ERROR_BOX_TITLE_SUPERVISION_ORDER"></div>
+                        </div>
+                        <div class="box_recap box_treated" ng-click="setSupervisionRecapFilter(3)">
+                                <div class="box_number">{{oSupervisionStatus.order.iTreatedOrders}}</div>
+                                <div class="box_text" data-translate="TREATED_BOX_TITLE_SUPERVISION_ORDER"></div>
+                        </div>
+                        <div class="box_recap box_non_treatable" ng-click="setSupervisionRecapFilter(4)">
+                                <div class="box_number">{{oSupervisionStatus.order.iNonTreatableOrders}}</div>
+                                <div class="box_text" data-translate="NON_TREATABLE_BOX_TITLE_SUPERVISION_ORDER"></div>
+                        </div>
+                        <div class="box_recap box_processing" ng-click="setSupervisionRecapFilter(5)">
+                                <div class="box_number">{{oSupervisionStatus.order.iProcessingOrders}}</div>
+                                <div class="box_text" data-translate="PROCESSING_BOX_TITLE_SUPERVISION_ORDER"></div>
+                        </div>
+                        <div class="box_recap box_non_authorized" ng-click="setSupervisionRecapFilter(6)">
+                                <div class="box_number">{{oSupervisionStatus.order.iNonAuthorizedOrders}}</div>
+                                <div class="box_text" data-translate="NON_AUTHORIZED_BOX_TITLE_SUPERVISION_ORDER"></div>
+                        </div>
+                </div>
+        </div>
+        <div ng-if="sSelectedObjectName == 'supervision_gtf_subscription'" class="recap">
+                <div class="recap_title" data-translate="STATUS_TITLE_SUPERVISION_SUBSCRIPTION"></div>
+                <div class="recap_boxes">
+                        <div class="box_recap box_enabled_subscription" ng-click="setSupervisionRecapFilter('TRUE')">
+                                <div class="box_number">{{oSupervisionStatus.subscription.iEnabledSubscription}}</div>
+                                <div class="box_text" data-translate="ENABLED_SUBSCRIPTION_BOX_TITLE_SUPERVISION_SUBSCRIPTION"></div>
+                        </div>
+                        <div class="box_recap box_non_enabled_subscription" ng-click="setSupervisionRecapFilter('FALSE')">
+                                <div class="box_number">{{oSupervisionStatus.subscription.iNonEnabledSubscription}}</div>
+                                <div class="box_text" data-translate="NON_ENABLED_SUBSCRIPTION_BOX_TITLE_SUPERVISION_SUBSCRIPTION"></div>
+                        </div>
+                </div>
+        </div>
+        <div ng-if="sSelectedObjectName == 'supervision_gtf_survey'" class="recap">
+                <div class="recap_title" data-translate="STATUS_TITLE_SUPERVISION_SURVEY"></div>
+                <div class="recap_boxes">
+                        <div class="box_recap box_enabled_survey" ng-click="setSupervisionRecapFilter('TRUE')">
+                                <div class="box_number">{{oSupervisionStatus.survey.iEnabledSurvey}}</div>
+                                <div class="box_text" data-translate="ENABLED_SURVEY_BOX_TITLE_SUPERVISION_SURVEY"></div>
+                        </div>
+                        <div class="box_recap box_non_enabled_survey" ng-click="setSupervisionRecapFilter('FALSE')">
+                                <div class="box_number">{{oSupervisionStatus.survey.iNonEnabledSurvey}}</div>
+                                <div class="box_text" data-translate="NON_ENABLED_SURVEY_BOX_TITLE_SUPERVISION_SURVEY"></div>
+                        </div>
+                </div>
+        </div>
+        <div ng-if="sSelectedObjectName == 'supervision_gtf_message'" class="recap">
+                <div class="recap_title" data-translate="STATUS_TITLE_SUPERVISION_MESSAGE"></div>
+                <div class="recap_boxes">
+                        <div class="box_recap box_waiting" ng-click="setSupervisionRecapFilter(1)">
+                                <div class="box_number">{{oSupervisionStatus.message.iWaitingMessages}}</div>
+                                <div class="box_text" data-translate="WAITING_BOX_TITLE_SUPERVISION_MESSAGE"></div>
+                        </div>
+                        <div class="box_recap box_error" ng-click="setSupervisionRecapFilter(2)">
+                                <div class="box_number">{{oSupervisionStatus.message.iErrorMessage}}</div>
+                                <div class="box_text" data-translate="ERROR_BOX_TITLE_SUPERVISION_MESSAGE"></div>
+                        </div>
+                        <div class="box_recap box_treated" ng-click="setSupervisionRecapFilter(3)">
+                                <div class="box_number">{{oSupervisionStatus.message.iTreatedMessages}}</div>
+                                <div class="box_text" data-translate="TREATED_BOX_TITLE_SUPERVISION_MESSAGE"></div>
+                        </div>
+                        <div class="box_recap box_processing" ng-click="setSupervisionRecapFilter(5)">
+                                <div class="box_number">{{oSupervisionStatus.message.iProcessingMessages}}</div>
+                                <div class="box_text" data-translate="PROCESSING_BOX_TITLE_SUPERVISION_MESSAGE"></div>
+                        </div>
+                </div>
+        </div>
+</div>
diff --git a/src/module_gtf/module/templates/surveysLeftTpl.html b/src/module_gtf/module/templates/surveysLeftTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..d9fa1dab29ae5ce5d03a40c952db71af8aefbb28
--- /dev/null
+++ b/src/module_gtf/module/templates/surveysLeftTpl.html
@@ -0,0 +1,3 @@
+<div class="double-form-form">
+        <div data-app-survey-form></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/surveysRightTpl.html b/src/module_gtf/module/templates/surveysRightTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..01c66225dc9dbf61c461ccca98dc00b2a84f074b
--- /dev/null
+++ b/src/module_gtf/module/templates/surveysRightTpl.html
@@ -0,0 +1,3 @@
+<div data-app-survey="" class="row no-bs-row-margin order-content">
+        <div data-app-survey-right-form="" class="col-xs-12 no-bs-col-padding"></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/testFmeEngineTpl.html b/src/module_gtf/module/templates/testFmeEngineTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..d56899187e9dfce9bae48396fcacce7637cdd61f
--- /dev/null
+++ b/src/module_gtf/module/templates/testFmeEngineTpl.html
@@ -0,0 +1,23 @@
+<div class="col-xs-12 no_bs_padding test-fme-engine-container">
+        <!-- Test ok -->
+        <div ng-if="::(oTestFmeEngineResult.exists === true && oTestFmeEngineResult.valid === true)" class="panel panel-success">
+                <div class="panel-heading">
+                        <h3 class="panel-title" data-translate="SUCCESS_FME_ENGINE_FME_ENGINE"></h3>
+                </div>
+                <ul class="list-group">
+                        <li ng-if="::oTestFmeEngineResult.host" class="list-group-item"><span data-translate="FME_HOST_ENGINE_FME_ENGINE"></span> : {{::oTestFmeEngineResult.host}}</li>
+                        <li ng-if="::oTestFmeEngineResult.version"class="list-group-item"><span data-translate="FME_VERSION_ENGINE_FME_ENGINE"></span> : {{::oTestFmeEngineResult.version}}</li>
+                        <li ng-if="::oTestFmeEngineResult.type"class="list-group-item"><span data-translate="FME_TYPE_ENGINE_FME_ENGINE"></span> : {{::oTestFmeEngineResult.type}}</li>
+                        <li ng-if="::oTestFmeEngineResult.validity"class="list-group-item"><span data-translate="FME_VALIDITY_ENGINE_FME_ENGINE"></span> : {{::oTestFmeEngineResult.validity}}</li>
+                </ul>                        
+        </div>
+        <!-- Erreur -->
+        <div ng-if="::(oTestFmeEngineResult.exists !== true || oTestFmeEngineResult.valid !== true)" class="panel panel-danger">
+                <div class="panel-heading">
+                        <h3 class="panel-title" data-translate="ERROR_FME_ENGINE_FME_ENGINE"></h3>
+                </div>
+                <ul class="list-group">
+                        <li class="list-group-item">{{::oTestFmeEngineResult.sErrorMessage}}</li>
+                </ul>                        
+        </div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/userordersLeftTpl.html b/src/module_gtf/module/templates/userordersLeftTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..9cd91cb2a1278e7eb72e1ab62f609221befa2d3f
--- /dev/null
+++ b/src/module_gtf/module/templates/userordersLeftTpl.html
@@ -0,0 +1,3 @@
+<div class="double-form-form">
+        <div data-app-user-order-left-form></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/userordersRightTpl.html b/src/module_gtf/module/templates/userordersRightTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..63a1739c1dd02b5d95c01ec7d2490f40c9d28f9d
--- /dev/null
+++ b/src/module_gtf/module/templates/userordersRightTpl.html
@@ -0,0 +1,4 @@
+<div data-app-user-order="" class="row no-bs-row-margin user-order-content">
+        <!--<div class="col-xs-12 double-form-title">{{sSubFormTitle}}</div>-->
+        <div data-app-user-order-right-form="" class="col-xs-12 no-bs-col-padding" style="height:100%"></div>
+</div>
diff --git a/src/module_gtf/module/templates/usersubscriptionsLeftTpl.html b/src/module_gtf/module/templates/usersubscriptionsLeftTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..6e4781713adb5fe547449d27b51cc16952538179
--- /dev/null
+++ b/src/module_gtf/module/templates/usersubscriptionsLeftTpl.html
@@ -0,0 +1,3 @@
+<div class="double-form-form">
+        <div data-app-user-subscription-form></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/usersubscriptionsRightTpl.html b/src/module_gtf/module/templates/usersubscriptionsRightTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..f5872a6f67b72167c46c55c0b28272b370ab94aa
--- /dev/null
+++ b/src/module_gtf/module/templates/usersubscriptionsRightTpl.html
@@ -0,0 +1,3 @@
+<div data-app-user-subscription="" class="row no-bs-row-margin user-subscription-content">
+        <div data-app-user-subscription-right-form="" class="col-xs-12 no-bs-col-padding"></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/usersurveysLeftTpl.html b/src/module_gtf/module/templates/usersurveysLeftTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..ab5eb458819161402b8a2493bcbef4f4f3f6ab79
--- /dev/null
+++ b/src/module_gtf/module/templates/usersurveysLeftTpl.html
@@ -0,0 +1,3 @@
+<div class="double-form-form">
+        <div data-app-user-survey-form></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/usersurveysRightTpl.html b/src/module_gtf/module/templates/usersurveysRightTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..188f5ae80a4c3ea5e8de2063bb2b37154a9c3227
--- /dev/null
+++ b/src/module_gtf/module/templates/usersurveysRightTpl.html
@@ -0,0 +1,3 @@
+<div data-app-user-survey="" class="row no-bs-row-margin user-survey-content">
+        <div data-app-user-survey-right-form="" class="col-xs-12 no-bs-col-padding"></div>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/module/templates/widgetTpl.html b/src/module_gtf/module/templates/widgetTpl.html
new file mode 100755
index 0000000000000000000000000000000000000000..6354e0ad61fb002e95d81257e26942b7cbd31565
--- /dev/null
+++ b/src/module_gtf/module/templates/widgetTpl.html
@@ -0,0 +1,14 @@
+<div ng-if="::oWidgetParams.modal_window_params.widget_type == 'Pop-up'">
+    <button type="button" ng-click="" name="btn_open_modal_window" id="btn_open_modal_window" class="btn btn-primary">{{::oWidgetParams.button_label}}</button>
+    <script src="{{::oWidgetParams.less}}"></script>
+    <script src="{{::oWidgetParams.load_external_files}}"></script>
+    <script src="{{::oWidgetParams.widget_popup_init_file_url}}" data-modal-window-params="{{::sModalWindowParams}}"></script>
+</div>
+<div ng-if="::oWidgetParams.modal_window_params.widget_type == 'Embedded'">
+    <script src="{{::oWidgetParams.widget_embedded_init_file_url}}"></script>
+    <iframe src="{{::oWidgetParams.widget_iframe_url}}" name="gtf_widget_iframe" id="{{::oWidgetParams.modal_window_params.window_id}}" class="gtf-widget-iframe ng-scope" onload="afterIframeLoad(this, '[sModalWindowParams]')"></iframe>
+</div>
+<div ng-if="::oWidgetParams.modal_window_params.widget_type == 'File'">
+    <script src="{{::oWidgetParams.widget_embedded_init_file_url}}"></script>
+    <iframe src="{{::oWidgetParams.widget_iframe_url}}" name="gtf_widget_iframe" id="{{::oWidgetParams.modal_window_params.window_id}}" class="gtf-widget-iframe ng-scope" onload="afterIframeLoad(this, '[sModalWindowParams]')"></iframe>
+</div>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/DbClass.class.inc b/src/module_gtf/web_service/class/gtf_lib/DbClass.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..df07957581a4df21b86e55ad6b88e5f9467174c5
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/DbClass.class.inc
@@ -0,0 +1,116 @@
+<?php
+
+require_once ("vitis_lib/XmlAbstract.class.inc");
+require_once("vmlib/Vm.class.inc");
+require_once("vmlib/dbUtil.inc");
+require_once("vmlib/logUtil.inc");
+require_once("vmlib/error.inc");
+
+class DbClassLib extends XmlAbstract{
+	
+	//Champ clé de la table
+	var $sPkField;
+	
+	//Valeur du champ clé de la table
+	var $iPkValue;
+	
+	// Tableau de Properties
+	var $aProperties;
+	
+	var $sTable;
+	
+	//Chemin du fichier de ressources contenant les requêtes SQL
+	var $sRessourcesFile;
+	
+	//Séquence utilisé pour l'obtention d'un nouvel identifiant
+	var $sSequence =  "s_gtf.seq_order";
+	
+	//Variable stockant les messages d'erreur des requêtes
+	var $sMessage;
+	
+	// Connexion à la base de données
+	var $oBd;
+	
+	// est vrai si l'objet correspondant n'existe pas dans la base ou en cas d'erreur d'initialisation
+	var $bEnErreur;
+	
+	// code d'erreur. different de 0 si bEnErreur=True
+	var $iErrorCode=0;
+	
+	function setFields($aValues){
+		foreach ($aValues as $sCle =>$sValeur) {
+				$this->aFields[$sCle]=$sValeur;
+		}
+	}
+	
+	/*
+	 * Méthode de classe : Insert
+	 * Cette méthode permet d'insérer un nouvel enregistrement dans la table du shéma passé en pararmètre
+	 */
+	function insert(){
+		$iId = $this->oBd->insert($this->aProperties['schema_gtf'], $this->sTable, $this->aFields, $this->sSequence, $this->sPkField, $bGetSql=false); 
+		if ($iId!=""){
+			writeToDebugLog("La demande ".$iId." a bien été insérée dans la base.");
+			$this->sMessage = "La demande ".$iId." a bien été insérée dans la base.";
+			return $iId;
+		}else{
+			writeToErrorLog(ERROR_0002.$this->oBd->getBDMessage());
+			$this->sMessage = "La création de la demande a échouée.";
+			return -1;
+		}
+	}
+
+	/*
+	 * Méthode de classe : Update
+	 * Cette méthode permet de mettre à jour un enregistrement dans la table du shéma passé en pararmètre
+	 */
+	function update(){
+		if (!$this->oBd->update($this->aProperties['schema_gtf'], $this->sTable, $this->aFields, $this->sPkField, $this->iPkValue, $sIdType="")){
+			writeToDebugLog("La demande ".$this->iPkValue." a bien été mise à jour dans la base.");
+			$this->sMessage = "La demande ".$this->iPkValue." a bien été mise à jour dans la base.";
+			//Rajouté par Laurent
+			return $this->aFields["order_id"];
+		}else{
+			writeToErrorLog(str_replace('[order_id]', $this->iPkValue, ERROR_0003).$this->oBd->getBDMessage());
+			$this->sMessage = "La mise à jour de la demande ".$this->iPkValue." a échouée. -- ".$this->oBd->getBDMessage();		
+			//Rajouté par Laurent
+			return -1;
+		}
+		return $this->sMessage;
+	}
+	
+	/*
+	 * Méthode de classe : Delete
+	 * Cette méthode permet de supprimer un enregistrement dans la table du shéma passé en pararmètre
+	 */
+	function delete($iDemandeId=""){
+		if ($iDemandeId=="") $iDemandeId=$this->iPkValue;
+		
+		if (!$this->oBd->delete($this->aProperties['schema_gtf'], $this->sTable, $this->sPkField, $iDemandeId,$sIdType="")){
+			writeToDebugLog("La demande ".$iDemandeId." a bien été supprimée de la base.");
+			$this->sMessage = "La demande ".$iDemandeId." a bien été supprimée de la base.";
+			return $iDemandeId;
+		}else{
+			writeToErrorLog(str_replace('[order_id]', $iDemandeId, ERROR_0004).$this->oBd->getBDMessage());
+			$this->sMessage = "La demande ".$iDemandeId." n'a pas pu être supprimée de la base.";	
+			return -1;
+		}
+	}
+	
+	function setPkValue($iId){
+		$this->iPkValue = $iId;
+	}
+
+	/*
+	 * Méthode de classe : getSourceEncoding
+	 * Cette méthode permet de retourner l'encodage de la base de données
+	 */
+	function getSourceEncoding(){
+		return $this->oBd->getSourceEncoding();
+	}
+	
+	
+}
+
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/FmeCloud.class.inc b/src/module_gtf/web_service/class/gtf_lib/FmeCloud.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..fc8eaec69cf47949e8f7546769d228bdd03dc839
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/FmeCloud.class.inc
@@ -0,0 +1,214 @@
+<?php
+require_once("vmlib/logUtil.inc");
+
+/**
+ * \file FmeCloud.php
+ * \brief Main class to use Fme Cloud services.
+ *
+ * \author Frederic Carretero <frederic.carretero@veremes.com>
+ */
+
+Class FmeCloud {
+    public $sUrl;
+    public $aLastCurlRequestInfo;
+    public $sLogFilePath;   // Chemin optionnel vers le fichier de log pour Fme Cloud.
+    private $sToken;
+    
+    /**
+     * construct
+     * @param {string} $sUrl Url of the fme server.
+     * @param {string} $sToken Token of the FME Cloud API.
+     */
+    function __construct ($sUrl, $sToken) {
+        $this->sUrl = $sUrl;
+        $this->sToken = $sToken;    // Token de l'API FME Cloud.
+    }
+    
+    /**
+     * Curl request
+     * @param {string} $sUrl Url of the Curl request.
+     * @param {string} $sType Type of the Curl request (GET, POST).
+     * @param {array} $aData Data of the Curl request.
+     * @param {array} $aHeaders Headers of the Curl request.
+     * @return Request result
+     */
+    // 
+    function curlRequest($sUrl, $sType, $aData = array(), $aHeaders = array()) {
+        //
+        $this->aLastCurlRequestInfo = '';
+        //
+        $ch = curl_init();
+        $sType = strtoupper($sType);
+        // Force la méthode de requête utilisée (GET, POST...).
+        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $sType);
+        // Url à utiliser.
+        if (($sType == 'GET' || $sType == 'DELETE') && !empty($aData))
+            $sUrl .= '?' . http_build_query($aData);
+        curl_setopt($ch, CURLOPT_URL, $sUrl);
+        // Retour sous forme de texte. 
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+        // Requête POST.
+        if ($sType == 'POST') {
+            curl_setopt($ch, CURLOPT_POST, true);
+            // Chaîne de requête en encodage URL.
+            if (is_array($aData))
+                $aData = http_build_query($aData);
+            // Données de la requête.
+            curl_setopt($ch, CURLOPT_POSTFIELDS, $aData);
+            //
+            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
+            // Entête pour la requête en POST.
+            //$aHeaders[] = 'Content-Type: application/x-www-form-urlencoded';
+        }
+        // Entête pour la requête
+        $aHeaders[] = 'Accept: application/json';
+        if (!empty($this->sToken))
+            $aHeaders[] = 'Authorization: Bearer ' . $this->sToken; // Token obligatoire pour éxécuter la requête.
+        curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders);
+        // Durée max. de la requête.
+        //curl_setopt($ch, CURLOPT_TIMEOUT, 120);
+        // Exécute la session CURL.
+        // Log.
+        /*
+        $handle = fopen("curl_log.txt", "a");
+        fwrite($handle, PHP_EOL . '-----------------------' . PHP_EOL);
+        curl_setopt($ch, CURLOPT_VERBOSE, true);
+        curl_setopt($ch, CURLOPT_STDERR , $handle);
+        */
+        curl_setopt($ch, CURLINFO_HEADER_OUT, true);
+        // Curl error: SSL certificate problem: unable to get local issuer certificate
+        // Curl error n°60
+        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);      
+        //
+        $output = curl_exec($ch);
+        // Erreur de la requête CURL.
+        if(curl_errno($ch)) {
+            writeToErrorLog('Curl error: ' . curl_error($ch));
+            writeToErrorLog('Curl error n°' . curl_errno($ch));
+        }
+        // Informations de la requête.
+        $aCurlInfo = curl_getinfo($ch);
+        $this->aLastCurlRequestInfo = $aCurlInfo;
+        //file_put_contents('C:/svn/gtf_cloud/gtf.engines/log/response.log', print_r($aCurlInfo, true));
+        //writeToErrorLog(print_r(curl_getinfo($ch), true));
+        
+        // Ferme la session CURL.
+        curl_close($ch);
+        //
+        //fclose($handle);
+        //
+        return $output;
+    }
+    
+    /**
+     * Send a request to the REST API.
+     * @param {string} $sService Name of the service.
+     * @param {string} $sMethod Method of the service (GET, POST...).
+     * @param {array} $aData Data of the Curl request.
+     * @return Request result
+     */
+    function serviceRequest($sService, $sMethod = 'GET', $aData = array()) {
+        // Url vers le serveur fme.
+        $sUrl = $this->sUrl;
+        // Url vers le service d'information.
+        $sUrl = $this->sUrl . '/v1/' . $sService;
+        // Transfert cURL
+        $sRequestResponse = $this->curlRequest($sUrl, $sMethod, $aData);
+        if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+            $oRequestResponse = json_decode($sRequestResponse);
+            if (is_object($oRequestResponse) && !empty($oRequestResponse->exception) && !empty($oRequestResponse->exception->message))
+                $this->writeToErrorLog('|' . $sService . '|' . ' ' . $oRequestResponse->message);
+            else
+                $this->writeToErrorLog('|' . $sService . '|' . ' ' . $sRequestResponse);
+            return false;
+        }
+        else
+            return json_decode($sRequestResponse);
+    }
+    
+    /**
+     * Start a FME Server Instance that is currently paused.
+     * @param {integer} $iId Id of the Instance.
+     * @return Request result
+     */
+    function startInstance($iId) {
+        // Url vers le serveur fme.
+        $sUrl = $this->sUrl;
+        // Url vers le service d'information.
+        $sUrl = $this->sUrl . '/v1/instances/' . $iId . '/start';
+        // Transfert cURL
+        $sRequestResponse = $this->curlRequest($sUrl, 'PUT');
+        if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+            $oRequestResponse = json_decode($sRequestResponse);
+            if (is_object($oRequestResponse) && !empty($oRequestResponse->exception) && !empty($oRequestResponse->exception->message))
+                $this->writeToErrorLog($oRequestResponse->exception->message);
+            else
+                $this->writeToErrorLog($sRequestResponse);
+            return false;
+        }
+        else
+            return json_decode($sRequestResponse);
+    }
+    
+    /**
+     * Pause a FME Server Instance that is currently running.
+     * @param {integer} $iId Id of the Instance.
+     * @return Request result
+     */
+    function pauseInstance($iId) {
+        // Url vers le serveur fme.
+        $sUrl = $this->sUrl;
+        // Url vers le service d'information.
+        $sUrl = $this->sUrl . '/v1/instances/' . $iId . '/pause';
+        // Transfert cURL
+        $sRequestResponse = $this->curlRequest($sUrl, 'PUT');
+        if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+            $oRequestResponse = json_decode($sRequestResponse);
+            if (is_object($oRequestResponse) && !empty($oRequestResponse->exception) && !empty($oRequestResponse->exception->message))
+                $this->writeToErrorLog($oRequestResponse->exception->message);
+            else
+                $this->writeToErrorLog($sRequestResponse);
+            return false;
+        }
+        else
+            return json_decode($sRequestResponse);
+    }
+    
+    /**
+     * Get the credentials for the instance.
+     * @param {integer} $iId Id of the Instance.
+     * @return Request result
+     */
+    function getCredentials($iId) {
+        // Url vers le serveur fme.
+        $sUrl = $this->sUrl;
+        // Url vers le service d'information.
+        $sUrl = $this->sUrl . '/v1/instances/' . $iId . '/credentials';
+        // Transfert cURL
+        $sRequestResponse = $this->curlRequest($sUrl, 'GET');
+        if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+            $oRequestResponse = json_decode($sRequestResponse);
+            if (is_object($oRequestResponse) && !empty($oRequestResponse->exception) && !empty($oRequestResponse->exception->message))
+                $this->writeToErrorLog($oRequestResponse->exception->message);
+            else
+                $this->writeToErrorLog($sRequestResponse);
+            return false;
+        }
+        else
+            return json_decode($sRequestResponse);
+    }
+    
+    /**
+     * Write a message to the error log file.
+     * @param {string} $sMessage Message to write to the log file.
+     */
+    function writeToErrorLog($sMessage) {
+        $aDebugBacktrace = debug_backtrace();
+        $sLogMessage = '|ERROR|' . $aDebugBacktrace[1]['class'] . '::' . $aDebugBacktrace[1]['function'] . '| ' . $sMessage;
+        if (empty($this->sLogFilePath))
+            writeToErrorLog($sLogMessage);
+        else
+            writeToLog($sLogMessage, $this->sLogFilePath);
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/FmeCloudForGtf.class.inc b/src/module_gtf/web_service/class/gtf_lib/FmeCloudForGtf.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..b0f5a1ebb7f52a6cfdd923bc3daf8198d562c572
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/FmeCloudForGtf.class.inc
@@ -0,0 +1,23 @@
+<?php
+require 'aws_lib/AmazonApiGateway.class.inc';
+
+Class FmeCloudForGtf extends AmazonApiGateway {
+    public $sGtfInstanceId; // Id de l'instance de GTF.
+    
+    /**
+     * construct
+     * @param {string} $sAwsAccessKeyId Access key ID.
+     * @param {string} $sAwsSecretAccessKey Secret access key.
+     * @param {string} $sAwsRegion Region.
+     * @param {string} $sRestApiId API identifier.
+     * @param {string} $sStageName Stage name of an API deployment.
+     * @param {string} $sGtfInstanceId Gtf instance identifier.
+     */
+    function __construct ($sAwsAccessKeyId, $sAwsSecretAccessKey, $sAwsRegion, $sRestApiId, $sStageName, $sGtfInstanceId) {
+        // Paramètres obligatoires de la classe mère AmazonAWS.
+        parent::__construct($sAwsAccessKeyId, $sAwsSecretAccessKey, $sAwsRegion, $sRestApiId, $sStageName);
+        // Paramètres pour l'url racine de l'API.
+        $this->sGtfInstanceId = $sGtfInstanceId;
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/FmeServer.class.inc b/src/module_gtf/web_service/class/gtf_lib/FmeServer.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..dd4833959835e24ca48b5d0030a4cd34d1643660
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/FmeServer.class.inc
@@ -0,0 +1,700 @@
+<?php
+require_once("vmlib/logUtil.inc");
+
+/**
+ * \file FmeServer.php
+ * \brief Main class to use Fme Server services.
+ *
+ * \author Frederic Carretero <frederic.carretero@veremes.com>
+ */
+
+Class FmeServer {
+    const CURL_CONNECTION_TIMEOUT = 0;
+    const CURL_TIMEOUT = 360;
+    const INFO_FME_SERVER_JOB_CANCELED = '|INFORM|PHP| Le traitement a été annulé sur Fme Server';
+    const INFO_FME_SERVER_JOB_STOPPED = '|INFORM|PHP| Le traitement a été arrêté sur Fme Server';
+    const INFO_FME_SERVER_JOB_REMOVED = '|INFORM|PHP| Le traitement a été supprimé sur Fme Server';
+    
+    public $sUrl;
+    public $sTimeUnit;
+    public $iExpiration;
+    public $aLastCurlRequestInfo;
+    public $sLogFilePath;   // Chemin optionnel vers le fichier de log pour Fme Server.
+    private $sUser;
+    private $sPassword;
+    private $sToken;
+    
+    /**
+     * construct
+     * @param {string} $sUrl Url of the fme server.
+     * @param {string} $sUser User id.
+     * @param {string} $sPassword User password.
+     * @param {string} $sTimeUnit Time unit (day, hour, minute, second).
+     * @param {number} $iExpiration Token expiration.
+     * @param {boolean} $bUpdate New (true) or current token if exists (false).
+     */
+    function __construct ($sUrl, $sUser, $sPassword, $sTimeUnit = 'day', $iExpiration = 1, $bUpdate = false) {
+        $this->sUrl = $sUrl;
+        $this->sUser = $sUser;
+        $this->sPassword = $sPassword;
+        $this->sTimeUnit = $sTimeUnit;  // Unité de temps pour la durée du token (day, hour, minute, second).
+        $this->iExpiration = $iExpiration;  // Durée de validité du token.
+        $this->bUpdate = $bUpdate;  // true -> génère un nouveau token écrase l’ancien / false -> retourne le token courant.
+    }
+
+    /**
+     * Get a FME Server Token
+     * @return Token
+     */
+    function getToken() {
+        // Url vers le serveur fme.
+        $sUrl = $this->sUrl;
+        // Url vers le service de génération d'un token.
+        $sUrl = $this->sUrl . '/fmetoken/service/generate';
+        // Données de la requête.
+        $aRequestData = array (
+            'user' => $this->sUser,
+            'password' => $this->sPassword,
+            'expiration' => $this->iExpiration,
+            'timeunit' => $this->sTimeUnit,
+            'update' => $this->bUpdate
+        );
+        // Transfert cURL
+        $sRequestResponse = $this->curlRequest($sUrl, 'post', $aRequestData);
+        if ($this->aLastCurlRequestInfo['http_code'] != 200) {
+            $this->writeToErrorLog($sRequestResponse);
+            $this->sToken = false;
+        }
+        else
+            $this->sToken = $sRequestResponse;
+        return $this->sToken;
+    }
+    
+    /**
+     * Curl request
+     * @param {string} $sUrl Url of the Curl request.
+     * @param {string} $sType Type of the Curl request (get, post).
+     * @param {array} $aData Data of the Curl request.
+     * @param {array} $aHeaders Headers of the Curl request.
+     * @return Request result
+     */
+    // 
+    function curlRequest($sUrl, $sType, $aData = array(), $aHeaders = array()) {
+        //
+        $this->aLastCurlRequestInfo = '';
+        //
+        $ch = curl_init();
+        $sType = strtoupper($sType);
+        // Force la méthode de requête utilisée (GET, POST...).
+        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $sType);
+        // Url à utiliser.
+        if (($sType == 'GET' || $sType == 'DELETE') && !empty($aData))
+            $sUrl .= '?' . http_build_query($aData);
+        curl_setopt($ch, CURLOPT_URL, $sUrl);
+        // Retour sous forme de texte. 
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+        // Requête POST.
+        if ($sType == 'POST') {
+            curl_setopt($ch, CURLOPT_POST, true);
+            // Chaîne de requête en encodage URL.
+            if (is_array($aData))
+                $aData = http_build_query($aData);
+            // Données de la requête.
+            curl_setopt($ch, CURLOPT_POSTFIELDS, $aData);
+            //
+            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
+            // Entête pour la requête en POST.
+            //$aHeaders[] = 'Content-Type: application/x-www-form-urlencoded';
+        }
+        // Entête pour la requête
+        $aHeaders[] = 'Accept: application/json';
+        if (!empty($this->sToken))
+            $aHeaders[] = 'Authorization: fmetoken token=' . $this->sToken; // Token obligatoire pour éxécuter la requête.
+        curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders);
+        // Le nombre de secondes à attendre durant la tentative de connexion.
+        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, self::CURL_CONNECTION_TIMEOUT);
+        // Le temps maximum d'exécution de la fonction cURL (secondes).
+        curl_setopt($ch, CURLOPT_TIMEOUT, self::CURL_TIMEOUT);
+        // Exécute la session CURL.
+        // Log.
+        /*
+        $handle = fopen("curl_log.txt", "a");
+        fwrite($handle, PHP_EOL . '-----------------------' . PHP_EOL);
+        curl_setopt($ch, CURLOPT_VERBOSE, true);
+        curl_setopt($ch, CURLOPT_STDERR , $handle);
+        */
+        curl_setopt($ch, CURLINFO_HEADER_OUT, true);
+        // Curl error: SSL certificate problem: unable to get local issuer certificate
+        // Curl error n°60
+        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
+        // Curl error: SSL: no alternative certificate subject name matches target host name '52.205.208.184' (si utilisation de l'adresse ip et non )
+        // Curl error n°51
+        curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
+        //
+        $output = curl_exec($ch);
+        // Erreur de la requête CURL.
+        if(curl_errno($ch)) {
+            $this->writeToErrorLog('Curl error: ' . curl_error($ch));
+            $this->writeToErrorLog('Curl error n°' . curl_errno($ch));
+        }
+        // Informations de la requête.
+        $aCurlInfo = curl_getinfo($ch);
+        $this->aLastCurlRequestInfo = $aCurlInfo;
+        //file_put_contents('C:/svn/gtf_cloud/gtf.engines/log/response.log', print_r($aCurlInfo, true));
+        //writeToErrorLog(print_r(curl_getinfo($ch), true));
+        
+        // Ferme la session CURL.
+        curl_close($ch);
+        //
+        //fclose($handle);
+        //
+        return $output;
+    }
+    
+    /**
+     * Send a request to the REST API.
+     * @param {string} $sService Name of the service.
+     * @param {string} $sMethod Method of the service (get, post...).
+     * @param {array} $aData Data of the Curl request.
+     * @return Request result
+     */
+    function serviceRequest($sService, $sMethod = 'get', $aData = array(), $bWriteToErrorLog = true) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url vers le serveur fme.
+            $sUrl = $this->sUrl;
+            // Url vers le service d'information.
+            $sUrl = $this->sUrl . '/fmerest/v3/' . $sService;
+            // Transfert cURL
+            $sRequestResponse = $this->curlRequest($sUrl, $sMethod, $aData);
+            if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                if ($bWriteToErrorLog) {
+                    $oRequestResponse = json_decode($sRequestResponse);
+                    if (is_object($oRequestResponse) && !empty($oRequestResponse->message))
+                        $this->writeToErrorLog('|' . $sService . '|' . ' ' . $oRequestResponse->message);
+                    else
+                        $this->writeToErrorLog('|' . $sService . '|' . ' ' . $sRequestResponse);
+                }
+                return false;
+            }
+            else
+                return json_decode($sRequestResponse);
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Upload a file
+     * @param {string} $sFilePath Path of the file to upload.
+     * @param {string} $sServiceUrl Url of the web service to upload the file.
+     * @param {string} $sFileName Name of the created file.
+     * @return Request result
+     */
+    function uploadFile($sServiceUrl, $sFilePath, $sFileName = '') {
+        if (file_exists($sFilePath)) {
+            // Demande de token.
+            $this->getToken();
+            if ($this->sToken !== false) {
+                // Nom du fichier.
+                if (empty($sFileName))
+                    $sFileName = pathinfo($sFilePath, PATHINFO_BASENAME);
+                // Type MIME du fichier.
+                //$finfo = finfo_open(FILEINFO_MIME_TYPE);            
+                // Crée un objet CURLFile.
+                //$oCfile = new CURLFile($sFilePath, finfo_file($finfo, $sFilePath), $sFileName);
+                //finfo_close($finfo);
+                // Entêtes de la requête Curl.
+                $aRequestHeaders = array(
+                    'Content-Type: application/octet-stream',
+                    'Content-Disposition: attachment; filename="' . $sFileName . '"',
+                    //'Content-Length: ' . filesize($sFilePath)
+                );
+                //
+                $sRequestResponse = $this->curlRequest($sServiceUrl, 'post', file_get_contents($sFilePath), $aRequestHeaders);
+                if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                    $oRequestResponse = json_decode($sRequestResponse);
+                    if (is_object($oRequestResponse) && !empty($oRequestResponse->message))
+                        $this->writeToErrorLog($oRequestResponse->message);
+                    else
+                        $this->writeToErrorLog($sRequestResponse);
+                    return false;
+                }
+                else
+                    return json_decode($sRequestResponse);
+            }
+            else
+                return false;
+        }
+        else {
+            $this->writeToErrorLog('The file does not exist (' . $sFilePath . ')');
+            return false;
+        }
+    }
+    
+    /**
+     * Upload a file to the resource connection
+     * @param {string} $sFilePath Path of the file to upload.
+     * @param {string} $sResource Name of a resource connection.
+     * @param {string} $sPath Path, relative to the resource connection.
+     * @param {boolean} $bCreateDirectories Create directories corresponding to the file path.
+     * @param {boolean} $bOverwrite Overwrite the file if it already exists.
+     * @return Request result
+     */
+    function uploadResourceFile($sFilePath, $sResource, $sPath, $bCreateDirectories = false, $bOverwrite = false) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url du service de ressources.
+            $sUrl = $this->sUrl . '/fmerest/v3/resources/connections/' . $sResource . '/filesys/' . $sPath;
+            $sUrl .= '?createDirectories=' . var_export($bCreateDirectories, true) . '&overwrite=' . var_export($bOverwrite, true);
+            return $this->uploadFile($sUrl, $sFilePath);
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Publish a file to a repository
+     * @param {string} $sFilePath Path of the file to upload.
+     * @param {string} $sRepository Name of the repository.
+     * @param {boolean} $bOverwrite Overwrite the file if it already exists.
+     * @param {string} $sRepositoryFileName File name in the repository.
+     * @return Request result
+     */
+    function uploadWorkspaceFile($sFilePath, $sRepository, $bOverwrite = false, $sRepositoryFileName = '') {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Vérification de l'existence du fichier.
+            $bUploadFile = true;
+            if (!empty($sRepositoryFileName))
+                $sSourceFileName = $sRepositoryFileName;
+            else
+                $sSourceFileName = pathinfo($sFilePath, PATHINFO_BASENAME);
+            $this->serviceRequest('repositories/' . $sRepository . '/items/' . $sSourceFileName, 'get', null, false);
+            // Supprime le fichier s'il existe déja.
+            if ($this->aLastCurlRequestInfo['http_code'] == 200) {
+                if ($bOverwrite) {
+                    if ($this->serviceRequest('repositories/' . $sRepository . '/items/' . $sSourceFileName, 'delete') === false)
+                        return false;
+                }
+                else
+                    $bUploadFile = false;
+            }
+            //Upload du fichier.
+            if ($bUploadFile) {
+                $sUrl = $this->sUrl . '/fmerest/v3/repositories/' . $sRepository . '/items';
+                return $this->uploadFile($sUrl, $sFilePath, $sRepositoryFileName);
+            }
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Upload a resource to a repository item
+     * @param {string} $sFilePath Path of the file to upload.
+     * @param {string} $sRepository Name of the repository.
+     * @param {string} $sItem Name of the repository item.
+     * @param {boolean} $bOverwrite Overwrite the file if it already exists.
+     * @return Request result
+     */
+    function uploadWorkspaceResourceFile($sFilePath, $sRepository, $sItem, $bOverwrite = false) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            $bUploadFile = true;
+            $sFileName = pathinfo($sFilePath, PATHINFO_BASENAME);
+            // Télécharge la liste des ressources complémentaires du projet.
+            $aResources = $this->serviceRequest('repositories/' . $sRepository . '/items/' . $sItem . '/resources', 'get');
+            if ($aResources !== false) {
+                // Vérification de l'existence du fichier.
+                foreach ($aResources as $oResource) {
+                    // Supprime le fichier s'il existe déja.
+                    if ($oResource->name == $sFileName) {
+                        if ($bOverwrite) {
+                            if ($this->serviceRequest('repositories/' . $sRepository . '/items/' . $sItem . '/resources/' . $sFileName, 'delete') === false)
+                                return false;
+                        }
+                        else
+                            $bUploadFile = false;
+                    }
+                }
+            }
+            else
+                return false;
+            // Upload du fichier.
+            if ($bUploadFile) {
+                $sUrl = $this->sUrl . '/fmerest/v3/repositories/' . $sRepository . '/items/' . $sItem . '/resources';
+                return $this->uploadFile($sUrl, $sFilePath);
+            }
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Get information about a repository item.
+     * @param {string} $sRepository Name of the repository.
+     * @param {string} $sWorkspace Name of the repository item.
+     * @return Request result
+     */
+    function getWorkspaceParams($sRepository, $sWorkspace) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url du service vers le traitement (fichier.fmw) spécifié.
+            $sUrl = $this->sUrl . '/fmerest/v3/repositories/' . $sRepository . '/items/' . $sWorkspace;
+            // Transfert cURL.
+            $sRequestResponse = $this->curlRequest($sUrl, 'get');
+            if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                $oRequestResponse = json_decode($sRequestResponse);
+                if (is_object($oRequestResponse) && !empty($oRequestResponse->message))
+                    $this->writeToErrorLog($oRequestResponse->message);
+                else
+                    $this->writeToErrorLog($sRequestResponse);
+                return false;
+            }
+            else
+                return json_decode($sRequestResponse);
+            
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Submit a job to run a transformation.
+     * @param {string} $sRepository Name of the repository.
+     * @param {string} $sWorkspace Name of the repository item.
+     * @param {array} $aParams The definition of the transformation request.
+     * @param {boolean} $bAsync Asynchronous job.
+     * @return Request result
+     */
+    function submitJob($sRepository, $sWorkspace, $aParams, $bAsync = false) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url du service vers le traitement (fichier.fmw) spécifié.
+            if ($bAsync)
+                $sUrl = $this->sUrl . '/fmerest/v3/transformations/submit/' . $sRepository . '/' . $sWorkspace;
+            else
+                $sUrl = $this->sUrl . '/fmerest/v3/transformations/transact/' . $sRepository . '/' . $sWorkspace;
+            // Données au format json.
+            $aHeaders = array('Content-Type: application/json');
+            // Transfert cURL.
+            $sRequestResponse = $this->curlRequest($sUrl, 'post', json_encode($aParams), $aHeaders);
+            $oRequestResponse = json_decode($sRequestResponse);
+            if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                if (is_object($oRequestResponse)) {
+                    if (empty($oRequestResponse->id)) {
+                        $this->writeToErrorLog($oRequestResponse->message);
+                        return false;
+                    }
+                    else
+                        $this->writeToErrorLog($oRequestResponse->statusMessage);
+                }
+                else
+                    $this->writeToErrorLog($sRequestResponse);
+            }
+            return $oRequestResponse;
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Downloads a file from a resource connection.
+     * @param {string} $sResource Name of a resource connection.
+     * @param {string} $sPath Path, relative to the resource connection.
+     * @param {string} $sFilePath Path of the file to save.
+     * @return File content
+     */
+    function downloadResourceFile($sResource, $sPath, $sFilePath = null) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url du service vers le traitement (fichier.fmw) spécifié.
+            $sUrl = $this->sUrl . '/fmerest/v3/resources/connections/' . $sResource . '/filesys/' . $sPath;
+            // Obligatoire pour récupérer le contenu du fichier.
+            $aHeaders = array('Accept: application/octet-stream');
+            // Données de la requête.
+            /*
+            $aRequestData = array (
+                'accept' => 'contents',
+                'disposition' => 'inline'
+            );
+            */
+            // Transfert cURL.
+            $sRequestResponse = $this->curlRequest($sUrl, 'get', null, $aHeaders);
+            if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                $oRequestResponse = json_decode($sRequestResponse);
+                if (is_object($oRequestResponse) && !empty($oRequestResponse->message))
+                    $this->writeToErrorLog($oRequestResponse->message);
+                else
+                    $this->writeToErrorLog($sRequestResponse);
+                return false;
+            }
+            else {
+                if (!empty($sFilePath))
+                    file_put_contents($sFilePath, $sRequestResponse);
+                else
+                    return $sRequestResponse;
+            }
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Get the log file of a job.
+     * @param {number} $sJobId Job id.
+     * @return Log file content
+     */
+    function getJobLog($sJobId, $sFilePath = '') {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url du service vers le traitement (fichier.fmw) spécifié.
+            $sUrl = $this->sUrl . '/fmerest/v3/transformations/jobs/id/' . $sJobId . '/log';
+            // Obligatoire pour récupérer le contenu du fichier.
+            $aHeaders = array('Accept: text/plain');
+            // Transfert cURL.
+            $sRequestResponse = $this->curlRequest($sUrl, 'get', null, $aHeaders);
+            if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                $oRequestResponse = json_decode($sRequestResponse);
+                if (is_object($oRequestResponse) && !empty($oRequestResponse->message))
+                    $this->writeToErrorLog($oRequestResponse->message);
+                else
+                    $this->writeToErrorLog($sRequestResponse);
+                return false;
+            }
+            else {
+                if (!empty($sFilePath))
+                    file_put_contents($sFilePath, $sRequestResponse);
+                else
+                    return $sRequestResponse;
+            }
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Create a repository to the FME Server instance.
+     * @param {string} $sRepository Name of the repository.
+     * @param {string} $sDescription Description of the repository.
+     * @return Request result
+     */
+    function createRepository($sRepository, $sDescription) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Crée le dépot s'il n'existe pas déja.
+            $aRequestResult = $this->serviceRequest('repositories/' . $sRepository, 'get', null, false);
+            if ($this->aLastCurlRequestInfo['http_code'] == 404) {
+                $aRequestData = array (
+                    'name' => $sRepository,
+                    'description' => $sDescription
+                );
+                $aRequestResult = $this->serviceRequest('repositories', 'post', $aRequestData);
+            }
+            return $aRequestResult;
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Upload a file to the resource connection from Amazon S3 service.
+     * @param {string} $aS3Params Parameters of the Amazon S3 service.
+     * @param {string} $sRepository Name of the repository.
+     * @param {string} $sResource Name of a resource connection.
+     * @param {string} $sPath Path, relative to the resource connection.
+     * @return Request result
+     */
+    function uploadResourceFileFromS3($aS3Params, $sRepository, $sResource, $sPath) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            //
+            $aJobParams = array(
+                'publishedParameters' => array(
+                    array('name' => 'access_key_id', 'value' => $aS3Params['access_key_id']),
+                    array('name' => 'secret_access_key', 'value' => $aS3Params['secret_access_key']),
+                    array('name' => 'bucket_name', 'value' => $aS3Params['bucket_name']),
+                    array('name' => 'object_key', 'value' => $aS3Params['object_key']),
+                    array('name' => 'target_file', 'value' => '$(' . $sResource . ')/' . $sPath . '/' . pathinfo($aS3Params['object_key'], PATHINFO_BASENAME))
+                )
+            );
+            $oJobResult = $this->submitJob($sRepository, 'S3Downloader.fmw', $aJobParams);
+            return $oJobResult;
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Create a repository to the FME Server instance.
+     * @param {string} $sResource Name of a resource connection.
+     * @param {string} $sPath Path, relative to the resource connection.
+     * @param {string} $DirectoryName Name of the directory.
+     * @return Request result
+     */
+    function createResourceConnectionDirectory($sResource, $sPath, $DirectoryName) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Crée le répertoire s'il n'existe pas déja.
+            $aRequestResult = $this->serviceRequest('resources/connections/' . $sResource . '/filesys/' . $sPath . '/' . $DirectoryName, 'get', null, false);
+            if ($this->aLastCurlRequestInfo['http_code'] == 404) {
+                $aRequestData = array (
+                    'directoryname' => $DirectoryName
+                );
+                $aRequestResult = $this->serviceRequest('resources/connections/' . $sResource . '/filesys/' . $sPath, 'post', $aRequestData);
+            }
+            return $aRequestResult;
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Get the FME Server build number and version.
+     * @return Request result
+     */
+    function getInfo() {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url du web service info.
+            $sUrl = $this->sUrl . '/fmerest/v3/info';
+            // Transfert cURL.
+            $sRequestResponse = $this->curlRequest($sUrl, 'get');
+            if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                $oRequestResponse = json_decode($sRequestResponse);
+                if (is_object($oRequestResponse) && !empty($oRequestResponse->message))
+                    $this->writeToErrorLog($oRequestResponse->message);
+                else
+                    $this->writeToErrorLog($sRequestResponse);
+                return false;
+            }
+            else
+                return json_decode($sRequestResponse);
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Get status of the installed FME Server license.
+     * @return Request result
+     */
+    function getLicenceStatus() {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Url du web service info.
+            $sUrl = $this->sUrl . '/fmerest/v3/licensing/license/status';
+            // Transfert cURL.
+            $sRequestResponse = $this->curlRequest($sUrl, 'get');
+            if ($this->aLastCurlRequestInfo['http_code'] >= 400) {
+                $this->writeToErrorLog($sRequestResponse);
+                return false;
+            }
+            else
+                return json_decode($sRequestResponse);
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Write a message to the error log file.
+     * @param {string} $sMessage Message to write to the log file.
+     */
+    function writeToErrorLog($sMessage) {
+        $aDebugBacktrace = debug_backtrace();
+        $sLogMessage = '|ERROR|' . $aDebugBacktrace[1]['class'] . '::' . $aDebugBacktrace[1]['function'] . '| ' . $sMessage;
+        if (empty($this->sLogFilePath))
+            writeToErrorLog($sLogMessage);
+        else
+            writeToLog($sLogMessage, $this->sLogFilePath);
+    }
+    
+    /**
+     * Delete a job.
+     * @param {number} $iJobId The id of the job.
+     * @return Request result
+     */
+    function deleteJob($iJobId) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Annule une demande en attente ou arrête une demande en cours.
+            if ($this->stopJob($iJobId) !== false) {
+                // Supprime définitivement la demande sur Fme Server.
+                if ($this->serviceRequest('transformations/jobs/completed/' . $iJobId, 'delete') !== false)
+                    writeToLog(self::INFO_FME_SERVER_JOB_REMOVED . " (job id $iJobId).", $this->sLogFilePath);
+                else
+                    return false;
+            }
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Cancel a queued job.
+     * @param {number} $iJobId The id of the job.
+     * @return Request result
+     */
+    function cancelJob($iJobId) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            // Annule le traitement.
+            if ($this->serviceRequest('transformations/jobs/queued/' . $iJobId, 'delete') !== false)
+                writeToLog(self::INFO_FME_SERVER_JOB_CANCELED . " (job id $iJobId).", $this->sLogFilePath);
+            else
+                return false;
+        }
+        else
+            return false;
+    }
+    
+    /**
+     * Stop a queued or running job.
+     * @param {number} $iJobId The id of the job.
+     * @return Request result
+     */
+    function stopJob($iJobId) {
+        // Demande de token.
+        $this->getToken();
+        if ($this->sToken !== false) {
+            $oJobLog = $this->serviceRequest('transformations/jobs/id/' . $iJobId);
+            if ($oJobLog !== false) {
+                // Annule une demande en attente ou arrête une demande en cours.
+                $aQueuedStatus = array('SUBMITTED', 'QUEUED', 'DELAYED', 'PAUSED');
+                $aRunningStatus = array('IN_PROCESS', 'PULLED');
+                $aStoppedStatus = array('DELETED', 'ABORTED', 'FME_FAILURE', 'JOB_FAILURE', 'SUCCESS');
+                if (in_array($oJobLog->status, $aQueuedStatus))
+                    $this->cancelJob($iJobId);
+                else if (!in_array($oJobLog->status, $aStoppedStatus)){
+                    // Annule le traitement.
+                    if ($this->serviceRequest('transformations/jobs/running/' . $iJobId, 'delete') !== false)
+                        writeToLog(self::INFO_FME_SERVER_JOB_STOPPED . " (job id $iJobId).", $this->sLogFilePath);
+                    else
+                        return false;
+                }
+            }
+            else
+                return false;
+        }
+        else
+            return false;
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/Gtf.class.inc b/src/module_gtf/web_service/class/gtf_lib/Gtf.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..182b6a481c96c2b312018e2767cad0a03514124a
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/Gtf.class.inc
@@ -0,0 +1,11 @@
+<?php
+require_once("DbClass.class.inc");
+
+class GtfLib extends DbClassLib {
+	
+	//Chemin du fichier de ressources contenant les requêtes SQL
+	var $sRessourcesFile = "Gtf.class.sql.inc";
+}
+
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/Gtf.class.sql.inc b/src/module_gtf/web_service/class/gtf_lib/Gtf.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..66d83998ae833aa419db83a47362f452f6456814
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/Gtf.class.sql.inc
@@ -0,0 +1,28 @@
+<?php
+$aSql['order'] = 'SELECT * FROM [sSchemaGtf].v_user_order WHERE order_id=\'[sIdOrder]\'';
+$aSql['orderClass'] = 'SELECT * FROM [sSchemaGtf].[sTable] WHERE order_id=\'[sIdOrder]\'';
+$aSql['orders_id'] = 'SELECT order_id FROM [sSchemaGtf].v_user_order OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['subscription'] = 'SELECT * FROM [sSchemaGtf].v_user_subscription WHERE order_id=\'[sIdOrder]\'';
+$aSql['subscription_id'] = 'SELECT order_id FROM [sSchemaGtf].v_user_subscription OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['survey'] = 'SELECT * FROM [sSchemaGtf].v_user_survey WHERE order_id=\'[sIdOrder]\'';
+$aSql['survey_id'] = 'SELECT order_id FROM [sSchemaGtf].v_user_survey OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['workspace'] = 'SELECT * FROM [sSchemaGtf].workspace WHERE workspace_id= [iWorkspaceId]';
+$aSql['workspaces_id'] = 'SELECT workspace_id FROM [sSchemaGtf].v_user_workspace OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['email_option'] = 'SELECT email_option_id, translation AS label FROM [sSchemaGtf].rt_email_option LEFT JOIN [sSchemaFramework].vm_translation ON rt_email_option.label_id = vm_translation.translation_id AND lang = \'[sLang]\' WHERE email_option_id= [iEmailOptionId]';
+$aSql['email_option_id'] = 'SELECT email_option_id FROM [sSchemaGtf].rt_email_option OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['gtf_engine'] = 'SELECT * FROM [sSchemaGtf].gtf_engine WHERE gtf_engine_id= [iGtfEngineId]';
+$aSql['gtf_engine_id'] = 'SELECT gtf_engine_id FROM [sSchemaGtf].gtf_engine OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['inbox'] = 'SELECT * FROM [sSchemaGtf].inbox WHERE inbox_id= [iInboxId]';
+$aSql['inbox_id'] = 'SELECT inbox_id FROM [sSchemaGtf].inbox OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['order_status'] = 'SELECT order_status_id, translation AS label FROM [sSchemaGtf].rt_order_status LEFT JOIN [sSchemaFramework].vm_translation ON rt_order_status.label_id = vm_translation.translation_id AND lang = \'[sLang]\' WHERE order_status_id= [iOrderStatusId]';
+$aSql['order_status_id'] = 'SELECT order_status_id FROM [sSchemaGtf].rt_order_status OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['period'] = 'SELECT * FROM [sSchemaGtf].period WHERE period_id= [iPeriodId]';
+$aSql['period_id'] = 'SELECT period_id FROM [sSchemaGtf].period OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['priority'] = 'SELECT priority_id, translation AS label FROM [sSchemaGtf].rt_priority LEFT JOIN [sSchemaFramework].vm_translation ON rt_priority.label_id = vm_translation.translation_id AND lang = \'[sLang]\' WHERE priority_id= [iPriorityId]';
+$aSql['priority_id'] = 'SELECT priority_id FROM [sSchemaGtf].rt_priority OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['survey_type'] = 'SELECT survey_id, translation AS label FROM [sSchemaGtf].rt_survey_type LEFT JOIN [sSchemaFramework].vm_translation ON rt_survey_type.label_id = vm_translation.translation_id AND lang = \'[sLang]\' WHERE survey_id= [iSurveyTypeId]';
+$aSql['survey_type_id'] = 'SELECT survey_id FROM [sSchemaGtf].rt_survey_type OFFSET [sOffset] LIMIT [sLimit]';
+$aSql['fme_engine'] = 'SELECT * FROM [sSchemaGtf].fme_engine WHERE fme_engine_id= [iFmeEngineId]';
+$aSql['getEnginesId'] = 'SELECT * FROM [sSchemaGtf].gtf_engine WHERE tags like \'%\' || (SELECT tag FROM [sSchemaGtf].workspace wHERE workspace_id =[iWorkspaceId]) || \'%\'';
+$aSql['getEnginesDefaultTag'] = 'SELECT * FROM [sSchemaGtf].gtf_engine WHERE tags like \'%default%\'';
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/GtfFmwParser.class.inc b/src/module_gtf/web_service/class/gtf_lib/GtfFmwParser.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f29e86e27af0226484ce8e602ea092ce0169acd4
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/GtfFmwParser.class.inc
@@ -0,0 +1,631 @@
+<?php
+
+//require_once("vmlib/BD.class.inc");
+//require_once("vmlib/logUtil.inc");
+//require_once("vmlib/dbUtil.inc");
+//require_once("vmlib/Vm.class.inc"); 
+//require_once("vmlib/phpUtil.inc");
+//require_once("vmlib/stringUtil.inc");
+//require_once("vmlib/VirtualFormV2.class.inc");
+require_once("GtfGui.class.inc");
+
+class GtfFmwParser {
+
+    var $sFmwFileName;
+    var $aGuiObject = array();
+    var $aIgnoreMacro = array();
+    var $aDefaultMacro = array();
+    var $aFileNameMustExistMacro = array();
+    var $aLignes = array();
+    var $sEncoding;
+    var $sTitle;
+    var $sDescription;
+    var $sCategory;
+    var $sLegal;
+    var $sUsage;
+    var $sHistory;
+    var $sSaveDate;
+    var $sSaveBuild;
+    var $sRequirement;
+
+// var $sOriginalName;
+
+    /*
+     * Constructeur de la classe GtfFmwParser
+     * le fichier fmw est parcouru ligne par ligne et chaque occurrence
+     * correspondant à un GUI est stocké dans le tableau approrié
+     */
+    function __construct($sFmwFileName) {
+        $this->sFmwFileName = $sFmwFileName;
+        $oFichier = fopen(utf8_decode($this->sFmwFileName), "r");
+        $sRc = chr(10); // Compatible avec FME 2014 et inférieur
+        $sRecherche = "^GUI(.*)" . $sRc;
+        $sRechercheIgnore = "^GUI IGNORE(.*)" . $sRc;
+        $sRechercheFileNameMustExist = '^#![ \t]+GUI_LINE="GUI(.*)FILENAME_MUSTEXIST';
+        $sRechercheTitle = '^#![ \t]+TITLE=\"(.*)\"';
+        $sRechercheEncoding = '^#![ \t]+<\?xml version=\"1\.0\" encoding=\"(.*)\" \?>';
+        $sRechercheDescription = '^#![ \t]+DESCRIPTION=\"(.*)\"';
+        $sRechercheCategory = '^#![ \t]+CATEGORY=\"(.*)\"';
+        $sRechercheLegal = '^#![ \t]+LEGAL_TERMS_CONDITIONS=\"(.*)\"';
+        $sRechercheUsage = '^#![ \t]+USAGE=\"(.*)\"';
+        $sRechercheHistory = '^#![ \t]+HISTORY=\"(.*)\"';
+        $sRechercheSaveDate = '^#![ \t]+LAST_SAVE_DATE=\"(.*)\"';
+        $sRechercheSaveBuild = '^#![ \t]+LAST_SAVE_BUILD=\"(.*)\"';
+        $sRechercheRequirements = '^#![ \t]+REQUIREMENTS=\"(.*)\"';
+        $sRechercheWorkspace = '^#![ \t]+<WORKSPACE';
+        $sRechercheEndWorkspace = '^#![ \t]+>';
+        $sRechercheTransformer = '^#![ \t]+<TRANSFORMER';
+        $sRechercheTransformerType = '^#![ \t]+TYPE=\"(.*)\"';
+        $sRechercheTransformerEnabled = '^#![ \t]+ENABLED=\"(.*)\"';
+        $i = 0;
+        $j = 0;
+        $bIsWorkspace = false;
+        $bIsTransformer = false;
+        $bIsVisualizer = false;
+
+        $this->aFileNameMustExistMacro = Array();
+        if ($oFichier != false) {
+            while (!feof($oFichier)) {
+                $sLigne = fgets($oFichier);
+                // Encodage de la ligne en UTF-8
+                if (strtolower($this->sEncoding) != 'utf-8')
+                    $sLigne = utf8_encode($sLigne);
+
+                // Traitement de tous les GUI
+                if (mb_eregi($sRecherche, $sLigne, $aOccurence)) {
+                    $oGuiObject = new GtfGui($sLigne, $this->sFmwFileName, $this->sEncoding);
+                    array_push($this->aGuiObject, $oGuiObject);
+                }
+
+                // Traitement des GUI IGNORE (Les paramètres privés ne sont plus spécifiquement gérés)
+                if (mb_eregi($sRechercheIgnore, $sLigne, $aOccurence) && strpos($sLigne, 'GUI IGNORE OPTIONAL') === false) {
+                    // Pour la compatibilité avec FME 2014, on supprime les retours chariots en fin de ligne pour faire fonctionner la vérification dans la fonction removeIgnoredMacro() (ligne 85)
+                    $aOccurence[1] = str_replace(chr(10), '', $aOccurence[1]);
+                    $aOccurence[1] = str_replace(chr(13), '', $aOccurence[1]);
+                    $aIgnoreMacro = explode(',', str_replace(' ', '', $aOccurence[1]));
+                    $this->aIgnoreMacro = array_merge($this->aIgnoreMacro, $aIgnoreMacro);
+                }
+
+                // Traitement des FILENAME_MUSTEXIST -- recherche des paramètres filename utilisés comme source
+                if (mb_eregi($sRechercheFileNameMustExist, $sLigne, $aOccurence)) {
+                    // Remplace les séries d'espaces par un seul (FME 2016...).
+                    $sLigne = preg_replace('([ \t]{2,})', ' ', $sLigne);
+                    //
+                    $aLignFileNameMustExist = explode(' ', $sLigne);
+                    if ($aLignFileNameMustExist[2] == "OPTIONAL") {
+                        $aFileNameMustExistMacro = $aLignFileNameMustExist[4];
+                        $this->aFileNameMustExistMacro[$j] = $aLignFileNameMustExist[4];
+                    } else {
+                        $aFileNameMustExistMacro = $aLignFileNameMustExist[3];
+                        $this->aFileNameMustExistMacro[$j] = $aLignFileNameMustExist[3];
+                    }
+                    $j++;
+                }
+                //Traitement du catalogue
+                //Encoding
+                if (mb_eregi($sRechercheEncoding, $sLigne, $aOccurence)) {
+                    $this->sEncoding = $this->charFMWToRealCharacter($aOccurence[1]);
+                }
+
+                //Suppression Visualizer actifs
+                if (mb_eregi($sRechercheTransformer, $sLigne, $aOccurence)) {
+                    $bIsTransformer = true;
+                }
+                if ($bIsTransformer == true) {
+                    if (mb_eregi($sRechercheTransformerType, $sLigne, $aOccurence)) {
+                        if ($aOccurence[1] == "Inspector") {
+                            $bIsVisualizer = true;
+                        }
+                        $bIsTranformer = false;
+                    }
+                }
+                if ($bIsVisualizer == true) {
+                    if (mb_eregi($sRechercheTransformerEnabled, $sLigne, $aOccurence)) {
+                        $this->aLignes[] = str_replace("true", "false", $sLigne);
+                        $bIsVisualizer = false;
+                    } else {
+                        $this->aLignes[] = $sLigne;
+                    }
+                } else {
+                    $this->aLignes[] = $sLigne;
+                }
+                if (mb_eregi($sRechercheWorkspace, $sLigne, $aOccurence)) {
+                    $bIsWorkspace = true;
+                }
+                if ($bIsWorkspace == true) {
+                    //Description
+                    if (mb_eregi($sRechercheDescription, $sLigne, $aOccurence)) {
+                        $this->sDescription = str_replace('\n', '', $this->charFMWToRealCharacter($aOccurence[1]));
+                    }
+                    //Title
+                    if (mb_eregi($sRechercheTitle, $sLigne, $aOccurence)) {
+                        $this->sTitle = $this->charFMWToRealCharacter($aOccurence[1]);
+                    }
+
+                    //Category
+                    if (mb_eregi($sRechercheCategory, $sLigne, $aOccurence)) {
+                        $this->sCategory = $this->charFMWToRealCharacter($aOccurence[1]);
+                    }
+                    //Usage
+                    if (mb_eregi($sRechercheUsage, $sLigne, $aOccurence)) {
+                        $this->sUsage = str_replace('\n', '', $this->charFMWToRealCharacter($aOccurence[1]));
+                    }
+                    //Legal
+                    if (mb_eregi($sRechercheLegal, $sLigne, $aOccurence)) {
+                        $this->sLegal = str_replace('\n', '', $this->charFMWToRealCharacter($aOccurence[1]));
+                    }
+                    //History -- TODO
+                    if (mb_eregi($sRechercheHistory, $sLigne, $aOccurence)) {
+                        $this->sHistory = str_replace("<solidus>", "/", $this->charFMWToRealCharacter($aOccurence[1]));
+                    }
+                    //SaveDate
+                    if (mb_eregi($sRechercheSaveDate, $sLigne, $aOccurence)) {
+                        $this->sSaveDate = $this->charFMWToRealCharacter($aOccurence[1]);
+                    }
+                    //SaveBuild
+                    if (mb_eregi($sRechercheSaveBuild, $sLigne, $aOccurence)) {
+                        $this->sSaveBuild = $this->charFMWToRealCharacter($aOccurence[1]);
+                    }
+                    //Requirements
+                    if (mb_eregi($sRechercheRequirements, $sLigne, $aOccurence)) {
+                        $this->sRequirements = str_replace('\n', '', $this->charFMWToRealCharacter($aOccurence[1]));
+                    }
+                    if (mb_eregi($sRechercheEndWorkspace, $sLigne, $aOccurence)) {
+                        $bIsWorkspace = false;
+                    }
+                }
+                $i++;
+            }
+            fclose($oFichier);
+        }
+        $this->removeIgnoredMacro();
+        $this->changeFileNameMustExist();
+    }
+
+    /*
+     * Fonction qui permet d'exclure les Objets GUI
+     * qui ne font pas partie intégrante du sous formulaire et
+     * qui alimente le tableau final des objets 
+     */
+
+    function removeIgnoredMacro() {
+        $aNouveauTableau = array();
+        foreach ($this->aGuiObject as $oGtfGui) {
+            if (!in_array($oGtfGui->sDefault_Macro, $this->aIgnoreMacro)) {
+                array_push($aNouveauTableau, $oGtfGui);
+            }
+        }
+        $this->aGuiObject = $aNouveauTableau;
+    }
+
+    /*
+     * Fonction qui permet de changer la propriété isDest des GUI de type FileName
+     * qui se trouvent dans le tableau $this->aFileNameMustExistMacro
+     */
+
+    function changeFileNameMustExist() {
+        $aNouveauTableau = array(); //?
+        foreach ($this->aGuiObject as $oGtfGui) {
+            if (in_array($oGtfGui->sDefault_Macro, $this->aFileNameMustExistMacro)) {
+                $sSource = $oGtfGui->sFiltreSource; // Récupération de la valeur de la source
+                $oGtfGui->sFiltreSource = $oGtfGui->sFiltreDest;
+                $oGtfGui->sFiltreDest = $sSource;
+                $oGtfGui->bIsSource = True;
+                $oGtfGui->bIsDest = False;
+            }
+        }
+    }
+
+    /*
+     * fonction qui renvoie un tableau des lignes correspondant
+     * aux objets GUI du sous formulaire sous la forme d'une
+     * chaine de caractères
+     */
+
+    /* function getVerification(){
+      $sVerification="";
+      foreach ($this->aGuiObject as $oGtfGui){
+      $sDefaultValue = str_replace(chr(13), '', $oGtfGui->sDefault_Macro);
+      $sDefaultValue = str_replace(chr(10), '', $sDefaultValue);
+      $sLibelle = str_replace(chr(13), '', $oGtfGui->sLibelle);
+      $sLibelle = str_replace(chr(10), '', $sLibelle);
+      if ($oGtfGui->sType == "INTEGER"){
+      $sVerification.="\$sError .= VerifIsInteger(\$_REQUEST['".$sDefaultValue."'], \"".$sLibelle."\");".chr(13);
+      }
+      if ($oGtfGui->sType == "FLOAT"){
+      $sVerification.="\$sError .= VerifIsDecimal(\$_REQUEST['".$sDefaultValue."'], \"".$sLibelle."\");".chr(13);
+      }
+      if ($oGtfGui->sType == "FILENAME"){
+      $sVerification.="\$sError .= VerifUpload(\$_REQUEST['".$sDefaultValue."'], \"".$sLibelle."\");".chr(13);
+      }
+      }
+
+      return $sVerification;
+      }########################### */
+
+    /*
+     * fonction qui vérifie l'existence de liste des systèmes de coordonnées
+     * aux objets GUI du sous formulaire sous la forme d'une
+     * chaine de caractères
+     */
+
+    function verifyCoordsys() {
+        $bExistCoordsys = false;
+        foreach ($this->aGuiObject as $oGtfGui) {
+            if ($oGtfGui->sType == "COORDSYS") {
+                $bExistCoordsys = true;
+            }
+        }
+        return $bExistCoordsys;
+    }
+
+    /*
+     * fonction qui vérifie l'existence de liste de formats pour writerpick
+     * aux objets GUI du sous formulaire sous la forme d'une
+     * chaine de caractères
+     */
+
+    function verifyWriterPick() {
+        $bExistWriterpick = false;
+        foreach ($this->aGuiObject as $oGtfGui) {
+            if ($oGtfGui->sType == "WRITERPICK") {
+                $bExistWriterpick = true;
+            }
+        }
+        return $bExistWriterpick;
+    }
+
+    /*
+     * fonction qui renvoie un tableau des lignes correspondant
+     * aux objets GUI du sous formulaire sous la forme d'une
+     * chaine de caractères
+     */
+
+    function getExportParameters() {
+        $aGuiLigne = array();
+        $sVerifaValue = "//Default Values\n";
+        array_push($aGuiLigne, "\t\t//Form attributes\n");
+
+        foreach ($this->aGuiObject as $oGtfGui) {
+            // bizarre mais des lignes peuvent être vides (génération KML)... à voir
+            if ($oGtfGui->sDefault_Macro != "") {
+                array_push($aGuiLigne, $oGtfGui->getGui());
+                $sDefaultValue = str_replace('"', '\"', $oGtfGui->sDefaultValue);
+                //Suppression des retours chariot (sinon les valeurs par défaut dans les listes déroulantes ne fonctionnent pas)
+                $sDefaultValue = str_replace(chr(13), '', $sDefaultValue);
+                $sDefaultValue = str_replace(chr(10), '', $sDefaultValue);
+                //Suppression des valeurs par défaut
+                //MULTIFILE : Entre autre les champs Upload
+                //PASSWORD : Mot de passe qui ne doit pas apparaitre pour une meilleure sécurité
+                //DIRNAME :  chemin comportant des "$"
+                if ($oGtfGui->sType == "FLOAT") {
+                    $sDefaultValue = str_replace(",", ".", $sDefaultValue);
+                }
+                if ($oGtfGui->sType == "FILENAME" || $oGtfGui->sType == "DIRNAME") {
+                    $sDefaultValue = str_replace(array("$(FME_MF_DIR)", "$(FME_MF_DIR_USERTYPED)"), array("", ""), $sDefaultValue);
+                    $aDefaultValue = explode("\\", $sDefaultValue); // Exemple : resultat_DwgDxf2Dgn_param_prive\resultat_DwgDxf2Dgn_param_prive\result.dgn
+                    if (isset($aDefaultValue[count($aDefaultValue) - 1])) {
+                        $sDefaultValue = $aDefaultValue[count($aDefaultValue) - 1];
+                    }
+                }
+                if ($oGtfGui->sType != "MULTIFILE" && $oGtfGui->sType != "PASSWORD") {
+                    $sVerifaValue.=chr(9) . chr(9) . 'if ($aValues["' . $oGtfGui->sDefault_Macro . '"]==""){$aValues["' . $oGtfGui->sDefault_Macro . '"]="' . $sDefaultValue . '";}' . chr(13);
+                }
+            }
+        }
+        //Suppression des retours chariot (sinon les valeurs par défaut dans les listes déroulantes ne fonctionnent pas)
+        $aGuiLigne = str_replace(chr(13), '', $aGuiLigne);
+        $aGuiLigne = str_replace(chr(10), '', $aGuiLigne);
+        //Ajout de retour chariot pour une meilleure mise en page du formulaire généré
+        return $sVerifaValue . chr(13) . implode(chr(13), $aGuiLigne);
+    }
+
+    /**
+     * Product a JSON form
+     * @param array $aProperties
+     * @param string $sName
+     * @return array
+     */
+    function productJson($aProperties, $sName) {
+        $aJson = array("name" => "Subform", "title" => $sName, "input_size" => "xxs", "nb_cols" => 12, "rows" => array());
+        $aFields = array("fields" => array());
+        foreach ($this->aGuiObject as $oGtfGui) {
+            // bizarre mais des lignes peuvent être vides (génération KML)... à voir
+            if ($oGtfGui->sDefault_Macro != "") {
+                $aFormField = $oGtfGui->getGuiV2($aProperties);
+                // Décode les tags de FME et GTF dans les valeurs par défaut du formulaire json.
+                if (!empty($aFormField[0]['default_value']))
+                    $aFormField[0]['default_value'] = $oGtfGui->decodeFmeGtfTags($aFormField[0]['default_value']);
+                $aFields = array("fields" => $aFormField);
+                array_push($aJson["rows"], $aFields);
+            }
+        }
+
+        $aJsonFinal = $this->productFinalJSON($aJson);
+
+        return $aJsonFinal;
+    }
+
+    function productFinalJSON($aJson) {
+        
+        $aDatasources = [];
+        $iDatasourceNumber = 0;
+        
+        // Création et attribution des datasources
+        // Pour chaque row
+        for ($i = 0; $i < count($aJson['rows']); $i++) {
+            // Pour chaque field
+            for ($ii = 0; $ii < count($aJson['rows'][$i]['fields']); $ii++) {
+                // Si type est select ou list
+                if ($aJson['rows'][$i]['fields'][$ii]['type'] === 'select' || $aJson['rows'][$i]['fields'][$ii]['type'] === 'list') {
+                    // Si options est défini
+                    if (isset($aJson['rows'][$i]['fields'][$ii]['options'])) {
+                        // Céation du datasource
+                        $aDatasources['datasource_'.$iDatasourceNumber] = array('type' => 'object', 'dataType' => 'text', 'name' => $aJson['rows'][$i]['fields'][$ii]['name'], 'description' => '', 'options' => $aJson['rows'][$i]['fields'][$ii]['options']);
+                        // Attribution du datasource
+                        $aJson['rows'][$i]['fields'][$ii]['datasource'] = array('datasource_id' => 'datasource_'.$iDatasourceNumber);
+                        // Suppression des options dans le field
+                        unset($aJson['rows'][$i]['fields'][$ii]['options']);
+                        // Incémente le nom du datasource
+                        $iDatasourceNumber++;
+                    }
+                }
+            }
+        }
+        
+        // Création du JSON Final
+        $aJsonFinal = array("datasources" => $aDatasources, "display" => $aJson, "insert" => $aJson, "update" => $aJson, "search" => array());
+        return $aJsonFinal;
+    }
+
+    /*
+     * fonction qui renvoie un tableau des lignes correspondant
+     * aux déclarations de objets GUI du sous formulaire sous la forme d'une
+     * chaine de caractères
+     */
+
+    function getDeclaration() {
+        $aGuiChoix = array();
+        foreach ($this->aGuiObject as $oGtfGui) {
+            array_push($aGuiChoix, $oGtfGui->getChoix());
+        }
+        if (count($aGuiChoix) > 1) {
+            $aGuiChoixComment = array();
+            array_push($aGuiChoixComment, "//List values\n");
+            $aGuiChoix = $aGuiChoixComment + $aGuiChoix;
+        }
+        return implode(" ", $aGuiChoix);
+    }
+
+    /*
+     *  fonction qui renvoie le tableau des systêmes de coordonées
+     *  en s'aidant du fichier texte qui contient la liste
+     */
+
+    function getCoordSys() {
+        $aTemp = file("../../../gtf.client/coordsys.txt");
+        $sText .= "//Coordinate systems\n";
+        for ($i = 1; $i < count($aTemp); $i++) {
+            $sValeur = $aTemp[$i];
+            //Suppression des retours chariot (sinon les valeurs par défaut dans les listes déroulantes ne fonctionnent pas)
+            $sValeur = str_replace(chr(13), '', $sValeur);
+            $sValeur = str_replace(chr(10), '', $sValeur);
+            $sText .= "\t\t\$aCoordsys[\"" . $sValeur . "\"]=\"" . $sValeur . "\";\n";
+        }
+        return $sText;
+    }
+
+    /*
+     *  fonction qui renvoie le tableau des formats pour le WRITERPICK
+     *  en s'aidant du fichier texte qui contient la liste
+     */
+
+    function getWriterPick() {
+        $aTemp = file("../../../gtf.client/writerpick.txt");
+        $sText .= "//Writerpick formats\n";
+        $sText .= "\t\t\$aWriterPick[\"\"]=\"\";\n";
+        for ($i = 1; $i < count($aTemp); $i++) {
+            $sValue = $aTemp[$i];
+            //Suppression des retours chariot (sinon les valeurs par défaut dans les listes déroulantes ne fonctionnent pas)
+            $sValue = str_replace(chr(13), '', $sValue);
+            $sValue = str_replace(chr(10), '', $sValue);
+            $aValues = explode("=", $sValue);
+            $sText .= "\t\t\$aWriterPick[\"" . trim($aValues[1]) . "\"]=\"" . trim($aValues[0]) . "\";\n";
+        }
+        return $sText;
+    }
+
+    /*
+     * fonction qui renvoie une chaine de caracteres
+     * contenant la liste des contrôles à exporter
+     * et à insérer dans le sous formulaire.
+     */
+
+    function getParameters() {
+        $sListeParams = "//Workspace parameters\n\t\t\$oForm->hiddenField (\"liste_parametres\",'";
+        $sParam = "";
+        foreach ($this->aGuiObject as $oGtfGui) {
+            if ($oGtfGui->sDefault_Macro != "" && $oGtfGui->sDefault_Macro != "GTF_ORDER_ID" && $oGtfGui->sDefault_Macro != "GTF_CONNECTION_STRING" && $oGtfGui->sDefault_Macro != "GTF_SHARED_DIR")
+                $sParam .= $oGtfGui->sDefault_Macro . "|";
+        }
+        $sParam = substr($sParam, 0, -1);
+        $sListeParams .= $sParam . "');";
+
+        $sListeParams .= "\n\t\t//Workspace parameters required\n\t\t\$oForm->hiddenField (\"parameters_list_required\",'";
+        $sParam = "";
+        foreach ($this->aGuiObject as $oGtfGui) {
+            if ($oGtfGui->sDefault_Macro != "" && (!$oGtfGui->bOptional) && $oGtfGui->sDefault_Macro != "GTF_ORDER_ID" && $oGtfGui->sDefault_Macro != "GTF_CONNECTION_STRING" && $oGtfGui->sDefault_Macro != "GTF_SHARED_DIR")
+                $sParam .= $oGtfGui->sDefault_Macro . "|";
+        }
+        $sParam = substr($sParam, 0, -1);
+        $sListeParams .= $sParam . "');";
+        return $sListeParams;
+    }
+
+    /*
+     * fonction lancant la génération du sous formulaire
+     * a partir du template "Modele.SubForm.class.inc"
+     * remplacant les balises du template par
+     * les chaines de caractères correspondantes
+     */
+
+    function generateSubForm($sTemplate, $sFileName, $iWorkspaceId) {
+        $sSubFormTemp = file_get_contents($sTemplate);
+        $sSubFormTemp = str_replace("[WorkspaceId]", $iWorkspaceId, $sSubFormTemp);
+        $sSubFormTemp = str_replace("[DECLARATION]", $this->getDeclaration(), $sSubFormTemp);
+        if ($this->verifyCoordsys() == true) {
+            $sSubFormTemp = str_replace("[COORD_SYS]", $this->getCoordSys(), $sSubFormTemp);
+        } else {
+            $sSubFormTemp = str_replace("[COORD_SYS]", "", $sSubFormTemp);
+        }
+        if ($this->verifyWriterPick() == true) {
+            $sSubFormTemp = str_replace("[WRITER_PICK]", $this->getWriterPick(), $sSubFormTemp);
+        } else {
+            $sSubFormTemp = str_replace("[WRITER_PICK]", "", $sSubFormTemp);
+        }
+        $this->productJson(); //############################################ Genese du Json
+        $sSubFormTemp = str_replace("[EXPORT_PARAMETRE]", str_replace("\\", "\\\\", $this->getExportParameters()), $sSubFormTemp);
+        $sSubFormTemp = str_replace("[PARAMETRES]", $this->getParameters(), $sSubFormTemp);
+        $oFile = fopen($sFileName, "w+");
+        fwrite($oFile, $sSubFormTemp);
+        fclose($oFile);
+    }
+
+    function charFMWToRealCharacter($sValue) {
+        return str_replace('\\u', "\\\\u", str_replace("'", "''", str_replace('&#10;', '\n', htmlspecialchars_decode($sValue))));
+    }
+
+    function realCharacterToCharFMW($sValue) {
+        if (strtolower($this->sEncoding) != 'utf-8') {
+            $sValue = utf8_decode($sValue);
+        }
+        return htmlspecialchars(str_replace(chr(13), '', str_replace(chr(10), '', $sValue)));
+    }
+
+    function updateMetadata($oBd, $iId) {
+        $sSql = "SELECT \"name\" FROM s_gtf.workspace WHERE workspace_id = " . $iId . ";";
+        $oResultat = $oBd->execute($sSql);
+        if (!$oBd->erreurRencontree) {
+            while ($oWorkspace = $oBd->objetSuivant($oResultat)) {
+                $sWorkspaceName = $oWorkspace->name;
+            }
+        }
+        if ($this->sCategory != "") {
+            $sSql = "SELECT category_id FROM s_gtf.category WHERE lower(name) = lower('" . $this->sCategory . "');";
+            $iCategoryId = 0;
+            $oResultat = $oBd->execute($sSql);
+            if (!$oBd->erreurRencontree) {
+                while ($oCategory = $oBd->objetSuivant($oResultat)) {
+                    $iCategoryId = $oCategory->category_id;
+                }
+            }
+            if ($iCategoryId == 0) {
+                $aFields['name'] = $this->sCategory;
+                $iCategoryId = $oBd->insert("s_gtf", "category", $aFields, "s_gtf.seq_common", "category_id");
+            }
+        } else {
+            $iCategoryId = "NULL";
+        }
+        if ($this->sSaveDate == "") {
+            $sSaveDate = "NULL";
+        } else {
+            $sSaveDate = "'" . $this->sSaveDate . "'";
+        }
+        if ($this->sDescription == "") {
+            $sDescription = "NULL";
+        } else {
+            $sDescription = "'" . $this->sDescription . "'";
+        }
+        // Création d'un titre si inexistant.
+        if ($this->sTitle == "")
+            $this->sTitle = pathinfo($this->sFmwFileName, PATHINFO_FILENAME);
+        if ($sWorkspaceName != "") {
+            $sSql = "UPDATE s_gtf.workspace set description = " . $sDescription . ", category_id = " . $iCategoryId . ", legal_terms_conditions = '" . $this->sLegal . "', \"usage\" = '" . $this->sUsage . "', last_save_date = " . $sSaveDate . ", last_save_build = '" . $this->sSaveBuild . "', file_encoding = '" . $this->sEncoding . "', requirements = '" . $this->sRequirements . "', history = '" . $this->sHistory . "', title = '" . $this->sTitle . "' WHERE workspace_id = " . $iId . ";";
+        } else {
+            $title = $this->sTitle;
+            $sSql = "SELECT workspace_id FROM s_gtf.workspace WHERE lower(name) = lower('" . $title . "');";
+            $iResult = $oBd->execute($sSql);
+            if ($aWorkspace = $oBd->ligneSuivante($iResult)) {
+                $title = $title . date("Ymd-His") . rand(0, 100);
+            }
+            $sSql = "UPDATE s_gtf.workspace set description = '" . $this->sDescription . "', category_id = " . $iCategoryId . ", legal_terms_conditions = '" . $this->sLegal . "', \"usage\" = '" . $this->sUsage . "', last_save_date = " . $sSaveDate . ", last_save_build = '" . $this->sSaveBuild . "', file_encoding = '" . $this->sEncoding . "', requirements = '" . $this->sRequirements . "', history = '" . $this->sHistory . "', title = '" . $this->sTitle . "', \"name\" = '" . $title . "' WHERE workspace_id = " . $iId . ";";
+        }
+        $oResultat = $oBd->execute($sSql);
+    }
+
+    function getBdMetadata($oBd, $iId) {
+        $sSql = "SELECT workspace.description, category.name as category_name, title, legal_terms_conditions, usage, requirements FROM s_gtf.workspace left join s_gtf.category on workspace.category_id = category.category_id WHERE workspace_id = " . $iId . ";";
+        $oResultat = $oBd->execute($sSql);
+        if (!$oBd->erreurRencontree) {
+            while ($oMeta = $oBd->objetSuivant($oResultat)) {
+                $this->sDescription = $oMeta->description;
+                $this->sCategory = $oMeta->category_name;
+                $this->sLegal = $oMeta->legal_terms_conditions;
+                $this->sUsage = $oMeta->usage;
+                $this->sRequirements = $oMeta->requirements;
+                $this->sTitle = $oMeta->title;
+            }
+        }
+    }
+
+    function save($sFileName) {
+
+        $sRechercheTitle = '^#![ \t]+TITLE=\"(.*)\"';
+        $sRechercheDescription = '^#![ \t]+DESCRIPTION=\"(.*)\"';
+        $sRechercheCategory = '^#![ \t]+CATEGORY=\"(.*)\"';
+        $sRechercheLegal = '^#![ \t]+LEGAL_TERMS_CONDITIONS=\"(.*)\"';
+        $sRechercheUsage = '^#![ \t]+USAGE=\"(.*)\"';
+        $sRechercheRequirements = '^#![ \t]+REQUIREMENTS=\"(.*)\"';
+        $sRechercheName = '^#![ \t]+NAME=\"(.*)\"';
+        $sRechercheWorkspace = '^#![ \t]+<WORKSPACE';
+        $sRechercheEndWorkspace = '^#![ \t]+>';
+        $bIsWorkspace = false;
+
+        $ecriture = fopen($sFileName, "w+");
+        foreach ($this->aLignes as $ligne) {
+            if (strtolower($this->sEncoding) != 'utf-8') {
+                $ligne = utf8_decode($ligne);
+            }
+            if (mb_eregi($sRechercheWorkspace, $ligne, $aOccurence)) {
+                $bIsWorkspace = true;
+            }
+            if ($bIsWorkspace == true) {
+                //Description
+                if (mb_eregi($sRechercheDescription, $ligne, $aOccurence)) {
+
+                    $ligne = str_replace('"' . $aOccurence[1] . '"', '"' . $this->realCharacterToCharFMW($this->sDescription) . '"', $ligne);
+                }
+                //Title
+                if (mb_eregi($sRechercheTitle, $ligne, $aOccurence)) {
+                    $ligne = str_replace('"' . $aOccurence[1] . '"', '"' . $this->realCharacterToCharFMW($this->sTitle) . '"', $ligne);
+                }
+
+                //Category
+                if (mb_eregi($sRechercheCategory, $ligne, $aOccurence)) {
+                    $ligne = str_replace('"' . $aOccurence[1] . '"', '"' . $this->realCharacterToCharFMW($this->sCategory) . '"', $ligne);
+                }
+                //Usage
+                if (mb_eregi($sRechercheUsage, $ligne, $aOccurence)) {
+                    $ligne = str_replace('"' . $aOccurence[1] . '"', '"' . $this->realCharacterToCharFMW($this->sUsage) . '"', $ligne);
+                }
+                //Legal
+                if (mb_eregi($sRechercheLegal, $ligne, $aOccurence)) {
+                    $ligne = str_replace('"' . $aOccurence[1] . '"', '"' . $this->realCharacterToCharFMW($this->sLegal) . '"', $ligne);
+                }
+                //Requirements
+                if (mb_eregi($sRechercheRequirements, $ligne, $aOccurence)) {
+                    $ligne = str_replace('"' . $aOccurence[1] . '"', '"' . $this->realCharacterToCharFMW($this->sRequirements) . '"', $ligne);
+                }
+                if (mb_eregi($sRechercheEndWorkspace, $ligne, $aOccurence)) {
+                    $bIsWorkspace = false;
+                }
+            }
+            fwrite($ecriture, $ligne); // affichera $prenoms[0], $prenoms[1] etc.
+        }
+
+        fclose($ecriture);
+    }
+
+}
+
+?>
diff --git a/src/module_gtf/web_service/class/gtf_lib/GtfGui.class.inc b/src/module_gtf/web_service/class/gtf_lib/GtfGui.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..2352c95a26c1ea25142a7064fb7ab2adf8e00012
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/GtfGui.class.inc
@@ -0,0 +1,847 @@
+<?php
+
+//require_once("vmlib/BD.class.inc");
+//require_once("vmlib/logUtil.inc");
+//require_once("vmlib/dbUtil.inc");
+//require_once("vmlib/Vm.class.inc"); 
+//require_once("vmlib/phpUtil.inc");
+//require_once("vmlib/stringUtil.inc");
+//require_once("vmlib/VirtualFormV2.class.inc");
+
+class GtfGui {
+
+    var $sDefault_Macro;
+    var $sType;
+    var $sLibelle;
+    var $sDefaultValue;
+    var $sFiltreSource;
+    var $sFiltreDest;
+    var $aChoix;
+    var $bIsSource = false;
+    var $bIsDest = false;
+    var $sFmwFileName;
+    var $sUniqId;
+    var $bOptional = false;
+    var $bPrivate = false;
+
+    /*
+     * Constructeur de la classe GtfGui
+     * Chaque occurence contenue dans le tableau des GUI est examiné
+     * et les valeurs correspondantes des paramètres sont renvoyées
+     */
+
+    function __construct($sValue, $sFmwFileName, $sEncoding) {
+        $aPart = $this->guiExplode($sValue, $sFmwFileName);
+        if (count($aPart) < 20)
+            $aPart = array_merge($aPart, array_fill(count($aPart), (20 - count($aPart)), ''));
+        $this->sFmwFileName = $sFmwFileName;
+        if ($aPart[1] == "OPTIONAL") {
+            $this->bOptional = true;
+            if ($aPart[2] == "IGNORE") {
+                $this->bPrivate = true;
+                $i = 2;
+            } else {
+                $i = 1;
+            }
+        } else if ($aPart[1] == "IGNORE") {
+            $this->bPrivate = true;
+            $i = 1;
+        } else {
+            $i = 0;
+        }
+        $this->sType = $aPart[$i + 1];
+        if ($this->bPrivate != true) {
+            switch ($this->sType) {
+                case "DATE_TIME" :
+                case "FLOAT" :
+                case "INTEGER" :
+                case "PASSWORD" :
+                case "STRING_ENCODED" :
+                case "TEXT" :
+                case "TEXT_EDIT" :
+                case "TEXT_EDIT_OR_NUM" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "ATTRLIST_COMMAS" :
+                case "ATTRLIST_OR_ATTR":
+                case "ATTRLIST" :
+                case "ATTR" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "URL" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "FILENAME" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsDest = true;
+                    $this->sFiltreDest = $aPart[$i + 3];
+                    break;
+                case "FILENAME_EXISTING" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsSource = true;
+                    $this->sFiltreDest = $aPart[$i + 3];
+                    break;
+                case "SOURCE_GEODATABASE" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsSource = true;
+                    $this->sFiltreSource = "*.gdb";
+                    break;
+                case "DEST_GEODATABASE" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsDest = true;
+                    break;
+                case "FILE_OR_URL" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsSource = true;
+                    $this->sFiltreSource = $aPart[$i + 3];
+                    break;
+                case "DIRNAME" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsDest = true;
+                    break;
+                case "DIRNAME_SRC" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsSource = true;
+                    break;
+                case "COORDSYS" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "WRITERPICK" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "CHOICE" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+					
+					$j = 0;
+					$sChoice = "";
+					$this->aChoix = array();
+					
+					while($j < strlen($aPart[$i + 3])){
+						if($aPart[$i + 3][$j] == '"'){
+							$j += 1;
+							while($aPart[$i + 3][$j] != '"'){
+								$sChoice .= $aPart[$i + 3][$j];
+								$j += 1;
+							}
+							$j += 1;
+						} else if ($aPart[$i + 3][$j] === "%"){
+							array_push($this->aChoix, $sChoice);
+							$sChoice = "";
+							$j += 1;
+						} else {
+							$sChoice .= $aPart[$i + 3][$j];
+							$j += 1;
+						}
+					}
+                    array_push($this->aChoix, $sChoice);
+					
+					$this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "LOOKUP_LISTBOX" :
+                case "LISTBOX" :
+                case "CLASSICLISTBOX" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+					
+					$j = 0;
+					$sChoice = "";
+					$this->aChoix = array();
+					
+					while($j < strlen($aPart[$i + 3])){
+						if($aPart[$i + 3][$j] == '"'){
+							$j += 1;
+							while($aPart[$i + 3][$j] != '"'){
+								$sChoice .= $aPart[$i + 3][$j];
+								$j += 1;
+							}
+							$j += 1;
+						} else if ($aPart[$i + 3][$j] === "%"){
+							array_push($this->aChoix, $sChoice);
+							$sChoice = "";
+							$j += 1;
+						} else {
+							$sChoice .= $aPart[$i + 3][$j];
+							$j += 1;
+						}
+					}
+					array_push($this->aChoix, $sChoice);
+					
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "STRING_OR_CHOICE" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+					
+					$j = 0;
+					$sChoice = "";
+					$this->aChoix = array();
+					
+					while($j < strlen($aPart[$i + 3])){
+						if($aPart[$i + 3][$j] == '"'){
+							$j += 1;
+							while($aPart[$i + 3][$j] != '"' && $j < strlen($aPart[$i + 3])){
+								$sChoice .= $aPart[$i + 3][$j];
+								$j += 1;
+							}
+							$j += 1;
+						} else if ($aPart[$i + 3][$j] === "%"){
+							array_push($this->aChoix, $sChoice);
+							$sChoice = "";
+							$j += 1;
+						} else {
+							$sChoice .= $aPart[$i + 3][$j];
+							$j += 1;
+						}
+					}
+					array_push($this->aChoix, $sChoice);
+					
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "LOOKUP_CHOICE" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+					
+					$j = 0;
+					$sChoice = "";
+					$this->aChoix = array();
+					
+					while($j < strlen($aPart[$i + 3])){
+						if($aPart[$i + 3][$j] == '"'){
+							$j += 1;
+							while($aPart[$i + 3][$j] != '"'){
+								$sChoice .= $aPart[$i + 3][$j];
+								$j += 1;
+							}
+							$j += 1;
+						} else if ($aPart[$i + 3][$j] === "%"){
+							array_push($this->aChoix, $sChoice);
+							$sChoice = "";
+							$j += 1;
+						} else {
+							$sChoice .= $aPart[$i + 3][$j];
+							$j += 1;
+						}
+					}
+					array_push($this->aChoix, $sChoice);
+					
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "COLOR_PICK" :
+                case "Color_Pick" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 3] . " " . $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "RANGE_SLIDER" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->aChoix = explode("%", $aPart[$i + 3]);
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    break;
+                case "MULTIFILE" :
+                    $this->sDefault_Macro = $aPart[$i + 2];
+                    $this->sLibelle = $aPart[$i + 4] . " " . $aPart[$i + 5] . " " . $aPart[$i + 6] . " " . $aPart[$i + 7] . " " . $aPart[$i + 8] . " " . $aPart[$i + 9] . " " . $aPart[$i + 10] . " " . $aPart[$i + 11] . " " . $aPart[$i + 12] . " " . $aPart[$i + 13];
+                    $this->bIsSource = true;
+                    $this->sFiltreSource = $aPart[$i + 3];
+                    break;
+            }
+            if ($this->sDefault_Macro != "" && $this->bIsSource == false) {
+                $this->sDefaultValue = $this->getDefaultValue($this->sDefault_Macro, $sEncoding);
+            }
+        }
+    }
+
+    /*
+     * Fonction récupérant les paramètres des Gui
+     * et générant la ligne de code php correspondante au contrôle
+     * à insérer dans la page du sous formulaire
+     */
+    /*
+      function getGui(){
+      if ($this->bPrivate!=true && $this->sDefault_Macro != "GTF_ORDER_ID" && $this->sDefault_Macro != "GTF_CONNECTION_STRING" && $this->sDefault_Macro != "GTF_SHARED_DIR"){
+      if (preg_match("#^H_#", $this->sDefault_Macro)){
+      $sGui .= "\t\t\$oForm->hiddenField(\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"]);\n";
+      }else{
+      switch ($this->sType){
+      case "MULTIFILE" :
+      $this->sUniqId = $this->getUniqId();
+      $sOnChange = '"uploadFile(window.document.getElementById(\'EXTERNAL_UPLOAD_'.$this->sUniqId.'\'), window.document.getElementById(\''.$this->sDefault_Macro.'\'),\'\', window.document.getElementById(\'sPathFile_'.$this->sUniqId.'\'))"';
+      $sValeur = '$aValues["'.$this->sDefault_Macro.'"]';
+      $sGui = "\t\t\$oForm->uploadField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",80,\"\",".$sOnChange.",\"sPathFile_".$this->sUniqId."\");\n \t\t\$oForm->hiddenField (\"EXTERNAL_UPLOAD_".$this->sUniqId."\",\"upload|zip|sPathFile_".$this->sUniqId."|import|\");\n";
+      break;
+      case "FILE_OR_URL" :
+      $this->sUniqId = $this->getUniqId();
+      $sOnChange = '"uploadFile(window.document.getElementById(\'EXTERNAL_UPLOAD_'.$this->sUniqId.'\'), window.document.getElementById(\''.$this->sDefault_Macro.'\'),\'\', window.document.getElementById(\'sPathFile_'.$this->sUniqId.'\'))"';
+      $sValeur = '$aValues["'.$this->sDefault_Macro.'"]';
+      $sGui = "\t\t\$oForm->uploadField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",80,\"\",".$sOnChange.",\"sPathFile_".$this->sUniqId."\");\n \t\t\$oForm->hiddenField (\"EXTERNAL_UPLOAD_".$this->sUniqId."\",\"upload|zip|sPathFile_".$this->sUniqId."|import|\");\n";
+      break;
+      case "FILENAME" :
+      case "FILENAME_EXISTING" :
+      case "SOURCE_GEODATABASE" :
+      case "DIRNAME_SRC" :
+      if ($this->bIsSource){
+      $this->sUniqId = $this->getUniqId();
+      $sOnChange = '"uploadFile(window.document.getElementById(\'EXTERNAL_UPLOAD_'.$this->sUniqId.'\'), window.document.getElementById(\''.$this->sDefault_Macro.'\'),\'\', window.document.getElementById(\'sPathFile_'.$this->sUniqId.'\'))"';
+      $sValeur = '$aValues["'.$this->sDefault_Macro.'"]';
+      $sGui = "\t\t\$oForm->uploadField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",80,\"\",".$sOnChange.",\"sPathFile_".$this->sUniqId."\");\n \t\t\$oForm->hiddenField (\"EXTERNAL_UPLOAD_".$this->sUniqId."\",\"upload|zip|sPathFile_".$this->sUniqId."|import|\");\n";
+
+      }else{
+      $sGui = "\t\t\$oForm->textField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],75);";
+      }
+      break;
+      case "DATE_TIME" :
+      $sGui = "\t\t\$oForm->calendarDateTimeField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],75);";
+      break;
+      case "DIRNAME" :
+      case "DEST_GEODATABASE" :
+      $sGui = "\t\t\$oForm->textField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],75);";
+      break;
+      case "COORDSYS" :
+      $sGui = "\t\t\$oForm->listField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],0,\$aCoordsys);\n";
+      break;
+      case "WRITERPICK" :
+      $sGui = "\t\t\$oForm->listField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],0,\$aWriterPick);\n";
+      break;
+      case "FLOAT" :
+      $sGui = "\t\t\$oForm->textField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],25);";
+      break;
+      case "INTEGER" :
+      $sGui = "\t\t\$oForm->numberField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],10);";
+      break;
+      case "CHOICE" :
+      $sGui = "\t\t\$oForm->listField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],0,\$a".$this->sDefault_Macro.");\n";
+      break;
+      case "LOOKUP_LISTBOX" :
+      case "LISTBOX" :
+      case "CLASSICLISTBOX" :
+      $sGui = "\t\t\$oForm->listField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],5,\$a".$this->sDefault_Macro.",true);\n";
+      break;
+      case "PASSWORD" :
+      $sGui = "\t\t\$oForm->PasswordField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\"\",40);\n";
+      break;
+      case "TEXT" :
+      $sGui = "\t\t\$oForm->textField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],80,80);\n";
+      break;
+      case "TEXT_EDIT" :
+      case "TEXT_EDIT_OR_NUM" :
+      $sGui = "\t\t\$oForm->areaField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],3,80);\n";
+      break;
+      case "STRING_ENCODED" :
+      $sGui = "\t\t\$oForm->textField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],80,80);\n";
+      break;
+      case "STRING_OR_CHOICE" :
+
+      $sData="var data_".$this->sDefault_Macro." = {};data_".$this->sDefault_Macro.".results = [";
+      $iNbrElementChampStringOrChoice=count($this->aChoix);
+      $i=1;
+      foreach ($this->aChoix as $sValue) {
+      $sValue = str_replace("'", "\'", $sValue);
+      $sValue = str_replace('"', '\"', $sValue);
+      if ($i==$iNbrElementChampStringOrChoice){
+      $sData.="{id:'".$sValue."',name:'".$sValue."'}";
+      }else{
+      $sData.="{id:'".$sValue."',name:'".$sValue."'},";
+      }
+      $i++;
+      }
+      $sData.="];";
+
+      $sGui = "\t\t\$oForm->formContent .= \"	<script type='text/javascript'>
+
+      ".$sData."
+
+      $(function() {
+
+      $('#".$this->sDefault_Macro."').flexbox(data_".$this->sDefault_Macro.", {
+      autoCompleteFirstMatch: false,
+      paging: false,
+      noResultsText: '',
+      });
+
+      });
+      </script>
+
+      <div class='attributeName' id='".$this->sDefault_Macro."_label'>".$this->sLibelle."</div><div id='".$this->sDefault_Macro."'></div>\n\";\n";
+
+      break;
+      case "LOOKUP_CHOICE" :
+      $sGui = "\t\t\$oForm->listField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],0,\$a".$this->sDefault_Macro.");\n";
+      break;
+      case "COLOR_PICK" :
+      case "Color_Pick" :
+      $sGui = "\t\t\$oForm-> graphicsPaletteField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues['".$this->sDefault_Macro."'],20,0,\"Palette\", \"link_submit\",\"colorPicker('".$this->sDefault_Macro."');\", \"formLink\",\$sCouleurFond);\n";
+      break;
+      case "RANGE_SLIDER" :
+      if (isset($this->aChoix[2])){
+      $iValueDecimal=$this->aChoix[2];
+      }else{
+      $iValueDecimal=1;
+      }
+      $sDefaultValue=round($this->sDefaultValue); //La valeur par défaut est arrondi car le slider ne gère pas de nombre de type float
+      $sGui = "\t\t\$oForm->SliderField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\", 5, ".$this->aChoix[0].", ".$this->aChoix[1].", ".$sDefaultValue.", 1, ".$iValueDecimal.");";
+      break;
+      case "URL" :
+      $sGui = "\t\t\$oForm->textField(\"".$this->sLibelle."\",\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"],80,80);\n";
+      break;
+      }
+      }
+      }
+      return $sGui;
+      }
+     */
+
+    function getGuiV2($aProperties) {
+        $aFields = array();
+		 $this->sDefaultValue = str_replace(array("$(FME_MF_DIR)", "$(FME_MF_DIR_USERTYPED)"), array("", ""), $this->sDefaultValue);
+        if ($this->bPrivate != true && substr($this->sDefault_Macro, 0, 4) != "GTF_") {
+			$aDefaultValue = explode("\\", $this->sDefaultValue); // Exemple : resultat_DwgDxf2Dgn_param_prive\resultat_DwgDxf2Dgn_param_prive\result.dgn
+			if (isset($aDefaultValue[count($aDefaultValue) - 1])) {
+				 $this->sDefaultValue = $aDefaultValue[count($aDefaultValue) - 1];
+			}
+            if (preg_match("#^H_#", $this->sDefault_Macro)) {
+                //Champs à cacher donc rien à faire ?
+                //$sGui .= "\t\t\$oForm->hiddenField(\"".$this->sDefault_Macro."\",\$aValues[\"".$this->sDefault_Macro."\"]);\n";
+                // Supprime le pramètre FME "$(FME_MF_DIR)".
+               
+                // Sauve le champ caché.
+                $aFields = array(array("type" => "hidden", "name" => $this->sDefault_Macro, "default_value" => $this->sDefaultValue, "nb_cols" => 12));
+            } else {
+                switch ($this->sType) {
+                    case "MULTIFILE" :
+                        $aFields = array(array("type" => "upload", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "nb_cols" => 12, "default_value" => $this->sDefaultValue, 'multiple' => true));
+                        break;
+                    case "FILE_OR_URL" :
+                        $aFields = array(array("type" => "upload", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "FILENAME_EXISTING" :
+                    case "SOURCE_GEODATABASE" :
+                    case "DIRNAME_SRC" :
+                        $aFields = array(array("type" => "upload", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "FILENAME" :
+                        if ($this->bIsDest)
+                            $aFields = array(array("type" => "text", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "pattern" => "", "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        else
+                            $aFields = array(array("type" => "upload", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "DATE_TIME" :
+						$sYear = substr($this->sDefaultValue,0,4);
+						$sMonth = substr($this->sDefaultValue,4,2);
+						$sDay = substr($this->sDefaultValue,6,2);
+						$sHours = substr($this->sDefaultValue,8,2);
+						$sMinute = substr($this->sDefaultValue,10,2);
+						$sSecond = substr($this->sDefaultValue,12,2);
+						
+						$sTMP = $sDay ."/". $sMonth ."/". $sYear ."  ". $sHours . ":" . $sMinute;
+						
+                        $aFields = array(array("type" => "datetime", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "nb_cols" => 12, "default_value" => $sTMP));
+                        break;
+                    case "DIRNAME" :
+                    case "DEST_GEODATABASE" :
+                        $aFields = array(array("type" => "text", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "pattern" => "", "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "COORDSYS" :
+                        $aCoordsys = array();
+                        $sFilename = $aProperties["vas_home"] . "/util/coordsys.txt";
+                        $fPointeur = fopen($sFilename, "r");
+                        while (!feof($fPointeur)) {
+                            $sLine = fgets($fPointeur);
+                            $sLine = str_replace(array("\n", "\r"), "", $sLine);
+                            array_push($aCoordsys, $sLine);
+                        }
+                        fclose($fPointeur);
+                        $aFields = array(array("type" => "select", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "options" => $aCoordsys, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "WRITERPICK" :
+                        $aWriterPick = array();
+                        $sFilename = $aProperties["vas_home"] . "/util/writerpick.txt";
+                        $fPointeur = fopen($sFilename, "r");
+                        while (!feof($fPointeur)) {
+                            $sLine = fgets($fPointeur);
+                            $sLine = str_replace(array("\n", "\r"), "", $sLine);
+                            array_push($aWriterPick, $sLine);
+                        }
+                        fclose($fPointeur);
+                        $aFields = array(array("type" => "select", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "options" => $aWriterPick, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "FLOAT" :
+                        $aFields = array(array("type" => "float", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "INTEGER" :
+                        $aFields = array(array("type" => "integer", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "CHOICE" :
+                        $this->aChoix = $this->getChoix();
+						$this->sDefaultValue = $this->replacer($this->sDefaultValue);
+                        $aFields = array(array("type" => "select", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "options" => $this->aChoix, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "LOOKUP_LISTBOX" :
+                    case "LISTBOX" :
+                    case "CLASSICLISTBOX" :
+                        $this->aChoix = $this->getChoix();
+						$this->sDefaultValue = $this->replacer($this->sDefaultValue);
+                        $aFields = array(array("type" => "list", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "options" => $this->aChoix, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "PASSWORD" :
+                        $aFields = array(array("type" => "password", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "pattern" => "", "nb_cols" => 12));
+                        break;
+                    case "TEXT" :
+						$this->sDefaultValue = $this->replacer($this->sDefaultValue);
+                        $aFields = array(array("type" => "text", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "pattern" => "", "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "TEXT_EDIT" :
+                    case "TEXT_EDIT_OR_NUM" :
+						$this->sDefaultValue = $this->replacer($this->sDefaultValue);
+                        $aFields = array(array("type" => "textarea", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "STRING_ENCODED" :
+                        $aFields = array(array("type" => "text", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "pattern" => "", "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "STRING_OR_CHOICE" :
+                        $this->aChoix = $this->getChoix();
+                        $aFields = array(array("type" => "select", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "options" => $this->aChoix, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "LOOKUP_CHOICE" :
+						$this->sDefaultValue = $this->replacer($this->sDefaultValue);
+                        $this->aChoix = $this->getChoix();
+                        $aFields = array(array("type" => "select", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "options" => $this->aChoix, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "COLOR_PICK" :
+                    case "Color_Pick" :
+
+                        //$aColors = explode(',', $this->sDefaultValue);
+                        //$this->sDefaultValue = "";
+                        /*for ($i = 0; $i < count($aColors); $i++) {
+                            $this->sDefaultValue .= round($aColors[$i] * 255).",";
+                        }*/
+                        //$this->sDefaultValue = "rgba(".$this->sDefaultValue."1)";
+                        $aFields = array(array("type" => "color_picker", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+
+                        break;
+                    case "RANGE_SLIDER" :
+                        if ($this->aChoix[2] == "") {
+                            $this->aChoix[2] = 0;   // si aucune précision n'est défini valeur par défaut
+                        }
+                        $fStep = 1.0 / pow(10, (int) $this->aChoix[2]); // adaptation du pas par rapport à la précision
+                        $aFields = array(array("type" => "slider", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "options" => array("min" => (int) $this->aChoix[0], "max" => (int) $this->aChoix[1], "precision" => (int) $this->aChoix[2], "step" => $fStep), "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                    case "URL" :
+                        $aFields = array(array("type" => "url", "name" => $this->sDefault_Macro, "label" => $this->sLibelle, "required" => !$this->bOptional, "pattern" => "", "nb_cols" => 12, "default_value" => $this->sDefaultValue));
+                        break;
+                }
+            }
+        }
+        return $aFields;
+    }
+
+    /*
+     * Fonction récupérant les paramètres des Gui
+     * et générant la ligne de code php correspondante aux choix
+     * des listes se trouvant dans le fichier fmw
+     */
+
+    function getChoix() {
+        if ($this->bPrivate != true) {
+            $aChoixTmp = array();
+            $aChoix = $this->aChoix;
+            switch ($this->sType) {
+                case "LOOKUP_LISTBOX" :
+                case "LISTBOX" :
+                case "CHOICE" :
+                case "CLASSICLISTBOX" :
+                    foreach ($aChoix as $sValue) {
+                        //$sValue = str_replace("'","\'",$sValue);
+                        //$sValue = str_replace("\"", "", $sValue);
+                        //$sValue = str_replace("<quote>", '\"', $sValue);
+                        //$sValue = str_replace("<space>", " ", $sValue);
+                        //$sValue = str_replace("<apos>", "'", $sValue);
+                        //$sValue = str_replace("<u00e9>", "é", $sValue);
+                        //$sValue = str_replace("<u00e0>", "à", $sValue);
+						
+                        $bComaExisting = strpos($sValue, ",");
+                        
+						if ($bComaExisting === false) {
+                            //La chaine "," n'existe pas
+                            //$sText .= "\t\t\$a".$this->sDefault_Macro."[\"".$sValue."\"]=\"".$sValue."\";\n";
+							$sValue = $this->replacer($sValue);
+                            array_push($aChoixTmp, $sValue);
+                        } else {
+                            //La chaine "," Existe
+                            $aValue = explode(",", $sValue);
+							
+							foreach($aValue as &$sVal){
+								$sVal = $this->replacer($sVal);
+							}
+                            //$aValue = str_replace("<comma>", ",", $aValue);
+                            //$sText .= "\t\t\$a".$this->sDefault_Macro."[\"".$aValue[1]."\"]=\"".$aValue[0]."\";\n";
+                            array_push($aChoixTmp, $aValue[0] . "|" . $aValue[1]);
+                        }
+                    }
+                    break;
+                case "LOOKUP_CHOICE" :
+                    foreach ($aChoix as $sValue) {
+                        //$sValue = str_replace("\"", "", $sValue);
+                        //$sValue = str_replace("<quote>", '\"', $sValue);
+                        //$sValue = str_replace("<space>", " ", $sValue);
+                        //$sValue = str_replace("<apos>", "'", $sValue);
+                        //$sValue = str_replace("<u00e9>", "é", $sValue);
+                        //$sValue = str_replace("<u00e0>", "à", $sValue);
+                        $aValue = explode(",", $sValue);
+						
+						foreach($aValue as &$sVal){
+								$sVal = $this->replacer($sVal);
+						}
+                        
+						array_push($aChoixTmp, $aValue[0] . "|" . $aValue[1]);
+                    }
+                    break;
+                case "STRING_OR_CHOICE" :
+                    foreach ($aChoix as $sValue) {
+                        $sValue = str_replace("\"", "", $sValue);
+                        array_push($aChoixTmp, $sValue);
+                    }
+                    break;
+            }
+        }
+        return $aChoixTmp;
+    }
+
+    /*
+     *  Fonction qu permet de récupérer dans un tableau les extensions associées à la source de données
+     *  $sFiltre : chaine de caractere contenant les extensions autorisées
+     */
+
+    function getExtensionArray($sFiltre) {
+        $aExtension = array();
+        $aExtension = $this->ExtensionSeeker($sFiltre);
+        return $aExtension;
+    }
+
+    /*
+     *  Fonction qui avec la chaine des extensions en entrée, renvoi un tableau contenant une ligne par extension autorisée pour la source de données.
+     *  Si plusieurs extensions sont fournies le "*.*" est ignoré
+     *  $sChaine : chaine de caractères contenant les extensions (en itération paire) séparés par des |
+     */
+
+    function ExtensionSeeker($sChaine) {
+        $aTemp = array();
+        $aTemp2 = array();
+        $aExtension = array();
+        $aTemp = explode("|", $sChaine);
+        $i = 0;
+        $l = 0;
+        if (sizeOf($aTemp) == 1)
+            array_push($aTemp2, $aTemp[0]);
+        else {
+            foreach ($aTemp as $sValue) {
+                if ($i % 2) {
+                    if ($l >= 1) {
+                        if ($sValue != "*.*") {
+                            array_push($aTemp2, $sValue);
+                            $l++;
+                        }
+                    } else {
+                        array_push($aTemp2, $sValue);
+                        $l++;
+                    }
+                }
+                $i++;
+            }
+        }
+        foreach ($aTemp2 as $sValue) {
+            $aTmp = preg_split("/[,;_]/", $sValue);
+            foreach ($aTmp as $sTmp)
+                array_push($aExtension, $sTmp);
+        }
+        return array_iunique($aExtension);
+    }
+
+    /*
+     *  Fonction qui permet de prendre une lige GUI
+     *  Et de la découper de manière à avoir tout les paramêtres remplis
+     *  Avec gestion des espaces pour les listes de choix
+     */
+
+    function guiExplode($sValue) {
+        $aTypeParametre = explode(" ", $sValue);
+        $iArray = 0;
+        $iChar = 0;
+        $iLength = strlen($sValue);
+        //$aPart = array();
+        $aPart = array_fill(0, substr_count($sValue, ' ') + 1, '');
+        $sEspace = " ";
+        $sDoubleQuote = '"';
+        while ($iChar < $iLength) {
+            if ($sValue[$iChar] == $sEspace) {
+                $iArray++;
+                $iChar++;
+            } else {  // caractère différent d'un espace
+                if ($sValue[$iChar] == $sDoubleQuote) {  // le caractère est un premier double quote
+                    $aPart[$iArray].=$sValue[$iChar];
+					$iChar++;
+                    while ($sValue[$iChar] != $sDoubleQuote) {  // on boucle jusqu'à trouver la deuxième double quote
+                        $aPart[$iArray].=$sValue[$iChar];
+                        $iChar++;
+                    }
+                    if ($aTypeParametre[1]=="OPTIONAL"){
+						if ($aTypeParametre[2]=="IGNORE"){
+							if ($aTypeParametre[3]=="STRING_OR_CHOICE"){$iChar++;}
+						}//else{if ($aTypeParametre[2]=="STRING_OR_CHOICE"){$iChar++;}}
+					}else if($aTypeParametre[1]=="IGNORE"){if ($aTypeParametre[2]=="STRING_OR_CHOICE"){$iChar++;}
+                    }else{if ($aTypeParametre[1]=="STRING_OR_CHOICE"){$iChar++;}} 
+                } // ni espace, ni double quote, ni après doublequote
+                $aPart[$iArray].=$sValue[$iChar];
+                $iChar++;
+            }
+        } //while
+        return $aPart;
+    }
+
+    /*
+     *  Fonction qui permet de prendre une ligne GUI
+     *  Et de la découper de manière à stocker la valeur par défaut
+     */
+
+    function getDefaultValue($sDefault_Macro, $sEncoding) {
+        $oFichier = fopen($this->sFmwFileName, "r");
+        $sRc = chr(10); // Compatible avec FME 2014 et inférieur
+        $sRecherche = "^DEFAULT_MACRO " . $sDefault_Macro . "(.*)" . $sRc;
+        if ($oFichier != false) {
+            while (!feof($oFichier)) {
+                $sLigne = fgets($oFichier);
+                if (strtolower($sEncoding) != 'utf-8')
+                    $sLigne = utf8_encode($sLigne);
+                // Traitement de tous les GUI			  
+                if (mb_eregi($sRecherche, $sLigne, $aOccurence)) {
+                    $aDefaultValue = explode(" ", $sLigne);
+                    if ($aDefaultValue[1] == $sDefault_Macro) {
+                        unset($aDefaultValue[0]); //Suppression du premier élément du tableau (égal à : DEFAULT_MACRO)
+                        unset($aDefaultValue[1]); //Suppression du second élément du tableau (égal au nom du paramètre : ex : pgDatabase)
+                        $sDefaultValue = implode(" ", $aDefaultValue);
+                        //Impossible d'utiliser la fonction Implode pour ce cas là. L'impode effectué est trop complexe. On va donc regarder caractère par caractère (voir ci-desous)
+                        $i = 0;
+                        $j = 0;
+                        $sDefaultValueFinal = "";
+                        //On parcourt caractère par caractère la chaine "valeur par défaut".
+                        $sEspace = " ";
+                        $sDoubleQuote = '"';
+						//$sDoubleQuote = '&quot;';
+                        while ($i < strlen($sDefaultValue)) {
+                            // Ce if rassemble les cas des listes à possibilité de plusieurs valeurs par défaut.
+                            if ($this->sType == "LISTBOX" || $this->sType == "LOOKUP_LISTBOX" || $this->sType == "CLASSICLISTBOX") {
+                                if ($sDefaultValue[$i] == $sEspace) { // Si le caractère est un espace
+                                    //$sDefaultValueFinal.="\" \"";
+                                    // Pas de quotes.
+                                    $sDefaultValueFinal.=' ';
+                                    $j++;
+                                    $i++;
+                                } else {  // caractère différent d'un espace
+                                    if ($sDefaultValue[$i] == $sDoubleQuote) {  // le caractère est un premier double quote
+                                        $i++;
+                                        while ($sDefaultValue[$i] != $sDoubleQuote) {  // on boucle jusqu'à trouver la deuxième double quote
+                                            $sDefaultValueFinal.=$sDefaultValue[$i];
+                                            $i++;
+                                        }
+                                        $i++;
+                                    } else {
+                                        // ni espace, ni double quote, ni après doublequote
+                                        $sDefaultValueFinal.=$sDefaultValue[$i];
+                                        $i++;
+                                    }
+                                }
+                            } else {
+                                $sDefaultValueFinal.= $sDefaultValue[$i];
+                                $i++;
+                            }
+                        }
+                    }
+                }
+            }
+            fclose($oFichier);
+        }
+        //return $sDefaultValue;
+		$sDefaultValueFinal = rtrim($sDefaultValueFinal, "\n");
+
+        return $sDefaultValueFinal;
+    }
+	
+	function unichr($u) {
+		return mb_convert_encoding('&#' . intval($u) . ';', 'UTF-8', 'HTML-ENTITIES');
+	}
+	
+	function replacer($sStr){
+		//table de correcpondance des symboles UTF-8 avec les codes FME/GTF
+		// ATTENTION : laisser < > en premier sinon replace remplace les balises par d'autre balise
+		$aReplaceGTF = array("\r\n", " ", "<GTF_EQUAL>", "<openparen>", "<closeparen>", "$",  "&","@", "°", "'", "<comma>", "<quote>", "{", "}","[", "]", "<GTF_PIPE>", ";", "/", "<backslash>", "é", "à");
+		$aReplaceFME = array("<lf>", "<space>", "=", "(", ")", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", ",", "\"", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "|", "<semicolon>", "<solidus>", "\\", "<u00e9>", "<u00e0>");
+		$aReplaceFMWToGTF = array("<lt>" => "<", "<gt>" => ">");
+		$sReplaced = $sStr;
+		
+		//on gere les chevrons simultanèment pour ne pas gener l'encodage après
+		if(strpos($sReplaced, "<lt>") !== false && strpos($sReplaced, "<gt>") !== false){
+			$sReplaced = strtr($sReplaced, $aReplaceFMWToGTF);
+		}
+		//on remplace tous les encodage par leurs symboles
+		for ($i = 0; $i < count($aReplaceGTF); $i++) {
+			if(strpos($sReplaced, $aReplaceFME[$i]) !== false){
+				$sReplaced = str_replace($aReplaceFME[$i], $aReplaceGTF[$i] ,$sReplaced);
+			}
+		}
+		
+		// on decode les balises UTF-8 		
+		$matches = array();
+		
+		preg_match_all("/<u[0-9a-fA-F]{4}>/", $sStr, $matches);
+		
+		for($i = 0; $i < count($matches[0]); $i++){
+			$iCode = hexdec(substr($matches[0][$i],2,4));
+			$cChr = $this->unichr($iCode);
+			$sReplaced = str_replace($matches[0][$i], $cChr ,$sReplaced);
+		}
+		
+		return $sReplaced;
+	}
+        
+        /**
+         * decodeFmeGtfTags function
+         * @param string $sStr String to decode
+         */
+	function decodeFmeGtfTags($sStr){
+		$aReplaceGTF = array("\r\n", " ", "=", "(", ")", "$",  "&","@", "°", "'", ",", "\\\"", "{", "}","[", "]", "|", ";", "/", "\\", "é", "à");
+		$aReplaceFME = array("<lf>", "<space>", "<GTF_EQUAL>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<GTF_PIPE>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>");
+		$aReplaceFMWToGTF = array("<lt>" => "<", "<gt>" => ">");
+		$sReplaced = $sStr;
+		for ($i = 0; $i < count($aReplaceGTF); $i++) {
+			if(strpos($sReplaced, $aReplaceFME[$i]) !== false){
+				$sReplaced = str_replace($aReplaceFME[$i], $aReplaceGTF[$i] ,$sReplaced);
+			}
+		}
+		return $sReplaced;
+	}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+// Fin
+//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+    function UniqFileName() {
+        $sUniqFileName = date(YmdHis) . rand(1, 100000);
+        return $sUniqFileName;
+    }
+
+    function getUniqId() {
+        $sUniqId = $this->UniqFileName();
+        return $sUniqId;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/Imap.php b/src/module_gtf/web_service/class/gtf_lib/Imap.php
new file mode 100755
index 0000000000000000000000000000000000000000..a26b72459717cf4bb642734cd8af8cf6e2969a50
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/Imap.php
@@ -0,0 +1,905 @@
+<?php
+
+/**
+ * \file imap_veremes.php
+ * \brief class Imap pour se connecter à un serveur imap et lire les mails.
+ *
+ * \author Anthony Borghi <anthony.borghi@veremes.com>
+ */
+
+class Imap {
+
+    /**
+     * imap connection
+     */
+    protected $imap = false;
+    
+    /**
+     * mailbox url string
+     */
+    protected $mailbox = "";
+    
+    /**
+     * currentfolder
+     */
+    protected $folder = "Inbox";
+    
+    /**
+     * initialize imap connection
+     *
+     * @return void
+     * @param $mailbox imap_open string
+     * @param $port
+     * @param $username
+     * @param $password
+     * @param $encryption ssl or tls
+     */
+    public function __construct($mailbox, $port, $username, $password, $encryption = false) {
+        $enc = '';
+        $more = '';
+        if($encryption!=null && isset($encryption) && $encryption=='ssl'){
+            $enc = '/imap/ssl/novalidate-cert';
+        } else if($encryption!=null && isset($encryption) && $encryption=='tls'){
+            $enc = '/imap/tls/novalidate-cert';
+        } else if($encryption!=null && isset($encryption) && $encryption=='gmail'){
+            $enc = '/imap/ssl';
+            $more = 'INBOX';
+        }
+        $this->mailbox = "{" . $mailbox . ":" . $port . $enc . "}";
+        $this->imap = @imap_open($this->mailbox, $username, $password);
+    }
+
+    /**
+     * returns true after successfull connection
+     *
+     * @return bool true on success
+     */
+    public function isConnected() {
+        return $this->imap !== false;
+    }
+    
+    
+    /**
+     * returns last imap error
+     *
+     * @return string error message
+     */
+    public function getLastError() {
+        return imap_last_error();
+    }
+
+    /**
+     * select given folder
+     *
+     * @return bool successfull opened folder
+     * @param $folder name
+     */
+    public function selectFolder($folder) {
+        $result = imap_reopen($this->imap, $this->mailbox . $folder);
+        if($result === true)
+            $this->folder = $folder;
+        return $result;
+    }
+    
+    
+    /**
+     * returns all available folders
+     *
+     * @return array with foldernames
+     */
+    public function getFolders() {
+        $folders = imap_list($this->imap, $this->mailbox, "*");
+        return str_replace($this->mailbox, "", $folders);
+    }
+
+    /**
+     * returns the number of messages in the current folder
+     *
+     * @return int message count
+     */
+    public function countMessages() {
+        return imap_num_msg($this->imap);
+    }
+    
+    
+    /**
+     * returns the number of unread messages in the current folder
+     *
+     * @return int message count
+     */
+    public function countUnreadMessages() {
+        $result = imap_search($this->imap, 'UNSEEN');
+        if($result===false)
+            return 0;
+        return count($result);
+    }
+
+
+    /**
+     * returns unseen emails in the current folder
+     *
+     * @return array messages
+     * @param $withbody without body
+     */
+    public function getUnreadMessages($withbody=true){
+        $emails = array();;
+        $result = imap_search($this->imap, 'UNSEEN');
+        if($result){
+            foreach($result as $k=>$i){
+                $emails[]= $this->formatMessage($i, $withbody);
+            }
+        }
+        return $emails;
+    }
+
+    /**
+     * returns all emails in the current folder
+     *
+     * @return array messages
+     * @param $withbody without body
+     */
+    public function getMessages($withbody = true) {
+        $count = $this->countMessages();
+        $emails = array();
+        for($i=1;$i<=$count;$i++) {
+            $emails[]= $this->formatMessage($i, $withbody);
+        }
+
+        // sort emails descending by date
+        // usort($emails, function($a, $b) {
+        // try {
+        // $datea = new \DateTime($a['date']);
+        // $dateb = new \DateTime($b['date']);
+        // } catch(\Exception $e) {
+        // return 0;
+        // }
+        // if ($datea == $dateb)
+        // return 0;
+        // return $datea < $dateb ? 1 : -1;
+        // });
+
+        return $emails;
+    }
+
+    /**
+     * returns email by given id
+     *
+     * @return array messages
+     * @param $id
+     * @param $withbody without body
+     */
+    public function getMessage($id, $withbody = true) {
+        return $this->formatMessage($id, $withbody);
+    }
+
+    /**
+     * @param $id
+     * @param bool $withbody
+     * @return array
+     */
+    protected function formatMessage($id, $withbody=true){
+        $header = imap_headerinfo($this->imap, $id);
+
+        // fetch unique uid
+        $uid = imap_uid($this->imap, $id);
+    
+        // get email data
+        $subject = '';
+        if ( isset($header->subject) && strlen($header->subject) > 0 ) {
+            foreach(imap_mime_header_decode($header->subject) as $obj){
+                $subject .= $obj->text;
+            }
+        }
+        $subject = $this->convertToUtf8($subject);
+        $email = array(
+            'to'       => isset($header->to) ? $this->arrayToAddress($header->to) : '',
+            'from'     => $this->toAddress($header->from[0]),
+            'date'     => $header->date,
+            'subject'  => $subject,
+            'uid'       => $uid,
+            'unread'   => strlen(trim($header->Unseen))>0,
+            'answered' => strlen(trim($header->Answered))>0,
+            'deleted' => strlen(trim($header->Deleted))>0,
+            'id' => $id
+        );
+        if(isset($header->cc))
+            $email['cc'] = $this->arrayToAddress($header->cc);
+
+        // get email body
+        if($withbody===true) {
+            $body = $this->getBody($uid);
+            $email['body'] = $body['body'];
+            $email['html'] = $body['html'];
+        }
+
+        // get attachments
+        $mailStruct = imap_fetchstructure($this->imap, $id);
+        //error_log(print_r($mailStruct, true));
+        $attachments = $this->attachments2name($this->getAttachments($this->imap, $id, $mailStruct, ""));
+        if(count($attachments)>0) {
+
+            foreach ($attachments as $val) {
+                foreach ($val as $k=>$t) {
+                    if ($k == 'name') {
+                        $decodedName = imap_mime_header_decode($t);
+                        $t = $this->convertToUtf8($decodedName[0]->text);
+                    }
+                $arr[$k] = $t;
+                }
+            $email['attachments'][] = $arr;
+            }
+        }
+        return $email;
+    }
+
+    public function getMailFullStructure($id, $withbody=true){
+        $header = imap_headerinfo($this->imap, $id);
+
+        // fetch unique uid
+        $uid = imap_uid($this->imap, $id);
+    
+        // get email data
+        $subject = '';
+        if ( isset($header->subject) && strlen($header->subject) > 0 ) {
+            foreach(imap_mime_header_decode($header->subject) as $obj){
+                $subject .= $obj->text;
+            }
+        }
+        $subject = $this->convertToUtf8($subject);
+        $email = array(
+            'to'       => isset($header->to) ? $this->arrayToAddress($header->to) : '',
+            'from'     => $this->toAddress($header->from[0]),
+            'date'     => $header->date,
+            'subject'  => $subject,
+            'uid'       => $uid,
+            'unread'   => strlen(trim($header->Unseen))>0,
+            'answered' => strlen(trim($header->Answered))>0,
+            'deleted' => strlen(trim($header->Deleted))>0,
+            'id' => $id
+        );
+        if(isset($header->cc))
+            $email['cc'] = $this->arrayToAddress($header->cc);
+
+        // get email body
+        if($withbody===true) {
+            $body = $this->getBody($uid);
+            $email['body'] = $body['body'];
+            $email['html'] = $body['html'];
+        }
+
+        $structure  = imap_fetchstructure($this->imap, $id);
+
+        $attachments = array();
+       if(isset($structure->parts) && count($structure->parts)) {
+            //error_log("1");
+         for($i = 0; $i < count($structure->parts); $i++) {
+            //error_log("2");
+            //error_log(print_r($structure->parts[$i], true));
+           if (isset($structure->parts[$i]->disposition) && isset($structure->parts[$i]->type)) {
+            if ((strtolower($structure->parts[$i]->disposition) == "attachment" || strtolower($structure->parts[$i]->disposition) == "inline") 
+                && $structure->parts[$i]->type === 3) {
+            //error_log("3");
+                $attachment= array(
+                    "is_attachment" => false,
+                    "name"    => '',
+                    //"partNum" => $partNum,
+                    "enc"     => $structure->parts[$i]->encoding,
+                    "size"    => $structure->parts[$i]->bytes,
+                    "content" => ''
+                );
+                if($structure->parts[$i]->ifdparameters) {
+                     foreach($structure->parts[$i]->dparameters as $object) {
+                       if(strtolower($object->attribute) == 'filename') {
+                         $attachment['is_attachment'] = true;
+                         $attachment['filename'] = $object->value;
+                       }
+                     }
+                   }
+
+                if($structure->parts[$i]->ifparameters) {
+                     foreach($structure->parts[$i]->parameters as $object) {
+                       if(strtolower($object->attribute) == 'name') {
+                         $attachment['is_attachment'] = true;
+                         $attachment['name'] = $object->value;
+                       }
+                     }
+                   }
+                
+                if($attachment['is_attachment']) {
+                     $attachment['content'] = imap_fetchbody($this->imap, $id, $i+1);
+                     if($structure->parts[$i]->encoding == 3) { // 3 = BASE64
+                       $attachment['content'] = base64_decode($attachment['content']);
+                     }
+                     elseif($structure->parts[$i]->encoding == 4) { // 4 = QUOTED-PRINTABLE
+                       $attachment['content'] = quoted_printable_decode($attachment['content']);
+                     }
+                     array_push($attachments, $attachment);
+                   }             
+                 } // for($i = 0; $i < count($structure->parts); $i++)
+               } // if(isset($structure->parts) && count($structure->parts))
+            }
+        }
+
+       $email['attachments'] = $attachments;
+
+
+       return $email;
+    }
+    
+    /**
+     * delete given message
+     *
+     * @return bool success or not
+     * @param $id of the message
+     */
+    public function deleteMessage($id) {
+        return $this->deleteMessages(array($id));
+    }
+    
+    
+    /**
+     * delete messages
+     *
+     * @return bool success or not
+     * @param $ids array of ids
+     */
+    public function deleteMessages($ids) {
+        if( imap_mail_move($this->imap, implode(",", $ids), $this->getTrash(), CP_UID) == false)
+            return false;
+        return imap_expunge($this->imap);
+    }
+    
+    
+    /**
+     * move given message in new folder
+     *
+     * @return bool success or not
+     * @param $id of the message
+     * @param $target new folder
+     */
+    public function moveMessage($id, $target) {
+        return $this->moveMessages(array($id), $target);
+    }
+    
+    
+    /**
+     * move given message in new folder
+     *
+     * @return bool success or not
+     * @param $ids array of message ids
+     * @param $target new folder
+     */
+    public function moveMessages($ids, $target) {
+        if(imap_mail_move($this->imap, implode(",", $ids), $target, CP_UID)===false)
+            return false;
+        return imap_expunge($this->imap);
+    }
+    
+    
+    /**
+     * mark message as read
+     *
+     * @return bool success or not
+     * @param $id of the message
+     * @param $seen true = message is read, false = message is unread
+     */
+    public function setUnseenMessage($id) {
+        return imap_setflag_full($this->imap, $id, "\\Seen \\Flagged", ST_UID);
+
+    }
+    
+    
+    /**
+     * return content of messages attachment
+     *
+     * @return binary attachment
+     * @param $id of the message
+     * @param $index of the attachment (default: first attachment)
+     */
+    public function getAttachment($id, $index = 0) {
+        //error_log(print_r("getAttachment called with " . $id . " and " . $index , true));
+        // find message
+        $attachments = false;
+        $messageIndex = imap_msgno($this->imap, $id);
+        $header = imap_headerinfo($this->imap, $messageIndex);
+        $mailStruct = imap_fetchstructure($this->imap, $messageIndex);
+        $attachments = $this->getAttachments($this->imap, $messageIndex, $mailStruct, "");
+
+        // if attachments are ine the same part (inline disposition case)
+        if(isset($attachments[0][0])){
+            $attachments = $attachments[0];
+        }
+
+        if($attachments==false)
+            return false;
+        
+        // find attachment
+        if($index > count($attachments)){
+            error_log(print_r("you are asking for index : " . $index . "but we have only " . count($attachments) . ' attachments', true));
+            return false;
+        }
+
+        $attachment = $attachments[$index];
+
+        //error_log("IMAP classe : getAttachment(integer, integer)");
+        //error_log($attachment['name'] . " fait " . $attachment['size']);
+
+        
+        // get attachment body
+        //$partStruct = imap_bodystruct($this->imap, imap_msgno($this->imap, $id), $attachment['partNum']);
+        $filename = $attachment['name'];
+        $message = imap_fetchbody($this->imap, $id, $attachment['partNum'], FT_UID);
+        //error_log(print_r(imap_fetchstructure($this->imap, $id, FT_UID), true));
+        //error_log($message);
+
+        switch ($attachment['enc']) {
+            case 0:
+            case 1:
+            //echo $message."\n";
+                $message = $message;
+                //echo $message."\n";
+                break;
+            case 2:
+                $message = imap_binary($message);
+                break;
+            case 3:
+                $message = imap_base64($message);
+                break;
+            case 4:
+                $message = quoted_printable_decode($message);
+                break;
+        }
+     
+        return array(
+                "name" => $attachment['name'], 
+                "size" => $attachment['size'],
+                "content" => $message);
+    }
+    
+    
+    /**
+     * add new folder
+     *
+     * @return bool success or not
+     * @param $name of the folder
+     * @param $subscribe immediately subscribe to folder
+     */
+    public function addFolder($name, $subscribe = false) {
+        $success = imap_createmailbox($this->imap, $this->mailbox . $name);
+
+        if ($success && $subscribe) {
+            $success = imap_subscribe($this->imap, $this->mailbox . $name);
+        }
+
+        return $success;
+    }
+    
+    
+    /**
+     * remove folder
+     *
+     * @return bool success or not
+     * @param $name of the folder
+     */
+    public function removeFolder($name) {
+        return imap_deletemailbox($this->imap, $this->mailbox . $name);
+    }
+    
+    
+    /**
+     * rename folder
+     *
+     * @return bool success or not
+     * @param $name of the folder
+     * @param $newname of the folder
+     */
+    public function renameFolder($name, $newname) {
+        return imap_renamemailbox($this->imap, $this->mailbox . $name, $this->mailbox . $newname);
+    }
+    
+    
+    /**
+     * clean folder content of selected folder
+     *
+     * @return bool success or not
+     */
+    public function purge() {
+        // delete trash and spam
+        if($this->folder==$this->getTrash() || strtolower($this->folder)=="spam") {
+            if(imap_delete($this->imap,'1:*')===false) {
+                return false;
+            }
+            return imap_expunge($this->imap);
+        
+        // move others to trash
+        } else {
+            if( imap_mail_move($this->imap,'1:*', $this->getTrash()) == false)
+                return false;
+            return imap_expunge($this->imap);
+        }
+    }
+    
+    
+    /**
+     * returns all email addresses
+     *
+     * @return array with all email addresses or false on error
+     */
+    public function getAllEmailAddresses() {
+        $saveCurrentFolder = $this->folder;
+        $emails = array();
+        foreach($this->getFolders() as $folder) {
+            $this->selectFolder($folder);
+            foreach($this->getMessages(false) as $message) {
+                $emails[] = $message['from'];
+                $emails = array_merge($emails, $message['to']);
+                if(isset($message['cc']))
+                    $emails = array_merge($emails, $message['cc']);
+            }
+        }
+        $this->selectFolder($saveCurrentFolder);
+        return array_unique($emails);
+    }
+    
+    
+    /**
+     * save email in sent
+     *
+     * @return void
+     * @param $header
+     * @param $body
+     */
+    public function saveMessageInSent($header, $body) {
+        return imap_append($this->imap, $this->mailbox . $this->getSent(), $header . "\r\n" . $body . "\r\n", "\\Seen");
+    }
+    
+    
+    /**
+     * explicitly close imap connection
+     */
+    public function close() {
+        if($this->imap!==false)
+            imap_close($this->imap);
+    }
+    
+    
+    
+    // protected helpers
+    
+    
+    /**
+     * get trash folder name or create new trash folder
+     *
+     * @return trash folder name
+     */
+    protected function getTrash() {
+        foreach($this->getFolders() as $folder) {
+            if(strtolower($folder)==="trash" || strtolower($folder)==="papierkorb")
+                return $folder;
+        }
+        
+        // no trash folder found? create one
+        $this->addFolder('Trash');
+        
+        return 'Trash';
+    }
+    
+    
+    /**
+     * get sent folder name or create new sent folder
+     *
+     * @return sent folder name
+     */
+    protected function getSent() {
+        foreach($this->getFolders() as $folder) {
+            if(strtolower($folder)==="sent" || strtolower($folder)==="gesendet")
+                return $folder;
+        }
+        
+        // no sent folder found? create one
+        $this->addFolder('Sent');
+        
+        return 'Sent';
+    }
+    
+    
+    /**
+     * fetch message by id
+     *
+     * @return header
+     * @param $id of the message
+     */
+    protected function getMessageHeader($id) {
+        $count = $this->countMessages();
+        for($i=1;$i<=$count;$i++) {
+            $uid = imap_uid($this->imap, $i);
+            if($uid==$id) {
+                $header = imap_headerinfo($this->imap, $i);
+                return $header;
+            }
+        }
+        return false;
+    }
+    
+    
+    /**
+     * convert attachment in array(name => ..., size => ...).
+     *
+     * @return array
+     * @param $attachments with name and size
+     */
+    protected function attachments2name($attachments) {
+        $names = array();
+        if(isset($attachments[0][0])){
+            $attachments = $attachments[0];
+        }
+        foreach($attachments as $attachment) {
+            $names[] = array(
+                'name' => $attachment['name'],
+                'size' => $attachment['size']
+            );
+        }
+        return $names;
+    }
+    
+    
+    /**
+     * convert imap given address in string
+     *
+     * @return string in format "Name <email@bla.de>"
+     * @param $headerinfos the infos given by imap
+     */
+    protected function toAddress($headerinfos) {
+        $email = "";
+        $name = "";
+        if(isset($headerinfos->mailbox) && isset($headerinfos->host)) {
+            $email = $headerinfos->mailbox . "@" . $headerinfos->host;
+        }
+
+        if(!empty($headerinfos->personal)) {
+            $name = imap_mime_header_decode($headerinfos->personal);
+            $name = $name[0]->text;
+        } else {
+            $name = $email;
+        }
+        
+        $name = $this->convertToUtf8($name);
+        
+        return $name . " <" . $email . ">";
+    }
+
+    
+    /**
+     * converts imap given array of addresses in strings
+     *
+     * @return array with strings (e.g. ["Name <email@bla.de>", "Name2 <email2@bla.de>"]
+     * @param $addresses imap given addresses as array
+     */
+    protected function arrayToAddress($addresses) {
+        $addressesAsString = array();
+        foreach($addresses as $address) {
+            $addressesAsString[] = $this->toAddress($address);
+        }
+        return $addressesAsString;
+    }
+
+    
+    /**
+     * returns body of the email. First search for html version of the email, then the plain part.
+     *
+     * @return string email body
+     * @param $uid message id
+     */
+    protected function getBody($uid) {
+        $body = $this->get_part($this->imap, $uid, "TEXT/HTML");
+        $html = true;
+        // if HTML body is empty, try getting text body
+        if ($body == "") {
+            $body = $this->get_part($this->imap, $uid, "TEXT/PLAIN");
+            $html = false;
+        }
+        $body = $this->convertToUtf8($body);
+        return array( 'body' => $body, 'html' => $html);
+    }
+    
+    
+    /**
+     * convert to utf8 if necessary.
+     *
+     * @return true or false
+     * @param $string utf8 encoded string
+     */
+    function convertToUtf8($str) { 
+        if(mb_detect_encoding($str, "UTF-8, ISO-8859-1, GBK")!="UTF-8")
+            $str = utf8_encode($str);
+        $str = iconv('UTF-8', 'UTF-8//IGNORE', $str);
+        return $str; 
+    } 
+    
+    
+    /**
+     * returns a part with a given mimetype
+     * taken from http://www.sitepoint.com/exploring-phps-imap-library-2/
+     *
+     * @return string email body
+     * @param $imap imap stream
+     * @param $uid message id
+     * @param $mimetype
+     */
+    protected function get_part($imap, $uid, $mimetype, $structure = false, $partNumber = false) {
+        if (!$structure) {
+               $structure = imap_fetchstructure($imap, $uid, FT_UID);
+        }
+        if ($structure) {
+            if ($mimetype == $this->get_mime_type($structure)) {
+                if (!$partNumber) {
+                    $partNumber = 1;
+                }
+                $text = imap_fetchbody($imap, $uid, $partNumber, FT_UID | FT_PEEK);
+                switch ($structure->encoding) {
+                    case 3: return imap_base64($text);
+                    case 4: return imap_qprint($text);
+                    default: return $text;
+               }
+           }
+     
+            // multipart 
+            if ($structure->type == 1) {
+                foreach ($structure->parts as $index => $subStruct) {
+                    $prefix = "";
+                    if ($partNumber) {
+                        $prefix = $partNumber . ".";
+                    }
+                    $data = $this->get_part($imap, $uid, $mimetype, $subStruct, $prefix . ($index + 1));
+                    if ($data) {
+                        return $data;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+    
+    
+    /**
+     * extract mimetype
+     * taken from http://www.sitepoint.com/exploring-phps-imap-library-2/
+     *
+     * @return string mimetype
+     * @param $structure
+     */
+    protected function get_mime_type($structure) {
+        $primaryMimetype = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");
+     
+        if ($structure->subtype) {
+           return $primaryMimetype[(int)$structure->type] . "/" . $structure->subtype;
+        }
+        return "TEXT/PLAIN";
+    }
+    
+    
+    /**
+     * get attachments of given email
+     * taken from http://www.sitepoint.com/exploring-phps-imap-library-2/
+     *
+     * @return array of attachments
+     * @param $imap stream
+     * @param $mailNum email
+     * @param $part
+     * @param $partNum
+     */
+    protected function getAttachments($imap, $mailNum, $part, $partNum) {
+        $attachments = array();
+        //error_log(print_r($part,true));
+        if (isset($part->parts)) {
+            foreach ($part->parts as $key => $subpart) {
+                if($partNum != "") {
+                    $newPartNum = $partNum . "." . ($key + 1);
+                } else {
+                    $newPartNum = ($key+1);
+                }
+                $result = $this->getAttachments($imap, $mailNum, $subpart, $newPartNum);
+                //error_log(print_r($result, true));
+                if (count($result) != 0) {
+                    array_push($attachments, $result);
+                }
+            }
+        } else if (isset($part->disposition) /*&& isset($part->type)*/) {
+            if ((strtolower($part->disposition) == "attachment") /*&& $part->type === 3*/) {
+                $partStruct = imap_bodystruct($imap, $mailNum, $partNum);
+
+                $partStruct = json_decode(json_encode($partStruct), True);
+
+                //error_log(print_r(gettype($partStruct["ifparameters"]), true));
+
+                $sFileName = false;
+                if($partStruct["ifparameters"]){
+                    for ($iParameters = 0 ; $iParameters < count($partStruct["parameters"]);$iParameters++){
+                        if($partStruct["parameters"][$iParameters]["attribute"] === "NAME"){
+                            $sFileName = $partStruct["parameters"][$iParameters]["value"];
+                        }
+                    }
+                }
+
+                if($partStruct["ifdparameters"]){
+                    for ($iDParameters = 0 ; $iDParameters < count($partStruct["dparameters"]);$iDParameters++){
+                        if($partStruct["dparameters"][$iDParameters]["attribute"] === "FILENAME"){
+                            $sFileName = $partStruct["dparameters"][$iDParameters]["value"];
+                        }
+                    }
+                }
+
+                $aFileName = imap_mime_header_decode($sFileName);
+                $sFileName = $aFileName[0]->text;
+
+                //$sMessage = imap_fetchbody($imap, $mailNum, $partNum);
+                //error_log(print_r(base64_decode($sMessage), true));
+                $attachmentDetails = array(
+                    "name"    => $sFileName,
+                    "partNum" => $partNum,
+                    "enc"     => $partStruct["encoding"],
+                    "size"    => $partStruct["bytes"]
+                );
+                //error_log(print_r($attachmentDetails,true));
+
+                return $attachmentDetails;
+            } else if (strtolower($part->disposition) == "inline"){
+                $partStruct = imap_bodystruct($imap, $mailNum, $partNum);
+
+                $partStruct = json_decode(json_encode($partStruct), True);
+
+              
+                if($partStruct["ifparameters"] || $partStruct["ifdparameters"]){
+                    $sFileName = false;
+                    if($partStruct["ifparameters"]){
+                        for ($iParameters = 0 ; $iParameters < count($partStruct["parameters"]);$iParameters++){
+                            if($partStruct["parameters"][$iParameters]["attribute"] === "NAME"){
+                                $sFileName = $partStruct["parameters"][$iParameters]["value"];
+                            }
+                        }
+                    }
+
+                    if($partStruct["ifdparameters"]){
+                        for ($iDParameters = 0 ; $iDParameters < count($partStruct["dparameters"]);$iDParameters++){
+                            if($partStruct["dparameters"][$iDParameters]["attribute"] === "FILENAME"){
+                                $sFileName = $partStruct["dparameters"][$iDParameters]["value"];
+                            }
+                        }
+                    }
+
+                    $aFileName = imap_mime_header_decode($sFileName);
+                    $sFileName = $aFileName[0]->text;
+
+                    //$sMessage = imap_fetchbody($imap, $mailNum, $partNum);
+                    //error_log(print_r(base64_decode($sMessage), true));
+                    $attachmentDetails = array(
+                        "name"    => $sFileName,
+                        "partNum" => $partNum,
+                        "enc"     => $partStruct["encoding"],
+                        "size"    => $partStruct["bytes"]
+                    );
+                    //error_log(print_r($attachmentDetails,true));
+
+                    return $attachmentDetails;
+                }
+            }
+        }
+        /*if(isset($attachments[0])) {
+            $attachments = $attachments[0];
+        }*/
+        //error_log(print_r($attachments, true));
+        return $attachments;
+    }
+    
+    /**
+     * Return general mailbox statistics
+     *
+     * @return bool | StdClass object
+     */
+    public function getMailboxStatistics() {
+        return $this->isConnected() ? imap_mailboxmsginfo($this->imap) : false ;
+    }
+
+}
+
+?>
diff --git a/src/module_gtf/web_service/class/gtf_lib/dbClass.class.sql.inc b/src/module_gtf/web_service/class/gtf_lib/dbClass.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f266f590a1180cc7af122de4bfc900c7924d7f91
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/dbClass.class.sql.inc
@@ -0,0 +1,9 @@
+<?
+
+$aSql["insert"] ="INSERT INTO ";
+
+$aSql["update"] ="";
+
+$aSql["delete"] ="";
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/Category.class.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Category.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..358f6b97f07695ac6a3477d29a58a9c1dbf001cf
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Category.class.inc
@@ -0,0 +1,20 @@
+<?php
+	require_once ("gtf_lib/Gtf.class.inc");
+	
+	class Category extends GtfLib {
+		var $sSchemaGtf = "s_gtf";
+		var $aFields = array();
+		
+		function __construct($oBd, $iCategorydId) {
+			require 'Category.class.sql.inc';
+			$sSql = str_replace('[sSchemaGtf]', $this->sSchemaGtf, $aSql['pgsql']['getCategoryParameters']);
+			$sSql = str_replace('[category_id]', $iCategorydId, $sSql);
+			$result = $oBd->execute ($sSql);
+			if (!$oBd->enErreur() && $oBd->nombreLigne($result) > 0) {
+				$aCategoryParam = $oBd->ligneSuivante ($result);
+				foreach($aCategoryParam as $sParamKey => $sParamValue)
+					$this->aFields[$sParamKey] = $sParamValue;
+			}
+		}
+	}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/Category.class.sql.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Category.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..d55f05c496ba4f0d55958fac0991056c0bbf2fca
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Category.class.sql.inc
@@ -0,0 +1,3 @@
+<?php
+	$aSql['pgsql']['getCategoryParameters'] = 'SELECT [sSchemaGtf].category.* FROM [sSchemaGtf].category WHERE [sSchemaGtf].category.category_id=[category_id]';
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/FmeEngine.class.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/FmeEngine.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..028afc7c944efaf5c4f12a0104565243a1a33de4
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/FmeEngine.class.inc
@@ -0,0 +1,41 @@
+<?php
+
+require_once ("gtf_lib/Gtf.class.inc");
+
+class fmeEngine extends GtfLib{
+		
+	function __construct($oBd, $iFmeEngineId, $aProperties = array()){
+		include 'gtf_lib/' . $this->sRessourcesFile;
+		$this->aProperties = $aProperties;
+
+		$this->iPkValue = $iFmeEngineId;
+		$this->oBd = $oBd;
+		if ($iFmeEngineId != -1){
+			$sSql = $aSql['fme_engine'];
+			$sSql = str_replace('[iFmeEngineId]', $iFmeEngineId, $sSql);
+			$sSql = str_replace('[sSchemaGtf]', $aProperties['schema_gtf'],$sSql);
+			$oPDOresult= $this->oBd->execute($sSql);
+			if ($oBd->enErreur()) {
+				$this->bEnErreur = 1;
+				$this->aFields['fme_engine_id'] = $iFmeEngineId;
+				$this->sMessage = $this->oBd->getBDMessage();
+			}else{
+				$this->aFields =  $this->oBd->ligneSuivante ($oPDOresult);
+				if ($oBd->enErreur()) {
+					$this->bEnErreur = 1;
+					$this->sMessage = $this->oBd->getBDMessage();
+				} else {
+					if(!isset($this->aFields['fme_engine_id'])){ // aFields['fme_engine_id'] n'existe pas.
+						$this->aFields['fme_engine_id'] = $iFmeEngineId;
+						$this->bEnErreur = -1;
+						$this->iErrorCode = 3;
+						$this->sMessage = "The fme_engine_id #".$iFmeEngineId." doesn't exist";
+					}else{
+						$this->bEnErreur = 0;
+					}
+				}
+			}
+		}
+	}
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/GtfEngine.class.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/GtfEngine.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ff9a6d9a1209332f3297bec3abd2402cf553d1a6
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/GtfEngine.class.inc
@@ -0,0 +1,42 @@
+<?php
+
+require_once ("gtf_lib/Gtf.class.inc");
+
+class gtfEngine extends GtfLib{
+		
+	function __construct($oBd, $iGtfEngineId, $aProperties = array()){
+		include 'gtf_lib/' . $this->sRessourcesFile;
+		$this->aProperties = $aProperties;
+
+		$this->iPkValue = $iGtfEngineId;
+		$this->oBd = $oBd;
+		if ($iGtfEngineId != -1){
+			$sSql = $aSql['gtf_engine'];
+			$sSql = str_replace('[iGtfEngineId]', $iGtfEngineId, $sSql);
+			$sSql = str_replace('[sSchemaGtf]', $aProperties['schema_gtf'],$sSql);
+			$oPDOresult = $this->oBd->execute($sSql);
+			if ($oBd->enErreur()){
+				$this->bEnErreur = 1;
+				$this->aFields['gtf_engine_id']=$iGtfEngineId;
+				$this->sMessage = $this->oBd->getBDMessage();
+			}else{
+				$this->aFields =  $this->oBd->ligneSuivante ($oPDOresult);
+				if ($oBd->enErreur()){
+					$this->bEnErreur = 1;
+					$this->sMessage = $this->oBd->getBDMessage();
+				}else{
+					if(!isset($this->aFields['gtf_engine_id'])){ // aFields['gtf_engine_id'] n'existe pas.
+						$this->aFields['gtf_engine_id'] = $iGtfEngineId;
+						$this->bEnErreur = -1;
+						$this->iErrorCode = 3;
+						$this->sMessage = "The gtf_engine_id #".$iGtfEngineId." doesn't exist";
+					}else{
+						$this->bEnErreur = 0;
+					}
+				}
+			}
+		}
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/Order.class.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Order.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..41d43324e68ee69c21c61dd89f12a1d6775eee6e
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Order.class.inc
@@ -0,0 +1,202 @@
+<?php
+/**
+* \class order
+* \file Order.class.inc
+*/
+
+require_once ("gtf_lib/Gtf.class.inc");
+require_once("vmlib/error.inc");
+
+class orderLib extends GtfLib{
+    var $sPkField = "order_id";
+    var $sTable = "v_user_order";
+	
+	/**
+	* Class constructor
+	* \param $oBd Connection object.
+	* \param $iOrderId Order id.
+	* \param $aProperties Array of properties.
+	* \param $sTable Name of the table.
+	*/
+    function __construct($oBd, $iOrderId, $aProperties = array(), $sTable = "v_user_order"){
+        include 'gtf_lib/' . $this->sRessourcesFile;
+
+        $this->iPkValue = $iOrderId;
+        $this->oBd=$oBd;
+        $this->sTable = $sTable;
+		$this->aProperties = $aProperties;
+
+        if ($iOrderId!=-1){
+            $sSql = $aSql['orderClass'];
+            $sSql = str_replace('[sIdOrder]', $iOrderId, $sSql);
+            $sSql = str_replace('[sSchemaGtf]', $aProperties['schema_gtf'], $sSql);
+			$sSql = str_replace('[sTable]', $sTable, $sSql);
+			$oPDOresult= $this->oBd->execute($sSql);
+            if ($oBd->enErreur()) {
+				$this->bEnErreur=1;
+				$this->aFields['order_id']=$iOrderId;
+				$this->sMessage = $this->oBd->getBDMessage();
+            }else{
+                $this->aFields =  $this->oBd->ligneSuivante ($oPDOresult);			
+			// result_file (chemin du fichier de résultat), log_file (chemin du fichier de log)
+                                if (!empty($this->aFields['result_url']))
+                                    $this->aFields['result_file'] = $aProperties['dir_export'] . '/gtf/' . $this->aFields['result_url'];
+                                else
+                                    $this->aFields['result_file'] = '';
+				$this->aFields['log_file'] = $aProperties['dir_export'] . '/gtf/' . $this->aFields['log_url'];
+			//
+				if ($oBd->enErreur()) {
+                   $this->bEnErreur=1;
+                   $this->sMessage = $this->oBd->getBDMessage();
+                } else {
+					if(!isset($this->aFields['order_id'])){ // aFields['order_id'] n'existe pas.
+						$this->aFields['order_id']=$iOrderId;
+						$this->bEnErreur= -1;
+						$this->iErrorCode=3;
+						$this->sMessage	="The order_id #".$iOrderId." doesn't exist";						
+					}else{
+						$this->bEnErreur= 0;
+					}
+				}
+            }
+        }
+	}
+
+	/*
+	* function getIdEngine
+	* \brief function that assigns each request processing an engine number. This engine number will be defined by the algorithm associated to the treatment.
+	* \param $iOrderId Identifier of the request
+	* \param $sTable Name of the table.
+	* \param $iWorkspaceId Identifier of the treatment.
+	*/
+    function getIdEngine($iOrderId, $sTable, $iWorkspaceId){
+        require 'gtf_lib/' . $this->sRessourcesFile;
+		$this->iPkValue=$iOrderId;
+		$this->sTable=$sTable;
+
+		// Récupération de l'algorithme
+		$sSql = $aSql['getEnginesId'];
+		$sSql = str_replace("[sSchemaGtf]", $this->aProperties['schema_gtf'], $sSql);
+		$sSql = str_replace("[iWorkspaceId]", $iWorkspaceId, $sSql);
+		$resultat = $this->oBd->execute ($sSql);
+		$this->oBd->cleanMessage();
+		$aEnginesId = array();
+		while($oEnginesId = $this->oBd->objetSuivant ($resultat))
+			$aEnginesId[] = $oEnginesId->gtf_engine_id;
+		$this->oBd->fermeResultat();
+		
+		if(count($aEnginesId)==0){
+			// Le tag correspondant n'a pas été trouvé, nous allons cherché la liste des moteur ayant comme tag |default|
+			$sSql = $aSql['getEnginesDefaultTag'];
+			$sSql = str_replace("[sSchemaGtf]", $this->aProperties['schema_gtf'], $sSql);
+			$resultat = $this->oBd->execute ($sSql);
+			$this->oBd->cleanMessage();
+			$aEnginesId = array();
+			while($oEnginesId = $this->oBd->objetSuivant ($resultat))
+				$aEnginesId[] = $oEnginesId->gtf_engine_id;
+			$this->oBd->fermeResultat();
+			if(count($aEnginesId)>0)
+				writeToErrorLog(str_replace('[iOrderId]', $iOrderId, ERROR_0006));
+		}
+		// Si la requête est en erreur ou Si aucun moteur n'a été trouvé.
+		if ($this->oBd->erreurRencontree || count($aEnginesId)==0){
+			$aGtfEngineList = explode(",", $this->aProperties["engines_list"]);
+			// Aucun tag ne correspond
+			$iEngine = $aGtfEngineList[0];
+			if ($iEngine != "")
+				writeToErrorLog(str_replace('[aGtfEngineList[0]]', $iEngine, str_replace('[iOrderId]', $iOrderId, ERROR_0007)));
+		}else{
+			$iEngine = $this->returnEngineId($iOrderId, $aEnginesId);
+		}
+
+		if ($iEngine == ""){
+			writeToErrorLog(str_replace('[iOrderId]', $iOrderId, ERROR_0008));
+			$this->aFields['gtf_engine_id'] = 1;
+		}else{
+			$this->aFields['gtf_engine_id'] = $iEngine;	
+		}
+    }
+
+	/*
+	* function returnEngineId
+	* \param $oAlgoIndex Object of the algorithm.
+	* \param $aGtfEngineList Array that corresponds to the list of available engines numbers.
+	* \return Returns the engine number.
+	*/
+	function returnEngineId($iOrderId, $aEnginesId){
+		$iEngine = "";
+		if(count($aEnginesId) > 0){
+			$sRowCount = $iOrderId % count($aEnginesId);
+			$iEngine = $aEnginesId[$sRowCount];
+		}
+		return $iEngine;
+	}
+
+	/*
+	* function getUser
+	* \return Returns an object from the class "User"
+	*/
+	function getUser() {
+		require_once ("User.class.inc");
+		$oUser = new User($this->oBd, $this->aFields['user_id'], $this->aProperties);
+		return $oUser;
+	}
+
+	/*
+	* function getWorkspace
+	* \return Returns an object from the class "workspace"
+	*/
+	function getWorkspace() {
+		require_once ("Workspace.class.inc");
+		$oWorkspace = new workspace($this->oBd, $this->aFields['workspace_id'], $this->aProperties);
+		return $oWorkspace;
+	}
+
+	/*
+	* function getGtfEngine
+	* \return Returns an object from the class "GtfEngine"
+	*/
+	function getGtfEngine() {
+		require_once ("GtfEngine.class.inc");
+		$oGtfEngine = new gtfEngine($this->oBd, $this->aFields['gtf_engine_id'], $this->aProperties);
+		return $oGtfEngine;
+	}
+
+	/*
+	* function getFmeEngine
+	* \return Returns an object from the class "FmeEngine"
+	*/
+	function getFmeEngine() {
+		require_once ("FmeEngine.class.inc");
+		$oFmeEngine = new fmeEngine($this->oBd, $this->getGtfEngine()->aFields['fme_engine_id'], $this->aProperties);
+		return $oFmeEngine;
+	}
+
+	/*
+	* function formatOrderEmail
+	* \brief Formats the data for an email
+	*/
+	function formatOrderEmail() {
+	// Calcule la date et heure de fin
+		list($iHours, $iMinutes, $iSeconds) = explode(':', $this->aFields['length_sec']);
+		$oLengthSec = new DateInterval('PT' . intval($iHours) . 'H' . intval($iMinutes) . 'M' . intval($iSeconds) . 'S');
+		$this->aFields['length_sec'] = $oLengthSec->format('%s');
+		if (!empty($this->aFields['execution_date']) && !empty($this->aFields['length_sec']))
+			$this->aFields['process_date'] = date_add(date_create($this->aFields['execution_date']), new DateInterval('PT' . intval($this->aFields['length_sec']) . 'S'));
+	// Format des dates
+		if ($this->aProperties['language'] == 'fr')
+			$sDateFormat = 'd/m/Y H:i:s';
+		else
+			$sDateFormat = 'Y-m-d H:i:s';
+		$this->aFields['order_date'] = date_format(date_create($this->aFields['order_date']), $sDateFormat);
+		$this->aFields['execution_date'] = date_format(date_create($this->aFields['execution_date']), $sDateFormat);
+		if (!empty($this->aFields['process_date']))
+			$this->aFields['process_date'] = date_format($this->aFields['process_date'], $sDateFormat);
+	// Url du résultat et du log
+		if (!empty($this->aFields['result_url'])) {
+			$this->aFields['result_url'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['public_alias'] . '/gtf/' . $this->aFields['result_url'];
+			$this->aFields['log_url'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['public_alias'] . '/gtf/' . $this->aFields['log_url'];
+		}
+	}
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/User.class.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/User.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..442c7b4862306945f6fec5c66ff182610202b549
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/User.class.inc
@@ -0,0 +1,30 @@
+<?php
+/**
+* \class User
+* \file User.class.inc
+*/
+
+require_once ("gtf_lib/Gtf.class.inc");
+
+class User extends GtfLib {
+	var $aFields = array();
+
+	/**
+	* Class constructor
+	* \param $oBd Connection object.
+	* \param $iUserdId User id.
+	* \param $aProperties Array of properties.
+	*/	
+	function __construct($oBd, $iUserdId, $aProperties) {
+		require 'User.class.sql.inc';
+		$sSql = str_replace('[sSchemaFramework]', $aProperties['schema_framework'], $aSql['pgsql']['getUserParameters']);
+		$sSql = str_replace('[user_id]', $iUserdId, $sSql);
+		$oResult = $oBd->execute($sSql);
+		if (!$oBd->enErreur() && $oBd->nombreLigne($oResult) > 0) {
+			$aUserParam = $oBd->ligneSuivante($oResult);
+			foreach($aUserParam as $sParamKey => $sParamValue)
+				$this->aFields[$sParamKey] = $sParamValue;
+		}
+	}
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/User.class.sql.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/User.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f25a90e0efa02abaa061e468ab09972ad1afdde4
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/User.class.sql.inc
@@ -0,0 +1,3 @@
+<?php
+	$aSql['pgsql']['getUserParameters'] = 'SELECT [sSchemaFramework].user.* FROM [sSchemaFramework].user WHERE [sSchemaFramework].user.user_id=[user_id]';
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/gtf_object/Workspace.class.inc b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Workspace.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..82c9d65fa65f4b3f9b151e3440f9a4472489cc2f
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/gtf_object/Workspace.class.inc
@@ -0,0 +1,68 @@
+<?php
+/**
+* \class workspace
+* \file Workspace.class.inc
+*/
+
+require_once ("gtf_lib/Gtf.class.inc");
+
+class workspace extends GtfLib  {
+	var $sPkField = "workspace_id";
+	var $sTable = "v_user_workspace";
+
+	/**
+	* Class constructor
+	* \param $oBd Connection object.
+	* \param $iWorkspaceId Workspace id.
+	* \param $aProperties Array of properties.
+	*/
+	function __construct($oBd, $iWorkspaceId, $aProperties = array()){
+		include 'gtf_lib/' . $this->sRessourcesFile;
+		$this->aProperties = $aProperties;
+
+		$this->iPkValue = $iWorkspaceId;
+		$this->oBd=$oBd;
+		//if ($iWorkspaceId != -1){
+			$sSql = $aSql['workspace'];
+			$sSql = str_replace('[iWorkspaceId]', $iWorkspaceId, $sSql);
+			$sSql = str_replace('[sSchemaGtf]', $aProperties['schema_gtf'], $sSql);
+			$oPDOresult= $this->oBd->execute($sSql);
+			if ($oBd->enErreur()) {
+				$this->bEnErreur = 1; //En erreur c'est pas -1 plutôt ??
+				$this->aFields['workspace_id']=$iWorkspaceId;
+				$this->sMessage = $this->oBd->getBDMessage();
+			}else{
+				$this->aFields =  $this->oBd->ligneSuivante ($oPDOresult);
+				if ($oBd->enErreur()){
+					$this->bEnErreur = 1; //En erreur c'est pas -1 plutôt ??
+					$this->sMessage = $this->oBd->getBDMessage();
+				}else{
+					if(!isset($this->aFields['workspace_id'])){ // aFields['workspace_id'] n'existe pas.
+						$this->aFields['workspace_id'] = $iWorkspaceId;
+						$this->bEnErreur = -1;
+						$this->iErrorCode = 11;
+						$this->sMessage = "The workspace_id #".$iWorkspaceId." doesn't exist";
+					}else{
+						$this->bEnErreur = 0;
+						//$this->iErrorCode=0;
+					}
+				}
+			}
+		//}
+	}
+
+	/**
+	* function getCategory
+	* \brief Return a object of the "Category" Class
+	* \return an object
+	*/
+	function getCategory() {
+		if (!empty($this->aFields['category_id'])) {
+			require_once ("Category.class.inc");
+			$oCategory = new Category($this->oBd, $this->aFields['category_id']);
+			return $oCategory;
+		}
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/imap_reader/ImapConnection.php b/src/module_gtf/web_service/class/gtf_lib/imap_reader/ImapConnection.php
new file mode 100755
index 0000000000000000000000000000000000000000..ea03ec680a61bd61bf3caf1f464d59e5cd9ab415
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/imap_reader/ImapConnection.php
@@ -0,0 +1,571 @@
+<?php
+
+/**
+ * \file imap_veremes.php
+ * \brief class Imap pour se connecter à un serveur imap et lire les mails.
+ *
+ * \author Anthony Borghi <anthony.borghi@veremes.com>
+ */
+
+class ImapConnection {
+
+    /**
+     * imap connection
+     */
+    public $imap= false;
+    
+    /**
+     * mailbox url string
+     */
+    protected $mailbox = "";
+    
+    /**
+     * currentfolder
+     */
+    protected $folder = "Inbox";
+
+	/**
+     * initialize imap connection
+     *
+     * @return void
+     * @param $mailbox imap_open string
+     * @param $port
+     * @param $username
+     * @param $password
+     * @param $encryption ssl or tls
+     */
+	public function __construct($mailbox, $port, $username, $password, $encryption = false) {
+        $enc = '';
+        $more = '';
+        if($encryption!=null && isset($encryption) && $encryption=='ssl'){
+            $enc = '/imap/ssl/novalidate-cert';
+        } else if($encryption!=null && isset($encryption) && $encryption=='tls'){
+            $enc = '/imap/tls/novalidate-cert';
+        } else if($encryption!=null && isset($encryption) && $encryption=='gmail'){
+            $enc = '/imap/ssl';
+            $more = 'INBOX';
+        }
+        $this->mailbox = "{" . $mailbox . ":" . $port . $enc . "}";
+        $this->imap = @imap_open($this->mailbox, $username, $password);
+    }
+
+    /**
+     * returns true after successfull connection
+     *
+     * @return bool true on success
+     */
+    public function isConnected() {
+        return $this->imap !== false;
+    }
+
+    /**
+     * returns last imap error
+     *
+     * @return string error message
+     */
+    public function getLastError() {
+        return imap_last_error();
+    }
+
+    /**
+     * select given folder
+     *
+     * @return bool successfull opened folder
+     * @param $sFolder name of the folder to select
+     */
+    public function selectFolder($sFolder) {
+        $result = imap_reopen($this->imap, $this->mailbox . $sFolder);
+        if($result === true)
+            $this->folder = $sFolder;
+        return $result;
+    }
+    
+    
+    /**
+     * returns all available folders
+     *
+     * @return array with foldernames
+     */
+    public function getFolders() {
+        $folders = imap_list($this->imap, $this->mailbox, "*");
+        return str_replace($this->mailbox, "", $folders);
+    }
+
+    /**
+     * returns the number of messages in the current folder
+     *
+     * @return int message count
+     */
+    public function countMessages() {
+        return imap_num_msg($this->imap);
+    }
+
+    /**
+     * returns the number of messages with the flag in parameter in the current folder
+     *
+     * @return int message count
+     * @param $sFlag Flag to filter mail (ex: UNSEEN)
+     */
+    public function countFlagedMessages($sFlag) {
+        $result = imap_search($this->imap, $sFlag);
+        if($result === false)
+            return 0;
+        return count($result);
+    }
+
+    /**
+     * returns all emails in the current folder
+     *
+     * @return array of uid messages
+     */
+    public function getMessagesUidList() {
+    	$iCount = $this->countMessages();
+    	$aEmails = array();
+
+    	for($i=1 ; $i <= $iCount ; $i++) {
+    		// fetch unique uid
+        	$uid = imap_uid($this->imap, $i);
+    		array_push($aEmails, $uid);
+        }
+
+        return $aEmails;
+    }
+
+    /**
+     * returns email by given uid
+     *
+     * @return object messages
+     * @param $id universal id in the mailBox
+     */
+    public function getMessage($uid) {
+    	return imap_fetchstructure($this->imap, $uid, FT_UID);
+    }
+
+    /**
+     * returns email by given uid
+     *
+     * @return object messages
+     * @param $id universal id in the mailBox
+     */
+    /*public function getMessageHeader($uid) {
+    	return imap_fetch_overview ($this->imap, $uid, FT_UID);
+    }*/
+
+    /**
+     * delete given message
+     *
+     * @return bool success or not
+     * @param $id of the message
+     */
+    public function deleteMessage($id) {
+        return $this->deleteMessages(array($id));
+    }
+    
+    
+    /**
+     * delete messages
+     *
+     * @return bool success or not
+     * @param $ids array of ids separated by ,
+     */
+    public function deleteMessages($ids) {
+        if( imap_mail_move($this->imap, implode(",", $ids), $this->getTrash(), CP_UID) == false)
+            return false;
+        return imap_expunge($this->imap);
+    }
+
+    /**
+     * move given message in new folder
+     *
+     * @return bool success or not
+     * @param $id of the message
+     * @param $target new folder
+     */
+    public function moveMessage($id, $target) {
+        return $this->moveMessages(array($id), $target);
+    }
+    
+    
+    /**
+     * move given message in new folder
+     *
+     * @return bool success or not
+     * @param $ids array of message ids separated by ,
+     * @param $target new folder
+     */
+    public function moveMessages($ids, $target) {
+        if(imap_mail_move($this->imap, implode(",", $ids), $target, CP_UID)===false)
+            return false;
+        return imap_expunge($this->imap);
+    }
+
+    /**
+     * mark message as read
+     *
+     * @return bool success or not
+     * @param $id of the message
+     * @param $seen true = message is read, false = message is unread
+     */
+    public function setUnseenMessage($id) {
+        return imap_setflag_full($this->imap, $id, "\\Seen \\Flagged", ST_UID);
+
+    }
+
+     /**
+     * add new folder
+     *
+     * @return bool success or not
+     * @param $name of the folder
+     * @param $subscribe immediately subscribe to folder
+     */
+    public function addFolder($name, $subscribe = false) {
+        $success = imap_createmailbox($this->imap, $this->mailbox . $name);
+
+        if ($success && $subscribe) {
+            $success = imap_subscribe($this->imap, $this->mailbox . $name);
+        }
+
+        return $success;
+    }
+
+    /**
+     * add new folder if not exist
+     *
+     * @return bool folder created (False if error or if already exist)
+     * @param $sFolderName of the folder
+     * @param $subscribe immediately subscribe to folder
+     */
+    public function addFolderIfNotExists ($sFolderName, $subscribe = false){
+    	$aBoxList = $this->getFolders();
+
+		if(!in_array($sFolderName, $aBoxList)){
+			return $this->addFolder($sFolderName, $subscribe); //return boolean
+		}
+
+		return false;
+    }
+    
+    
+    /**
+     * remove folder
+     *
+     * @return bool success or not
+     * @param $name of the folder
+     */
+    public function removeFolder($name) {
+        return imap_deletemailbox($this->imap, $this->mailbox . $name);
+    }
+    
+    
+    /**
+     * rename folder
+     *
+     * @return bool success or not
+     * @param $name of the folder
+     * @param $newname of the folder
+     */
+    public function renameFolder($name, $newname) {
+        return imap_renamemailbox($this->imap, $this->mailbox . $name, $this->mailbox . $newname);
+    }
+
+    /**
+     * clean folder content of selected folder
+     *
+     * @return bool success or not
+     */
+    public function purge() {
+        // delete trash and spam
+        if($this->folder==$this->getTrash() || strtolower($this->folder)=="spam") {
+            if(imap_delete($this->imap,'1:*')===false) {
+                return false;
+            }
+            return imap_expunge($this->imap);
+        
+        // move others to trash
+        } else {
+            if( imap_mail_move($this->imap,'1:*', $this->getTrash()) == false)
+                return false;
+            return imap_expunge($this->imap);
+        }
+    }
+
+    /**
+     * save email in sent
+     *
+     * @return void
+     * @param $header
+     * @param $body
+     */
+    public function saveMessageInSent($header, $body) {
+        return imap_append($this->imap, $this->mailbox . $this->getSent(), $header . "\r\n" . $body . "\r\n", "\\Seen");
+    }
+    
+    
+    /**
+     * explicitly close imap connection
+     */
+    public function close() {
+        if($this->imap!==false)
+            imap_close($this->imap);
+    }
+
+    /**
+     * get trash folder name or create new trash folder
+     *
+     * @return trash folder name
+     */
+    protected function getTrash() {
+        foreach($this->getFolders() as $folder) {
+            if(strtolower($folder)==="trash" || strtolower($folder)==="papierkorb")
+                return $folder;
+        }
+        
+        // no trash folder found? create one
+        $this->addFolder('Trash');
+        
+        return 'Trash';
+    }
+    
+    
+    /**
+     * get sent folder name or create new sent folder
+     *
+     * @return sent folder name
+     */
+    protected function getSent() {
+        foreach($this->getFolders() as $folder) {
+            if(strtolower($folder)==="sent" || strtolower($folder)==="gesendet")
+                return $folder;
+        }
+        
+        // no sent folder found? create one
+        $this->addFolder('Sent');
+        
+        return 'Sent';
+    }
+    
+    
+    /**
+     * fetch message by id
+     *
+     * @return header
+     * @param $id of the message
+     */
+    public function getMessageHeader($id) {
+        $count = $this->countMessages();
+        for($i=1;$i<=$count;$i++) {
+            $uid = imap_uid($this->imap, $i);
+            if($uid==$id) {
+                $header = imap_headerinfo($this->imap, $i);
+                return $header;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Return general mailbox statistics
+     *
+     * @return bool | StdClass object
+     */
+    public function getMailboxStatistics() {
+        return $this->isConnected() ? imap_mailboxmsginfo($this->imap) : false ;
+    }
+
+    /**
+     * returns all the mail in a string. First search for html version of the email, then the plain part.
+     *
+     * @return string email body
+     * @param $iUid message id
+     */
+    public function getBodyString($iUid) {
+    	return imap_body ($this->imap, $iUid, FT_UID);
+    }
+
+    /**
+     * returns all parts at same level of an email.
+     *
+     * @return array email parts
+     * @param $uid message id
+     */
+    public function gerPartArray($iUid){
+        $oStructure = imap_fetchstructure($this->imap, $iUid, FT_UID);
+        $aPart = $this->createPartArray($oStructure);
+
+        return $aPart;
+    }
+
+    /**
+     * create the parts array from a mail structure.
+     *
+     * @return array email parts
+     * @param $oStructure mail structure content of imap_fetchstructure
+     * @param $sPrefix Constant for the PartId 
+     */
+	protected function createPartArray($oStructure, $sPrefix="") {
+	    //print_r($structure);
+	    if (sizeof($oStructure->parts) > 0) {    // There some sub parts
+	        foreach ($oStructure->parts as $count => $part) {
+	            $this->addPartToArray($part, $sPrefix.($count+1), $aPart);
+	        }
+	    }else{    // Email does not have a seperate mime attachment for text
+	        $aPart[] = array('part_number' => $sPrefix.'1', 'part_object' => $oStructure);
+	    }
+	   return $aPart;
+	}
+
+    /**
+     * Recursive treatment of substruct to create the part array. Called only if the mail is in multi Part. fill the array in parameter.
+     * Sub function for create_part_array(). Only called by create_part_array() and itself. 
+     *
+     * @param $oStructure mail structure content of imap_fetchstructure
+     * @param $sPrefix Constant for the PartId 
+     */
+	protected function addPartToArray($oStructure, $sPartNumber, &$aPart) {
+	    $aPart[] = array('part_number' => $sPartNumber, 'part_object' => $oStructure);
+	    if ($oStructure->type == 2) { // Check to see if the part is an attached email message, as in the RFC-822 type
+	        //print_r($oStructure);
+	        if (sizeof($oStructure->parts) > 0) {    // Check to see if the email has parts
+	            foreach ($oStructure->parts as $count => $part) {
+	                // Iterate here again to compensate for the broken way that imap_fetchbody() handles attachments
+	                if (sizeof($part->parts) > 0) {
+	                    foreach ($part->parts as $count2 => $part2) {
+	                        $this->addPartToArray($part2, $sPartNumber.".".($count2+1), $aPart);
+	                    }
+	                }else{    // Attached email does not have a seperate mime attachment for text
+	                    $aPart[] = array('part_number' => $sPartNumber.'.'.($count+1), 'part_object' => $oStructure);
+	                }
+	            }
+	        }else{    // Not sure if this is possible
+	            $aPart[] = array('part_number' => $prefix.'.1', 'part_object' => $oStructure);
+	        }
+	    }else{    // If there are more sub-parts, expand them out.
+            //error_log(print_r($oStructure,true));
+            if(property_exists($oStructure, "parts")){
+    	        if (sizeof($oStructure->parts) > 0) {
+    	            foreach ($oStructure->parts as $count => $p) {
+    	                $this->addPartToArray($p, $sPartNumber.".".($count+1), $aPart);
+    	            }
+    	        }
+            }
+	    }
+	}
+
+    /**
+     * returns a part with a given mimetype
+     *
+     * @return string email body False if no structure parameter
+     * @param $uid mail universal id to select a part
+     * @param $iStructureEncoding encoding of the part to decode it
+     * @param $partNumber part id to get the part form the mail
+     */
+    public function getPart($uid, $iStructureEncoding, $partNumber) {       
+        $sContent = imap_fetchbody($this->imap, $uid, $partNumber, FT_UID | FT_PEEK);
+        switch ($iStructureEncoding) {
+            case 3: 
+                return imap_base64($sContent);
+            case 4: 
+                return imap_qprint($sContent);
+            default: 
+                error_log("Check encodage " . $iStructureEncoding);
+                return $sContent;
+        }
+    }
+
+    /**
+     * extract mimetype
+     * taken from http://www.sitepoint.com/exploring-phps-imap-library-2/
+     *
+     * @return string mimetype
+     * @param $structure
+     */
+    public function getMimeType($structure) {
+        $primaryMimetype = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");
+     
+        if ($structure->subtype) {
+           return $primaryMimetype[(int)$structure->type] . "/" . $structure->subtype;
+        }
+        return "TEXT/PLAIN";
+    }
+
+    /**
+     * Returns formatted string for imap_search 
+     * @return array uid
+     * @param $aFilter
+     */
+    public function buildSearchString($aFilter){
+        $sFilter = "";
+        $aFilterKey = array(
+            //"ALL" => array("type"=>"boolean"),
+            "ANSWERED" => array("type"=>"boolean"),
+            "BCC" => array("type"=>"string"),
+            "BEFORE" => array("type"=>"date"),
+            "BODY" => array("type"=>"string"),
+            "CC" => array("type"=>"string"),
+            "DELETED" => array("type"=>"boolean"),
+            "FLAGGED" => array("type"=>"boolean"),
+            "FROM" => array("type"=>"string"),
+            "KEYWORD" => array("type"=>"string"),
+            "NEW" => array("type"=>"boolean"),
+            "OLD" => array("type"=>"boolean"),
+            "ON" => array("type"=>"date"),
+            "RECENT" => array("type"=>"boolean"),
+            "SEEN" => array("type"=>"boolean"),
+            "SINCE" => array("type"=>"date"),
+            "SUBJECT" => array("type"=>"string"),
+            "TEXT" => array("type"=>"string"),
+            "TO" => array("type"=>"string"),
+            "UNANSWERED" => array("type"=>"boolean"),
+            "UNDELETED" => array("type"=>"boolean"),
+            "UNFLAGGED" => array("type"=>"boolean"),
+            "UNKEYWORD" => array("type"=>"string"),
+            "UNSEEN" => array("type"=>"boolean")
+        );
+
+        foreach ($aFilter as $sKey => $mValue) {
+            if(isset($aFilterKey[strtoupper($sKey)]) && !empty($mValue)){
+                switch ($aFilterKey[strtoupper($sKey)]["type"]) {
+                    case 'boolean':
+                        if($mValue == true){
+                            $sFilter .= strtoupper($sKey);
+                            $sFilter .= " ";
+                        }
+                        break;
+                    case 'string':
+                        if(strpos($mValue, '"') > 0){
+                            // cette chaine ne peut pas être chercher
+                        } else {
+                            $sFilter .= strtoupper($sKey);
+                            $sFilter .= " ";
+                            $sFilter .= "\"" . $mValue . "\"";
+                            $sFilter .= " ";
+                        }
+                        break;
+                    case 'date':
+                        $sFilter .= strtoupper($sKey);
+                        $sFilter .= " ";
+                        $sFilter .= "\"" . date("j F Y", strtotime($mValue)) . "\"";
+                        $sFilter .= " ";
+                        break;
+                }
+            } else {
+                // this key doesn't exist in filter
+            }
+        }
+        return substr($sFilter, 0, -1);
+    }
+
+
+    /**
+     * Returns array of uid for this search object
+     * @return array uid
+     * @param $aFilter array of filter 
+     */
+    public function searchInFolder($aFilter){
+        $sFilter = $this->buildSearchString($aFilter);
+        return imap_search($this->imap, $sFilter, SE_UID);
+    }
+}
+
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/imap_reader/MailBox.php b/src/module_gtf/web_service/class/gtf_lib/imap_reader/MailBox.php
new file mode 100755
index 0000000000000000000000000000000000000000..81a30d69e11c017aa0b2e6407564e51ad4d0b7c6
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/imap_reader/MailBox.php
@@ -0,0 +1,104 @@
+<?php
+
+/**
+ * \file imap_veremes.php
+ * \brief class Imap pour se connecter à un serveur imap et lire les mails.
+ *
+ * \author Anthony Borghi <anthony.borghi@veremes.com>
+ */
+
+require_once("ImapConnection.php");
+require_once("MailStruct.php");
+
+class MailBox {
+
+    /**
+     * imap connection
+     */
+    public $oConnection = false;
+    
+    /**
+     * Liste de mail pour une boite définie
+     */
+    protected $aMails = array();
+    
+
+	/**
+     * initialize imap connection
+     *
+     * @return void
+     * @param $mailbox imap_open string
+     * @param $port
+     * @param $username
+     * @param $password
+     * @param $encryption ssl or tls
+     */
+	public function __construct($mailbox, $port, $username, $password, $encryption = false) {
+        $this->oConnection = new ImapConnection($mailbox, $port, $username, $password, $encryption);
+    }
+
+    function __destruct() {
+        $this->oConnection->close();
+    }
+
+     /**
+     * create if not exist and select given folder 
+     *
+     * @return bool successfull creation folder
+     * @param $sFolderName name of the folder to create and select
+     */
+    public function createFolderAndSelect ($sFolderName){
+        $bStatusCreation = $this->oConnection->addFolderIfNotExists($sFolderName);
+        
+        $this->oConnection->selectFolder($sFolderName);
+        
+        return $bStatusCreation;
+    }
+
+    /**
+     * fill the array with mail in selected folder
+     *
+     * @return array of mail structure
+     */
+    public function fillMailList (){
+        $this->aMails = array();
+        $aUid = $this->oConnection->getMessagesUidList();
+        foreach ($aUid as $iUid) {
+            $oMailStruct = new MailStruct($this->oConnection, $iUid);
+            array_push($this->aMails, $oMailStruct);
+        }
+        return $this->aMails;
+    }
+
+    public function getMailWithUid ($iUid){
+        $this->aMails = array();
+        $oMailStruct = new MailStruct($this->oConnection, $iUid);
+        array_push($this->aMails, $oMailStruct);
+        return $this->aMails;
+    }
+
+    public function getMailWithsearchObject ($aFilter){
+        $this->aMails = array();
+        $aUid = $this->oConnection->searchInFolder($aFilter);
+        if(is_array($aUid)){
+            foreach ($aUid as $iUid) {
+                $oMailStruct = new MailStruct($this->oConnection, $iUid);
+                array_push($this->aMails, $oMailStruct);
+            }
+        }
+        return $this->aMails;
+    }
+
+    /**
+     * get th email list
+     *
+     * @return array of mail structure
+     */
+    public function getMailList (){
+        return $this->$aMails;
+    }
+
+}
+
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/imap_reader/MailStruct.php b/src/module_gtf/web_service/class/gtf_lib/imap_reader/MailStruct.php
new file mode 100755
index 0000000000000000000000000000000000000000..b45ce29d6e78e921d5dfac475ad4a2e27721285b
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/imap_reader/MailStruct.php
@@ -0,0 +1,299 @@
+<?php
+
+/**
+ * \file imap_veremes.php
+ * \brief class Imap pour se connecter à un serveur imap et lire les mails.
+ *
+ * \author Anthony Borghi <anthony.borghi@veremes.com>
+ */
+
+class MailStruct {
+
+    /**
+     * imap connection
+     */
+    protected $oConnection = false;
+    
+    /**
+     * Sender name and address of this mail
+     */
+    public $aSender = array();
+
+    /**
+     * Receiver name and address of this mail
+     */
+    public $aReceiver = array();
+
+    /**
+     * Copy name and address of this mail (non testé)
+     */
+    public $aCC = array();
+
+    /**
+     * Objet DateTime sur la date de réception
+     */
+    protected $tReceptionDate = 0;
+
+    /**
+     * Objet DateTime sur la date d'envoi'
+     */
+    protected $tSendDate = 0;
+
+    /**
+     * Uid of the mail
+     */
+    public $iUid = 0;
+
+    /**
+     * Subject of the mail
+     */
+    public $sSubject = "";
+
+    /**
+     * Body of this mail
+     */
+    public $sBody = "";
+
+    /**
+     * Body of this mail is using HTML
+     */
+    public $bIsHTML = false;
+
+    /**
+     * Attachments list of this mail
+     */
+    public $aAttachments = array();
+
+    /**
+     * Status of this mail (si vide =false)
+     */
+    public $aStatus = array("unread"=>false, "answered"=>false, "deleted"=>false);
+
+	/**
+     * initialize mail object structure
+     *
+     * @return void
+     * @param $oImapConnection an imap connection with a folder selected
+     * @param $iUid Universal ID of the mail to get informations
+     */
+	public function __construct($oImapConnection, $iUid) {
+        $this->oConnection = $oImapConnection;
+        $this->iUid = $iUid;
+
+        //Get Mail Info
+        $oHeader = $this->oConnection->getMessageHeader($this->iUid);
+        $this->headerExtractor($oHeader);
+
+        //Get Mail Body
+        $aPart = $this->oConnection->gerPartArray($this->iUid);
+        $this->bodyExtractor($aPart);
+        //get Mail Attachment
+        $this->attachmentsExtractor($aPart);
+        //error_log(print_r($this, true));
+    }
+
+    /**
+     * Extract Body of the mail header and it type (HTML or PLAIN).
+     * @param $aPart array of parts of this mail
+     */
+    protected function bodyExtractor($aPart){
+        foreach ($aPart as $oPart) {
+           if ($oPart["part_object"]->encoding == 3 || $oPart["part_object"]->encoding == 4) {
+                $sMimeType = $this->oConnection->getMimeType($oPart["part_object"]);
+
+                //$this->sBody = $this->oConnection->getPart($this->iUid, $oPart["part_object"]->encoding, $oPart["part_number"]);
+
+               if ($sMimeType === "TEXT/HTML") {
+                    //error_log(print_r($oPart, true));
+                    $this->sBody = $this->convertToUtf8($this->oConnection->getPart($this->iUid, $oPart["part_object"]->encoding, $oPart["part_number"]));
+                   $this->bIsHTML = true;
+               } else if($sMimeType === "TEXT/PLAIN"){
+                    //error_log(print_r($oPart, true));
+                    $this->sBody = $this->convertToUtf8($this->oConnection->getPart($this->iUid, $oPart["part_object"]->encoding, $oPart["part_number"]));
+                    $this->bIsHTML = false;
+               }
+               //error_log($this->sBody);
+               //error_log(mb_detect_encoding($this->sBody));
+            } 
+        }
+    }
+
+    /**
+     * Extract Body of the mail header and it type (HTML or PLAIN).
+     * @param $aPart array of parts of this mail
+     */
+    protected function attachmentsExtractor($aPart, $bTakeInlinePicture = false){
+        $aKeyFileName = array("NAME", "FILENAME");
+
+        foreach ($aPart as $oPart) {
+           if (isset($oPart["part_object"]->disposition)){
+                $sMimeType = $this->oConnection->getMimeType($oPart["part_object"]);
+                if($oPart["part_object"]->ifdparameters == true || $oPart["part_object"]->ifparameters == true){
+                    $sFileName = false;
+                    if($oPart["part_object"]->ifparameters){
+                        for ($iParameters = 0; $iParameters < count($oPart["part_object"]->parameters); $iParameters++){
+                            if(in_array($oPart["part_object"]->parameters[$iParameters]->attribute, $aKeyFileName)){
+                                $sFileName = $oPart["part_object"]->parameters[$iParameters]->value;
+                            }
+                        }
+                    }
+
+                    if($oPart["part_object"]->ifdparameters){
+                        for ($iDParameters = 0 ; $iDParameters < count($oPart["part_object"]->dparameters);$iDParameters++){
+                            if(in_array($oPart["part_object"]->dparameters[$iDParameters]->attribute, $aKeyFileName)){
+                                $sFileName = $oPart["part_object"]->dparameters[$iDParameters]->value;
+                            }
+                        }
+                    }
+
+                    $aFileName = imap_mime_header_decode($sFileName);
+                    $sFileName = $aFileName[0]->text;
+
+                    //$sContent = $this->oConnection->getPart($this->iUid, $oPart["part_object"]->encoding, $oPart["part_number"]);
+                
+                    $aAttachment = array("name" => $sFileName, "size" => $oPart["part_object"]->bytes, "mime" => $sMimeType, "isFile" => true, "part_number" => $oPart["part_number"], "encoding" => $oPart["part_object"]->encoding);
+
+                    array_push($this->aAttachments, $aAttachment);
+                } else if ($bTakeInlinePicture === true){
+                    // to take all the attachments of the mail as pictures inline ...
+                    $sMime = str_replace("/", "_", $sMimeType);
+                    $sFileName = $sMime . "_" . $oPart["part_number"] . ".txt";
+                    
+                    //$sContent = $this->oConnection->getPart($this->iUid, $oPart["part_object"]->encoding, $oPart["part_number"]);
+                
+                    $aAttachment = array("name" => $sFileName, "size" => $oPart["part_object"]->bytes, "mime" => $sMimeType, "isFile" => false, "part_number" => $oPart["part_number"], "encoding" => $oPart["part_object"]->encoding);
+
+                    array_push($this->aAttachments, $aAttachment);
+                }
+
+                
+           }
+        }
+    }
+
+    /**
+     * Return the content of an attachment
+     * @return string content of the attachment
+     * @param $iaAttachment attachment struct to get it content
+     */
+    public function getAttachmentContent($aAttachment){
+        return $this->oConnection->getPart($this->iUid, $aAttachment["encoding"], $aAttachment["part_number"]);
+    }
+
+    /**
+     * Extract MetaData of the mail header.
+     */
+    protected function headerExtractor($oHeader){
+        // remover date mail
+        $aRemover = array(" (Paris, Madrid (heure d’été))", " (Paris, Madrid)", " (Paris, Madrid (heure d'été))");
+        // get email data
+        $this->sSubject = $this->getSubjectConverted($oHeader);
+        $this->aReceiver = $this->toAddressArray($oHeader->to[0]);
+        $this->aSender = $this->toAddressArray($oHeader->from[0]);
+
+        $sDateReception = $oHeader->MailDate;
+        $sDateEnvoi = $oHeader->date;
+        for($i = 0; $i < count($aRemover); $i++){
+            $sDateReception = str_replace($aRemover[$i], "", $sDateReception);
+            $sDateEnvoi = str_replace($aRemover[$i], "", $sDateEnvoi);
+        }
+
+        $this->tReceptionDate = new DateTime($sDateReception);
+        $this->tSendDate = new DateTime($sDateEnvoi);
+
+        $this->aStatus = array(
+            "unread" => strlen(trim($oHeader->Unseen))>0, 
+            "answered" => strlen(trim($oHeader->Answered))>0, 
+            "deleted" => strlen(trim($oHeader->Deleted))>0
+        );
+
+        if(isset($oHeader->cc)){
+            //a finir
+            //error_log(print_r($this->oHeader->cc, true));
+            $aCC = $this->toAddressArray($oHeader->cc);
+        }
+    }
+
+    protected function getSubjectConverted($oHeader){
+        $sSubject = '';
+        if ( isset($oHeader->subject) && strlen($oHeader->subject) > 0 ) {
+            foreach(imap_mime_header_decode($oHeader->subject) as $obj){
+                $sSubject .= $obj->text;
+            }
+        }
+        return $this->convertToUtf8($sSubject);
+    } 
+
+    /**
+     * convert to utf8 if necessary.
+     *
+     * @return true or false
+     * @param $string utf8 encoded string
+     */
+    protected function convertToUtf8($str) { 
+        if(mb_detect_encoding($str, "UTF-8, ISO-8859-1, GBK")!="UTF-8")
+            $str = utf8_encode($str);
+        $str = iconv('UTF-8', 'UTF-8//IGNORE', $str);
+        return $str; 
+    }
+
+    /**
+     * convert imap given address in string
+     *
+     * @return array with name and address
+     * @param $headerinfos the infos given by imap
+     */
+    protected function toAddressArray($aHeaderArray) {
+        $email = "";
+        $name = "";
+        if(isset($aHeaderArray->mailbox) && isset($aHeaderArray->host)) {
+            $email = $aHeaderArray->mailbox . "@" . $aHeaderArray->host;
+        }
+
+        if(!empty($aHeaderArray->personal)) {
+            $name = imap_mime_header_decode($aHeaderArray->personal);
+            $name = $name[0]->text;
+        } else {
+            $name = $email;
+        }
+        
+        $name = $this->convertToUtf8($name);
+        
+        return array("name" => $name, "mail" => $email);
+    } 
+
+    /**
+     * convert output of toAddressArray in a string address formated
+     *
+     * @return array string formated as name<mail>
+     * @param $aMailArray Array with name and mail
+     */
+    public function toAddressString($aMailArray) {
+        return $aMailArray["name"] . " <" . $aMailArray["mail"] . ">";
+    }
+
+
+    /**
+     * convert dateTime struct to a string formated
+     *
+     * @return string date formated
+     * @param $sFormat string to formate dataTime class default : "d/m/Y H:i:s" see http://php.net/manual/fr/function.date.php
+     */
+    public function receptionDateFormater($sFormat = "d/m/Y H:i:s") {
+        return $this->tReceptionDate->format($sFormat);
+    }
+
+    /**
+     * convert dateTime struct to a string formated
+     *
+     * @return string date formated
+     * @param $sFormat string to formate dataTime class default : "d/m/Y H:i:s" see http://php.net/manual/fr/function.date.php
+     */
+    public function sendDateFormater($sFormat = "d/m/Y H:i:s") {
+        return $this->tSendDate->format($sFormat);
+    }
+
+}
+
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/lang_gtf_lib/en-lang.inc b/src/module_gtf/web_service/class/gtf_lib/lang_gtf_lib/en-lang.inc
new file mode 100755
index 0000000000000000000000000000000000000000..53e7abbfe142131ab74b370fb42a3d2cd64dc52d
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/lang_gtf_lib/en-lang.inc
@@ -0,0 +1,9 @@
+<?php
+
+//phpUtility
+define('ERROR_CODE_CONTAIN_SPACE', 'The code does not contain five values separated by a space.');
+define('ERROR_WRITING_FILE', 'Error writing file');
+define('ERROR_DOWNLOADING_BINARIES', 'Error downloading binaries');
+define('ERROR_DOWNLOADING_UPDATE', 'Erreur downloading update');
+define('ERROR_UNZIP_FILE', 'Error unzipping file');
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/lang_gtf_lib/fr-lang.inc b/src/module_gtf/web_service/class/gtf_lib/lang_gtf_lib/fr-lang.inc
new file mode 100755
index 0000000000000000000000000000000000000000..15556ec5f636829858eebb94d3afa822d601ecf9
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/lang_gtf_lib/fr-lang.inc
@@ -0,0 +1,8 @@
+<?php
+
+//phpUtility
+define('ERROR_CODE_CONTAIN_SPACE', 'Le code ne contient pas cinq valeurs séparées par un espace.');
+define('ERROR_DOWNLOADING_BINARIES', 'Erreur lors du telechargement des binaires');
+define('ERROR_DOWNLOADING_UPDATE', 'Une erreur s\'est produite lors du telechargment de la mise à jour');
+define('ERROR_UNZIP_FILE', 'Impossible de dézipper le fichier');
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/class/gtf_lib/phpUtility.inc b/src/module_gtf/web_service/class/gtf_lib/phpUtility.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e44481c94444ba704185eb73232075a7013a2a96
--- /dev/null
+++ b/src/module_gtf/web_service/class/gtf_lib/phpUtility.inc
@@ -0,0 +1,330 @@
+<?php
+/*
+* \file vmlib/phpUtil.inc
+* \brief Fonctions php diverses
+*
+* \author Fabien Marty <fabien.marty@veremes.com> 
+*/
+/*
+* Variable globale stockant le nom de dossier lib.
+*/
+require_once("vmlib/error.inc");
+$sFolderLib="gtf_lib";
+/**
+* Teste un code pour savoir si il correspond à une fréquence.
+* Ce code est d'un jour (de 1 à 31), d'un mois (de 1 à 12) et d'un type de jour de la semaine (de 1 à 7).
+* Ces éléments doivent être définis ainsi : * défini tout le temps et / défini une répétition.
+* \param $sCode Code de la fréquence.
+* return Retourne rien si le code est bon sinon retourne un message d'erreur.
+*/
+function TestPeriodCode($sCode) {
+	global $properties, $sFolderLib;
+	loadLang($sFolderLib, $properties["language"], $sFolderLib."/");
+	$bIsCorrecte = true;
+	$sErrorMessage ="";
+	$aCode = explode(" ", $sCode);
+	
+ // $sErrorMessage = print_r($aCode,true);
+ // $sErrorMessage .= count($aCode);
+
+	if (count($aCode) == 5 && $aCode[4]!="") {
+		$aCode = Array('minute'=>$aCode[0], 'heure'=>$aCode[1], 'jour'=>$aCode[2], 'mois'=>$aCode[3], 'jour_semaine'=>$aCode[4]);
+		$aPatterns = array( 
+            '((?P<minute>(?:\*|(?:(?:[0-9]|[1-5][0-9])(?:-(?:[0-9]|[1-5][0-9]))?)(?:,(?:[0-9]|[1-5][0-9])(?:-(?:[0-9]|[1-5][0-9]))?)*)(?:/(?:[1-9]|[1-5][0-9]))?)$)AD',
+            '((?P<hour>(?:\*|(?:(?:[0-9]|1[0-9]|2[0-3])(?:-(?:[0-9]|1[0-9]|2[0-3]))?)(?:,(?:[0-9]|1[0-9]|2[0-3])(?:-(?:[0-9]|1[0-9]|2[0-3]))?)*)(?:/(?:[1-9]|1[0-9]|2[0-3]))?)$)AD',
+            '((?P<dayOfMonth>(?:\*|(?:(?:[1-9]|[1-2][0-9]|3[0-1])(?:-(?:[1-9]|[1-2][0-9]|3[0-1]))?)(?:,(?:[1-9]|[1-2][0-9]|3[0-1])(?:-(?:[1-9]|[1-2][0-9]|3[0-1]))?)*)(?:/(?:[1-9]|[1-2][0-9]|3[0-1]))?)$)AD',
+            '((?P<month>(?:\*|jan|feb|mar|abr|may|jun|jul|aug|sep|oct|nov|dec|(?:(?:[1-9]|1[0-2])(?:-(?:[1-9]|1[1-2]))?)(?:,(?:[1-9]|1[1-2])(?:-(?:[1-9]|1[1-2]))?)*)(?:/(?:[1-9]|1[1-2]))?)$)AD',
+            '((?P<dayOfWeek>(?:\*|sun|mon|tue|wed|thu|fri|sat|(?:(?:[0-7])(?:-(?:[0-7]))?)(?:,(?:[0-7])(?:-(?:[0-7]))?)*)(?:/(?:[1-7]))?)$)AD');
+		foreach( $aCode as $key => $column ) 
+		{
+			if ( preg_match( $aPatterns[$key], $column ) !== 1 ) 
+			{
+				$sError .= "Code cron non Valide (Valeur de l'argument ".$aPatterns[$key].")";
+			}
+		}
+		// Je ne sais pas si ça sert de développer un truc comme ça alors qu'il faudrait mieux développer une interface qui permettrait de directement entrer le code
+
+	} else {
+		$sErrorMessage =ERROR_CODE_CONTAIN_SPACE;
+		$bIsCorrecte = false;
+	}
+	
+	$sReturn = $sErrorMessage;
+	
+	return $sReturn;
+}
+
+
+/**
+* Cette fonction permet d'uploader un fichier sur le server.
+* \param $sNomObjet Nom de l'objet parcourir.
+* \param $sFileType Type de fichier attendu.
+* \param $sServerPath Chemin où le fichier doit être copié.
+* \param $sMaxSize Taille maximal du fichier.
+* return Retourne un tableau.
+*/
+function uploadFileGtf($sNomObjet, $sFileType, $sServerPath, $sMaxSize) {
+	global $properties, $sFolderLib;
+	loadLang($sFolderLib, $properties["language"], $sFolderLib."/");
+	$sTmpFile=$_FILES[$sNomObjet]['tmp_name'];
+	// Si l'utilisateur n'a indiqué aucun fichier à uploader, il ne se passe rien
+	$sErrorMsg="";
+	if ($sTmpFile==''){
+		if($_FILES[$sNomObjet]['name']!=""){
+			switch($_FILES[$sNomObjet]['error']){
+				case "1" :
+					$sErrorMsg=ERROR_DOWNLOAD_FILE.$_FILES[$sNomObjet]['name']." : ".ERROR_UPLOAD_MAX_FILE_SIZE."<br>";
+				break;
+				case "2" :
+					$sErrorMsg=ERROR_DOWNLOAD_FILE.$_FILES[$sNomObjet]['name']." : ".ERROR_MAX_FILE_SIZE."<br>";
+				break;
+				case "3" :
+					$sErrorMsg=ERROR_DOWNLOAD_FILE.$_FILES[$sNomObjet]['name']." : ".ERROR_PARTIAL_DOWNLOAD."<br>";
+				break;
+				case "4" :
+					$sErrorMsg=ERROR_NO_FILE_DOWNLOADED."<br>";
+				break;
+				case "6" :
+					$sErrorMsg=ERROR_DOWNLOAD_FILE.$_FILES[$sNomObjet]['name']." : ".ERROR_MISSING_TEMP_FOLDER."<br>";
+				break;
+				case "7" :
+					$sErrorMsg=ERROR_DOWNLOAD_FILE.$_FILES[$sNomObjet]['name']." : ".ERROR_WRITING_DISK."<br>";
+				break;
+				case "8" :
+					$sErrorMsg=ERROR_DOWNLOAD_FILE.$_FILES[$sNomObjet]['name']." : ".ERROR_PHP_EXT_SEND."<br>";
+				break;
+			}
+			writeToErrorLog($sErrorMsg);
+		}
+		return $sErrorMsg;
+	}
+	
+	if (is_uploaded_file($sTmpFile)) {
+		//Teste si le fichier correspont au format voulu.
+		$bAllowUpload=false;
+
+		//Teste si le fichier n'est pas de trop grande taille.
+		if ($_FILES[$sNomObjet]['size']>$sMaxSize || $_FILES[$sNomObjet]['error']==1){
+			$bAllowUpload=false;
+			if ($_FILES[$sNomObjet]['size']>$sMaxSize) $sErrorMsg .='Le fichier '.$_FILES[$sNomObjet]['name'].' de '.$_FILES[$sNomObjet]['size'].' octets dépasse la taille maximale autorisée ('.$sMaxSize.' octets).<br>';
+			if ($_FILES[$sNomObjet]['error']>$sMaxSize) $sErrorMsg .='Le fichier '.$_FILES[$sNomObjet]['name'].' dépasse la taille maximale autorisée par la configuration PHP ('.$sMaxSize.' octets).<br>';
+		}
+		if ($sErrorMsg==""){
+			$bAllowUpload=true;
+		}else{
+			$bAllowUpload=false;
+		}
+
+		//Lance l'upload.
+		if ($bAllowUpload){
+			if (!move_uploaded_file($sTmpFile, $sServerPath)){
+				writeToErrorLog(ERROR_COPYING_FILE.$_FILES[$sNomObjet]['name'].ON_SERVER_PHPUTIL.', '.$sTmpFile.', '.$sServerPath);
+				$sErrorMsg =ERROR_COPYING_FILE.$_FILES[$sNomObjet]['name'].ON_SERVER_PHPUTIL.'.<br>';
+			}
+		}
+	} else {
+		writeToErrorLog(str_replace('[_FILES[sNomObjet][name]]', $_FILES[$sNomObjet]['name'], ERROR_0011));
+		$sErrorMsg ='Le fichier '.$_FILES[$sNomObjet]['name'].' n\'est pas téléchargé sur le serveur (Code erreur : '.$_FILES[$sNomObjet]['error'].').<br>';
+	}
+	// if ($sErrorMsg!=""){
+		// $sErrorMsg.="La demande a été supprimée car celle-ci ne pourra pas être traitée.";
+	// }
+	
+	return $sErrorMsg;
+}
+
+/**
+* Cette fonction permet de supprimer un fichier sur le serveur.
+* \param $sFichier Fichier à supprimer.
+* return un booleen.
+*/
+function clearFile($sFichier) {
+	unlink($sFichier);
+}
+
+/**
+* Cette fonction permet de supprimer un fichier sur le serveur de manière récursive.
+* \param $sFichier Fichier à supprimer.
+* return un tableau avec la liste des fichiers supprimés et la liste des fichiers qui n'ont pas pu être supprimés.
+*/
+function clearRecursiveFile($sFolder){
+	$oDirectory = @opendir($sFolder);
+	$bDirectoryIntoDirectory=false;
+	while($sFileNameLog=@readdir($oDirectory) ){
+		$aExtensionFile = explode(".", $sFileNameLog);
+		if(!in_array($sFileNameLog, array("..", ".")) ){
+			if( is_dir($sFolder."/".$sFileNameLog) ){	
+				$aFilesDeleteOrNotDelete=clearRecursiveFile($sFolder."/".$sFileNameLog);
+				$sFileDeteleOK.=$aFilesDeleteOrNotDelete["sFileDeteleOK"];
+				$sFileDeteleEchec.=$aFilesDeleteOrNotDelete["sFileDeteleEchec"];
+													
+				$bDirectoryIntoDirectory=true;
+		
+			}else{ // Si c'est un fichier
+				if ($aExtensionFile[1]=="log"){
+					$iNbrDaysBetween2Date = nbrDaysBetween2Date(date ("F d Y H:i:s.", filemtime($sFolder."/".$sFileNameLog)));
+					if ($iNbrDaysBetween2Date > $_REQUEST["iDaysDeleteFiles"]){ // Suppression du fichier				
+						clearFile($sFolder."/".$sFileNameLog);
+						$sFile = $sFolder."/".$sFileNameLog;
+						if (file_exists($sFile)){
+							$sFileDeteleEchec.="<img class=\"img\" src=\"./images/false.png\"/>&nbsp;".htmlentities("Echec de la suppression du fichier \"".$sFile."\".", ENT_COMPAT | ENT_HTML401, "UTF-8")."<br>";
+						}else{
+							if (filesize($sFile)!=""){
+								$sFileDeteleEchec.="<img class=\"img\" src=\"./images/false.png\"/>&nbsp;".htmlentities("Echec de la suppression du fichier \"".$sFile."\" (vous n'avez pas les droits pour supprimer ce fichier).", ENT_COMPAT | ENT_HTML401, "UTF-8")."<br>";
+							}else{
+								$sFileDeteleOK.="<img class=\"img\" src=\"./images/true.png\"/>&nbsp;".htmlentities("Fichier \"".$sFile."\" correctement supprimé.", ENT_COMPAT | ENT_HTML401, "UTF-8")."<br>";
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+	@closedir($oDirectory);
+	// Suppression du dossier si ce derneir est vide
+	if (countFilesAndDir($sFolder)==0){
+		rmdir($sFolder);
+	}
+	
+	$aFileDeteleOkAndFileDeteleEchec = array("sFileDeteleOK" => $sFileDeteleOK,"sFileDeteleEchec" => $sFileDeteleEchec);
+	return $aFileDeteleOkAndFileDeteleEchec;
+}
+
+
+
+/**
+* Cette fonction permet de retourner le nombre d'éléments (fichier et dossier) qui se trouvent dans un dossier 
+* \param $sDate Date à comparer 
+* return un entier.
+*/
+
+function countFilesAndDir($sDirectory){
+	$iNbr = 0;
+	$dir_handle = opendir($sDirectory);
+		while($entry = readdir($dir_handle)){	
+			if($entry != ".." and $entry !="."){
+				$iNbr++;
+			}
+		}
+	closedir($dir_handle);
+	return $iNbr;
+} 
+
+
+
+
+function userToFolder($sUser){
+	return $sUser;
+}
+
+
+/**
+* Cette fonction permet de retourner le nom de jour qui séparer deux dates : la date passée en paramètre et la date du jour
+* \param $sDate Date à comparer 
+* return un entier.
+*/
+
+function nbrDaysBetween2Date($sDate){
+	$s = strtotime("now")-strtotime($sDate);
+	$inbrDaysBetween2Date = intval($s/86400)+1;   
+	return $inbrDaysBetween2Date; 
+} 
+
+/**********************************
+ Retourne un tableau contenant des informations
+ sur la licence du logiciel fme passé en paramètre
+ $fmepath : Chemin vers le logiciel fme.exe
+ Tableau de retour:
+ - exists (booléen) -> Est ce que le fichier existe ?
+ - valid (booléen) -> Est ce que la licence FME est valide ?
+ - version (string) -> Version de FME
+ - type (string) ->
+ - validity (string) -> Validité de la licence (Permanent / Temporary License: xxx days left)
+ - host (string)
+***********************************/
+function getFmeLicence($fmepath)
+{
+// Tableau de retour contenant les infos de la licence
+	$aFmeLicence = array('exists' => false, 'valid' => false, 'version' => '', 'type' => '', 'validity' => '', 'host' => '');
+	
+// Si le fichier existe et la fonction exec ne renvoie pas d'erreur : remplissage du tableau
+	if (file_exists($fmepath))
+	{
+	// Le fichier existe
+		$aFmeLicence['exists'] = true;
+
+	// Exécute fme.exe
+		$aOutput = array();
+		$iReturnStatus = 1;
+		exec($fmepath, $aOutput, $iReturnStatus);
+		
+	// Le fichier fme.exe s'est exécuté normalement ?
+		if ($iReturnStatus === 0)
+		{
+		// Est ce que la licence a expiré ?
+			if (stripos(implode($aOutput), 'licence has expired') !== false)
+				$aFmeLicence['valid'] = false;
+			else
+			{
+			// La licence est valide	
+				$aFmeLicence['valid'] = true;
+		
+			// Version du logiciel
+				$aFmeLicence['version'] = trim($aOutput[0]);
+
+			// Type de licence
+				$aFmeLicence['type'] = trim($aOutput[1]);
+		
+			// Validité de la licence
+				$aFmeLicence['validity'] = trim($aOutput[2]);
+				
+			// Host
+				$aFmeLicence['host'] = trim(substr($aOutput[3], stripos($aOutput[3], ':') + 1));
+			}
+		}
+	}
+	
+	return $aFmeLicence;
+}
+
+//Retourne un tableau de valeurs unique et insensible à la casse
+// $aArray Tableau à filtrer
+function array_iunique($aArray){
+    return array_intersect_key($aArray, array_unique(array_map("StrToLower",$aArray)));
+}
+
+/**
+ * Generate a GTF instance id.
+ * @return GTF instance id
+ */
+function generateGtfInstanceId() {
+    $aOutput = array();
+    $iReturnStatus = 1;
+    if (strtolower(substr(PHP_OS, 0, 3)) == 'win') {
+        // Paramètres à concaténer pour un identifiant unique par machine.
+        $aCommands = array(
+            'NICCONFIG',    // cartes réseaux (adresses MAC)
+            'CPU',  // modèle, vitesse, id...
+            'DISKDRIVE',    // N° de série...
+            'MEMORYCHIP',
+            'CDROM',    // Lecteur DVD...
+            'path win32_VideoController',   // Carte vidéo
+            'IDECONTROLLER',
+            'SCSICONTROLLER',
+            'DESKTOPMONITOR',
+            'LOGON',
+            'NETLOGIN'
+        );
+        $sCommandLine = 'wmic '. implode(' & wmic ', $aCommands);
+        exec($sCommandLine, $aOutput, $iReturnStatus);
+    }
+    else if (strtolower(substr(PHP_OS, 0, 5)) == 'linux') {
+        $aLinuxCommand = array('lscpu', 'lspci', 'df', 'free', 'ip a', 'cat /var/lib/dbus/machine-id'); // , 'sudo cat /sys/class/dmi/id/product_uuid'
+        foreach ($aLinuxCommand as $sCommand) {
+            exec($sCommand, $aOutput, $iReturnStatus);
+        }
+        $aOutput['ses_Login'] = $_SESSION['ses_Login'];
+    }
+    return 'GTF_' . hash_hmac('sha256', implode(chr(20), $aOutput), uniqid('', true));
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/conf/properties.inc b/src/module_gtf/web_service/conf/properties.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ff978e12472d7f8c64c66b723ca595c89a72a409
--- /dev/null
+++ b/src/module_gtf/web_service/conf/properties.inc
@@ -0,0 +1,11 @@
+<?php
+$properties['not_compressed_extension'] = '*.gex|*.zip|*.xls|*.xlsx|*.htm|*.html|*.txt';
+$properties['default_mail_model'] = 1;
+$properties['pycron_dir'] = '';
+$properties['heure_creuse_min'] = '19:30';
+$properties['heure_creuse_max'] = '08:30';
+$properties['nbr_order_max'] = 10;
+$properties['max_attempt'] = 2;
+$properties['connectionStringExternalIp'] = '52.47.201.61';
+$properties['connectionStringExternalPort'] = 5432;
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/conf/properties_post.inc b/src/module_gtf/web_service/conf/properties_post.inc
new file mode 100755
index 0000000000000000000000000000000000000000..20dae22f14e9dcc0fb411cf317de9499da263a27
--- /dev/null
+++ b/src/module_gtf/web_service/conf/properties_post.inc
@@ -0,0 +1,7 @@
+<?php
+
+$properties['workspace_dir'] = $properties['vas_home'] . '/ws_data/gtf/workspace';
+$properties['mail_log_file'] = $properties['vas_home'] . '/log/engines/notify.log';
+$properties['log_directories'] ['Pycron'] = $properties['pycron_dir'];
+$properties['fme_cloud_api_url'] = 'https://api.fmecloud.safe.com';
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/conf/properties_post_engines.inc b/src/module_gtf/web_service/conf/properties_post_engines.inc
new file mode 100755
index 0000000000000000000000000000000000000000..fca79dce6a3dcc40d980d6a56338d411573d7df6
--- /dev/null
+++ b/src/module_gtf/web_service/conf/properties_post_engines.inc
@@ -0,0 +1,3 @@
+<?php
+$properties["engines_list"] = '1,2';
+?>
diff --git a/src/module_gtf/web_service/conf/properties_server.inc b/src/module_gtf/web_service/conf/properties_server.inc
new file mode 100755
index 0000000000000000000000000000000000000000..6ff1a41eed1f2e7b166ee0e65e3f35adf22057d4
--- /dev/null
+++ b/src/module_gtf/web_service/conf/properties_server.inc
@@ -0,0 +1,7 @@
+<?php
+$properties['schema_gtf'] = 's_gtf';
+$properties['gtf_doc_alias'] = 'gtf_doc';
+$properties['login_scheduler'] = 'u_scheduler';
+$properties['password_scheduler'] = '[PASSWORD_SCHEDULER]';
+$properties['application_name'] = 'gtf[ENV]';
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/conf/selected_properties.inc b/src/module_gtf/web_service/conf/selected_properties.inc
new file mode 100644
index 0000000000000000000000000000000000000000..8f07f5c1cc500f18b2636677eb4852f9566cd201
--- /dev/null
+++ b/src/module_gtf/web_service/conf/selected_properties.inc
@@ -0,0 +1,50 @@
+<?php
+
+$aAdminFields = Array(
+    'schema_gtf',
+    'not_compressed_extension',
+    'default_mail_model',
+    'heure_creuse_min',
+    'heure_creuse_max',
+    'nbr_order_max',
+    'max_attempt',
+    'workspace_dir',
+    'mail_log_file',
+    'log_directories.Pycron',
+    'engines_list',
+    'pycron_dir',
+    'login_scheduler',
+    'password_scheduler',
+    'gtf_doc_alias',
+    'application_name',
+    'fme_cloud_api_url',
+    'gtf_instance_id',
+    'connectionStringExternalIp',
+    'connectionStringExternalPort'
+);
+$aUserFields = Array(
+    'schema_gtf',
+    'not_compressed_extension',
+    'default_mail_model',
+    'heure_creuse_min',
+    'heure_creuse_max',
+    'nbr_order_max',
+    'max_attempt',
+    'workspace_dir',
+    'mail_log_file',
+    'log_directories.Pycron',
+    'engines_list',
+    'pycron_dir',
+    'login_scheduler',
+    'password_scheduler',
+    'gtf_doc_alias',
+    'application_name',
+    'fme_cloud_api_url',
+    'gtf_instance_id',
+    'connectionStringExternalIp',
+    'connectionStringExternalPort'
+);
+
+$properties['aAdminFields'] = array_merge($properties['aAdminFields'], $aAdminFields);
+$properties['aUserFields'] = array_merge($properties['aUserFields'], $aUserFields);
+?>
diff --git a/src/module_gtf/web_service/conf/version.inc b/src/module_gtf/web_service/conf/version.inc
new file mode 100755
index 0000000000000000000000000000000000000000..5a2a54cf1b71409c45d7033583978050d4c79e09
--- /dev/null
+++ b/src/module_gtf/web_service/conf/version.inc
@@ -0,0 +1,7 @@
+<?php
+// Numéro de la version de GTF
+define ("VM_VERSION", "[VERSION]");
+define ("VM_BUILD", "[BUILD]");
+define ("VM_MONTH_YEAR", "[MONTH_YEAR]");
+define ("VM_STATUS", "UNSTABLE");
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/sql/maj.sql b/src/module_gtf/web_service/sql/maj.sql
new file mode 100644
index 0000000000000000000000000000000000000000..1ed5dac181c65c219db0d7fc2c986d24f345e8c7
--- /dev/null
+++ b/src/module_gtf/web_service/sql/maj.sql
@@ -0,0 +1,80 @@
+ALTER TABLE s_gtf.fme_engine ADD COLUMN fme_engine_type_id character varying(50) NOT NULL DEFAULT 'desktop';
+ALTER TABLE s_gtf.fme_engine ADD COLUMN server_url character varying(255);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN login character varying(50);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN password character varying(50);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN s3_access_key_id character varying(50);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN s3_secret_access_key character varying(50);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN fme_cloud_api_token character varying(100);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN s3_region character varying(50);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN iam_access_key_id character varying(50);
+ALTER TABLE s_gtf.fme_engine ADD COLUMN iam_secret_access_key character varying(50);
+
+-- Types de moteurs FME.
+CREATE TABLE s_gtf.rt_fme_engine_type (fme_engine_type_id character varying(50) NOT NULL, label_id character varying(60));
+ALTER TABLE s_gtf.rt_fme_engine_type OWNER TO u_vitis;
+ALTER TABLE ONLY s_gtf.rt_fme_engine_type  ADD CONSTRAINT pk_fme_engine_type_id PRIMARY KEY (fme_engine_type_id);
+GRANT ALL ON TABLE s_gtf.rt_fme_engine_type TO gtf_admin;
+GRANT SELECT ON TABLE s_gtf.rt_fme_engine_type TO gtf_user;
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Libellé "desktop" de la table rt_fme_engine_type', 'gtf_323');
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Libellé "fme_server" de la table rt_fme_engine_type', 'gtf_324');
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Libellé "fme_cloud" de la table rt_fme_engine_type', 'gtf_325');
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Libellé "fme_cloud_for_gtf" de la table rt_fme_engine_type', 'gtf_326');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_323', 'fr', 'Desktop');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_323', 'en', 'Desktop');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_324', 'fr', 'FME Server');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_324', 'en', 'FME Server');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_325', 'fr', 'FME Cloud');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_325', 'en', 'FME Cloud');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_326', 'fr', 'FME cloud for GTF');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_326', 'en', 'FME cloud for GTF');
+INSERT INTO s_gtf.rt_fme_engine_type (fme_engine_type_id, label_id) VALUES ('desktop', 'gtf_323');
+INSERT INTO s_gtf.rt_fme_engine_type (fme_engine_type_id, label_id) VALUES ('fme_server', 'gtf_324');
+INSERT INTO s_gtf.rt_fme_engine_type (fme_engine_type_id, label_id) VALUES ('fme_cloud', 'gtf_325');
+INSERT INTO s_gtf.rt_fme_engine_type (fme_engine_type_id, label_id) VALUES ('fme_cloud_for_gtf', 'gtf_326');
+--
+CREATE VIEW s_gtf.v_fme_engine_type AS SELECT rt_fme_engine_type.fme_engine_type_id, vm_translation.translation AS fme_engine_type_label, vm_translation.lang FROM (s_gtf.rt_fme_engine_type JOIN s_vitis.vm_translation ON (((vm_translation.translation_id)::text = (rt_fme_engine_type.label_id)::text)));
+ALTER TABLE s_gtf.v_fme_engine_type OWNER TO u_vitis;
+GRANT ALL ON TABLE s_gtf.v_fme_engine_type TO gtf_admin;
+GRANT SELECT ON TABLE s_gtf.v_fme_engine_type TO gtf_user;
+GRANT SELECT ON TABLE s_gtf.v_fme_engine_type TO gtf_author;
+--
+DROP VIEW s_gtf.v_fme_engine;
+CREATE OR REPLACE VIEW s_gtf.v_fme_engine AS SELECT fme_engine.fme_engine_id,fme_engine.name,fme_engine.server_id,fme_engine.local_path,server.hostname AS server_name,fme_engine.server_url,fme_engine.login,fme_engine.password,fme_engine.fme_engine_type_id,fme_engine.s3_access_key_id,fme_engine.s3_secret_access_key,fme_engine.fme_cloud_api_token,v_fme_engine_type.fme_engine_type_label,v_fme_engine_type.lang,fme_engine.s3_region,fme_engine.iam_access_key_id,fme_engine.iam_secret_access_key FROM s_gtf.fme_engine LEFT JOIN s_gtf.server ON fme_engine.server_id = server.server_id LEFT JOIN s_gtf.v_fme_engine_type ON fme_engine.fme_engine_type_id = v_fme_engine_type.fme_engine_type_id;
+ALTER TABLE s_gtf.v_fme_engine OWNER TO u_vitis;
+GRANT ALL ON TABLE s_gtf.v_fme_engine TO u_vitis;
+GRANT ALL ON TABLE s_gtf.v_fme_engine TO gtf_admin;
+GRANT SELECT ON TABLE s_gtf.v_fme_engine TO gtf_user;
+GRANT SELECT ON TABLE s_gtf.v_fme_engine TO gtf_author;
+CREATE OR REPLACE RULE delete_v_fme_engine AS ON DELETE TO s_gtf.v_fme_engine DO INSTEAD  DELETE FROM s_gtf.fme_engine WHERE fme_engine.fme_engine_id = old.fme_engine_id;
+CREATE OR REPLACE RULE insert_v_fme_engine AS ON INSERT TO s_gtf.v_fme_engine DO INSTEAD  INSERT INTO s_gtf.fme_engine (fme_engine_id, name, server_id, local_path, server_url, login, password, fme_engine_type_id, s3_access_key_id, s3_secret_access_key, fme_cloud_api_token, s3_region, iam_access_key_id, iam_secret_access_key) VALUES (new.fme_engine_id, new.name, new.server_id, new.local_path, new.server_url, new.login, new.password, new.fme_engine_type_id, new.s3_access_key_id, new.s3_secret_access_key, new.fme_cloud_api_token, new.s3_region, new.iam_access_key_id, new.iam_secret_access_key);
+CREATE OR REPLACE RULE update_v_fme_engine AS ON UPDATE TO s_gtf.v_fme_engine DO INSTEAD  UPDATE s_gtf.fme_engine SET fme_engine_id = new.fme_engine_id, name = new.name, server_id = new.server_id, local_path = new.local_path, server_url = new.server_url, login = new.login, password = new.password, fme_engine_type_id = new.fme_engine_type_id, s3_access_key_id = new.s3_access_key_id, s3_secret_access_key = new.s3_secret_access_key, fme_cloud_api_token = new.fme_cloud_api_token, s3_region = new.s3_region, iam_access_key_id = new.iam_access_key_id, iam_secret_access_key = new.iam_secret_access_key WHERE fme_engine.fme_engine_id = new.fme_engine_id;
+ALTER TABLE s_gtf.fme_engine ADD CONSTRAINT fk_fme_engine_type_id FOREIGN KEY (fme_engine_type_id) REFERENCES s_gtf.rt_fme_engine_type (fme_engine_type_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;
+-- Champs manquants dans la liste des moteurs FME.
+UPDATE s_vitis.vm_table_field SET width = 150 WHERE label_id = 'gtf_212';
+UPDATE s_vitis.vm_table_field SET index = 5, width = 300 WHERE label_id = 'gtf_213';
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ server_url de l''onglet "gtf_fme_engine"', 'gtf_319');
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ login de l''onglet "gtf_fme_engine"', 'gtf_320');
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ fme_engine_type_id de l''onglet "gtf_fme_engine"', 'gtf_321');
+INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ s3_access_key_id de l''onglet "gtf_fme_engine"', 'gtf_322');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_319', 'fr', 'Url du serveur');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_319', 'en', 'Server url');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_320', 'fr', 'Utilisateur');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_320', 'en', 'Username');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_321', 'fr', 'Type');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_321', 'en', 'Type');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_322', 'fr', 'Clé d''accès S3');
+INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_322', 'en', 'S3 access key');
+INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'server_url', true, true, 6, 250, 'left', 'gtf_319', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'login', true, true, 7, 150, 'left', 'gtf_320', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'fme_engine_type_label', true, true, 4, 100, 'left', 'gtf_321', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 's3_access_key_id', true, true, 8, 150, 'left', 'gtf_322', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+-- Libellé du champ "type" de moteur FME.
+UPDATE s_vitis.vm_tab SET event = 'loadList(null, {"lang": ""})' WHERE name ='gtf_fme_engine';
+-- 
+UPDATE s_vitis.vm_table_field SET width = 200 WHERE label_id = 'gtf_128';
+
+-- Anthony le 18/09/2018 14:43
+ALTER TABLE s_gtf.fme_engine ADD COLUMN useexternaldbconnection boolean DEFAULT FALSE;
+CREATE OR REPLACE VIEW s_gtf.v_fme_engine AS SELECT fme_engine.fme_engine_id, fme_engine.name, fme_engine.server_id, fme_engine.local_path, server.hostname AS server_name, fme_engine.server_url, fme_engine.login, fme_engine.password, fme_engine.fme_engine_type_id, fme_engine.s3_access_key_id, fme_engine.s3_secret_access_key, fme_engine.fme_cloud_api_token, v_fme_engine_type.fme_engine_type_label, v_fme_engine_type.lang, fme_engine.s3_region, fme_engine.iam_access_key_id, fme_engine.iam_secret_access_key, fme_engine.fme_server_instance_name, fme_engine.fme_server_s3_bucket, useexternaldbconnection FROM s_gtf.fme_engine LEFT JOIN s_gtf.server ON fme_engine.server_id = server.server_id LEFT JOIN s_gtf.v_fme_engine_type ON fme_engine.fme_engine_type_id::text = v_fme_engine_type.fme_engine_type_id::text;
+CREATE OR REPLACE RULE insert_v_fme_engine AS ON INSERT TO s_gtf.v_fme_engine DO INSTEAD  INSERT INTO s_gtf.fme_engine (fme_engine_id, name, server_id, local_path, server_url, login, password, fme_engine_type_id, s3_access_key_id, s3_secret_access_key, fme_cloud_api_token, s3_region, iam_access_key_id, iam_secret_access_key, fme_server_instance_name, fme_server_s3_bucket, useexternaldbconnection) VALUES (new.fme_engine_id, new.name, new.server_id, new.local_path, new.server_url, new.login, new.password, new.fme_engine_type_id, new.s3_access_key_id, new.s3_secret_access_key, new.fme_cloud_api_token, new.s3_region, new.iam_access_key_id, new.iam_secret_access_key, new.fme_server_instance_name, new.fme_server_s3_bucket, new.useexternaldbconnection);
+CREATE OR REPLACE RULE update_v_fme_engine AS ON UPDATE TO s_gtf.v_fme_engine DO INSTEAD  UPDATE s_gtf.fme_engine SET fme_engine_id = new.fme_engine_id, name = new.name, server_id = new.server_id, local_path = new.local_path, server_url = new.server_url, login = new.login, password = new.password, fme_engine_type_id = new.fme_engine_type_id, s3_access_key_id = new.s3_access_key_id, s3_secret_access_key = new.s3_secret_access_key, fme_cloud_api_token = new.fme_cloud_api_token, s3_region = new.s3_region, iam_access_key_id = new.iam_access_key_id, iam_secret_access_key = new.iam_secret_access_key, fme_server_instance_name = new.fme_server_instance_name, fme_server_s3_bucket = new.fme_server_s3_bucket, useexternaldbconnection = new.useexternaldbconnection WHERE fme_engine.fme_engine_id = new.fme_engine_id;
diff --git a/src/module_gtf/web_service/sql/sqlQueries.xml b/src/module_gtf/web_service/sql/sqlQueries.xml
new file mode 100644
index 0000000000000000000000000000000000000000..86530ce429f2bb5289e5003497afc67a0838e81a
--- /dev/null
+++ b/src/module_gtf/web_service/sql/sqlQueries.xml
@@ -0,0 +1,1999 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sqlQueries>
+	<title>Scripts d'installation et de mises à jour de la base du VAS</title>
+	<queriesCollection>
+		<query>
+			<type>init</type>
+			<version>2016.01.00</version>
+			<code>
+				<![CDATA[
+				CREATE SCHEMA s_gtf;
+				select s_vitis.create_role_if_not_exists('u_scheduler', 'LOGIN PASSWORD ''$(SCHEDULER_PASSWORD)'' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+				select s_vitis.create_role_if_not_exists('gtf_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+				select s_vitis.create_role_if_not_exists('gtf_author', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+				select s_vitis.create_role_if_not_exists('gtf_scheduler', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION');
+				select s_vitis.create_role_if_not_exists('gtf_admin', 'NOSUPERUSER INHERIT NOCREATEDB CREATEROLE NOREPLICATION');
+				GRANT gtf_user TO gtf_admin;
+				GRANT gtf_user TO gtf_scheduler;
+				GRANT gtf_scheduler TO u_scheduler;
+				ALTER SCHEMA s_gtf OWNER TO u_vitis;
+				SET search_path = s_gtf, pg_catalog;
+				CREATE FUNCTION f_add_col(_tbl regclass, _col text, _type regtype, OUT success boolean) RETURNS boolean    LANGUAGE plpgsql    AS $$ BEGIN IF EXISTS (   SELECT 1 FROM pg_attribute   WHERE  attrelid = _tbl   AND    attname = _col   AND    NOT attisdropped) THEN   success := FALSE;ELSE   EXECUTE '   ALTER TABLE ' || _tbl || ' ADD COLUMN ' || quote_ident(_col) || ' ' || _type;   success := TRUE;END IF;END$$;
+				ALTER FUNCTION s_gtf.f_add_col(_tbl regclass, _col text, _type regtype, OUT success boolean) OWNER TO u_vitis;
+				CREATE FUNCTION f_add_unique_index(_schema text, _table text, _col text, _name text, OUT success boolean) RETURNS boolean    LANGUAGE plpgsql    AS $$ 	BEGIN 		IF EXISTS (SELECT 1 FROM pg_class c JOIN   pg_namespace n ON n.oid = c.relnamespace WHERE  c.relname  = _name  AND   n.nspname = _schema ) THEN   			success := FALSE; 		ELSE   			EXECUTE ' CREATE UNIQUE INDEX ' || _name || ' ON ' || _schema || '.' || _table || ' (' || _col || ');' ;   			success := TRUE;		END IF;	END	$$;
+				ALTER FUNCTION s_gtf.f_add_unique_index(_schema text, _table text, _col text, _name text, OUT success boolean) OWNER TO u_vitis;
+				CREATE FUNCTION finish_new_job() RETURNS trigger    LANGUAGE plpgsql    AS $$  BEGIN  IF new.workspace IS NULL THEN SELECT INTO new.workspace workspace.name FROM s_gtf.workspace WHERE workspace.workspace_id=new.workspace_id;     END IF;   IF new.login IS NULL THEN         SELECT INTO new.login "user"."login" FROM s_vitis."user" WHERE "user"."user_id"=new."user_id";     END IF;    return New;  END; $$;
+				ALTER FUNCTION s_gtf.finish_new_job() OWNER TO u_vitis;
+				CREATE FUNCTION s2hms(integer) RETURNS character varying    LANGUAGE plpgsql    AS $_$ declare	nDureeSeconde ALIAS for $1;	sDureeChaine varchar(10) ;	nHeures int ;	nMinutes int ;	nSecondes int ;	nHeures2 varchar(5) ;	nMinutes2 varchar(2) ;	nSecondes2 varchar(2) ; BEGIN	nHeures := nDureeSeconde / 3600 ;	nMinutes := (nDureeSeconde %% 3600) / 60 ;	nSecondes := nDureeSeconde %% 60 ;	if nHeures < 10 then		nHeures2:= 0 || cast(nHeures as text) ;	else		nHeures2:= cast(nHeures as text)  ;	end if;	if nMinutes < 10 then		nMinutes2:= 0 || cast(nMinutes as text) ;	else		nMinutes2:= cast(nMinutes as text)  ;	end if;	if nSecondes < 10 then		nSecondes2:= 0 || cast(nSecondes as text) ;	else		nSecondes2:= cast(nSecondes as text)  ;	end if;	sDureeChaine := nHeures2 || ':' || nMinutes2 || ':' || nSecondes2; 	RETURN sDureeChaine;END;$_$;
+				ALTER FUNCTION s_gtf.s2hms(integer) OWNER TO u_vitis;
+				CREATE TABLE actionclass (    actionclass character varying(50) NOT NULL,    label text);
+				ALTER TABLE s_gtf.actionclass OWNER TO u_vitis;
+				CREATE TABLE category (    category_id integer NOT NULL,    name character varying(50),    description character varying(200));
+				ALTER TABLE s_gtf.category OWNER TO u_vitis;
+				COMMENT ON TABLE category IS 'Allow workspace grouping ';
+				CREATE SEQUENCE seq_common    START WITH 1    INCREMENT BY 1    NO MINVALUE    NO MAXVALUE    CACHE 1;
+				ALTER TABLE s_gtf.seq_common OWNER TO u_vitis;
+				CREATE TABLE email_template (    email_template_id integer DEFAULT nextval('seq_common'::regclass) NOT NULL,    name character varying(60),    subject text,    body text,    "to" text,    cc text,    cci text,    code text,    use_advanced boolean DEFAULT false,    rt_emailcontext_id character varying(20),    attachment character varying(255));
+				ALTER TABLE s_gtf.email_template OWNER TO u_vitis;
+				CREATE TABLE fme_engine (    fme_engine_id integer DEFAULT nextval('seq_common'::regclass) NOT NULL,    name character varying(50),    server_id integer,    local_path character varying(255));
+				ALTER TABLE s_gtf.fme_engine OWNER TO u_vitis;
+				COMMENT ON TABLE fme_engine IS 'Case of FME desktop being used by a GTF engine';
+				COMMENT ON COLUMN fme_engine.fme_engine_id IS 'uses public.seq_common';
+				COMMENT ON COLUMN fme_engine.name IS 'Suggested structure : "FME <year> <spx> <x86|x64> on Localhost" for local engines or "FME <year> <spx> <x86|x64> on <HOST>" for distributed engines.';
+				COMMENT ON COLUMN fme_engine.local_path IS 'Full path (dos format) of the FME engine including the file name (C:/PROGRA~1/FME/fme.exe). For distributed engines, path must be related to the host (also C:/PROGRA~1/FME/fme.exe).';
+				CREATE TABLE gtf_engine (    gtf_engine_id smallint NOT NULL,    name character varying(50) NOT NULL,    period integer DEFAULT 5 NOT NULL,    enabled boolean DEFAULT false NOT NULL,    fme_engine_id integer,    server_id integer,    tags text);
+				ALTER TABLE s_gtf.gtf_engine OWNER TO u_vitis;
+				COMMENT ON TABLE gtf_engine IS 'Engines which processes orders';
+				COMMENT ON COLUMN gtf_engine.gtf_engine_id IS 'Must be a sequential number starting with 1.';
+				COMMENT ON COLUMN gtf_engine.name IS 'Suggested structure : "FME <year> <spx> <x86|x64>" for local engines or "FME <year> <spx> <x86|x64> on <HOST>" for distributed engines.';
+				COMMENT ON COLUMN gtf_engine.period IS 'Running period in minutes.';
+				CREATE TABLE inbox (    inbox_id integer NOT NULL,    name character varying(255) NOT NULL,    alias character varying(255));
+				ALTER TABLE s_gtf.inbox OWNER TO u_vitis;
+				CREATE TABLE inbox_group (    group_id integer NOT NULL,    inbox_id integer NOT NULL);
+				ALTER TABLE s_gtf.inbox_group OWNER TO u_vitis;
+				CREATE TABLE job (    job_id integer DEFAULT nextval('seq_common'::regclass) NOT NULL,    order_id integer NOT NULL,    workspace_id integer NOT NULL,    user_id integer NOT NULL,    length_sec integer,    engine_id integer,    order_status_id integer,    execution_date timestamp without time zone,    workspace character varying(100),    login character varying(50),    engine character varying(100),    order_status character varying(100));
+				ALTER TABLE s_gtf.job OWNER TO u_vitis;
+				COMMENT ON TABLE job IS 'Statistical information about processing time of orders';
+				CREATE TABLE message (    message_id integer DEFAULT nextval('seq_common'::regclass) NOT NULL,    messageclass character varying(100),    creation_date timestamp with time zone DEFAULT now(),    body text,    sender character varying(100) DEFAULT "current_user"(),    status integer DEFAULT 1,    order_id integer);
+				ALTER TABLE s_gtf.message OWNER TO u_vitis;
+				COMMENT ON TABLE message IS 'Messages sent by GTF or it''s processes';
+				CREATE TABLE messageclass (    messageclass character varying(100) NOT NULL,    messageclass_type character varying(20) NOT NULL);
+				ALTER TABLE s_gtf.messageclass OWNER TO u_vitis;
+				CREATE TABLE messageclass_action (    messageclass_action_id integer NOT NULL,    messageclass character varying(100),    actionclass character varying(50),    index integer,    parameters text);
+				ALTER TABLE s_gtf.messageclass_action OWNER TO u_vitis;
+				CREATE TABLE "order" (    order_id integer NOT NULL,    priority_id smallint,    workspace_id integer,    order_status_id integer DEFAULT 1,    user_id integer,    period_id integer,    wk_params text,    result_url character varying(255),    order_date timestamp without time zone DEFAULT now(),    log_url character varying(255),    execution_date timestamp without time zone,    email_notifications text,    attempt integer,    email_option_id integer,    deleted boolean DEFAULT false,    gtf_engine_id smallint DEFAULT 0,    survey_id integer,    condition character varying(255),    enabled boolean,    length_sec integer,    inbox_id integer);
+				ALTER TABLE s_gtf."order" OWNER TO u_vitis;
+				COMMENT ON TABLE "order" IS 'Processing request';
+				COMMENT ON COLUMN "order".result_url IS 'Relative link to result file';
+				COMMENT ON COLUMN "order".log_url IS 'Relative link to fme log file';
+				COMMENT ON COLUMN "order".email_notifications IS 'Email notifications recipient';
+				COMMENT ON COLUMN "order".deleted IS 'Indicates suppression';
+				COMMENT ON COLUMN "order".length_sec IS 'Length in Seconde of the last related job.';
+				CREATE TABLE period (    period_id integer NOT NULL,    cron_expression text NOT NULL,    name character varying(40) NOT NULL,    enabled boolean);
+				ALTER TABLE s_gtf.period OWNER TO u_vitis;
+				CREATE TABLE rt_action (    action_id smallint NOT NULL,    label_id character varying(60));
+				ALTER TABLE s_gtf.rt_action OWNER TO u_vitis;
+				COMMENT ON TABLE rt_action IS 'Action to be carried out after processing';
+				CREATE TABLE rt_email_option (    email_option_id smallint NOT NULL,    label_id character varying(60));
+				ALTER TABLE s_gtf.rt_email_option OWNER TO u_vitis;
+				COMMENT ON TABLE rt_email_option IS 'Success / Failure confirmation';
+				CREATE TABLE rt_emailcontext (    rt_emailcontext_id character varying(20) NOT NULL);
+				ALTER TABLE s_gtf.rt_emailcontext OWNER TO u_vitis;
+				CREATE TABLE rt_messageclass_type (    messageclass_type character varying(20) NOT NULL);
+				ALTER TABLE s_gtf.rt_messageclass_type OWNER TO u_vitis;
+				CREATE TABLE rt_order_status (    order_status_id integer NOT NULL,    label_id character varying(60));
+				ALTER TABLE s_gtf.rt_order_status OWNER TO u_vitis;
+				CREATE TABLE rt_priority (    priority_id smallint NOT NULL,    label_id character varying(60));
+				ALTER TABLE s_gtf.rt_priority OWNER TO u_vitis;
+				COMMENT ON TABLE rt_priority IS 'Defines the priority level of an order.';
+				CREATE TABLE rt_survey_type (    survey_id integer NOT NULL,    label_id character varying(60));
+				ALTER TABLE s_gtf.rt_survey_type OWNER TO u_vitis;
+				CREATE TABLE rt_tag (    tag character varying(100) NOT NULL);
+				ALTER TABLE s_gtf.rt_tag OWNER TO u_vitis;
+				CREATE SEQUENCE seq_order    START WITH 1    INCREMENT BY 1    NO MINVALUE    NO MAXVALUE    CACHE 1;
+				ALTER TABLE s_gtf.seq_order OWNER TO u_vitis;
+				CREATE SEQUENCE seq_translation    START WITH 1    INCREMENT BY 1    NO MINVALUE    NO MAXVALUE    CACHE 1;
+				ALTER TABLE s_gtf.seq_translation OWNER TO u_vitis;
+				CREATE TABLE server (    server_id integer DEFAULT nextval('seq_common'::regclass) NOT NULL,    hostname character varying(50) NOT NULL,    scheduler_network_home character varying(255),    engines_home character varying(255));
+				ALTER TABLE s_gtf.server OWNER TO u_vitis;
+				COMMENT ON COLUMN server.hostname IS 'hostname or ip adress. Must be ''LOCALHOST'' for the localhost server.';
+				COMMENT ON COLUMN server.scheduler_network_home IS 'Network path of the pycron directory. Can be a local path for the localhost server (c:\pycron) or a network path for distributed server (\\ROUSSILLON\pycron)';
+				COMMENT ON COLUMN server.engines_home IS 'Network path to the "gtf.engines" directory.';
+				CREATE VIEW v_email_option AS    SELECT rt_email_option.email_option_id, vm_translation.translation AS email_option_label, vm_translation.lang FROM (rt_email_option JOIN s_vitis.vm_translation ON (((vm_translation.translation_id)::text = (rt_email_option.label_id)::text)));
+				ALTER TABLE s_gtf.v_email_option OWNER TO u_vitis;
+				CREATE VIEW v_fme_engine AS    SELECT fme_engine.fme_engine_id, fme_engine.name, fme_engine.server_id, fme_engine.local_path, server.hostname AS server_name FROM (fme_engine LEFT JOIN server ON ((fme_engine.server_id = server.server_id)));
+				ALTER TABLE s_gtf.v_fme_engine OWNER TO u_vitis;
+				CREATE VIEW v_gtf_engine AS    SELECT gtf_engine.gtf_engine_id, gtf_engine.name, gtf_engine.period, gtf_engine.enabled, gtf_engine.server_id, gtf_engine.fme_engine_id, server.hostname AS server_name, fme_engine.name AS fme_name, gtf_engine.tags FROM ((gtf_engine LEFT JOIN server ON ((gtf_engine.server_id = server.server_id))) LEFT JOIN fme_engine ON ((gtf_engine.fme_engine_id = fme_engine.fme_engine_id)));
+				ALTER TABLE s_gtf.v_gtf_engine OWNER TO u_vitis;
+				CREATE VIEW v_inbox AS    SELECT DISTINCT inbox.inbox_id, replace((inbox.name)::text, '$user'::text, ("user".login)::text) AS name, replace((inbox.alias)::text, '$user'::text, ("user".login)::text) AS alias FROM inbox, inbox_group, s_vitis."group", s_vitis.user_group, s_vitis."user" WHERE (((((inbox.inbox_id = inbox_group.inbox_id) AND (inbox_group.group_id = "group".group_id)) AND ("group".group_id = user_group.group_id)) AND (user_group.user_id = "user".user_id)) AND (("user".login)::name = "current_user"()));
+				ALTER TABLE s_gtf.v_inbox OWNER TO u_vitis;
+				CREATE VIEW v_message AS    SELECT message.message_id, message.messageclass, message.creation_date, message.body, message.sender, messageclass.messageclass_type, message.status FROM (message LEFT JOIN messageclass ON (((message.messageclass)::text = (messageclass.messageclass)::text)));
+				ALTER TABLE s_gtf.v_message OWNER TO u_vitis;
+				CREATE TABLE workspace (    workspace_id integer NOT NULL,    name character varying(100) NOT NULL,    owner integer,    creation_date date,    description text,    subscription boolean DEFAULT false,    fmw_file character varying(150),    category_id integer,    success_action_id integer DEFAULT 0 NOT NULL,    failed_action_id integer DEFAULT 0 NOT NULL,    survey boolean DEFAULT false,    form_type character varying(10),    legal_terms_conditions text,    last_save_date timestamp without time zone,    last_save_build character varying(255),    file_encoding character varying(50),    title character varying(255),    requirements text,    history text,    usage text,    key character varying(40),    email_template_id integer,    locked boolean DEFAULT false,    tag character varying(100) DEFAULT 'default'::character varying);
+				ALTER TABLE s_gtf.workspace OWNER TO u_vitis;
+				COMMENT ON COLUMN workspace.subscription IS 'Peut-on s''abonner au traitement ?';
+				COMMENT ON COLUMN workspace.fmw_file IS 'Emplacement du fichier fmw associé au traitement';
+				CREATE VIEW v_order AS    SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, s2hms("order".length_sec) AS length_sec, priority_translation.translation AS priority_label, email_option_translation.translation AS email_option_label, priority_translation.lang, gtf_engine.name, order_status_translation.translation AS order_status_label FROM (((((((((("order" LEFT JOIN workspace ON (("order".workspace_id = workspace.workspace_id))) LEFT JOIN period ON (("order".period_id = period.period_id))) LEFT JOIN s_vitis."user" ON (("user".user_id = "order".user_id))) LEFT JOIN rt_priority ON (("order".priority_id = rt_priority.priority_id))) LEFT JOIN s_vitis.vm_translation priority_translation ON (((rt_priority.label_id)::text = (priority_translation.translation_id)::text))) LEFT JOIN rt_email_option ON (("order".email_option_id = rt_email_option.email_option_id))) LEFT JOIN s_vitis.vm_translation email_option_translation ON (((rt_email_option.label_id)::text = (email_option_translation.translation_id)::text))) LEFT JOIN rt_order_status ON (("order".order_status_id = rt_order_status.order_status_id))) LEFT JOIN s_vitis.vm_translation order_status_translation ON ((((rt_order_status.label_id)::text = (order_status_translation.translation_id)::text) AND ((priority_translation.lang)::text = (order_status_translation.lang)::text)))) LEFT JOIN gtf_engine ON (("order".gtf_engine_id = gtf_engine.gtf_engine_id))) WHERE (("order".period_id IS NULL) AND ((priority_translation.lang)::text = (email_option_translation.lang)::text));
+				ALTER TABLE s_gtf.v_order OWNER TO u_vitis;
+				CREATE VIEW v_order_status AS    SELECT rt_order_status.order_status_id, vm_translation.translation AS order_status_label, vm_translation.lang FROM (rt_order_status JOIN s_vitis.vm_translation ON (((vm_translation.translation_id)::text = (rt_order_status.label_id)::text)));
+				ALTER TABLE s_gtf.v_order_status OWNER TO u_vitis;
+				CREATE VIEW v_priority AS    SELECT rt_priority.priority_id, vm_translation.translation AS priority_label, vm_translation.lang FROM (rt_priority JOIN s_vitis.vm_translation ON (((vm_translation.translation_id)::text = (rt_priority.label_id)::text)));
+				ALTER TABLE s_gtf.v_priority OWNER TO u_vitis;
+				CREATE VIEW v_ra_members_group AS    SELECT count(*) AS nb_members, user_group.group_id FROM s_vitis.user_group GROUP BY user_group.group_id;
+				ALTER TABLE s_gtf.v_ra_members_group OWNER TO u_vitis;
+				CREATE VIEW v_ra_order AS    SELECT count(*) AS nb_demande, "order".workspace_id FROM "order" GROUP BY "order".workspace_id;
+				ALTER TABLE s_gtf.v_ra_order OWNER TO u_vitis;
+				CREATE VIEW v_subscription AS    SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, "order".enabled, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, email_option_translation.translation AS notification, email_option_translation.lang FROM ((((("order" LEFT JOIN workspace ON (("order".workspace_id = workspace.workspace_id))) LEFT JOIN period ON (("order".period_id = period.period_id))) LEFT JOIN s_vitis."user" ON (("user".user_id = "order".user_id))) LEFT JOIN rt_email_option ON (("order".email_option_id = rt_email_option.email_option_id))) LEFT JOIN s_vitis.vm_translation email_option_translation ON (((rt_email_option.label_id)::text = (email_option_translation.translation_id)::text))) WHERE (("order".period_id IS NOT NULL) AND ("order".survey_id IS NULL));
+				ALTER TABLE s_gtf.v_subscription OWNER TO u_vitis;
+				CREATE VIEW v_survey AS    SELECT "order".order_id, workspace.key AS workspace_key, "order".priority_id, "order".workspace_id, "order".enabled, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, "order".survey_id, "order".condition, inbox.alias AS warehouse_name, email_option_translation.translation AS notification, email_option_translation.lang, survey_type_translation.translation AS survey_name FROM (((((((("order" LEFT JOIN workspace ON (("order".workspace_id = workspace.workspace_id))) LEFT JOIN period ON (("order".period_id = period.period_id))) LEFT JOIN s_vitis."user" ON (("user".user_id = "order".user_id))) LEFT JOIN inbox ON (("order".inbox_id = inbox.inbox_id))) LEFT JOIN rt_email_option ON (("order".email_option_id = rt_email_option.email_option_id))) LEFT JOIN s_vitis.vm_translation email_option_translation ON (((rt_email_option.label_id)::text = (email_option_translation.translation_id)::text))) LEFT JOIN rt_survey_type ON (("order".survey_id = rt_survey_type.survey_id))) LEFT JOIN s_vitis.vm_translation survey_type_translation ON (((rt_survey_type.label_id)::text = (survey_type_translation.translation_id)::text))) WHERE ((("order".period_id IS NOT NULL) AND ("order".survey_id = 1)) AND ((email_option_translation.lang)::text = (survey_type_translation.lang)::text));
+				ALTER TABLE s_gtf.v_survey OWNER TO u_vitis;
+				CREATE VIEW v_supervision_status AS    (SELECT count(v_order.order_id) AS nb_order_id, v_order.order_status_id AS filter, 'order'::text AS table_name FROM v_order WHERE ((v_order.lang)::text = 'fr'::text) GROUP BY v_order.order_status_id UNION SELECT count(v_subscription.order_id) AS nb_order_id, CASE WHEN (v_subscription.enabled IS TRUE) THEN 1 ELSE 0 END AS filter, 'subscription'::text AS table_name FROM v_subscription WHERE ((v_subscription.lang)::text = 'fr'::text) GROUP BY v_subscription.enabled) UNION SELECT count(v_survey.order_id) AS nb_order_id, CASE WHEN (v_survey.enabled IS TRUE) THEN 1 ELSE 0 END AS filter, 'survey'::text AS table_name FROM v_survey WHERE ((v_survey.lang)::text = 'fr'::text) GROUP BY v_survey.enabled;
+				ALTER TABLE s_gtf.v_supervision_status OWNER TO u_vitis;
+				CREATE VIEW v_survey_type AS    SELECT rt_survey_type.survey_id, vm_translation.translation AS survey_label, vm_translation.lang FROM (rt_survey_type JOIN s_vitis.vm_translation ON (((rt_survey_type.label_id)::text = (vm_translation.translation_id)::text)));
+				ALTER TABLE s_gtf.v_survey_type OWNER TO u_vitis;
+				CREATE VIEW v_user AS    SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id FROM (s_vitis."user" LEFT JOIN s_vitis.domain ON (("user".domain_id = domain.domain_id)));
+				ALTER TABLE s_gtf.v_user OWNER TO u_vitis;
+				CREATE VIEW v_user_order AS    SELECT "order".order_id, "order".priority_id, workspace.key AS workspace_key, "order".workspace_id, workspace.name, "order".order_status_id, "order".user_id, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, s2hms("order".length_sec) AS length_sec, workspace.name AS workspace_name, priority_translation.translation AS priority_label, email_option_translation.translation AS email_option_label, priority_translation.lang, order_status_translation.lang AS order_status_lang, order_status_translation.translation AS order_status_label FROM ((((((("order" LEFT JOIN workspace ON (("order".workspace_id = workspace.workspace_id))) LEFT JOIN rt_priority ON (("order".priority_id = rt_priority.priority_id))) LEFT JOIN rt_order_status ON (("order".order_status_id = rt_order_status.order_status_id))) LEFT JOIN s_vitis.vm_translation priority_translation ON (((rt_priority.label_id)::text = (priority_translation.translation_id)::text))) LEFT JOIN rt_email_option ON (("order".email_option_id = rt_email_option.email_option_id))) LEFT JOIN s_vitis.vm_translation email_option_translation ON (((rt_email_option.label_id)::text = (email_option_translation.translation_id)::text))) LEFT JOIN s_vitis.vm_translation order_status_translation ON (((rt_order_status.label_id)::text = (order_status_translation.translation_id)::text))) WHERE (((((("order".user_id)::text ~ similar_escape(((SELECT "user".user_id FROM s_vitis."user" WHERE (("user".login)::name = "current_user"())))::text, NULL::text)) AND ("order".period_id IS NULL)) AND ("order".deleted IS NOT TRUE)) AND ((priority_translation.lang)::text = (email_option_translation.lang)::text)) AND ((priority_translation.lang)::text = (order_status_translation.lang)::text));
+				ALTER TABLE s_gtf.v_user_order OWNER TO u_vitis;
+				CREATE VIEW v_user_subscription AS    SELECT "order".order_id, "order".workspace_id, workspace.key AS workspace_key, "order".enabled, workspace.name AS label_name, "order".order_status_id, "order".user_id, "order".period_id, "order".order_date, "order".execution_date, "order".wk_params, "order".result_url, "order".email_option_id, "order".email_notifications, "order".gtf_engine_id, workspace.name AS workspace_name, email_option_translation.translation AS notification, period.name AS order_period_libelle, email_option_translation.lang FROM (((("order" LEFT JOIN workspace ON (("order".workspace_id = workspace.workspace_id))) LEFT JOIN rt_email_option ON (("order".email_option_id = rt_email_option.email_option_id))) LEFT JOIN s_vitis.vm_translation email_option_translation ON (((rt_email_option.label_id)::text = (email_option_translation.translation_id)::text))) LEFT JOIN period ON (("order".period_id = period.period_id))) WHERE (((("order".user_id)::text ~ similar_escape(((SELECT "user".user_id FROM s_vitis."user" WHERE (("user".login)::name = "current_user"())))::text, NULL::text)) AND ("order".period_id IS NOT NULL)) AND ("order".survey_id IS NULL));
+				ALTER TABLE s_gtf.v_user_subscription OWNER TO u_vitis;
+				COMMENT ON COLUMN v_user_subscription.label_name IS 'Deprecated';
+				CREATE VIEW v_user_survey AS    SELECT "order".order_id, workspace.key AS workspace_key, "order".workspace_id, workspace.name AS label_name, "order".enabled, "order".order_status_id, "order".user_id, "order".period_id, "order".order_date, "order".execution_date, "order".wk_params, "order".result_url, "order".email_option_id, "order".email_notifications, "order".gtf_engine_id, "order".survey_id, "order".condition, "order".inbox_id, inbox.alias AS name, workspace.name AS workspace_name, "order".survey_id AS monitoring_type, email_option_translation.translation AS notification, email_option_translation.lang, period.name AS order_period_libelle, survey_type_translation.translation AS survey_name FROM ((((((("order" LEFT JOIN workspace ON (("order".workspace_id = workspace.workspace_id))) LEFT JOIN rt_email_option ON (("order".email_option_id = rt_email_option.email_option_id))) LEFT JOIN s_vitis.vm_translation email_option_translation ON (((rt_email_option.label_id)::text = (email_option_translation.translation_id)::text))) LEFT JOIN period ON (("order".period_id = period.period_id))) LEFT JOIN inbox ON (("order".inbox_id = inbox.inbox_id))) LEFT JOIN rt_survey_type ON (("order".survey_id = rt_survey_type.survey_id))) LEFT JOIN s_vitis.vm_translation survey_type_translation ON (((rt_survey_type.label_id)::text = (survey_type_translation.translation_id)::text))) WHERE ((((("order".user_id)::text ~ similar_escape(((SELECT "user".user_id FROM s_vitis."user" WHERE (("user".login)::name = "current_user"())))::text, NULL::text)) AND ("order".period_id IS NOT NULL)) AND ("order".survey_id = 1)) AND ((email_option_translation.lang)::text = (survey_type_translation.lang)::text));
+				ALTER TABLE s_gtf.v_user_survey OWNER TO u_vitis;
+				COMMENT ON COLUMN v_user_survey.label_name IS 'Deprecated';
+				COMMENT ON COLUMN v_user_survey.survey_id IS 'Deprecated';
+				CREATE TABLE workspace_group (  workspace_id integer NOT NULL,    group_id integer NOT NULL,    workspace_group_id integer NOT NULL);
+				ALTER TABLE s_gtf.workspace_group OWNER TO u_vitis;
+				CREATE VIEW v_user_workspace AS   SELECT DISTINCT workspace.workspace_id, workspace.name, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.survey FROM workspace, workspace_group, s_vitis."group", s_vitis.user_group, s_vitis."user" WHERE (((((workspace.workspace_id = workspace_group.workspace_id) AND (workspace_group.group_id = "group".group_id)) AND ("group".group_id = user_group.group_id)) AND (user_group.user_id = "user".user_id)) AND (("user".login)::name = "current_user"())) ORDER BY workspace.workspace_id, workspace.name, workspace.description, workspace.subscription, workspace.fmw_file;
+				ALTER TABLE s_gtf.v_user_workspace OWNER TO u_vitis;
+				CREATE VIEW v_workspace AS    SELECT workspace.workspace_id, workspace.name, workspace.owner, workspace.creation_date, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.success_action_id, workspace.failed_action_id, workspace.survey, workspace.form_type, workspace.legal_terms_conditions, workspace.last_save_date, workspace.last_save_build, workspace.file_encoding, workspace.title, workspace.requirements, workspace.history, workspace.usage, workspace.key, workspace.email_template_id, workspace.locked, workspace.tag, "user".login, category.name AS category_name, CASE WHEN (t.nb_demandes IS NULL) THEN (0)::bigint ELSE t.nb_demandes END AS nb_demande, email_template.name AS email_template FROM ((((workspace LEFT JOIN s_vitis."user" ON ((workspace.owner = "user".user_id))) LEFT JOIN category ON ((workspace.category_id = category.category_id))) LEFT JOIN email_template ON ((workspace.email_template_id = email_template.email_template_id))) LEFT JOIN (SELECT count(*) AS nb_demandes, v_order.workspace_id FROM v_order WHERE ((v_order.lang)::text = 'fr'::text) GROUP BY v_order.workspace_id) t ON ((workspace.workspace_id = t.workspace_id)));
+				ALTER TABLE s_gtf.v_workspace OWNER TO u_vitis;
+				CREATE TABLE version (    version character varying(10) NOT NULL,    build integer NOT NULL,    date timestamp with time zone NOT NULL,    active boolean);
+				ALTER TABLE s_gtf.version OWNER TO u_vitis;
+				INSERT INTO actionclass (actionclass, label) VALUES ('BoAction', '<p>Notification d''un changement d''état.<br /><br />Définir les paramètres de la méthode : <br /><strong>bo_id_attribute</strong> = Attribut identifiant de la classe métier (généralement bo_id).<br /><strong>method</strong> = nom de la méthode de la classe métier à exécuter.<br /><strong>class</strong> = Nom de la classe métier.<br /><strong>module</strong> = Nom du module.<br /><br />Exemple :<br />bo_id_attribute=bo_id<br />method=trConforme<br />class=plan<br />module=contrôle</p>');
+				INSERT INTO actionclass (actionclass, label) VALUES ('EmailAction', '<p>Notification de traitement d''une demande en fournissant le corps du email.<br /><br />Définir les paramètres de la méthode :<br /><strong>template_id</strong> = identifiant du modèle d''email.<br /><br />Exemple :<br />template_id=8</p>');
+				INSERT INTO s_vitis."group" ("group_id", "name") VALUES ((select nextval('s_vitis.seq_common'::regclass)), 'Administration');
+				INSERT INTO s_gtf.period (period_id, cron_expression, name, enabled) VALUES ((select nextval('s_gtf.seq_common'::regclass)), '0 23 * * *', 'Tous les jours à 23h', true);
+				INSERT INTO s_gtf.period (period_id, cron_expression, name, enabled) VALUES ((select nextval('s_gtf.seq_common'::regclass)), '0 23 * * mon', 'Toutes les semaines (le lundi à 23h)', true);
+				INSERT INTO s_gtf.period (period_id, cron_expression, name, enabled) VALUES ((select nextval('s_gtf.seq_common'::regclass)), '0 23 1 * *', 'Tous les mois (le 1er du mois à 23h)', true);
+				INSERT INTO s_gtf.period (period_id, cron_expression, name, enabled) VALUES ((select nextval('s_gtf.seq_common'::regclass)), '*/5 * * * *', 'Toutes les 5 minutes', true);
+				INSERT INTO s_gtf.category (category_id, name, description) VALUES ((select nextval('s_gtf.seq_common'::regclass)), 'Administration', 'Regroupe tous les traitements d''administration de GTF : nettoyage des fichiers temporaires, sauvegarde, import, export...');
+				INSERT INTO s_gtf.category (category_id, name, description) VALUES ((select nextval('s_gtf.seq_common'::regclass)), 'Conversion', 'Regroupe les traitements de conversion de format de fichiers');
+				INSERT INTO s_gtf.category (category_id, name, description) VALUES ((select nextval('s_gtf.seq_common'::regclass)), 'Contrôle', 'Regroupe les traitements permettant de vérifier la conformité d''un jeu de données dans une démarche de contrôle qualité.');
+				INSERT INTO s_gtf.category (category_id, name, description) VALUES ((select nextval('s_gtf.seq_common'::regclass)), 'Extraction', 'Regroupe les traitements permettant d''extraire sous forme de fichiers des informations provenant d''une base de données.');
+				INSERT INTO s_gtf.category (category_id, name, description) VALUES ((select nextval('s_gtf.seq_common'::regclass)), 'Rapport', 'Regroupe les traitements permettant de générer des rapports, graphiques ou synthèses dans des formats de type MS-Excel, MS-Word ou Adobe PDF.');
+				INSERT INTO s_gtf.workspace (workspace_id, name, description, subscription, fmw_file, category_id, success_action_id, failed_action_id, survey, form_type, key, tag) VALUES (-1, 'Admin-Export', 'Export des traitements de GTF', false,  'exportv3.fmw', (select category_id from s_gtf.category where name = 'Administration'), 0, 0, false, 'custom', 'CTLPASPAD',  'default');
+				INSERT INTO s_gtf.workspace (workspace_id, name, description, subscription, fmw_file, category_id, success_action_id, failed_action_id, survey, form_type, legal_terms_conditions, last_save_date, last_save_build, file_encoding, title, requirements, history, usage, key, tag) VALUES (-2, 'Admin-Import', '<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Import de traitements GEX dans GTF </p>', false, 'importv3.fmw', (select category_id from s_gtf.category where name = 'Administration'), 0, 0, false, 'custom', '', '2014-03-07 09:31:18', 'FME(R) 2013 SP4 (20131025 - Build 13547 - WIN32)', '', 'Import GTF', '<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">    <li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">GTF</li></ul><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">    <li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">FME 2013 </li></ul>', '20140306,M.<space>Ambrosy,Refonte<space>et<space>gestion<space>des<space>m<u00e9>tadonn<u00e9>es,20140307,M.<space>Ambrosy,D<u00e9>sactivation<space>des<space>groupes', '', 'CTLPATE81', 'default');
+				INSERT INTO s_gtf.email_template (email_template_id, name, subject, "body", "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) SELECT 1, 'default', 'Notification de fin de traitement [order_id]', '<p>order.user.email = [order.user.email]</p> <p> </p> <p> </p> <p>Bonjour [owner_name],</p> <p>Le traitement est terminé.</p> <p>Vous pouvez télécharger le résultat sur :</p> <p>user_email] = [user_email]</p> <p>user] = [user]</p> <p>log = [log_url]</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p>', 'tot@veremes.com', NULL, NULL, E'$logo = $this->aProperties[''ws_data_dir'']."/gtf/gtf.png";\n$base64 = base64_encode(file_get_contents($logo));\n$image = ''<img src="data:image/png;base64,''.$base64.''">'';\n$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';\n$this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';\n$this->cci = '''';\n$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '''';\n$this->body = $image.''<p>Bonjour,</p>'';\nif ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {\n	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Traitement réussi'';\n    $this->body .= ''<p>Votre demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> a bien été exécutée.<br/>'';\n    // les résultats de moins de 5 Mo sont envoyés en pièce jointe\n    if($this->aObjects["oOrder"]->aFields[''result_file''] != ''''){\n        if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){\n            $this->body .= ''Le résultat est disponible par téléchargement :<p><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';\n        } else {\n            $this->body .= ''<p>Le résultat est disponible en pièce jointe</p>'';\n            $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];\n        }\n    }\n} else {\n	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';\n    $this->body .= ''<p>Votre demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';\n    $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];}\n$this->body .= ''<p><span style="color: #808080;font-size: smaller;"> Ce message a été envoyé par un automate. Merci de ne pas y répondre.</span></p>'';\n', true, 'gtf', NULL WHERE NOT EXISTS (SELECT email_template_id FROM s_gtf.email_template WHERE email_template_id = '1');
+				INSERT INTO rt_action (action_id, label_id) VALUES (0, 'gtf_94');
+				INSERT INTO rt_action (action_id, label_id) VALUES (1, 'gtf_95');
+				INSERT INTO rt_action (action_id, label_id) VALUES (2, 'gtf_96');
+				INSERT INTO rt_email_option (email_option_id, label_id) VALUES (1, 'gtf_26');
+				INSERT INTO rt_email_option (email_option_id, label_id) VALUES (2, 'gtf_27');
+				INSERT INTO rt_email_option (email_option_id, label_id) VALUES (3, 'gtf_28');
+				INSERT INTO rt_email_option (email_option_id, label_id) VALUES (4, 'gtf_29');
+				INSERT INTO rt_emailcontext (rt_emailcontext_id) VALUES ('gtf');
+				INSERT INTO rt_order_status (order_status_id, label_id) VALUES (1, 'gtf_15');
+				INSERT INTO rt_order_status (order_status_id, label_id) VALUES (2, 'gtf_16');
+				INSERT INTO rt_order_status (order_status_id, label_id) VALUES (3, 'gtf_17');
+				INSERT INTO rt_order_status (order_status_id, label_id) VALUES (4, 'gtf_18');
+				INSERT INTO rt_order_status (order_status_id, label_id) VALUES (5, 'gtf_19');
+				INSERT INTO rt_order_status (order_status_id, label_id) VALUES (6, 'gtf_226');
+				INSERT INTO rt_priority (priority_id, label_id) VALUES (0, 'gtf_20');
+				INSERT INTO rt_priority (priority_id, label_id) VALUES (1, 'gtf_21');
+				INSERT INTO rt_priority (priority_id, label_id) VALUES (2, 'gtf_22');
+				INSERT INTO rt_priority (priority_id, label_id) VALUES (3, 'gtf_23');
+				INSERT INTO rt_priority (priority_id, label_id) VALUES (4, 'gtf_24');
+				INSERT INTO rt_priority (priority_id, label_id) VALUES (5, 'gtf_25');
+				INSERT INTO rt_survey_type (survey_id, label_id) VALUES (1, 'gtf_49');
+				INSERT INTO rt_tag (tag) VALUES ('default');
+				--INSERT INTO s_gtf.server VALUES (1, 'localhost', E'C:\\GTF\\server\\pycron', E'C:\\GTF\\gtf.engines');
+				INSERT INTO s_gtf.workspace_group (workspace_id, group_id, workspace_group_id) VALUES (-1, (select group_id from s_vitis.group where name = 'Administration'), (SELECT nextval('s_gtf.seq_common')));
+				INSERT INTO s_gtf.workspace_group (workspace_id, group_id, workspace_group_id) VALUES (-2, (select group_id from s_vitis.group where name = 'Administration'), (SELECT nextval('s_gtf.seq_common')));
+				ALTER TABLE ONLY rt_action  ADD CONSTRAINT pk_action_id PRIMARY KEY (action_id);
+				ALTER TABLE ONLY actionclass    ADD CONSTRAINT pk_actionclass PRIMARY KEY (actionclass);
+				ALTER TABLE ONLY category    ADD CONSTRAINT pk_category_id PRIMARY KEY (category_id);
+				ALTER TABLE ONLY rt_email_option    ADD CONSTRAINT pk_email_option_id PRIMARY KEY (email_option_id);
+				ALTER TABLE ONLY fme_engine    ADD CONSTRAINT pk_fme_engine_id PRIMARY KEY (fme_engine_id);
+				ALTER TABLE ONLY gtf_engine    ADD CONSTRAINT pk_gtf_engine_id PRIMARY KEY (gtf_engine_id);
+				ALTER TABLE ONLY inbox_group    ADD CONSTRAINT pk_inbox_group PRIMARY KEY (inbox_id, group_id);
+				ALTER TABLE ONLY inbox    ADD CONSTRAINT pk_inbox_id PRIMARY KEY (inbox_id);
+				ALTER TABLE ONLY job    ADD CONSTRAINT pk_job_id PRIMARY KEY (job_id);
+				ALTER TABLE ONLY message    ADD CONSTRAINT pk_message_id PRIMARY KEY (message_id);
+				ALTER TABLE ONLY messageclass    ADD CONSTRAINT pk_messageclass PRIMARY KEY (messageclass);
+				ALTER TABLE ONLY messageclass_action    ADD CONSTRAINT pk_messageclass_action PRIMARY KEY (messageclass_action_id);
+				ALTER TABLE ONLY rt_messageclass_type    ADD CONSTRAINT pk_messageclass_type PRIMARY KEY (messageclass_type);
+				ALTER TABLE ONLY email_template    ADD CONSTRAINT pk_notification PRIMARY KEY (email_template_id);
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT pk_order_id PRIMARY KEY (order_id);
+				ALTER TABLE ONLY rt_order_status    ADD CONSTRAINT pk_order_status_id PRIMARY KEY (order_status_id);
+				ALTER TABLE ONLY period    ADD CONSTRAINT pk_period_id PRIMARY KEY (period_id);
+				ALTER TABLE ONLY rt_priority    ADD CONSTRAINT pk_priority_id PRIMARY KEY (priority_id);
+				ALTER TABLE ONLY rt_emailcontext    ADD CONSTRAINT pk_rt_emailcontext_id PRIMARY KEY (rt_emailcontext_id);
+				ALTER TABLE ONLY server    ADD CONSTRAINT pk_server_id PRIMARY KEY (server_id);
+				ALTER TABLE ONLY rt_survey_type    ADD CONSTRAINT pk_survey_id PRIMARY KEY (survey_id);
+				ALTER TABLE ONLY rt_tag    ADD CONSTRAINT pk_tag PRIMARY KEY (tag);
+				ALTER TABLE ONLY version    ADD CONSTRAINT pk_version PRIMARY KEY (version);
+				ALTER TABLE ONLY workspace_group    ADD CONSTRAINT pk_workspace_group PRIMARY KEY (workspace_group_id);
+				ALTER TABLE ONLY workspace    ADD CONSTRAINT pk_workspace_id PRIMARY KEY (workspace_id);
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT uk_inbox UNIQUE (user_id, inbox_id, condition);
+                                ALTER TABLE s_gtf.workspace ADD CONSTRAINT uk_key UNIQUE(key);
+				CREATE INDEX fki_category_id ON workspace USING btree (category_id);
+				CREATE INDEX fki_inbox_id ON "order" USING btree (inbox_id);
+				CREATE INDEX fki_survey_id ON "order" USING btree (survey_id);
+				CREATE INDEX i_execution_date ON job USING btree (execution_date);
+				CREATE INDEX i_hostname ON server USING btree (hostname);
+				CREATE INDEX i_jengine_id ON job USING btree (engine_id);
+				CREATE INDEX i_name ON workspace USING btree (name);
+				CREATE INDEX i_order_status_id ON "order" USING btree (order_status_id);
+				CREATE INDEX i_order_status_id_job ON job USING btree (order_status_id);
+				CREATE INDEX i_period_id ON "order" USING btree (period_id);
+				CREATE INDEX i_priority_id ON "order" USING btree (priority_id);
+				CREATE INDEX i_user_id_job ON job USING btree (user_id);
+				CREATE INDEX i_user_id_order ON "order" USING btree (user_id);
+				CREATE INDEX i_workspace_id_job ON job USING btree (workspace_id);
+				CREATE INDEX i_workspace_id_order ON "order" USING btree (workspace_id);
+				CREATE UNIQUE INDEX uk_alias ON inbox USING btree (lower((alias)::text));
+				CREATE UNIQUE INDEX uk_hostname ON server USING btree (lower((hostname)::text));
+				CREATE INDEX uk_key_workspace ON workspace USING btree (lower((key)::text));
+				CREATE UNIQUE INDEX uk_name_category ON category USING btree (lower((name)::text));
+				CREATE UNIQUE INDEX uk_name_email_template ON email_template USING btree (lower((name)::text));
+				CREATE UNIQUE INDEX uk_name_fme_engine ON fme_engine USING btree (lower((name)::text));
+				CREATE UNIQUE INDEX uk_name_gtf_engine ON gtf_engine USING btree (lower((name)::text));
+				CREATE UNIQUE INDEX uk_name_inbox ON inbox USING btree (lower((name)::text));
+				CREATE UNIQUE INDEX uk_name_period ON period USING btree (lower((name)::text));
+				CREATE UNIQUE INDEX uk_name_workspace ON workspace USING btree (lower((name)::text));
+				CREATE RULE delete_v_fme_engine AS ON DELETE TO v_fme_engine DO INSTEAD DELETE FROM fme_engine WHERE (fme_engine.fme_engine_id = old.fme_engine_id);
+				CREATE RULE delete_v_gtf_engine AS ON DELETE TO v_gtf_engine DO INSTEAD DELETE FROM gtf_engine WHERE (gtf_engine.gtf_engine_id = old.gtf_engine_id);
+				CREATE RULE delete_v_order AS ON DELETE TO v_order DO INSTEAD DELETE FROM "order" WHERE ("order".order_id = old.order_id);
+				CREATE RULE delete_v_subscription AS ON DELETE TO v_subscription DO INSTEAD DELETE FROM "order" WHERE ("order".order_id = old.order_id);
+				CREATE RULE delete_v_survey AS ON DELETE TO v_survey DO INSTEAD DELETE FROM "order" WHERE ("order".order_id = old.order_id);
+				CREATE RULE delete_v_user AS ON DELETE TO v_user DO INSTEAD DELETE FROM s_vitis."user" WHERE ("user".user_id = old.user_id);
+				CREATE RULE delete_v_user_order AS ON DELETE TO v_user_order DO INSTEAD UPDATE "order" SET deleted = true WHERE ("order".order_id = old.order_id);
+				CREATE RULE delete_v_user_subscription AS ON DELETE TO v_user_subscription DO INSTEAD DELETE FROM "order" WHERE ("order".order_id = old.order_id);
+				CREATE RULE delete_v_user_survey AS ON DELETE TO v_user_survey DO INSTEAD DELETE FROM "order" WHERE ("order".order_id = old.order_id);
+				CREATE RULE insert_v_fme_engine AS ON INSERT TO v_fme_engine DO INSTEAD INSERT INTO fme_engine (fme_engine_id, name, server_id, local_path) VALUES (new.fme_engine_id, new.name, new.server_id, new.local_path);
+				CREATE RULE insert_v_gtf_engine AS ON INSERT TO v_gtf_engine DO INSTEAD INSERT INTO gtf_engine (gtf_engine_id, name, period, enabled, fme_engine_id, server_id, tags) VALUES (new.gtf_engine_id, new.name, new.period, new.enabled, new.fme_engine_id, new.server_id, new.tags);
+				CREATE RULE insert_v_user AS ON INSERT TO v_user DO INSTEAD INSERT INTO s_vitis."user" (user_id, login, domain_id, name, email, company, department, ip_constraint) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint);
+				CREATE RULE insert_v_user_order AS ON INSERT TO v_user_order DO INSTEAD INSERT INTO "order" (order_id, priority_id, workspace_id, user_id, wk_params, result_url, log_url, execution_date, attempt, email_notifications, email_option_id, deleted, gtf_engine_id) VALUES (new.order_id, new.priority_id, new.workspace_id, new.user_id, new.wk_params, new.result_url, new.log_url, new.execution_date, new.attempt, new.email_notifications, new.email_option_id, false, new.gtf_engine_id);
+				CREATE RULE insert_v_user_subscription AS ON INSERT TO v_user_subscription DO INSTEAD INSERT INTO "order" (order_id, workspace_id, user_id, period_id, execution_date, wk_params, result_url, email_option_id, email_notifications, gtf_engine_id, enabled) VALUES (new.order_id, new.workspace_id, new.user_id, new.period_id, new.execution_date, new.wk_params, new.result_url, new.email_option_id, new.email_notifications, new.gtf_engine_id, new.enabled);
+				CREATE RULE insert_v_user_survey AS ON INSERT TO v_user_survey DO INSTEAD INSERT INTO "order" (order_id, workspace_id, user_id, enabled, period_id, execution_date, wk_params, result_url, email_option_id, email_notifications, gtf_engine_id, survey_id, condition, inbox_id) VALUES (new.order_id, new.workspace_id, new.user_id, new.enabled, new.period_id, new.execution_date, new.wk_params, new.result_url, new.email_option_id, new.email_notifications, new.gtf_engine_id, new.survey_id, CASE WHEN (new.condition IS NULL) THEN ''::character varying ELSE new.condition END, new.inbox_id);
+				CREATE RULE update_v_fme_engine AS ON UPDATE TO v_fme_engine DO INSTEAD UPDATE fme_engine SET fme_engine_id = new.fme_engine_id, name = new.name, server_id = new.server_id, local_path = new.local_path WHERE (fme_engine.fme_engine_id = new.fme_engine_id);
+				CREATE RULE update_v_gtf_engine AS ON UPDATE TO v_gtf_engine DO INSTEAD UPDATE gtf_engine SET name = new.name, period = new.period, enabled = new.enabled, fme_engine_id = new.fme_engine_id, server_id = new.server_id, tags = new.tags WHERE (gtf_engine.gtf_engine_id = new.gtf_engine_id);
+				CREATE RULE update_v_user AS ON UPDATE TO v_user DO INSTEAD UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint WHERE ("user".user_id = new.user_id);
+				CREATE RULE update_v_user_subscription AS ON UPDATE TO v_user_subscription DO INSTEAD UPDATE "order" SET workspace_id = new.workspace_id, enabled = new.enabled, order_status_id = new.order_status_id, period_id = new.period_id, execution_date = new.execution_date, wk_params = new.wk_params, email_option_id = new.email_option_id, email_notifications = new.email_notifications WHERE ("order".order_id = new.order_id);
+				CREATE RULE update_v_user_survey AS ON UPDATE TO v_user_survey DO INSTEAD UPDATE "order" SET order_id = new.order_id, workspace_id = new.workspace_id, enabled = new.enabled, order_status_id = new.order_status_id, user_id = new.user_id, period_id = new.period_id, order_date = new.order_date, execution_date = new.execution_date, wk_params = new.wk_params, result_url = new.result_url, email_option_id = new.email_option_id, email_notifications = new.email_notifications, gtf_engine_id = new.gtf_engine_id, survey_id = new.survey_id, condition = CASE WHEN (new.condition IS NULL) THEN ''::character varying ELSE new.condition END, inbox_id = new.inbox_id WHERE ("order".order_id = new.order_id);
+				CREATE TRIGGER before_insert_job BEFORE INSERT ON job FOR EACH ROW EXECUTE PROCEDURE finish_new_job();
+				ALTER TABLE ONLY messageclass_action    ADD CONSTRAINT fk_actionclass FOREIGN KEY (actionclass) REFERENCES actionclass(actionclass) ON UPDATE RESTRICT ON DELETE RESTRICT;
+				ALTER TABLE ONLY workspace    ADD CONSTRAINT fk_category_id FOREIGN KEY (category_id) REFERENCES category(category_id);
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_email_option_id FOREIGN KEY (email_option_id) REFERENCES rt_email_option(email_option_id) ON UPDATE RESTRICT ON DELETE CASCADE;
+				ALTER TABLE ONLY workspace    ADD CONSTRAINT fk_email_template_id FOREIGN KEY (email_template_id) REFERENCES email_template(email_template_id);
+				ALTER TABLE ONLY workspace    ADD CONSTRAINT fk_failed_action_id FOREIGN KEY (failed_action_id) REFERENCES rt_action(action_id) ON UPDATE RESTRICT ON DELETE RESTRICT;
+				ALTER TABLE ONLY gtf_engine    ADD CONSTRAINT fk_fme_engine_id FOREIGN KEY (fme_engine_id) REFERENCES fme_engine(fme_engine_id) ON UPDATE CASCADE ON DELETE CASCADE;
+				ALTER TABLE ONLY inbox_group    ADD CONSTRAINT fk_group_id FOREIGN KEY (group_id) REFERENCES s_vitis."group"(group_id) ON DELETE CASCADE;
+				ALTER TABLE ONLY workspace_group    ADD CONSTRAINT fk_group_id_workspace FOREIGN KEY (group_id) REFERENCES s_vitis."group"(group_id) ON UPDATE RESTRICT ON DELETE CASCADE;
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_inbox_id FOREIGN KEY (inbox_id) REFERENCES inbox(inbox_id);
+				ALTER TABLE ONLY inbox_group    ADD CONSTRAINT fk_inbox_id FOREIGN KEY (inbox_id) REFERENCES inbox(inbox_id) ON DELETE CASCADE;
+				ALTER TABLE ONLY messageclass    ADD CONSTRAINT fk_message_class_type FOREIGN KEY (messageclass_type) REFERENCES rt_messageclass_type(messageclass_type) ON UPDATE RESTRICT ON DELETE RESTRICT;
+				ALTER TABLE ONLY messageclass_action    ADD CONSTRAINT fk_messageclass_messageclass_action FOREIGN KEY (messageclass) REFERENCES messageclass(messageclass) ON UPDATE RESTRICT ON DELETE RESTRICT;
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_order_status_id FOREIGN KEY (order_status_id) REFERENCES rt_order_status(order_status_id);
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_period_id FOREIGN KEY (period_id) REFERENCES period(period_id) ON UPDATE RESTRICT ON DELETE RESTRICT;
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_priority_id FOREIGN KEY (priority_id) REFERENCES rt_priority(priority_id) ON UPDATE RESTRICT ON DELETE RESTRICT;
+				ALTER TABLE ONLY email_template    ADD CONSTRAINT fk_rt_emailcontext_id FOREIGN KEY (rt_emailcontext_id) REFERENCES rt_emailcontext(rt_emailcontext_id) ON UPDATE CASCADE ON DELETE CASCADE;
+				ALTER TABLE ONLY fme_engine    ADD CONSTRAINT fk_server_id FOREIGN KEY (server_id) REFERENCES server(server_id) ON UPDATE CASCADE ON DELETE CASCADE;
+				ALTER TABLE ONLY workspace    ADD CONSTRAINT fk_success_action_id FOREIGN KEY (success_action_id) REFERENCES rt_action(action_id) ON UPDATE RESTRICT ON DELETE RESTRICT;
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_survey_id FOREIGN KEY (survey_id) REFERENCES rt_survey_type(survey_id);
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES s_vitis."user"(user_id) ON UPDATE RESTRICT ON DELETE CASCADE;
+				ALTER TABLE ONLY workspace_group    ADD CONSTRAINT fk_workspace_id FOREIGN KEY (workspace_id) REFERENCES workspace(workspace_id) ON UPDATE RESTRICT ON DELETE CASCADE;
+				ALTER TABLE ONLY "order"    ADD CONSTRAINT fk_workspace_id FOREIGN KEY (workspace_id) REFERENCES workspace(workspace_id) ON UPDATE RESTRICT ON DELETE CASCADE;
+				REVOKE ALL ON SCHEMA s_gtf FROM PUBLIC;
+				REVOKE ALL ON SCHEMA s_gtf FROM u_vitis;
+				GRANT ALL ON SCHEMA s_gtf TO u_vitis;
+				GRANT USAGE ON SCHEMA s_gtf TO gtf_admin;
+				GRANT USAGE ON SCHEMA s_gtf TO gtf_author;
+				GRANT USAGE ON SCHEMA s_gtf TO gtf_user;
+				REVOKE ALL ON TABLE actionclass FROM PUBLIC;
+				REVOKE ALL ON TABLE actionclass FROM u_vitis;
+				GRANT ALL ON TABLE actionclass TO u_vitis;
+				GRANT ALL ON TABLE actionclass TO gtf_admin;
+				GRANT SELECT ON TABLE actionclass TO gtf_user;
+				GRANT SELECT ON TABLE actionclass TO gtf_author;
+				REVOKE ALL ON TABLE category FROM PUBLIC;
+				REVOKE ALL ON TABLE category FROM u_vitis;
+				GRANT ALL ON TABLE category TO u_vitis;
+				GRANT ALL ON TABLE category TO gtf_admin;
+				GRANT ALL ON TABLE category TO gtf_author;
+				GRANT SELECT ON TABLE category TO gtf_user;
+				GRANT ALL ON TABLE category TO gtf_scheduler;
+				REVOKE ALL ON SEQUENCE seq_common FROM PUBLIC;
+				REVOKE ALL ON SEQUENCE seq_common FROM u_vitis;
+				GRANT ALL ON SEQUENCE seq_common TO u_vitis;
+				GRANT ALL ON SEQUENCE seq_common TO gtf_admin;
+				GRANT ALL ON SEQUENCE seq_common TO gtf_author;
+				GRANT SELECT,UPDATE ON SEQUENCE seq_common TO gtf_user;
+				REVOKE ALL ON TABLE email_template FROM PUBLIC;
+				REVOKE ALL ON TABLE email_template FROM u_vitis;
+				GRANT ALL ON TABLE email_template TO u_vitis;
+				GRANT ALL ON TABLE email_template TO gtf_admin;
+				GRANT ALL ON TABLE email_template TO gtf_author;
+				GRANT SELECT ON TABLE email_template TO gtf_user;
+				REVOKE ALL ON TABLE fme_engine FROM PUBLIC;
+				REVOKE ALL ON TABLE fme_engine FROM u_vitis;
+				GRANT ALL ON TABLE fme_engine TO u_vitis;
+				GRANT ALL ON TABLE fme_engine TO gtf_admin;
+				GRANT SELECT ON TABLE fme_engine TO gtf_user;
+				GRANT SELECT ON TABLE fme_engine TO gtf_author;
+				REVOKE ALL ON TABLE gtf_engine FROM PUBLIC;
+				REVOKE ALL ON TABLE gtf_engine FROM u_vitis;
+				GRANT ALL ON TABLE gtf_engine TO u_vitis;
+				GRANT ALL ON TABLE gtf_engine TO gtf_admin;
+				GRANT SELECT ON TABLE gtf_engine TO gtf_user;
+				GRANT SELECT ON TABLE gtf_engine TO gtf_author;
+				REVOKE ALL ON TABLE inbox FROM PUBLIC;
+				REVOKE ALL ON TABLE inbox FROM u_vitis;
+				GRANT ALL ON TABLE inbox TO u_vitis;
+				GRANT ALL ON TABLE inbox TO gtf_admin;
+				GRANT ALL ON TABLE inbox TO gtf_author;
+				GRANT SELECT ON TABLE inbox TO gtf_user;
+				REVOKE ALL ON TABLE inbox_group FROM PUBLIC;
+				REVOKE ALL ON TABLE inbox_group FROM u_vitis;
+				GRANT ALL ON TABLE inbox_group TO u_vitis;
+				GRANT ALL ON TABLE inbox_group TO gtf_admin;
+				GRANT ALL ON TABLE inbox_group TO gtf_author;
+				GRANT SELECT ON TABLE inbox_group TO gtf_user;
+				REVOKE ALL ON TABLE job FROM PUBLIC;
+				REVOKE ALL ON TABLE job FROM u_vitis;
+				GRANT ALL ON TABLE job TO u_vitis;
+				GRANT ALL ON TABLE job TO gtf_scheduler;
+				GRANT SELECT ON TABLE job TO gtf_user;
+				GRANT ALL ON TABLE job TO gtf_admin;
+				GRANT ALL ON TABLE job TO gtf_author;
+				REVOKE ALL ON TABLE message FROM PUBLIC;
+				REVOKE ALL ON TABLE message FROM u_vitis;
+				GRANT ALL ON TABLE message TO u_vitis;
+				GRANT ALL ON TABLE message TO gtf_admin;
+				GRANT ALL ON TABLE message TO gtf_author;
+				GRANT SELECT ON TABLE message TO gtf_user;
+				REVOKE ALL ON TABLE messageclass FROM PUBLIC;
+				REVOKE ALL ON TABLE messageclass FROM u_vitis;
+				GRANT ALL ON TABLE messageclass TO u_vitis;
+				GRANT ALL ON TABLE messageclass TO gtf_admin;
+				GRANT SELECT ON TABLE messageclass TO gtf_user;
+				GRANT SELECT ON TABLE messageclass TO gtf_author;
+				REVOKE ALL ON TABLE messageclass_action FROM PUBLIC;
+				REVOKE ALL ON TABLE messageclass_action FROM u_vitis;
+				GRANT ALL ON TABLE messageclass_action TO u_vitis;
+				GRANT ALL ON TABLE messageclass_action TO gtf_admin;
+				GRANT SELECT ON TABLE messageclass_action TO gtf_user;
+				GRANT SELECT ON TABLE messageclass_action TO gtf_author;
+				REVOKE ALL ON TABLE "order" FROM PUBLIC;
+				REVOKE ALL ON TABLE "order" FROM u_vitis;
+				GRANT ALL ON TABLE "order" TO u_vitis;
+				GRANT ALL ON TABLE "order" TO gtf_scheduler;
+				GRANT ALL ON TABLE "order" TO gtf_admin;
+				GRANT ALL ON TABLE "order" TO gtf_author;
+				GRANT ALL ON TABLE "order" TO gtf_user;
+				REVOKE ALL ON TABLE period FROM PUBLIC;
+				REVOKE ALL ON TABLE period FROM u_vitis;
+				GRANT ALL ON TABLE period TO u_vitis;
+				GRANT ALL ON TABLE period TO gtf_admin;
+				GRANT ALL ON TABLE period TO gtf_author;
+				GRANT SELECT ON TABLE period TO gtf_user;
+				REVOKE ALL ON TABLE rt_action FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_action FROM u_vitis;
+				GRANT ALL ON TABLE rt_action TO u_vitis;
+				GRANT ALL ON TABLE rt_action TO gtf_admin;
+				GRANT SELECT ON TABLE rt_action TO gtf_user;
+				REVOKE ALL ON TABLE rt_email_option FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_email_option FROM u_vitis;
+				GRANT ALL ON TABLE rt_email_option TO u_vitis;
+				GRANT ALL ON TABLE rt_email_option TO gtf_admin;
+				GRANT ALL ON TABLE rt_email_option TO gtf_scheduler;
+				GRANT SELECT ON TABLE rt_email_option TO gtf_user;
+				GRANT SELECT ON TABLE rt_email_option TO gtf_author;
+				REVOKE ALL ON TABLE rt_emailcontext FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_emailcontext FROM u_vitis;
+				GRANT ALL ON TABLE rt_emailcontext TO u_vitis;
+				GRANT ALL ON TABLE rt_emailcontext TO gtf_admin;
+				GRANT SELECT ON TABLE rt_emailcontext TO gtf_user;
+				GRANT SELECT ON TABLE rt_emailcontext TO gtf_author;
+				REVOKE ALL ON TABLE rt_messageclass_type FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_messageclass_type FROM u_vitis;
+				GRANT ALL ON TABLE rt_messageclass_type TO u_vitis;
+				GRANT ALL ON TABLE rt_messageclass_type TO gtf_admin;
+				GRANT SELECT ON TABLE rt_messageclass_type TO gtf_user;
+				GRANT SELECT ON TABLE rt_messageclass_type TO gtf_author;
+				REVOKE ALL ON TABLE rt_order_status FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_order_status FROM u_vitis;
+				GRANT ALL ON TABLE rt_order_status TO u_vitis;
+				GRANT ALL ON TABLE rt_order_status TO gtf_admin;
+				GRANT SELECT ON TABLE rt_order_status TO gtf_user;
+				GRANT SELECT ON TABLE rt_order_status TO gtf_author;
+				REVOKE ALL ON TABLE rt_priority FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_priority FROM u_vitis;
+				GRANT ALL ON TABLE rt_priority TO u_vitis;
+				GRANT ALL ON TABLE rt_priority TO gtf_admin;
+				GRANT ALL ON TABLE rt_priority TO gtf_author;
+				GRANT SELECT ON TABLE rt_priority TO gtf_user;
+				REVOKE ALL ON TABLE rt_survey_type FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_survey_type FROM u_vitis;
+				GRANT ALL ON TABLE rt_survey_type TO u_vitis;
+				GRANT ALL ON TABLE rt_survey_type TO gtf_admin;
+				GRANT SELECT ON TABLE rt_survey_type TO gtf_user;
+				GRANT SELECT ON TABLE rt_survey_type TO gtf_author;
+				REVOKE ALL ON TABLE rt_tag FROM PUBLIC;
+				REVOKE ALL ON TABLE rt_tag FROM u_vitis;
+				GRANT ALL ON TABLE rt_tag TO u_vitis;
+				GRANT ALL ON TABLE rt_tag TO gtf_admin;
+				GRANT SELECT ON TABLE rt_tag TO gtf_author;
+				GRANT SELECT ON TABLE rt_tag TO gtf_user;
+				REVOKE ALL ON SEQUENCE seq_order FROM PUBLIC;
+				REVOKE ALL ON SEQUENCE seq_order FROM u_vitis;
+				GRANT ALL ON SEQUENCE seq_order TO u_vitis;
+				GRANT ALL ON SEQUENCE seq_order TO gtf_admin;
+				GRANT ALL ON SEQUENCE seq_order TO gtf_author;
+				GRANT SELECT,UPDATE ON SEQUENCE seq_order TO gtf_user;
+				REVOKE ALL ON SEQUENCE seq_translation FROM PUBLIC;
+				REVOKE ALL ON SEQUENCE seq_translation FROM u_vitis;
+				GRANT ALL ON SEQUENCE seq_translation TO u_vitis;
+				GRANT ALL ON SEQUENCE seq_translation TO gtf_admin;
+				GRANT SELECT,UPDATE ON SEQUENCE seq_translation TO gtf_user;
+				GRANT SELECT,UPDATE ON SEQUENCE seq_translation TO gtf_author;
+				REVOKE ALL ON TABLE server FROM PUBLIC;
+				REVOKE ALL ON TABLE server FROM u_vitis;
+				GRANT ALL ON TABLE server TO u_vitis;
+				GRANT ALL ON TABLE server TO gtf_admin;
+				GRANT SELECT ON TABLE server TO gtf_user;
+				GRANT SELECT ON TABLE server TO gtf_author;
+				REVOKE ALL ON TABLE v_email_option FROM PUBLIC;
+				REVOKE ALL ON TABLE v_email_option FROM u_vitis;
+				GRANT ALL ON TABLE v_email_option TO u_vitis;
+				GRANT ALL ON TABLE v_email_option TO gtf_admin;
+				GRANT SELECT ON TABLE v_email_option TO gtf_user;
+				GRANT SELECT ON TABLE v_email_option TO gtf_author;
+				REVOKE ALL ON TABLE v_fme_engine FROM PUBLIC;
+				REVOKE ALL ON TABLE v_fme_engine FROM u_vitis;
+				GRANT ALL ON TABLE v_fme_engine TO u_vitis;
+				GRANT ALL ON TABLE v_fme_engine TO gtf_admin;
+				GRANT SELECT ON TABLE v_fme_engine TO gtf_user;
+				GRANT SELECT ON TABLE v_fme_engine TO gtf_author;
+				REVOKE ALL ON TABLE v_gtf_engine FROM PUBLIC;
+				REVOKE ALL ON TABLE v_gtf_engine FROM u_vitis;
+				GRANT ALL ON TABLE v_gtf_engine TO u_vitis;
+				GRANT ALL ON TABLE v_gtf_engine TO gtf_admin;
+				GRANT SELECT ON TABLE v_gtf_engine TO gtf_user;
+				GRANT SELECT ON TABLE v_gtf_engine TO gtf_author;
+				REVOKE ALL ON TABLE v_inbox FROM PUBLIC;
+				REVOKE ALL ON TABLE v_inbox FROM u_vitis;
+				GRANT ALL ON TABLE v_inbox TO u_vitis;
+				GRANT ALL ON TABLE v_inbox TO gtf_user;
+				GRANT ALL ON TABLE v_inbox TO gtf_admin;
+				GRANT ALL ON TABLE v_inbox TO gtf_author;
+				REVOKE ALL ON TABLE v_message FROM PUBLIC;
+				REVOKE ALL ON TABLE v_message FROM u_vitis;
+				GRANT ALL ON TABLE v_message TO u_vitis;
+				GRANT ALL ON TABLE v_message TO gtf_admin;
+				GRANT SELECT ON TABLE v_message TO gtf_user;
+				GRANT SELECT ON TABLE v_message TO gtf_author;
+				REVOKE ALL ON TABLE workspace FROM PUBLIC;
+				REVOKE ALL ON TABLE workspace FROM u_vitis;
+				GRANT ALL ON TABLE workspace TO u_vitis;
+				GRANT ALL ON TABLE workspace TO gtf_author;
+				GRANT SELECT,INSERT,UPDATE ON TABLE workspace TO gtf_scheduler;
+				GRANT ALL ON TABLE workspace TO gtf_admin;
+				GRANT SELECT ON TABLE workspace TO gtf_user;
+				REVOKE ALL ON TABLE v_order FROM PUBLIC;
+				REVOKE ALL ON TABLE v_order FROM u_vitis;
+				GRANT ALL ON TABLE v_order TO u_vitis;
+				GRANT ALL ON TABLE v_order TO gtf_admin;
+				GRANT SELECT ON TABLE v_order TO gtf_user;
+				GRANT SELECT ON TABLE v_order TO gtf_author;
+				REVOKE ALL ON TABLE v_order_status FROM PUBLIC;
+				REVOKE ALL ON TABLE v_order_status FROM u_vitis;
+				GRANT ALL ON TABLE v_order_status TO u_vitis;
+				GRANT ALL ON TABLE v_order_status TO gtf_admin;
+				GRANT SELECT ON TABLE v_order_status TO gtf_user;
+				GRANT SELECT ON TABLE v_order_status TO gtf_author;
+				REVOKE ALL ON TABLE v_priority FROM PUBLIC;
+				REVOKE ALL ON TABLE v_priority FROM u_vitis;
+				GRANT ALL ON TABLE v_priority TO u_vitis;
+				GRANT ALL ON TABLE v_priority TO gtf_admin;
+				GRANT SELECT ON TABLE v_priority TO gtf_user;
+				GRANT SELECT ON TABLE v_priority TO gtf_author;
+				REVOKE ALL ON TABLE v_ra_members_group FROM PUBLIC;
+				REVOKE ALL ON TABLE v_ra_members_group FROM u_vitis;
+				GRANT ALL ON TABLE v_ra_members_group TO u_vitis;
+				GRANT ALL ON TABLE v_ra_members_group TO gtf_admin;
+				GRANT ALL ON TABLE v_ra_members_group TO gtf_author;
+				GRANT SELECT ON TABLE v_ra_members_group TO gtf_user;
+				REVOKE ALL ON TABLE v_ra_order FROM PUBLIC;
+				REVOKE ALL ON TABLE v_ra_order FROM u_vitis;
+				GRANT ALL ON TABLE v_ra_order TO u_vitis;
+				GRANT ALL ON TABLE v_ra_order TO gtf_admin;
+				GRANT ALL ON TABLE v_ra_order TO gtf_author;
+				GRANT SELECT ON TABLE v_ra_order TO gtf_user;
+				REVOKE ALL ON TABLE v_subscription FROM PUBLIC;
+				REVOKE ALL ON TABLE v_subscription FROM u_vitis;
+				GRANT ALL ON TABLE v_subscription TO u_vitis;
+				GRANT ALL ON TABLE v_subscription TO gtf_user;
+				GRANT ALL ON TABLE v_subscription TO gtf_admin;
+				GRANT ALL ON TABLE v_subscription TO gtf_author;
+				REVOKE ALL ON TABLE v_survey FROM PUBLIC;
+				REVOKE ALL ON TABLE v_survey FROM u_vitis;
+				GRANT ALL ON TABLE v_survey TO u_vitis;
+				GRANT ALL ON TABLE v_survey TO gtf_user;
+				GRANT ALL ON TABLE v_survey TO gtf_admin;
+				GRANT ALL ON TABLE v_survey TO gtf_author;
+				REVOKE ALL ON TABLE v_supervision_status FROM PUBLIC;
+				REVOKE ALL ON TABLE v_supervision_status FROM u_vitis;
+				GRANT ALL ON TABLE v_supervision_status TO u_vitis;
+				GRANT ALL ON TABLE v_supervision_status TO gtf_admin;
+				GRANT SELECT ON TABLE v_supervision_status TO gtf_user;
+				GRANT SELECT ON TABLE v_supervision_status TO gtf_author;
+				REVOKE ALL ON TABLE v_survey_type FROM PUBLIC;
+				REVOKE ALL ON TABLE v_survey_type FROM u_vitis;
+				GRANT ALL ON TABLE v_survey_type TO u_vitis;
+				GRANT ALL ON TABLE v_survey_type TO gtf_admin;
+				GRANT SELECT ON TABLE v_survey_type TO gtf_user;
+				GRANT SELECT ON TABLE v_survey_type TO gtf_author;
+				REVOKE ALL ON TABLE v_user FROM PUBLIC;
+				REVOKE ALL ON TABLE v_user FROM u_vitis;
+				GRANT ALL ON TABLE v_user TO u_vitis;
+				GRANT ALL ON TABLE v_user TO gtf_admin;
+				GRANT SELECT ON TABLE v_user TO gtf_user;
+				GRANT SELECT ON TABLE v_user TO gtf_author;
+				REVOKE ALL ON TABLE v_user_order FROM PUBLIC;
+				REVOKE ALL ON TABLE v_user_order FROM u_vitis;
+				GRANT ALL ON TABLE v_user_order TO u_vitis;
+				GRANT ALL ON TABLE v_user_order TO gtf_admin;
+				GRANT ALL ON TABLE v_user_order TO gtf_user;
+				GRANT SELECT ON TABLE v_user_order TO gtf_author;
+				REVOKE ALL ON TABLE v_user_subscription FROM PUBLIC;
+				REVOKE ALL ON TABLE v_user_subscription FROM u_vitis;
+				GRANT ALL ON TABLE v_user_subscription TO u_vitis;
+				GRANT ALL ON TABLE v_user_subscription TO gtf_user;
+				GRANT ALL ON TABLE v_user_subscription TO gtf_admin;
+				GRANT ALL ON TABLE v_user_subscription TO gtf_author;
+				REVOKE ALL ON TABLE v_user_survey FROM PUBLIC;
+				REVOKE ALL ON TABLE v_user_survey FROM u_vitis;
+				GRANT ALL ON TABLE v_user_survey TO u_vitis;
+				GRANT ALL ON TABLE v_user_survey TO gtf_user;
+				GRANT ALL ON TABLE v_user_survey TO gtf_admin;
+				GRANT ALL ON TABLE v_user_survey TO gtf_author;
+				REVOKE ALL ON TABLE workspace_group FROM PUBLIC;
+				REVOKE ALL ON TABLE workspace_group FROM u_vitis;
+				GRANT ALL ON TABLE workspace_group TO u_vitis;
+				GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE workspace_group TO gtf_author;
+				GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE workspace_group TO gtf_admin;
+				GRANT SELECT ON TABLE workspace_group TO gtf_user;
+				GRANT ALL ON TABLE workspace_group TO gtf_scheduler;
+				REVOKE ALL ON TABLE v_user_workspace FROM PUBLIC;
+				REVOKE ALL ON TABLE v_user_workspace FROM u_vitis;
+				GRANT ALL ON TABLE v_user_workspace TO u_vitis;
+				GRANT ALL ON TABLE v_user_workspace TO gtf_user;
+				GRANT ALL ON TABLE v_user_workspace TO gtf_admin;
+				GRANT ALL ON TABLE v_user_workspace TO gtf_author;
+				REVOKE ALL ON TABLE v_workspace FROM PUBLIC;
+				REVOKE ALL ON TABLE v_workspace FROM u_vitis;
+				GRANT ALL ON TABLE v_workspace TO u_vitis;
+				GRANT ALL ON TABLE v_workspace TO gtf_admin;
+				GRANT SELECT ON TABLE v_workspace TO gtf_user;
+				GRANT SELECT ON TABLE v_workspace TO gtf_author;
+				REVOKE ALL ON TABLE version FROM PUBLIC;
+				REVOKE ALL ON TABLE version FROM u_vitis;
+				GRANT ALL ON TABLE version TO u_vitis;
+				GRANT ALL ON TABLE version TO vitis_admin;
+				GRANT ALL ON TABLE version TO gtf_admin;
+				GRANT SELECT ON TABLE version TO vitis_user;
+				GRANT SELECT ON TABLE version TO gtf_user;
+				INSERT INTO s_vitis.privileges (rolname, description) VALUES ('gtf_user', 'Utilisateur de GTF');
+				INSERT INTO s_vitis.privileges (rolname, description) VALUES ('gtf_admin', 'Utilisateur de GTF');
+				INSERT INTO s_vitis.privileges (rolname, description) VALUES ('gtf_author', 'Editeur de projets FME sur GTF');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ vide', 'gtf_0');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_id de la vue v_user_order correspondant au table field_id 39', 'gtf_2');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_user_order correspondant au table_field_id 40', 'gtf_3');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_status_libelle de la vue v_user_order correspondant au table_field_id 41', 'gtf_4');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_date de la vue v_user_order correspondant au table_field_id 42', 'gtf_5');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Appel Externe de l''objet gtf_workspace', 'gtf_283');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ execution_date de la vue v_user_order correspondant au table_field_id 43', 'gtf_6');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ parametres de la vue v_user_order correspondant au table_field_id 44', 'gtf_7');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ priorite_libelle de la vue v_user_order correspondant au table_field_id 45', 'gtf_8');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ result_url de la vue v_user_order correspondant au table_field_id 46', 'gtf_9');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 9 (v_oder)', 'gtf_12');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table v_user_order table_button_id = 1', 'gtf_13');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table v_user_order table_button_id =2', 'gtf_14');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Order_status_id 1 de la table tr_order_staus (En attente)', 'gtf_15');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Order_status_id 2 de la table tr_order_staus (En erreur)', 'gtf_16');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Order_status_id 3 de la table tr_order_staus (Traité)', 'gtf_17');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Order_status_id 4 de la table tr_order_staus (Non traitable)', 'gtf_18');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Order_status_id 5 de la table tr_order_staus (En cours)', 'gtf_19');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('priority_id 0 de la table rt_priority (Heures Creuses)', 'gtf_20');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('priority_id 2 de la table rt_priority (Au plus tôt P2)', 'gtf_22');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('priority_id 1 de la table rt_priority (Au plus tôt P1)', 'gtf_21');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('priority_id 3 de la table rt_priority (Au plus tôt P3)', 'gtf_23');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('priority_id 4 de la table rt_priority (Au plus tôt P4)', 'gtf_24');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('priority_id 5 de la table rt_priority (Au plus tôt P5)', 'gtf_25');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('email_option_id 1 de la table email_option (Toujours)', 'gtf_26');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('email_option_id 2 de la table email_option (Jamais)', 'gtf_27');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('email_option_id 3 de la table email_option (Uniquement en cas d''échec)', 'gtf_28');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('email_option_id 4 de la table email_option (Uniquement en cas de réussite)', 'gtf_29');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 1 du mode mon travail (Demandes) utilisé dans la table vm_tab', 'gtf_30');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 2 du mode mon travail (Abonnements) utilisé dans la table vm_tab', 'gtf_31');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 3 du mode mon travail (Surveillances) utilisé dans la table vm_tab', 'gtf_32');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 8 (v_user_subscription)', 'gtf_33');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_id de la vue v_user_subscription correspondant au table field_id 30', 'gtf_34');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_user_subscription correspondant au table field_id 31', 'gtf_35');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_date de la vue v_user_subscription correspondant au table field_id 32', 'gtf_36');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ wk_params de la vue v_user_subscription correspondant au table field_id 33', 'gtf_37');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_period de la vue v_user_subscription correspondant au table field_id 34', 'gtf_38');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table v_user_subscription table_button_id = 4', 'gtf_39');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table v_user_subscription table_button_id =5', 'gtf_40');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 17 (v_user_survey)', 'gtf_41');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_id de la vue v_user_survey correspondant au table field_id 134', 'gtf_42');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_user_survey correspondant au table field_id 135', 'gtf_43');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_date de la vue v_user_survey correspondant au table field_id 136', 'gtf_44');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ wk_params de la vue v_user_survey correspondant au table field_id 137', 'gtf_45');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_period de la vue v_user_survey correspondant au table field_id 138', 'gtf_46');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ survey_name de la vue v_user_survey correspondant au table field_id 139', 'gtf_47');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ condition de la vue v_user_survey correspondant au table field_id 140', 'gtf_48');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Type de surveillance répertoire', 'gtf_49');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table v_user_survey table_button_id = 5', 'gtf_50');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table v_user_survey table_button_id =6', 'gtf_51');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Chaine de caractère mode user', 'gtf_52');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 4 du mode administration (Traitements) utilisé dans la table vm_tab', 'gtf_57');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 5 du mode administration (Catégories) utilisé dans la table vm_tab', 'gtf_58');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 6 du mode administration (Dépots) utilisé dans la table vm_tab', 'gtf_59');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 1 du mode supervision (Demandes) utilisé dans la table vm_tab', 'gtf_60');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 2 du mode supervision (Abonnements) utilisé dans la table vm_tab', 'gtf_61');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 3 du mode supervision (Surveillances) utilisé dans la table vm_tab', 'gtf_62');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 4 du mode supervision (Log) utilisé dans la table vm_tab', 'gtf_63');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 7 du mode administration (Période d''abonnements) utilisé dans la table vm_tab', 'gtf_65');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ dn_research de la table domain correspondant au table field_id 151', 'gtf_73');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ filter de la table domain correspondant au table field_id 152', 'gtf_74');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 6 (workspace)', 'gtf_82');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ workspace_id de la vue workspace correspondant au table field_id 13', 'gtf_83');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ description de la vue workspace correspondant au table field_id 15', 'gtf_85');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue workspace correspondant au table field_id 14', 'gtf_84');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ category de la vue workspace correspondant au table field_id 16', 'gtf_86');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ subscription de la vue workspace correspondant au table field_id 17', 'gtf_87');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ fmw_file de la vue workspace correspondant au table field_id 18', 'gtf_88');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue workspace correspondant au table field_id 19', 'gtf_89');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ nb_demande de la vue workspace correspondant au table field_id 125', 'gtf_90');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ survey de la vue workspace correspondant au table field_id 141', 'gtf_91');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table workspace table_button_id = 11', 'gtf_92');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table workspace table_button_id =12', 'gtf_93');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Action 0 de la table rt_action', 'gtf_94');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Action 1 de la table rt_action', 'gtf_95');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Action 2 de la table rt_action', 'gtf_96');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 2 (category)', 'gtf_97');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ category_id de la vue category correspondant au table field_id 68', 'gtf_98');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue category correspondant au table field_id 69', 'gtf_99');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ description de la vue category correspondant au table field_id 70', 'gtf_100');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table category table_button_id = 13', 'gtf_101');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table category table_button_id =14', 'gtf_102');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 18 (inbox)', 'gtf_103');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ inbox_id de la vue inbox correspondant au table field_id 142', 'gtf_104');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue inbox correspondant au table field_id 143', 'gtf_105');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ alias de la vue inbox correspondant au table field_id 144', 'gtf_106');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table inbox table_button_id = 15', 'gtf_107');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table inbox table_button_id =16', 'gtf_108');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 5 (period)', 'gtf_109');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_perdiod_id de la vue period correspondant au table field_id 10', 'gtf_110');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_perdiod_libelle de la vue period correspondant au table field_id 11', 'gtf_111');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ cron_expression de la vue period correspondant au table field_id 12', 'gtf_112');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table period table_button_id = 17', 'gtf_113');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table period table_button_id =18', 'gtf_114');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 11 (v_order)', 'gtf_115');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_id de la vue v_order correspondant au table field_id 71', 'gtf_116');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_order correspondant au table field_id 72', 'gtf_117');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_status_libelle de la vue v_order correspondant au table field_id 73', 'gtf_118');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_order correspondant au table field_id 74', 'gtf_119');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ Order_date de la vue v_order correspondant au table field_id 75', 'gtf_120');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ execution_date de la vue v_order correspondant au table field_id 76', 'gtf_121');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ wk_params de la vue v_order correspondant au table field_id 77', 'gtf_122');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ result_url de la vue v_order correspondant au table field_id 79', 'gtf_124');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ log_url de la vue v_order correspondant au table field_id 80', 'gtf_125');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ deleted de la vue v_order correspondant au table field_id 82', 'gtf_127');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ gtf_engine_id de la vue v_order correspondant au table field_id 73', 'gtf_128');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 12 (v_subscription)', 'gtf_129');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_id de la vue v_subscription correspondant au table field_id 90', 'gtf_130');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_subscription correspondant au table field_id 91', 'gtf_131');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_subscription correspondant au table field_id 92', 'gtf_132');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_date de la vue v_subscription correspondant au table field_id 93', 'gtf_133');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ wk_params de la vue v_subscription correspondant au table field_id 94', 'gtf_134');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_subscription correspondant au table field_id 95', 'gtf_135');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table v_order table_button_id =19', 'gtf_136');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table v_subscription table_button_id =20', 'gtf_137');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 16 (v_survey)', 'gtf_138');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_id de la vue v_survey correspondant au table field_id 126', 'gtf_139');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_survey correspondant au table field_id 127', 'gtf_140');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_survey correspondant au table field_id 128', 'gtf_141');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ order_date de la vue v_survey correspondant au table field_id 129', 'gtf_142');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ wk_params de la vue v_survey correspondant au table field_id 130', 'gtf_143');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue v_survey correspondant au table field_id 131', 'gtf_144');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ survey_name de la vue v_survey correspondant au table field_id 132', 'gtf_145');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ condition de la vue v_survey correspondant au table field_id 133', 'gtf_146');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton supprimer les surveillances vm_table_button', 'gtf_148');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 9 (v_user_order)', 'gtf_155');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 8 (v_user_subscription)', 'gtf_156');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 17 (v_user_survey)', 'gtf_157');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('champ vide', 'gtf_158');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 6 (workspace)', 'gtf_161');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 2 (category)', 'gtf_162');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 18 (inbox)', 'gtf_163');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 5 (period)', 'gtf_164');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 11 (v_order)', 'gtf_165');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 12 (v_subscription)', 'gtf_166');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 17 (v_survey)', 'gtf_167');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ length de la vue v_user_order correspondant au table_field_id 47', 'gtf_179');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ mails_notification de la vue v_user_order correspondant au table_field_id 156', 'gtf_180');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ mail_libelle de la vue v_user_order correspondant au table_field_id 157', 'gtf_181');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ enabled de la vue v_user_subscription correspondant', 'gtf_182');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ form_type de la table workspace correspondant au type du formulaire', 'gtf_184');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ Attempt de la table order pour le nombre de tentatives', 'gtf_185');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ enabled de la table period pour connaitre si une période  est publiée ou pas', 'gtf_189');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ length de la vue v_order correspondant au table_field_id 86', 'gtf_190');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton de purge de la liste de toutes les demandes table_id = 11', 'gtf_191');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champs nb_demande table_id = 6', 'gtf_192');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton de modification des status table_button_id = 42', 'gtf_194');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton de modification des moteurs table_button_id = 43', 'gtf_195');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 2 du mode Moteur (Server) utilisé dans la table vm_tab', 'gtf_196');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 23 (server)', 'gtf_197');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre du formulaire correspondant à le vm_table 23 (server)', 'gtf_198');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table server table_button_id = 44', 'gtf_199');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table server table_button_id =45', 'gtf_200');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ server_id correspondant au table field_id 140', 'gtf_201');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ hostname correspondant au table field_id 141', 'gtf_202');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ scheduler_network_home correspondant au table field_id 142', 'gtf_203');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ engines_home correspondant au table field_id 143', 'gtf_204');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 2 du mode Moteur (FME Engine) utilisé dans la table vm_tab', 'gtf_205');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 24 (FME Engine)', 'gtf_206');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre du formulaire correspondant à le vm_table 24 (FME Engine)', 'gtf_207');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table FME Engine table_button_id = 46', 'gtf_208');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table FME Engine table_button_id =47', 'gtf_209');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ fme_engine_id correspondant au table field_id 150', 'gtf_210');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name  correspondant au table field_id 151', 'gtf_211');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ server_id  correspondant au table field_id 152', 'gtf_212');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ local_path  correspondant au table field_id 153', 'gtf_213');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 1 du mode Moteur (GTF Engine) utilisé dans la table vm_tab', 'gtf_214');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 24 (FME Engine)', 'gtf_215');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre du formulaire correspondant à le vm_table 24 (FME Engine)', 'gtf_216');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table FME Engine table_button_id = 46', 'gtf_217');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table FME Engine table_button_id =47', 'gtf_218');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ gtf_engine_id correspondant au table field_id 160', 'gtf_219');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name correspondant au table field_id 161', 'gtf_220');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ period correspondant au table field_id 162', 'gtf_221');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ enabled correspondant au table field_id 163', 'gtf_222');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ server_name correspondant au table field_id 164', 'gtf_223');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ fme_name correspondant au table field_id 165', 'gtf_224');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Order_status_id 6 de la table tr_order_staus (Non autorisé)', 'gtf_226');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ ad_group de la vue group correspondant au table_field_id 40"', 'gtf_230');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ name de la vue update correspondant au table_field_id 41"', 'gtf_231');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ from de la vue update correspondant au table_field_id 42"', 'gtf_232');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ to de la vue update correspondant au table_field_id 43"', 'gtf_233');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ publishing_date de la vue update correspondant au table_field_id 44"', 'gtf_234');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ status de la vue update correspondant au table_field_id 45"', 'gtf_235');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ telechargement de la vue update correspondant au table_field_id 46"', 'gtf_236');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ installation de la vue update correspondant au table_field_id 47"', 'gtf_237');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ log de la vue update correspondant au table_field_id 48"', 'gtf_238');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Champ error_log de la vue update correspondant au table_field_id 49"', 'gtf_239');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('status disponible de la table rt_update_status', 'gtf_240');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('status téléchargé de la table rt_update_status', 'gtf_241');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('status installé de la table rt_update_status', 'gtf_242');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table update table_button_id =51', 'gtf_243');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ update_id correspondant au table field_id 41', 'gtf_244');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('status erreur de la table rt_update_status', 'gtf_245');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de de plusieurs projets de la table workspace table_button_id =52', 'gtf_247');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ versin correspondant au table field_id 35', 'gtf_248');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la list correspondant à la vm_table 26 (email_template)', 'gtf_249');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ email_template_id de la vue email_template correspondant au table field_id 166', 'gtf_250');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de la vue email_template correspondant au table field_id 167', 'gtf_251');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ to de la vue email_template correspondant au table field_id 168', 'gtf_252');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table email_template table_button_id = 53', 'gtf_253');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table email_template table_button_id = 54', 'gtf_254');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 5 du mode publication (email_template) utilisé dans la table vm_tab', 'gtf_255');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 26 (email_template)', 'gtf_256');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ cc de la vue email_template correspondant au table field_id 169', 'gtf_257');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ cci de la vue email_template correspondant au table field_id 170', 'gtf_258');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre de la liste correspondant à la vm_table 27 (message)', 'gtf_259');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ message_id de l''objet message correspondant au table field_id 171', 'gtf_260');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de l''objet message correspondant au table field_id 172', 'gtf_261');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 3 du mode supervision (message) utilisé dans la table vm_tab', 'gtf_262');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ use_advanced de la vue email_template correspondant au table field_id 173', 'gtf_263');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ body de la table message', 'gtf_264');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ creation_date de la table message', 'gtf_265');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ messageclass_type de la table messageclass', 'gtf_266');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ sender de la table message', 'gtf_267');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton supprimer les messages', 'gtf_268');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ owner de la table workspace', 'gtf_269');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Colonne locked de la table workspace', 'gtf_270');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton Activation d''une demande de ''v_subscription''', 'gtf_271');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton Désactivation d''une demande de ''v_subscription''', 'gtf_272');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton Activation d''une demande de ''v_survey''', 'gtf_273');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton Désactivation d''une demande de ''v_survey''', 'gtf_274');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ tags de ''v_gtf_engine''', 'gtf_275');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ date de traitement de ''v_order''', 'gtf_276');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Colonne processed de la table message', 'gtf_277');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Colonne processed de la table message', 'gtf_278');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Général de l''objet gtf_workspace', 'gtf_279');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Métadonnées de l''objet gtf_workspace', 'gtf_280');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Droits de l''objet gtf_workspace', 'gtf_281');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Formulaire de l''objet gtf_workspace', 'gtf_282');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Répertoire projet de l''objet gtf_workspace', 'gtf_284');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Général de l''objet gtf_email_template', 'gtf_285');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Définition simple de l''objet gtf_email_template', 'gtf_286');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Définition avancée de l''objet gtf_email_template', 'gtf_287');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section gtf de l''objet framework_group', 'gtf_288');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre formulaire gtf_group', 'gtf_289');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Colonne locked de la table workspace', 'gtf_290');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Administration de l''objet framework_help', 'gtf_291');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre des la section gtf_config', 'gtf_292');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre des la section gtf_license', 'gtf_293');
+				INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ key de l''onglet gtf_workspace', 'gtf_294');
+				INSERT INTO s_vitis.vm_module (module_id, description, version, label, type) VALUES ('gtf', 'module gtf veremes', '0.1', 'gtf', NULL);
+				INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('my_work', 'gtf');
+				INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('engine', 'gtf');
+				INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('publication', 'gtf');
+				INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('supervision', 'gtf');
+				INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('statistics', 'gtf');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (0, 'my_work', 'gtf_user');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (10, 'user', 'gtf_user');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (0, 'my_work', 'gtf_author');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (10, 'user', 'gtf_author');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (40, 'publication', 'gtf_author');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (50, 'supervision', 'gtf_author');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (60, 'statistics', 'gtf_author');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (0, 'my_work', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (10, 'user', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (20, 'users', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (30, 'engine', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (40, 'publication', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (50, 'supervision', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (60, 'statistics', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (70, 'configuration', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (80, 'logs', 'gtf_admin');
+				INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (90, 'help', 'gtf_author');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_0', 'fr', '');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_0', 'en', '');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_2', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_2', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_3', 'fr', 'Projet FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_3', 'en', 'FME Workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_4', 'fr', 'Etat');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_4', 'en', 'Status');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_5', 'en', 'Order date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_6', 'fr', 'Date traitement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_6', 'en', 'Processing date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_7', 'fr', 'Paramètres');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_7', 'en', 'Parameters');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_8', 'fr', 'Priorité');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_8', 'en', 'Priority');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_9', 'fr', 'Résultat');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_9', 'en', 'Result');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_12', 'fr', 'Demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_12', 'en', 'Orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_13', 'en', 'Add order');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_14', 'en', 'Delete orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_15', 'fr', 'En attente');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_15', 'en', 'Stand by');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_16', 'fr', 'En erreur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_16', 'en', 'Error');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_17', 'fr', 'Traité');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_17', 'en', 'Processed');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_18', 'fr', 'Erreur critique');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_18', 'en', 'Critical error');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_19', 'en', 'Processing');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_19', 'fr', 'En cours');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_20', 'fr', 'Heures creuses');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_20', 'en', 'Offpeak hours');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_21', 'fr', 'Au plus tôt P1');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_21', 'en', 'A.S.A.P. level 1');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_22', 'fr', 'Au plus tôt P2');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_22', 'en', 'Early as possible P2');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_23', 'fr', 'Au plus tôt P3');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_23', 'en', 'Early as possible P3');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_24', 'fr', 'Au plus tôt P4');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_24', 'en', 'Early as possible P4');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_25', 'fr', 'Au plus tôt P5');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_25', 'en', 'Early as possible P5');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_26', 'fr', 'Toujours');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_26', 'en', 'Always');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_27', 'fr', 'Jamais');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_27', 'en', 'Never');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_28', 'en', 'Only if failed');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_28', 'fr', 'Uniquement en cas d''échec');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_29', 'fr', 'Uniquement en cas de réussite');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_29', 'en', 'Only if successfull');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_30', 'fr', 'Demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_30', 'en', 'Orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_31', 'fr', 'Abonnements');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_31', 'en', 'Subscriptions');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_32', 'fr', 'Surveillances');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_32', 'en', 'Surveys');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_33', 'fr', 'Abonnements');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_33', 'en', 'Subscriptions');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_34', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_34', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_35', 'fr', 'Traitement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_35', 'en', 'Processing');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_36', 'fr', 'Date de demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_36', 'en', 'Order date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_37', 'fr', 'Paramètres');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_37', 'en', 'Parameters');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_38', 'fr', 'Fréquence');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_38', 'en', 'Frequency');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_39', 'en', 'Add subscription');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_40', 'fr', 'Supprimer les abonnements');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_40', 'en', 'Delete subscriptions');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_41', 'fr', 'Surveillances');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_41', 'en', 'Surveys');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_42', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_42', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_43', 'en', 'Processing');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_43', 'fr', 'Traitement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_44', 'fr', 'Date de demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_44', 'en', 'Order date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_45', 'fr', 'Paramètres');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_45', 'en', 'Parameters');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_46', 'fr', 'Fréquence');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_46', 'en', 'Frequency');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_47', 'fr', 'Type de surveillance');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_47', 'en', 'Survey type');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_48', 'fr', 'Condition');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_48', 'en', 'Condition');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_49', 'fr', 'Surveillance de répertoire');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_49', 'en', 'Directory survey');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_50', 'en', 'Add survey');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_51', 'fr', 'Supprimer les surveillances');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_51', 'en', 'Delete surveys');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_52', 'fr', NULL);
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_52', 'en', NULL);
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_57', 'fr', 'Projets FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_57', 'en', 'FME Workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_58', 'fr', 'Catégories');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_58', 'en', 'Categories');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_59', 'fr', 'Dépôts');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_59', 'en', 'In box');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_60', 'fr', 'Demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_60', 'en', 'Orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_61', 'fr', 'Abonnements');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_61', 'en', 'Subscriptions');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_62', 'fr', 'Surveillances');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_62', 'en', 'Surveys');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_63', 'fr', 'Logs');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_63', 'en', 'Logs');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_65', 'fr', 'Périodes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_5', 'fr', 'Date de la demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_65', 'en', 'Periods');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_73', 'fr', 'DN de base de recherche');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_73', 'en', 'DN search base');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_74', 'fr', 'Filtre');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_74', 'en', 'Filter');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_82', 'fr', 'Projet FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_82', 'en', 'FME Workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_83', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_83', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_84', 'fr', 'Nom');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_84', 'en', 'Name');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_85', 'en', 'Desc.');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_85', 'fr', 'Desc.');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_86', 'fr', 'Catégorie');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_86', 'en', 'Category');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_87', 'fr', 'Abo.');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_87', 'en', 'Sub.');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_88', 'en', 'FMW File');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_88', 'fr', 'Fichier FMW');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_89', 'fr', 'Méthode');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_89', 'en', 'Method');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_90', 'fr', 'Demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_90', 'en', 'Orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_91', 'fr', 'Surv.');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_91', 'en', 'Surv.');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_92', 'en', 'Add workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_93', 'fr', 'Supprimer les projets');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_93', 'en', 'Delete workspaces');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_94', 'fr', 'Ne rien faire');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_94', 'en', 'Do nothing');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_95', 'en', 'Put in trash');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_95', 'fr', 'Mettre à la poubelle');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_96', 'fr', 'Déplacer vers le répertoire de transit');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_96', 'en', 'Move to in box');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_97', 'fr', 'Catégories');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_97', 'en', 'Category');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_98', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_98', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_99', 'fr', 'Nom');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_99', 'en', 'Name');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_100', 'fr', 'Description');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_100', 'en', 'Description');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_101', 'en', 'Add category');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_102', 'fr', 'supprimer les catégories');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_102', 'en', 'Delete categories');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_103', 'en', 'In box');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_103', 'fr', 'Dépôts');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_104', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_104', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_105', 'fr', 'Chemin');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_105', 'en', 'Path');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_106', 'fr', 'Alias');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_106', 'en', 'Alias');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_107', 'en', 'Add in box');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_108', 'fr', 'Supprimer les dépôts');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_108', 'en', 'Delete in boxes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_109', 'fr', 'Périodes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_109', 'en', 'Periods');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_110', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_110', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_111', 'fr', 'Alias');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_111', 'en', 'Alias');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_112', 'fr', 'Expression CRON');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_112', 'en', 'CRON Expression');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_113', 'en', 'Add period');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_114', 'fr', 'Supprimer les périodes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_114', 'en', 'Delete periods');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_115', 'fr', 'Demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_115', 'en', 'Orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_116', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_116', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_117', 'en', 'FME Workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_117', 'fr', 'Projet FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_118', 'en', 'Statut');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_118', 'fr', 'Etat');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_119', 'fr', 'Utilisateur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_119', 'en', 'User');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_120', 'en', 'Order Date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_121', 'fr', 'Date de traitement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_121', 'en', 'Processing date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_122', 'en', 'Parameters');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_122', 'fr', 'Paramètres');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_124', 'fr', 'Résultat');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_124', 'en', 'Result');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_125', 'fr', 'Log FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_125', 'en', 'FME log');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_127', 'fr', 'Supprimé');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_127', 'en', 'Deleted');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_128', 'fr', 'Moteur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_128', 'en', 'Engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_129', 'fr', 'Abonnements');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_129', 'en', 'Subscriptions');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_130', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_130', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_131', 'en', 'FME Workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_131', 'fr', 'Projet FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_132', 'fr', 'Utilisateur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_132', 'en', 'User');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_133', 'fr', 'Date de demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_133', 'en', 'Order date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_134', 'fr', 'Paramètres');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_134', 'en', 'Parameters');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_135', 'fr', 'Période');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_135', 'en', 'Period');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_136', 'fr', 'Supprimer les demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_136', 'en', 'Delete orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_137', 'en', 'Delete subscriptions');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_137', 'fr', 'Supprimer les abonnements');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_138', 'fr', 'Surveillances');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_138', 'en', 'Surveys');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_139', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_139', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_140', 'en', 'FME Workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_140', 'fr', 'Projet FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_141', 'fr', 'Utilisateur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_141', 'en', 'User');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_142', 'fr', 'Date de demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_142', 'en', 'Order date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_143', 'fr', 'Paramètres');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_143', 'en', 'Parameters');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_144', 'fr', 'Périodes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_144', 'en', 'Periods');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_145', 'fr', 'Type');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_145', 'en', 'Type');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_146', 'fr', 'Condition');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_146', 'en', 'Condition');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_148', 'fr', 'Supprimer les surveillances');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_148', 'en', 'Delete surveys');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_155', 'fr', 'demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_120', 'fr', 'Date de la demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_155', 'en', 'order');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_156', 'fr', 'abonnement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_156', 'en', 'subscription');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_157', 'fr', 'surveillance');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_157', 'en', 'survey');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_158', 'fr', NULL);
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_158', 'en', NULL);
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_161', 'fr', 'Projet FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_161', 'en', 'FME workspace');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_162', 'fr', 'catégorie');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_162', 'en', 'category');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_163', 'fr', 'dépôt');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_163', 'en', 'in box');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_164', 'fr', 'période');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_164', 'en', 'period');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_165', 'fr', 'demande');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_165', 'en', 'order');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_166', 'fr', 'abonnement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_166', 'en', 'subscription');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_167', 'fr', 'surveillance');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_167', 'en', 'survey');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_179', 'en', 'Time');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_179', 'fr', 'Durée');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_180', 'fr', 'Copie à');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_180', 'en', 'cc');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_181', 'fr', 'Notification');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_181', 'en', 'Notification');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_182', 'fr', 'Actif');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_182', 'en', 'Enabled');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_184', 'fr', 'Formulaire');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_184', 'en', 'Form');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_185', 'fr', 'Tentative');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_185', 'en', 'Attempt');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_189', 'fr', 'Publié');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_189', 'en', 'enabled');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_190', 'en', 'Time');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_190', 'fr', 'Durée');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_191', 'fr', 'Purger les demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_191', 'en', 'Wipe orders');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_192', 'fr', 'Moteur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_192', 'en', 'Engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_194', 'fr', 'Réinitialiser');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_194', 'en', 'Reset');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_195', 'en', 'Modify Engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_196', 'fr', 'Serveur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_196', 'en', 'Server');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_197', 'fr', 'Serveur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_197', 'en', 'Server');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_198', 'fr', 'serveur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_198', 'en', 'server');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_199', 'en', 'Add server');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_200', 'en', 'Delete servers');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_201', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_201', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_202', 'fr', 'Nom');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_202', 'en', 'Name');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_203', 'fr', 'Répertoire pycron');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_203', 'en', 'Pycron directory');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_204', 'fr', 'Répertoire des moteurs GTF');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_204', 'en', 'GTF engines directory');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_205', 'fr', 'Moteur FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_205', 'en', 'FME engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_206', 'fr', 'Moteur FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_206', 'en', 'FME engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_207', 'fr', 'moteur FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_207', 'en', 'FME engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_208', 'en', 'Add FME engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_209', 'en', 'Delete FME engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_210', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_210', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_211', 'fr', 'Nom');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_211', 'en', 'Name');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_212', 'fr', 'Serveur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_212', 'en', 'Server');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_213', 'fr', 'Chemin vers fme.exe');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_213', 'en', 'Path to fme.exe');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_214', 'fr', 'Moteur GTF');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_214', 'en', 'GTF engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_215', 'fr', 'Moteur GTF');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_215', 'en', 'GTF engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_216', 'fr', 'moteur GTF');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_216', 'en', 'GTF engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_217', 'en', 'Add GTF engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_218', 'en', 'Delete GTF engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_219', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_219', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_220', 'fr', 'Nom');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_220', 'en', 'Name');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_221', 'fr', 'Période');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_221', 'en', 'Period');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_222', 'fr', 'Actif');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_222', 'en', 'Enabled');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_223', 'fr', 'Serveur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_223', 'en', 'Server');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_224', 'fr', 'Moteur FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_224', 'en', 'FME engine');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_226', 'fr', 'Non autorisé');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_226', 'en', 'Non authorized');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_230', 'fr', 'Groupe de l''annuaire');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_230', 'en', 'Directory group');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_231', 'fr', 'Nom');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_231', 'en', 'Name');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_232', 'fr', 'De');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_232', 'en', 'From');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_233', 'fr', 'A');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_233', 'en', 'To');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_234', 'fr', 'Date de publication');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_234', 'en', 'Publishing date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_235', 'fr', 'Statut');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_235', 'en', 'Status');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_236', 'fr', 'Téléchargement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_236', 'en', 'Download');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_237', 'fr', 'Installation');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_237', 'en', 'Installation');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_238', 'fr', 'Log');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_238', 'en', 'Log');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_239', 'fr', 'Erreurs');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_239', 'en', 'Errors');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_240', 'fr', 'Disponible');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_240', 'en', 'Available');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_241', 'fr', 'Téléchargé');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_241', 'en', 'Downloaded');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_242', 'fr', 'Installé');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_242', 'en', 'Installed');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_243', 'fr', 'Supprimer mise à jour');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_243', 'en', 'Delete update');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_244', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_244', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_195', 'fr', 'Modifier le moteur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_245', 'fr', 'Erreur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_245', 'en', 'Error');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_248', 'fr', 'Version FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_248', 'en', 'FME version');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_249', 'en', 'Emails templates');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_249', 'fr', 'E-mail models');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_250', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_250', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_251', 'fr', 'Nom');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_251', 'en', 'Name');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_252', 'en', 'To');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_253', 'fr', 'Ajouter un modèle');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_253', 'en', 'Add template');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_254', 'fr', 'Supprimer les modèles');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_254', 'en', 'Delete templates');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_255', 'fr', 'Modèles e-mail');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_255', 'en', 'E-mail models');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_256', 'fr', 'Modèle e-mail');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_256', 'en', 'E-mail model');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_257', 'fr', 'CC');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_257', 'en', 'CC');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_258', 'fr', 'CCI');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_258', 'en', 'CCI');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_259', 'en', 'Messages');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_259', 'fr', 'Messages');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_260', 'fr', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_260', 'en', 'ID');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_261', 'fr', 'Classe du message');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_261', 'en', 'Message class');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_262', 'fr', 'Messages');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_262', 'en', 'Messages');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_263', 'fr', 'Définition avancée');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_263', 'en', 'Advanced definition');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_264', 'fr', 'Corps');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_264', 'en', 'Body');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_265', 'fr', 'Date de création');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_265', 'en', 'Creation date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_266', 'fr', 'Type');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_266', 'en', 'Type');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_267', 'fr', 'Expéditeur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_267', 'en', 'Sender');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_268', 'fr', 'Supprimer les messages');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_268', 'en', 'Delete messages');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_269', 'fr', 'Propriétaire');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_269', 'en', 'Owner');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_270', 'fr', 'Verrou');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_270', 'en', 'Locked');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_271', 'fr', 'Activer');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_271', 'en', 'Activate');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_272', 'fr', 'Désactiver');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_272', 'en', 'Desactivate');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_273', 'fr', 'Activer');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_273', 'en', 'Activate');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_274', 'fr', 'Désactiver');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_274', 'en', 'Desactivate');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_275', 'fr', 'Mots-clefs');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_275', 'en', 'Tags');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_276', 'fr', 'Date de traitement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_276', 'en', 'Treatment date');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_277', 'fr', 'Etat');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_277', 'en', 'State');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_278', 'fr', 'Supprimer les messages traités');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_278', 'en', 'Delete processed messages');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_279', 'fr', 'Informations générales');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_279', 'en', 'General Information');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_280', 'fr', 'Métadonnées');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_280', 'en', 'Metadata');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_281', 'fr', 'Droits');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_281', 'en', 'Privileges');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_282', 'fr', 'Formulaire');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_282', 'en', 'Form');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_283', 'fr', 'Appel Externe');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_283', 'en', 'Widget');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_284', 'fr', 'Répertoire projet');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_284', 'en', 'Projet directory');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_285', 'fr', 'Informations générales');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_285', 'en', 'General Information');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_286', 'fr', 'Définition simple');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_286', 'en', 'Simple definition');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_287', 'fr', 'Définition avancée');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_287', 'en', 'Advanced definition');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_288', 'fr', 'Gtf');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_288', 'en', 'Gtf');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_289', 'fr', 'groupe');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_289', 'en', 'group');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_290', 'fr', 'Modèle e-mail');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_290', 'en', 'E-mail template');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_291', 'fr', 'Administration');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_291', 'en', 'Administration');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_292', 'fr', 'Configuration Gtf');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_292', 'en', 'Gtf config');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_293', 'fr', 'licence');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_293', 'en', 'license');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_101', 'fr', 'Ajouter une catégorie');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_107', 'fr', 'Ajouter un dépôt');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_113', 'fr', 'Ajouter une période');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_199', 'fr', 'Ajouter un serveur');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_208', 'fr', 'Ajouter un moteur FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_217', 'fr', 'Ajouter un moteur GTF');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_39', 'fr', 'Ajouter un abonnement');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_50', 'fr', 'Ajouter une surveillance');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_92', 'fr', 'Ajouter un projet FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_14', 'fr', 'Supprimer les demandes');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_200', 'fr', 'Supprimer les serveurs');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_209', 'fr', 'Supprimer les moteurs FME');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_218', 'fr', 'Supprimer les moteurs GTF');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_247', 'fr', 'Ajout par lot');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_247', 'en', 'Import projects');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_252', 'fr', 'A');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_294', 'fr', 'Clé');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_294', 'en', 'Key');
+				INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_13', 'fr', 'Ajouter une demande');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 3, 'publication', 'gtf_65', 'gtf/periods', 'editSectionForm', 'showSectionForm', 'period_id', 'DESC', 'gtf_period');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 5, 'publication', 'gtf_255', 'gtf/emailtemplates', 'editSectionForm', 'showSectionForm', 'email_template_id', 'ASC', 'gtf_email_template');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadStatistics()', 0, 'statistics', 'gtf_52', NULL, NULL, NULL, NULL, 'ASC', 'gtf_statistics');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList(''showSupervisionRecap()'',{"lang": ""});', 0, 'supervision', 'gtf_60', 'gtf/orders', NULL, 'showDoubleForm', 'order_id', 'DESC', 'gtf_order');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 0, 'engine', 'gtf_214', 'gtf/gtfengines', 'editSectionForm', 'showSectionForm', 'gtf_engine_id', 'ASC', 'gtf_gtf_engine');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 1, 'engine', 'gtf_205', 'gtf/fmeengines', 'editSectionForm', 'showSectionForm', 'fme_engine_id', 'ASC', 'gtf_fme_engine');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 2, 'engine', 'gtf_196', 'gtf/servers', 'editSectionForm', 'showSectionForm', 'hostname', 'ASC', 'gtf_server');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 0, 'publication', 'gtf_57', 'gtf/workspaces', 'editSectionForm', 'showSectionForm', 'workspace_id', 'DESC', 'gtf_workspace');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 1, 'publication', 'gtf_58', 'gtf/categories', 'editSectionForm', 'showSectionForm', 'category_id', 'DESC', 'gtf_category');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 2, 'publication', 'gtf_59', 'gtf/inboxes', 'editSectionForm', 'showSectionForm', 'inbox_id', 'DESC', 'gtf_inbox');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList(''refreshWorkspaceListByPeriod()'', {"lang": ""})', 0, 'my_work', 'gtf_30', 'gtf/userorders', NULL, 'showDoubleForm', 'order_id', 'DESC', 'gtf_user_order');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList(''refreshWorkspaceListByPeriod()'', {"lang": ""})', 1, 'my_work', 'gtf_31', 'gtf/usersubscriptions', 'editDoubleForm', 'showDoubleForm', 'order_id', 'DESC', 'gtf_user_subscription');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList(''refreshWorkspaceListByPeriod()'', {"lang": ""})', 2, 'my_work', 'gtf_32', 'gtf/usersurveys', 'editDoubleForm', 'showDoubleForm', 'order_id', 'DESC', 'gtf_user_survey');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList(''showSupervisionRecap()'',{"lang": ""});', 1, 'supervision', 'gtf_61', 'gtf/subscriptions', NULL, 'showDoubleForm', 'order_id', 'DESC', 'gtf_subscription');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList(''showSupervisionRecap()'',{"lang": ""});', 2, 'supervision', 'gtf_62', 'gtf/surveys', NULL, 'showDoubleForm', 'order_id', 'DESC', 'gtf_survey');
+				INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList(''refreshWorkspaceListByPeriod()'')', 3, 'supervision', 'gtf_262', 'gtf/messages', NULL, NULL, 'message_id', 'DESC', 'gtf_message');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_291', 'administration', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'vitis_help'), 'modules/gtf/templates/administrationHelpTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_293', 'gtfLicense', 5, 'loadLicenseConfig()', (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'), 'simpleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_288', 'gtf_group', 2, 'loadGtfGroup()',(select tab_id from s_vitis.vm_tab where name = 'vitis_group'), 'simpleFormTpl.html', 'gtf/gtfgroups', 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_292', 'gtfConfig', 6, 'loadGtfConfig()', (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'), 'simpleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_286', 'email_template_simple_edition', 2, 'loadEmailTemplateSimpleEdition()', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'), 'simpleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_283', 'editWidget', 5, 'loadWorkspaceEditWidget()', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'), 'simpleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_285', 'general', 1, 'Javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_279', 'general', 1, 'Javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_52', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_statistics'), 'doubleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_284', 'loadProjectDirectory', 6, 'Javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'), 'modules/gtf/templates/projectDirectoryTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_282', 'SubForm', 4, 'loadStudioGTF()', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'), 'modules/gtf/templates/subFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_30', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_31', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_58', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_category'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_65', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_period'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_196', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_server'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_205', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_214', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_32', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_60', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_61', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_62', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_262', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_message'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_280', 'updateMetadata', 2, 'Javascript:loadSection',(select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'), 'simpleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_281', 'updateRight', 3, 'Javascript:loadSection',(select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'), 'simpleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_59', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'gtf_inbox'), 'workspaceListTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_287', 'email_template_advanced_edition', 2, 'loadEmailTemplateAdvancedEdition()', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'), 'simpleFormTpl.html', NULL, 'gtf');
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddDoubleForm', 'gtf_13', 'gtf/userorders', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_14', 'gtf/userorders', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_199', 'gtf/servers', (select tab_id from s_vitis.vm_tab where name = 'gtf_server'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_200', 'gtf/servers', (select tab_id from s_vitis.vm_tab where name = 'gtf_server'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_217', 'gtf/gtfengines', (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddDoubleForm', 'gtf_39', 'gtf/usersubscriptions', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_40', 'gtf/usersubscriptions', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_137', 'gtf/subscriptions', (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('activateEnabledFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'ActivateOrder', 'gtf_271', 'gtf/subscriptions', (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('desactivateEnabledFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DesactivateOrder', 'gtf_272', 'gtf/subscriptions', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_148', 'gtf/surveys', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('activateEnabledFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'ActivateOrder', 'gtf_273', 'gtf/surveys', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('desactivateEnabledFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DesactivateOrder', 'gtf_274', 'gtf/surveys', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_268', 'gtf/messages', (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteProcessedMessages', (select nextval('s_vitis.seq_vm'::regclass)), 'deleteProcessedMessages', 'gtf_278', 'gtf/messages', (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_218', 'gtf/gtfengines', (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_208', 'gtf/fmeengines', (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_209', 'gtf/fmeengines', (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_253', 'gtf/emailtemplates',(select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_254', 'gtf/emailtemplates', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_92', 'gtf/workspaces', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteWorkspaceSelection', 'gtf_93', 'gtf/workspaces', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('adImport', (select nextval('s_vitis.seq_vm'::regclass)), 'ImportWorkspaces', 'gtf_247', 'gtf/workspaces', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_101', 'gtf/categories',(select tab_id from s_vitis.vm_tab where name = 'gtf_category'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_102', 'gtf/categories', (select tab_id from s_vitis.vm_tab where name = 'gtf_category'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_107', 'gtf/inboxes', (select tab_id from s_vitis.vm_tab where name = 'gtf_inbox'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_108', 'gtf/inboxes', (select tab_id from s_vitis.vm_tab where name = 'gtf_inbox'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_113', 'gtf/periods', (select tab_id from s_vitis.vm_tab where name = 'gtf_period'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_114', 'gtf/periods', (select tab_id from s_vitis.vm_tab where name = 'gtf_period'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_136', 'gtf/orders', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('adImport', (select nextval('s_vitis.seq_vm'::regclass)), 'CleanOrders', 'gtf_191', 'gtf/orders', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('waitStatusFlaxigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'ModifyStatus', 'gtf_194', 'gtf/orders', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('changeEngineFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'ModifyEngine', 'gtf_195', 'gtf/orders', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddDoubleForm', 'gtf_50', 'gtf/usersurveys', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_51', 'gtf/usersurveys', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'key', true, true, 15, 170, 'left', 'gtf_294', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_id', true, true, 1, 30, 'right', 'gtf_2', NULL, 'gtf/userorders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2, 550, 'left', 'gtf_3', NULL, 'gtf/userorders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_date', true, true, 5, 120, 'left', 'gtf_5', NULL, 'gtf/userorders', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'length_sec', true, true, 8, 60, 'left', 'gtf_179', NULL, 'gtf/userorders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'workspace_id', true, true, 1, 30, 'right', 'gtf_83', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'fmw_file', true, true, 3, 300, 'left', 'gtf_88', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'last_save_build', true, true, 7, 150, 'left', 'gtf_248', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_status_id', true, true, 3,  50, 'center', 'gtf_4', NULL, 'gtf/userorders', '<div data-app-order-status-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'wk_params', true, true, 7,  75, 'center', 'gtf_7', NULL, 'gtf/userorders', '<div data-app-workspace-parameters-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'nb_demande', true, true, 11,  60, 'right', 'gtf_90', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'category_id', true, true, 1,  30, 'right', 'gtf_98', NULL, 'gtf/categories', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_category'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2,  200, 'left', 'gtf_99', NULL, 'gtf/categories', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_category'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'description', true, true, 3, 1000, 'left', 'gtf_100', NULL, 'gtf/categories', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_category'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'period_id', true, true, 1, 30, 'right', 'gtf_110', NULL, 'gtf/periods', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_period'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'cron_expression', true, true, 2, 150, 'left', 'gtf_112', NULL, 'gtf/periods', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_period'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 3,  400, 'left', 'gtf_111', NULL, 'gtf/periods', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_period'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'category_name', true, true, 5, 100, 'left', 'gtf_86', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'use_advanced', true, true, 6,  120, 'center', 'gtf_263', NULL, 'gtf/emailtemplates', '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'to', true, true, 3,  40, 'center', 'gtf_252', NULL, 'gtf/emailtemplates', '<div data-app-email-template-receiver-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_notifications', true, true, 11,  50, 'center', 'gtf_180', NULL, 'gtf/userorders', '<div data-app-order-email-notifications-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_notifications', true, true, 10,  50, 'center', 'gtf_180', NULL, 'gtf/usersurveys', '<div data-app-order-email-notifications-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'deleted', true, true, 14, 57, 'center', 'gtf_127', NULL, 'gtf/orders', '<div data-app-deleted-order-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'execution_date', true, true, 9,  120, 'left', 'gtf_276', NULL, 'gtf/orders', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'survey', true, true, 9,  40, 'center', 'gtf_91', NULL, 'gtf/workspaces', '<div data-app-set-true-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'message_id', true, true, 1,  30, 'right', 'gtf_260', NULL, 'gtf/messages', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'messageclass', true, true, 3,  150, 'left', 'gtf_261', NULL, 'gtf/messages', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_id', true, true, 1,  30, 'right', 'gtf_34', NULL, 'gtf/usersubscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'login', true, true, 4,  100, 'left', 'gtf_269', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_template', true, true, 14,  120, 'left', 'gtf_290', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2,  350, 'left', 'gtf_84', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'tag', true, true, 10,  150, 'left', 'gtf_192', NULL, 'gtf/workspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'form_type', true, true, 12,  80, 'center', 'gtf_184', NULL, 'gtf/workspaces', '<div data-app-workspace-form-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'tags', true, true, 7,  80, 'center', 'gtf_275', NULL, 'gtf/gtfengines', '<div data-app-gtf-engine-tags-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'server_id', true, true, 1,  30, 'right', 'gtf_201', NULL, 'gtf/servers', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_server'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'hostname', true, true, 2,  200, 'left', 'gtf_202', NULL, 'gtf/servers', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_server'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'scheduler_network_home', true, true, 3,  400, 'left', 'gtf_203', NULL, 'gtf/servers', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_server'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'engines_home', true, true, 4,  400, 'left', 'gtf_204', NULL, 'gtf/servers', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_server'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_engine_id', true, true, 1,  30, 'right', 'gtf_219', NULL, 'gtf/gtfengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2,  200, 'left', 'gtf_220', NULL, 'gtf/gtfengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'period', true, true, 3,  50, 'right', 'gtf_221', NULL, 'gtf/gtfengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'server_name', true, true, 5,  200, 'left', 'gtf_223', NULL, 'gtf/gtfengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'fme_name', true, true, 6,  200, 'left', 'gtf_224', NULL, 'gtf/gtfengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'enabled', true, true, 12,  50, 'center', 'gtf_182', NULL, 'gtf/usersurveys', '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'fme_engine_id', true, true, 1,  30, 'right', 'gtf_210', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2,  200, 'left', 'gtf_211', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'server_name', true, true, 3,  200, 'left', 'gtf_212', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'local_path', true, true, 4,  400, 'left', 'gtf_213', NULL, 'gtf/fmeengines', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_fme_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_template_id', true, true, 1,  30, 'right', 'gtf_250', NULL, 'gtf/emailtemplates', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2,  400, 'left', 'gtf_251', NULL, 'gtf/emailtemplates', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'cc', true, true, 4,  40, 'center', 'gtf_257', NULL, 'gtf/emailtemplates', '<div data-app-email-template-receiver-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'cci', true, true, 5,  40, 'center', 'gtf_258', NULL, 'gtf/emailtemplates', '<div data-app-email-template-receiver-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_email_template'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'inbox_id', true, true, 1,  30, 'right', 'gtf_104', NULL, 'gtf/inboxes', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_inbox'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2,  300, 'left', 'gtf_105', NULL, 'gtf/inboxes', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_inbox'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'alias', true, true, 3,  250, 'left', 'gtf_106', NULL, 'gtf/inboxes', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_inbox'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'wk_params', true, true, 5,  75, 'center', 'gtf_143', NULL, 'gtf/usersurveys', '<div data-app-workspace-parameters-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'enabled', true, true, 4,  50, 'center', 'gtf_222', NULL, 'gtf/gtfengines', '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'priority_label', true, true, 9,  120, 'left', 'gtf_8', NULL, 'gtf/userorders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_option_label', true, true, 10,  200, 'left', 'gtf_181', NULL, 'gtf/userorders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_id', true, true, 1,  30, 'right', 'gtf_116', NULL, 'gtf/orders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'label_name', true, true, 2, 500, 'left', 'gtf_35', NULL, 'gtf/usersubscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_date', true, true, 4,  120, 'left', 'gtf_36', NULL, 'gtf/usersubscriptions', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'result_url', true, true, 4,  55, 'center', 'gtf_124', NULL, 'gtf/orders', '<div data-app-order-download-url-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_period_libelle', true, true, 6,  250, 'left', 'gtf_38', NULL, 'gtf/usersubscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'notification', true, true, 7,  200, 'left', 'gtf_181', NULL, 'gtf/usersubscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_id', true, true, 1, 30, 'right', 'gtf_130', NULL, 'gtf/subscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'label_name', true, true, 2,  440, 'left', 'gtf_131', NULL, 'gtf/subscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'login', true, true, 3,  150, 'left', 'gtf_132', NULL, 'gtf/subscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_date', true, true, 4,  120, 'left', 'gtf_133', NULL, 'gtf/subscriptions', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'wk_params', true, true, 5,  80, 'center', 'gtf_134', NULL, 'gtf/subscriptions', '<div data-app-workspace-parameters-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_period_libelle', true, true, 6,  220, 'left', 'gtf_135', NULL, 'gtf/subscriptions', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_id', true, true, 1,  30, 'right', 'gtf_139', NULL, 'gtf/surveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'label_name', true, true, 2,  290, 'left', 'gtf_140', NULL, 'gtf/surveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'login', true, true, 4,  120, 'left', 'gtf_141', NULL, 'gtf/surveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_date', true, true, 5,  120, 'left', 'gtf_142', NULL, 'gtf/surveys', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_period_libelle', true, true, 7,  115, 'left', 'gtf_135', NULL, 'gtf/surveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'label_name', true, true, 2,  290, 'left', 'gtf_117', NULL, 'gtf/orders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_notifications', true, true, 8,  50, 'center', 'gtf_180', NULL, 'gtf/usersubscriptions', '<div data-app-order-email-notifications-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subsciption'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'login', true, true, 5,  100, 'left', 'gtf_119', NULL, 'gtf/orders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_notifications', true, true, 8,  50, 'center', 'gtf_180', NULL, 'gtf/subscriptions', '<div data-app-order-email-notifications-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_notifications', true, true, 11,  50, 'center', 'gtf_180', NULL, 'gtf/surveys', '<div data-app-order-email-notifications-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'result_url', true, true, 4,  55, 'center', 'gtf_9', NULL, 'gtf/userorders', '<div data-app-order-download-url-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'log_url', true, true, 13,  45, 'center', 'gtf_125', NULL, 'gtf/orders', '<div data-app-order-download-url-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'status', true, true, 2,  40, 'center', 'gtf_277', NULL, 'gtf/messages', '<div data-app-status-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'body', true, true, 4,  50, 'center', 'gtf_264', NULL, 'gtf/messages', '<div data-app-message-body-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'creation_date', true, true, 5,  120, 'left', 'gtf_265', NULL, 'gtf/messages', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'subscription', true, true, 8,  40, 'center', 'gtf_87', NULL, 'gtf/workspaces', '<div data-app-set-true-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'messageclass_type', true, true, 6,  100, 'left', 'gtf_266', NULL, 'gtf/messages', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'sender', true, true, 7,  100, 'left', 'gtf_267', NULL, 'gtf/messages', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'locked', true, true, 13,  100, 'left', 'gtf_270', NULL, 'gtf/workspaces', '<div data-app-set-true-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_date', true, true, 6,  120, 'left', 'gtf_120', NULL, 'gtf/orders', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_notifications', true, true, 12,  45, 'center', 'gtf_180', NULL, 'gtf/orders', '<div data-app-order-email-notifications-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 15,  100, 'left', 'gtf_128', NULL, 'gtf/orders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'attempt', true, true, 16,  60, 'right', 'gtf_185', NULL, 'gtf/orders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'length_sec', true, true, 8,  50, 'left', 'gtf_190', NULL, 'gtf/orders', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'full_condition', true, true, 8,  180, 'left', 'gtf_146', NULL, 'gtf/usersurveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'full_condition', true, true, 9,  130, 'left', 'gtf_146', NULL, 'gtf/surveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_id', true, true, 1,  30, 'right', 'gtf_139', NULL, 'gtf/usersurveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'label_name', true, true, 2,  290, 'left', 'gtf_140', NULL, 'gtf/usersurveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_date', true, true, 4,  120, 'left', 'gtf_142', NULL, 'gtf/usersurveys', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_period_libelle', true, true, 6,  205, 'left', 'gtf_135', NULL, 'gtf/usersurveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'survey_name', true, true, 7,  150, 'left', 'gtf_145', NULL, 'gtf/usersurveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'order_status_id', true, true, 3,  30, 'center', 'gtf_118', NULL, 'gtf/orders', '<div data-app-order-status-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'notification', true, true, 9,  150, 'left', 'gtf_181', NULL, 'gtf/usersurveys', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'description', true, true, 6,  40, 'center', 'gtf_85', NULL, 'gtf/workspaces', '<div data-app-workspace-description-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'enabled', true, true, 5,  50, 'center', 'gtf_189', NULL, 'gtf/periods', '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_period'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'enabled', true, true, 3,  50, 'center', 'gtf_182', NULL, 'gtf/usersubscriptions', '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'enabled', true, true, 9,  50, 'center', 'gtf_182', NULL, 'gtf/subscriptions', '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'enabled', true, true, 3,  50, 'center', 'gtf_182', NULL, 'gtf/surveys', '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'wk_params', true, true, 5,  75, 'center', 'gtf_37', NULL, 'gtf/usersubscriptions', '<div data-app-workspace-parameters-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'wk_params', true, true, 7,  75, 'center', 'gtf_122', NULL, 'gtf/orders', '<div data-app-workspace-parameters-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+				INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'wk_params', true, true, 6,  80, 'center', 'gtf_143', NULL, 'gtf/surveys', '<div data-app-workspace-parameters-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_survey'));
+			 	]]>
+			</code>
+		</query>
+		<query>
+			<type>update</type>
+			<version>2016.02.00</version>
+                        <code>
+                            <![CDATA[ 
+                                -- Frédéric le 24/10/2016 15:47
+                                UPDATE s_vitis.vm_table_button SET event='DeleteSelection' WHERE tab_id=(select tab_id from s_vitis.vm_tab where name = 'gtf_workspace') AND label_id='gtf_93';
+                                DELETE FROM s_vitis.vm_table_field WHERE name='locked' AND tab_id=(select tab_id from s_vitis.vm_tab where name = 'gtf_workspace');
+                                CREATE OR REPLACE VIEW s_gtf.v_user_workspace AS  SELECT DISTINCT workspace.workspace_id,    workspace.name,    workspace.description,    workspace.subscription,    workspace.fmw_file,    workspace.category_id,    workspace.survey, workspace_group.group_id   FROM s_gtf.workspace,    s_gtf.workspace_group  WHERE workspace.workspace_id = workspace_group.workspace_id   ORDER BY workspace.workspace_id, workspace.name, workspace.description, workspace.subscription, workspace.fmw_file;
+                                CREATE OR REPLACE VIEW s_gtf.v_inbox AS  SELECT DISTINCT inbox.inbox_id,    replace(inbox.name::text, '$user'::text, "user".login::text) AS name,    replace(inbox.alias::text, '$user'::text, "user".login::text) AS alias, inbox_group.group_id   FROM s_gtf.inbox,    s_gtf.inbox_group,    s_vitis."group",    s_vitis.user_group,    s_vitis."user"  WHERE inbox.inbox_id = inbox_group.inbox_id AND inbox_group.group_id = "group".group_id AND "group".group_id = user_group.group_id AND user_group.user_id = "user".user_id;
+
+                                -- Frédéric le 06/12/2016 10:28
+				INSERT INTO s_gtf.workspace (workspace_id, name, description, subscription, fmw_file, category_id, success_action_id, failed_action_id, survey, form_type, key, tag) VALUES (-3, 'Admin-Form-Checker', 'Vérification des formulaires', false,  'formChecker.fmw', (select category_id from s_gtf.category where name = 'Administration'), 0, 0, false, 'custom', '2EW0ET1BDHLWC',  'default');
+				INSERT INTO s_gtf.workspace_group (workspace_id, group_id, workspace_group_id) VALUES (-3, (select group_id from s_vitis.group where name = 'Administration'), (SELECT nextval('s_gtf.seq_common')));
+                            ]]>
+                        </code>
+                </query>
+		<query>
+			<type>update</type>
+			<version>2017.01.00</version>
+                        <code>
+                            <![CDATA[ 
+                                -- Sébastien le 02/02/2017 15:47
+                                UPDATE s_gtf.server SET scheduler_network_home= scheduler_network_home || '\crontab.txt';
+                                UPDATE s_vitis.vm_translation SET translation = 'Période' WHERE translation_id = 'gtf_38' AND lang = 'fr';
+                                UPDATE s_vitis.vm_translation SET translation = 'Periods' WHERE translation_id = 'gtf_38' AND lang = 'en';
+                                UPDATE s_vitis.vm_translation SET translation = 'Chemin vers l''exécutable de FME' WHERE translation_id = 'gtf_213' AND lang = 'fr';
+                                UPDATE s_vitis.vm_translation SET translation = 'Path to the FME executable' WHERE translation_id = 'gtf_213' AND lang = 'en';
+                                UPDATE s_vitis.vm_translation SET translation = 'Chemin du fichier crontab' WHERE translation_id = 'gtf_203' AND lang = 'fr';
+                                UPDATE s_vitis.vm_translation SET translation = 'Crontab file path' WHERE translation_id = 'gtf_203' AND lang = 'en';
+                                -- Frédéric le 09/02/2017 11:35
+                                UPDATE s_vitis.vm_section SET event = 'loadGtfGroup()', name = 'gtf_group' WHERE tab_id = (SELECT tab_id FROM s_vitis.vm_tab WHERE name = 'vitis_group') AND name = 'group';
+                            ]]>
+                        </code>
+                </query>
+                <query>
+					<type>update</type>
+					<version>2017.01.01</version>
+                    <code>
+                        <![CDATA[ 
+                          ]]>
+                    </code>
+                </query>
+                <query>
+					<type>update</type>
+					<version>2017.01.02</version>
+                    <code>
+                        <![CDATA[ 
+                          ]]>
+                    </code>
+                </query>
+                <query>
+					<type>update</type>
+					<version>2017.01.03</version>
+                    <code>
+                        <![CDATA[ 
+                                -- Frédéric le 28/09/2017 14:23
+                                UPDATE s_vitis.vm_table_field SET template = '<div data-app-workspace-parameters-column="{{row.entity[col.field]}}"></div>' WHERE label_id = 'gtf_134';
+                                -- Frédéric le 06/10/2017 09:16
+                                GRANT SELECT ON TABLE s_vitis."user" TO u_scheduler;
+                                GRANT SELECT ON TABLE s_vitis."user_group" TO u_scheduler;
+                          ]]>
+                    </code>
+                </query>
+	 			<query>
+					<type>update</type>
+					<version>2017.01.04</version>
+                    <code>
+                        <![CDATA[ 
+                                -- Yoann le 06/11/2017 09:45
+                            	INSERT INTO s_gtf.rt_messageclass_type (messageclass_type) SELECT 'action' WHERE NOT EXISTS (SELECT messageclass_type FROM s_gtf.rt_messageclass_type WHERE messageclass_type = 'action') RETURNING messageclass_type;;
+								INSERT INTO s_gtf.rt_messageclass_type (messageclass_type) SELECT 'info' WHERE NOT EXISTS (SELECT messageclass_type FROM s_gtf.rt_messageclass_type WHERE messageclass_type = 'info') RETURNING messageclass_type;;
+								INSERT INTO s_gtf.rt_messageclass_type (messageclass_type) SELECT 'warning' WHERE NOT EXISTS (SELECT messageclass_type FROM s_gtf.rt_messageclass_type WHERE messageclass_type = 'warning') RETURNING messageclass_type;;
+
+                          ]]>
+                    </code>
+                </query>
+				<query>
+					<type>update</type>
+					<version>2018.01.00</version>
+                    <code>
+                        <![CDATA[ 
+                                -- Frédéric le 16/01/2018 15:04
+                                GRANT ALL ON TABLE s_gtf.message TO gtf_scheduler;
+                                GRANT USAGE ON SCHEMA s_vitis TO u_scheduler;
+                                -- Frédéric le 13/02/2018 11:48
+                                UPDATE s_vitis.vm_table_button SET event='deleteGtfEngine' WHERE tab_id=(select tab_id from s_vitis.vm_tab where name = 'gtf_gtf_engine') AND label_id='gtf_218';
+                          ]]>
+                    </code>
+                </query>
+                <query>
+					<type>update</type>
+					<version>2018.02.00</version>
+                    <code>
+                        <![CDATA[ 
+                            -- anthony 05/04/2018 10:42
+                            UPDATE s_vitis.vm_tab SET event='loadList("showSupervisionRecap()");' WHERE label_id='gtf_60' AND "name"='gtf_order';
+                            UPDATE s_vitis.vm_table_field SET template = '<div data-app-duration-calculator="row.entity[col.field]" style="height: 100%; padding: 5px;"></div>' WHERE name = 'length_sec' AND ressource_id = 'gtf/orders';
+                            CREATE OR REPLACE VIEW s_gtf.v_order_fast AS SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, "order".length_sec, gtf_engine.name FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id LEFT JOIN s_gtf.rt_priority ON "order".priority_id = rt_priority.priority_id LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_gtf.rt_order_status ON "order".order_status_id = rt_order_status.order_status_id LEFT JOIN s_gtf.gtf_engine ON "order".gtf_engine_id = gtf_engine.gtf_engine_id WHERE "order".period_id IS NULL;
+                            ALTER TABLE s_gtf.v_order_fast OWNER TO u_vitis;
+                            GRANT SELECT ON TABLE s_gtf.v_order_fast TO gtf_user;
+                            GRANT ALL ON TABLE s_gtf.v_order_fast TO u_vitis;
+                            GRANT SELECT ON TABLE s_gtf.v_order_fast TO gtf_author;
+                            GRANT ALL ON TABLE s_gtf.v_order_fast TO gtf_admin;
+                            CREATE OR REPLACE VIEW s_gtf.v_supervision_status AS SELECT count(v_order_fast.order_id) AS nb_order_id, v_order_fast.order_status_id AS filter, 'order'::text AS table_name FROM s_gtf.v_order_fast GROUP BY v_order_fast.order_status_id UNION SELECT count(v_subscription.order_id) AS nb_order_id, CASE WHEN v_subscription.enabled IS TRUE THEN 1 ELSE 0 END AS filter, 'subscription'::text AS table_name FROM s_gtf.v_subscription WHERE v_subscription.lang::text = 'fr'::text GROUP BY v_subscription.enabled UNION SELECT count(v_survey.order_id) AS nb_order_id, CASE WHEN v_survey.enabled IS TRUE THEN 1 ELSE 0 END AS filter, 'survey'::text AS table_name FROM s_gtf.v_survey WHERE v_survey.lang::text = 'fr'::text GROUP BY v_survey.enabled;
+                            CREATE OR REPLACE VIEW s_gtf.v_workspace AS SELECT workspace.workspace_id, workspace.name, workspace.owner, workspace.creation_date, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.success_action_id, workspace.failed_action_id, workspace.survey, workspace.form_type, workspace.legal_terms_conditions, workspace.last_save_date, workspace.last_save_build, workspace.file_encoding, workspace.title, workspace.requirements, workspace.history, workspace.usage, workspace.key, workspace.email_template_id, workspace.locked, workspace.tag, "user".login, category.name AS category_name, CASE WHEN t.nb_demandes IS NULL THEN 0::bigint ELSE t.nb_demandes END AS nb_demande, email_template.name AS email_template FROM s_gtf.workspace LEFT JOIN s_vitis."user" ON workspace.owner = "user".user_id LEFT JOIN s_gtf.category ON workspace.category_id = category.category_id LEFT JOIN s_gtf.email_template ON workspace.email_template_id = email_template.email_template_id LEFT JOIN (SELECT count(*) AS nb_demandes, v_order_fast.workspace_id FROM s_gtf.v_order_fast GROUP BY v_order_fast.workspace_id) t ON workspace.workspace_id = t.workspace_id;
+                            -- Frédéric le 19/04/2018 16:27
+                            UPDATE s_vitis.vm_tab SET event='loadList(''showSupervisionRecap()'',{"lang": ""});' WHERE label_id='gtf_60' AND "name"='gtf_order';
+                            UPDATE s_vitis.vm_tab SET event='loadList("showSupervisionRecap();refreshWorkspaceListByPeriod();")' WHERE label_id='gtf_262' AND "name"='gtf_message';
+                            DROP VIEW s_gtf.v_supervision_status;
+                            CREATE OR REPLACE VIEW s_gtf.v_supervision_status AS SELECT count(v_order.order_id) AS nb_order_id, v_order.order_status_id AS filter, 'order'::text AS table_name FROM s_gtf.v_order WHERE v_order.lang::text = 'fr'::text GROUP BY v_order.order_status_id UNION SELECT count(v_subscription.order_id) AS nb_order_id, CASE WHEN v_subscription.enabled IS TRUE THEN 1 ELSE 0 END AS filter, 'subscription'::text AS table_name FROM s_gtf.v_subscription WHERE v_subscription.lang::text = 'fr'::text GROUP BY v_subscription.enabled UNION SELECT count(v_survey.order_id) AS nb_order_id, CASE WHEN v_survey.enabled IS TRUE THEN 1 ELSE 0 END AS filter, 'survey'::text AS table_name FROM s_gtf.v_survey WHERE v_survey.lang::text = 'fr'::text GROUP BY v_survey.enabled UNION SELECT count(message_id) AS nb_order_id, status AS filter, 'message'::text AS table_name FROM s_gtf.message GROUP BY status;
+                            ALTER TABLE s_gtf.v_supervision_status OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_supervision_status TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_supervision_status TO gtf_admin;
+                            GRANT SELECT ON TABLE s_gtf.v_supervision_status TO gtf_user;
+                            GRANT SELECT ON TABLE s_gtf.v_supervision_status TO gtf_author;
+                            UPDATE s_vitis.vm_table_field SET template = '<div data-app-message-status-icon-column="{{row.entity[col.field]}}"></div>' WHERE label_id = 'gtf_277';
+                            -- Frédéric le 20/04/2018 14:47
+                            GRANT ALL ON TABLE s_gtf."message" TO gtf_scheduler;
+                            
+                            -- Frédéric le 23/04/2018 14:30
+                            INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('publication_author', 'gtf');
+                            INSERT INTO s_vitis.vm_mode_rolname (index, mode_id, rolname) VALUES (40, 'publication_author', 'gtf_author');
+
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet Projet FME du mode Publication', 'gtf_295');
+
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ workspace_id de l''onglet gtf_workspace_author', 'gtf_296');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ name de l''onglet gtf_workspace_author', 'gtf_297');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ description de l''onglet gtf_workspace_author', 'gtf_298');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ category de l''onglet gtf_workspace_author', 'gtf_299');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ subscription de l''onglet gtf_workspace_author', 'gtf_300');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ fmw_file de l''onglet gtf_workspace_author', 'gtf_301');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ nb_demande de l''onglet gtf_workspace_author', 'gtf_302');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ survey de l''onglet gtf_workspace_author', 'gtf_303');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ form_type de l''onglet gtf_workspace_author', 'gtf_304');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champs nb_demande de l''onglet gtf_workspace_author', 'gtf_305');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ versin de l''onglet gtf_workspace_author', 'gtf_306');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ owner de l''onglet gtf_workspace_author', 'gtf_307');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Colonne email_template de l''onglet gtf_workspace_author', 'gtf_308');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ key de l''onglet gtf_workspace_author', 'gtf_309');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Général de l''objet gtf_workspace_author', 'gtf_310');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Métadonnées de l''objet gtf_workspace_author', 'gtf_311');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Droits de l''objet gtf_workspace_author', 'gtf_312');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Formulaire de l''objet gtf_workspace_author', 'gtf_313');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Appel Externe de l''objet gtf_workspace_author', 'gtf_314');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Onglet Répertoire projet de l''objet gtf_workspace_author', 'gtf_315');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table workspace', 'gtf_316');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table workspace', 'gtf_317');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de de plusieurs projets de la table workspace', 'gtf_318');
+
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_295', 'fr', 'Projets FME');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_295', 'en', 'FME Workspace');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_296', 'fr', 'ID');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_296', 'en', 'ID');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_297', 'fr', 'Nom');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_297', 'en', 'Name');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_298', 'en', 'Desc.');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_298', 'fr', 'Desc.');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_299', 'fr', 'Catégorie');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_299', 'en', 'Category');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_300', 'fr', 'Abo.');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_300', 'en', 'Sub.');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_301', 'en', 'FMW File');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_301', 'fr', 'Fichier FMW');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_302', 'fr', 'Demandes');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_302', 'en', 'Orders');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_303', 'fr', 'Surv.');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_303', 'en', 'Surv.');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_304', 'fr', 'Formulaire');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_304', 'en', 'Form');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_305', 'fr', 'Moteur');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_305', 'en', 'Engine');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_306', 'fr', 'Version FME');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_306', 'en', 'FME version');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_307', 'fr', 'Propriétaire');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_307', 'en', 'Owner');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_308', 'fr', 'Modèle e-mail');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_308', 'en', 'E-mail template');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_309', 'fr', 'Clé');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_309', 'en', 'Key');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_310', 'fr', 'Informations générales');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_310', 'en', 'General Information');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_311', 'fr', 'Métadonnées');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_311', 'en', 'Metadata');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_312', 'fr', 'Droits');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_312', 'en', 'Privileges');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_313', 'fr', 'Formulaire');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_313', 'en', 'Form');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_314', 'fr', 'Appel Externe');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_314', 'en', 'Widget');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_315', 'fr', 'Répertoire projet');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_315', 'en', 'Projet directory');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_316', 'fr', 'Ajouter un projet FME');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_316', 'en', 'Add workspace');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_317', 'fr', 'Supprimer les projets');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_317', 'en', 'Delete workspaces');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_318', 'fr', 'Ajout par lot');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_318', 'en', 'Import projects');
+
+                            INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 0, 'publication_author', 'gtf_295', 'gtf/authorworkspaces', 'editSectionForm', 'showSectionForm', 'workspace_id', 'DESC', 'gtf_workspace_author');
+                            
+                            INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_310', 'general', 1, 'Javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'), 'workspaceListTpl.html', NULL, 'gtf');
+                            INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_311', 'updateMetadata', 2, 'Javascript:loadSection',(select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'), 'simpleFormTpl.html', NULL, 'gtf');
+                            INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_312', 'updateRight', 3, 'Javascript:loadSection',(select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'), 'simpleFormTpl.html', NULL, 'gtf');
+                            INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_313', 'SubForm', 4, 'loadStudioGTF()', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'), 'modules/gtf/templates/subFormTpl.html', NULL, 'gtf');
+                            INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_314', 'editWidget', 5, 'loadWorkspaceEditWidget()', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'), 'simpleFormTpl.html', NULL, 'gtf');
+                            INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'gtf_315', 'loadProjectDirectory', 6, 'Javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'), 'modules/gtf/templates/projectDirectoryTpl.html', NULL, 'gtf');
+
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'workspace_id', true, true, 1, 30, 'right', 'gtf_296', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2,  350, 'left', 'gtf_297', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'fmw_file', true, true, 3, 300, 'left', 'gtf_301', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'login', true, true, 4,  100, 'left', 'gtf_307', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'category_name', true, true, 5, 100, 'left', 'gtf_299', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'description', true, true, 6,  40, 'center', 'gtf_298', NULL, 'gtf/authorworkspaces', '<div data-app-workspace-description-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'last_save_build', true, true, 7, 150, 'left', 'gtf_306', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'subscription', true, true, 8,  40, 'center', 'gtf_300', NULL, 'gtf/authorworkspaces', '<div data-app-set-true-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'survey', true, true, 9,  40, 'center', 'gtf_303', NULL, 'gtf/authorworkspaces', '<div data-app-set-true-icon-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'tag', true, true, 10,  150, 'left', 'gtf_305', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'nb_demande', true, true, 11,  60, 'right', 'gtf_302', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'form_type', true, true, 12,  80, 'center', 'gtf_304', NULL, 'gtf/authorworkspaces', '<div data-app-workspace-form-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email_template', true, true, 14,  120, 'left', 'gtf_308', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'key', true, true, 15, 170, 'left', 'gtf_309', NULL, 'gtf/authorworkspaces', NULL, (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            
+                            INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'gtf_316', 'gtf/authorworkspaces', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'gtf_317', 'gtf/authorworkspaces', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('adImport', (select nextval('s_vitis.seq_vm'::regclass)), 'ImportWorkspaces', 'gtf_318', 'gtf/authorworkspaces', (select tab_id from s_vitis.vm_tab where name = 'gtf_workspace_author'));
+                            
+                            CREATE OR REPLACE VIEW s_gtf.v_author_workspace AS SELECT * FROM s_gtf.v_workspace WHERE login::name = "current_user"()::text;
+                            ALTER TABLE s_gtf.v_author_workspace OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_author_workspace TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_author_workspace TO gtf_user;
+                            GRANT ALL ON TABLE s_gtf.v_author_workspace TO gtf_admin;
+                            GRANT ALL ON TABLE s_gtf.v_author_workspace TO gtf_author;                            
+
+                            -- Frédéric le 25/04/2018 16:57
+                            ALTER TABLE s_gtf."order" ALTER COLUMN order_date DROP DEFAULT;
+                            ALTER TABLE s_gtf."order" ALTER COLUMN order_date SET NOT NULL;
+                            CREATE OR REPLACE RULE insert_v_user_order AS ON INSERT TO s_gtf.v_user_order DO INSTEAD  INSERT INTO s_gtf."order" (order_id, priority_id, workspace_id, user_id, wk_params, result_url, log_url, execution_date, attempt, email_notifications, email_option_id, deleted, gtf_engine_id, order_date) VALUES (new.order_id, new.priority_id, new.workspace_id, new.user_id, new.wk_params, new.result_url, new.log_url, new.execution_date, new.attempt, new.email_notifications, new.email_option_id, false, new.gtf_engine_id, new.order_date);
+                            CREATE OR REPLACE RULE insert_v_user_subscription AS ON INSERT TO s_gtf.v_user_subscription DO INSTEAD  INSERT INTO s_gtf."order" (order_id, workspace_id, user_id, period_id, execution_date, wk_params, result_url, email_option_id, email_notifications, gtf_engine_id, enabled, order_date) VALUES (new.order_id, new.workspace_id, new.user_id, new.period_id, new.execution_date, new.wk_params, new.result_url, new.email_option_id, new.email_notifications, new.gtf_engine_id, new.enabled, new.order_date);
+                            CREATE OR REPLACE RULE insert_v_user_survey AS ON INSERT TO s_gtf.v_user_survey DO INSTEAD  INSERT INTO s_gtf."order" (order_id, workspace_id, user_id, enabled, period_id, execution_date, wk_params, result_url, email_option_id, email_notifications, gtf_engine_id, survey_id, condition, inbox_id, order_date) VALUES (new.order_id, new.workspace_id, new.user_id, new.enabled, new.period_id, new.execution_date, new.wk_params, new.result_url, new.email_option_id, new.email_notifications, new.gtf_engine_id, new.survey_id, CASE WHEN new.condition IS NULL THEN ''::character varying ELSE new.condition END, new.inbox_id, new.order_date);
+                            
+                            -- Frédéric le 15/05/2018 16:15
+                            UPDATE s_vitis.vm_tab SET event='loadList("showSupervisionRecap()");' WHERE label_id='gtf_60' AND "name"='gtf_order';
+                            
+                            -- Frédéric le 15/06/2018 09:15
+                            ALTER TABLE s_gtf.workspace ADD COLUMN dataencrypt boolean DEFAULT FALSE;
+                            CREATE OR REPLACE VIEW s_gtf.v_workspace AS SELECT workspace.workspace_id, workspace.name, workspace.owner, workspace.creation_date, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.success_action_id, workspace.failed_action_id, workspace.survey, workspace.form_type, workspace.legal_terms_conditions, workspace.last_save_date, workspace.last_save_build, workspace.file_encoding, workspace.title, workspace.requirements, workspace.history, workspace.usage, workspace.key, workspace.email_template_id, workspace.locked, workspace.tag, "user".login, category.name AS category_name, CASE WHEN t.nb_demandes IS NULL THEN 0::bigint ELSE t.nb_demandes END AS nb_demande, email_template.name AS email_template, workspace.dataencrypt FROM s_gtf.workspace LEFT JOIN s_vitis."user" ON workspace.owner = "user".user_id LEFT JOIN s_gtf.category ON workspace.category_id = category.category_id LEFT JOIN s_gtf.email_template ON workspace.email_template_id = email_template.email_template_id LEFT JOIN (SELECT count(*) AS nb_demandes, v_order_fast.workspace_id FROM s_gtf.v_order_fast GROUP BY v_order_fast.workspace_id) t ON workspace.workspace_id = t.workspace_id;                                
+                            
+                            -- Frédéric le 20/06/2018 14:36
+                            INSERT INTO s_gtf.email_template (email_template_id, name, subject, "body", "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES (-1, 'default_secretkey', 'Notification de clé secrète pour le traitement [order_id]', '<p>order.user.email = [order.user.email]</p> <p> </p> <p> </p> <p>Bonjour [owner_name],</p> <p>Le traitement est terminé.</p> <p>Vous pouvez télécharger le résultat sur :</p> <p>user_email] = [user_email]</p> <p>user] = [user]</p> <p>log = [log_url]</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p>', 'tot@veremes.com', NULL, NULL, E'$logo = $this->aProperties[''ws_data_dir'']."/gtf/gtf.png";\n$base64 = base64_encode(file_get_contents($logo));\n$image = ''<img src="data:image/png;base64,''.$base64.''">'';\n$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';\n$this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';\n$this->cci = '''';\n$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '''';\n$this->body = $image.''<p>Bonjour,</p>'';\n$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Votre clé secrète'';\n$this->body .= ''<p>Votre clé secrète pour la demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' du traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> :<br/>'' . $this->aObjects["oOrder"]->sSecretKey . ''<br/>'';\n$this->body .= ''<p><span style="color: #808080;font-size: smaller;"> Ce message a été envoyé par un automate. Merci de ne pas y répondre.</span></p>'';\n', true, 'gtf', NULL);
+
+                            -- Frédéric le 21/06/2018 10:08
+                            UPDATE s_gtf.email_template SET code = E'$logo = $this->aProperties[''ws_data_dir'']."/gtf/gtf.png";\n$base64 = base64_encode(file_get_contents($logo));\n$image = ''<img src="data:image/png;base64,''.$base64.''">'';\n$this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';\n$this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';\n$this->cci = '''';\n$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '''';\n$this->body = $image.''<p>Bonjour,</p>'';\nif ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {\n	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Traitement réussi'';\n    $this->body .= ''<p>Votre demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> a bien été exécutée.<br/>'';\n	// Si le résultat est crypté : pas de pièce jointe ou de lien de téléchargement.\n	if ($aObjects[''oOrder'']->aFields[''bDataEncrypt'']) {\n        $this->body .= ''Le résultat est disponible en vous connectant à l\\''application :<p><a href="'' . $aObjects[''oOrder'']->aFields[''sApplicationUrl''] . ''">'' . $aObjects[''oOrder'']->aFields[''sApplicationUrl''] . ''</a></p>'';\n	}\n    else if($this->aObjects["oOrder"]->aFields[''result_file''] != ''''){\n		// les résultats de moins de 5 Mo sont envoyés en pièce jointe\n        if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){\n            $this->body .= ''Le résultat est disponible par téléchargement :<p><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';\n        } else {\n            $this->body .= ''<p>Le résultat est disponible en pièce jointe</p>'';\n            $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];\n        }\n    }\n} else {\n	$this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';\n    $this->body .= ''<p>Votre demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';\n    $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];\n}\n$this->body .= ''<p><span style="color: #808080;font-size: smaller;"> Ce message a été envoyé par un automate. Merci de ne pas y répondre.</span></p>'';\n' WHERE email_template_id = 1;
+
+                            -- Frédéric le 21/06/2018 12:15
+                            ALTER TABLE s_gtf.workspace ADD COLUMN usepersonaldata boolean DEFAULT FALSE;
+                            
+                            -- Frédéric le 21/06/2018 14:00
+                            CREATE OR REPLACE VIEW s_gtf.v_workspace AS SELECT workspace.workspace_id, workspace.name, workspace.owner, workspace.creation_date, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.success_action_id, workspace.failed_action_id, workspace.survey, workspace.form_type, workspace.legal_terms_conditions, workspace.last_save_date, workspace.last_save_build, workspace.file_encoding, workspace.title, workspace.requirements, workspace.history, workspace.usage, workspace.key, workspace.email_template_id, workspace.locked, workspace.tag, "user".login, category.name AS category_name, CASE WHEN t.nb_demandes IS NULL THEN 0::bigint ELSE t.nb_demandes END AS nb_demande, email_template.name AS email_template, workspace.dataencrypt, workspace.usepersonaldata FROM s_gtf.workspace LEFT JOIN s_vitis."user" ON workspace.owner = "user".user_id LEFT JOIN s_gtf.category ON workspace.category_id = category.category_id LEFT JOIN s_gtf.email_template ON workspace.email_template_id = email_template.email_template_id LEFT JOIN (SELECT count(*) AS nb_demandes, v_order_fast.workspace_id FROM s_gtf.v_order_fast GROUP BY v_order_fast.workspace_id) t ON workspace.workspace_id = t.workspace_id;                                
+                           
+                            -- Frédéric le 25/06/2018 10:54
+                            ALTER TABLE s_gtf.workspace ADD COLUMN unitcost float;
+                            ALTER TABLE s_gtf.workspace ADD COLUMN costpersecond float;
+                            CREATE OR REPLACE VIEW s_gtf.v_workspace AS SELECT workspace.workspace_id, workspace.name, workspace.owner, workspace.creation_date, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.success_action_id, workspace.failed_action_id, workspace.survey, workspace.form_type, workspace.legal_terms_conditions, workspace.last_save_date, workspace.last_save_build, workspace.file_encoding, workspace.title, workspace.requirements, workspace.history, workspace.usage, workspace.key, workspace.email_template_id, workspace.locked, workspace.tag, "user".login, category.name AS category_name, CASE WHEN t.nb_demandes IS NULL THEN 0::bigint ELSE t.nb_demandes END AS nb_demande, email_template.name AS email_template, workspace.dataencrypt, workspace.usepersonaldata, workspace.unitcost, workspace.costpersecond FROM s_gtf.workspace LEFT JOIN s_vitis."user" ON workspace.owner = "user".user_id LEFT JOIN s_gtf.category ON workspace.category_id = category.category_id LEFT JOIN s_gtf.email_template ON workspace.email_template_id = email_template.email_template_id LEFT JOIN (SELECT count(*) AS nb_demandes, v_order_fast.workspace_id FROM s_gtf.v_order_fast GROUP BY v_order_fast.workspace_id) t ON workspace.workspace_id = t.workspace_id;        
+
+                            -- Anthony le 10/07/2018 17:00
+                            INSERT INTO s_gtf.actionclass (actionclass, label) VALUES ('SMSAction', '<p>Notification d''envoi de SMS</p>');
+                            
+                            -- Frédéric le 18/07/2018 14:45
+                            ALTER TABLE s_gtf.order ADD COLUMN minexecdate timestamp with time zone;
+                            
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ minexecdate de l''onglet gtf_user_order', 'gtf_327');
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ minexecdate de l''onglet gtf_order', 'gtf_328');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_327', 'fr', 'Date de planification');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_327', 'en', 'Planning date');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_328', 'fr', 'Date de planification');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_328', 'en', 'Planning date');
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'minexecdate', true, true, 9, 120, 'left', 'gtf_327', NULL, 'gtf/userorders', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order'));
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'minexecdate', true, true, 9, 120, 'left', 'gtf_328', NULL, 'gtf/orders', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+                            
+                            ALTER TABLE s_gtf.message ADD COLUMN minexecdate timestamp with time zone;
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ minexecdate de l''onglet gtf_message', 'gtf_329');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_329', 'fr', 'Date de planification');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_329', 'en', 'Planning date');
+                            INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'minexecdate', true, true, 6, 120, 'left', 'gtf_329', NULL, 'gtf/messages', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'gtf_message'));
+                            
+                            -- Frédéric le 19/07/2018 10:53
+                            CREATE OR REPLACE VIEW s_gtf.v_message AS SELECT message.message_id, message.messageclass, message.creation_date, message.body, message.sender, messageclass.messageclass_type, message.status, message.minexecdate FROM s_gtf.message LEFT JOIN s_gtf.messageclass ON message.messageclass::text = messageclass.messageclass::text;
+
+                            -- Frédéric le 20/07/2018 12:23
+                            CREATE OR REPLACE VIEW s_gtf.v_order AS SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, s_gtf.s2hms("order".length_sec) AS length_sec, priority_translation.translation AS priority_label, email_option_translation.translation AS email_option_label, priority_translation.lang, gtf_engine.name, order_status_translation.translation AS order_status_label, timezone("user".timezone_id::text, "order".minexecdate) AS minexecdate FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id LEFT JOIN s_gtf.rt_priority ON "order".priority_id = rt_priority.priority_id LEFT JOIN s_vitis.vm_translation priority_translation ON rt_priority.label_id::text = priority_translation.translation_id::text LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text LEFT JOIN s_gtf.rt_order_status ON "order".order_status_id = rt_order_status.order_status_id LEFT JOIN s_vitis.vm_translation order_status_translation ON rt_order_status.label_id::text = order_status_translation.translation_id::text AND priority_translation.lang::text = order_status_translation.lang::text LEFT JOIN s_gtf.gtf_engine ON "order".gtf_engine_id = gtf_engine.gtf_engine_id WHERE "order".period_id IS NULL AND priority_translation.lang::text = email_option_translation.lang::text;
+                            CREATE OR REPLACE VIEW s_gtf.v_order_fast AS SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, "order".length_sec, gtf_engine.name, timezone("user".timezone_id::text, "order".minexecdate) AS minexecdate FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id LEFT JOIN s_gtf.rt_priority ON "order".priority_id = rt_priority.priority_id LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_gtf.rt_order_status ON "order".order_status_id = rt_order_status.order_status_id LEFT JOIN s_gtf.gtf_engine ON "order".gtf_engine_id = gtf_engine.gtf_engine_id WHERE "order".period_id IS NULL;
+                            CREATE OR REPLACE VIEW s_gtf.v_user_order AS SELECT "order".order_id, "order".priority_id, workspace.key AS workspace_key, "order".workspace_id, workspace.name, "order".order_status_id, "order".user_id, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, s_gtf.s2hms("order".length_sec) AS length_sec, workspace.name AS workspace_name, priority_translation.translation AS priority_label, email_option_translation.translation AS email_option_label, priority_translation.lang, order_status_translation.lang AS order_status_lang, order_status_translation.translation AS order_status_label, timezone("user".timezone_id::text, "order".minexecdate) AS minexecdate FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.rt_priority ON "order".priority_id = rt_priority.priority_id LEFT JOIN s_gtf.rt_order_status ON "order".order_status_id = rt_order_status.order_status_id LEFT JOIN s_vitis.vm_translation priority_translation ON rt_priority.label_id::text = priority_translation.translation_id::text LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text LEFT JOIN s_vitis.vm_translation order_status_translation ON rt_order_status.label_id::text = order_status_translation.translation_id::text LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id WHERE "order".user_id::text ~ similar_escape((( SELECT "user".user_id FROM s_vitis."user" WHERE "user".login::name = "current_user"()))::text, NULL::text) AND "order".period_id IS NULL AND "order".deleted IS NOT TRUE AND priority_translation.lang::text = email_option_translation.lang::text AND priority_translation.lang::text = order_status_translation.lang::text;
+                            CREATE OR REPLACE RULE insert_v_user_order AS ON INSERT TO s_gtf.v_user_order DO INSTEAD  INSERT INTO s_gtf."order" (order_id, priority_id, workspace_id, user_id, wk_params, result_url, log_url, execution_date, attempt, email_notifications, email_option_id, deleted, gtf_engine_id, order_date, minexecdate) VALUES (new.order_id, new.priority_id, new.workspace_id, new.user_id, new.wk_params, new.result_url, new.log_url, new.execution_date, new.attempt, new.email_notifications, new.email_option_id, false, new.gtf_engine_id, new.order_date, new.minexecdate);
+
+                            -- Frédéric le 20/07/2018 15:30
+                            ALTER TABLE s_gtf.job ALTER COLUMN execution_date TYPE timestamp with time zone;
+                            DROP VIEW s_gtf.v_supervision_status;
+                            DROP VIEW s_gtf.v_subscription;
+                            DROP VIEW s_gtf.v_survey;
+                            DROP VIEW s_gtf.v_user_subscription;
+                            DROP VIEW s_gtf.v_user_survey;
+                            DROP VIEW s_gtf.v_order;
+                            DROP VIEW s_gtf.v_author_workspace;
+                            DROP VIEW s_gtf.v_workspace;
+                            DROP VIEW s_gtf.v_user_order;
+                            DROP VIEW s_gtf.v_order_fast;
+
+                            ALTER TABLE s_gtf.order ALTER COLUMN order_date TYPE timestamp with time zone;
+                            ALTER TABLE s_gtf.order ALTER COLUMN execution_date TYPE timestamp with time zone;
+                            ALTER TABLE s_gtf.workspace ALTER COLUMN last_save_date TYPE timestamp with time zone;
+                            ALTER TABLE s_gtf.workspace ALTER COLUMN creation_date TYPE timestamp with time zone;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_user_order AS SELECT "order".order_id, "order".priority_id, workspace.key AS workspace_key, "order".workspace_id, workspace.name, "order".order_status_id, "order".user_id, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, s_gtf.s2hms("order".length_sec) AS length_sec, workspace.name AS workspace_name, priority_translation.translation AS priority_label, email_option_translation.translation AS email_option_label, priority_translation.lang, order_status_translation.lang AS order_status_lang, order_status_translation.translation AS order_status_label, "order".minexecdate FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.rt_priority ON "order".priority_id = rt_priority.priority_id LEFT JOIN s_gtf.rt_order_status ON "order".order_status_id = rt_order_status.order_status_id LEFT JOIN s_vitis.vm_translation priority_translation ON rt_priority.label_id::text = priority_translation.translation_id::text LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text LEFT JOIN s_vitis.vm_translation order_status_translation ON rt_order_status.label_id::text = order_status_translation.translation_id::text LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id WHERE "order".user_id::text ~ similar_escape((( SELECT user_1.user_id FROM s_vitis."user" user_1 WHERE user_1.login::name = "current_user"()))::text, NULL::text) AND "order".period_id IS NULL AND "order".deleted IS NOT TRUE AND priority_translation.lang::text = email_option_translation.lang::text AND priority_translation.lang::text = order_status_translation.lang::text;
+                            ALTER TABLE s_gtf.v_user_order OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_user_order TO gtf_admin;
+                            GRANT ALL ON TABLE s_gtf.v_user_order TO gtf_user;
+                            GRANT SELECT ON TABLE s_gtf.v_user_order TO gtf_author;
+                            CREATE OR REPLACE RULE delete_v_user_order AS ON DELETE TO s_gtf.v_user_order DO INSTEAD  UPDATE s_gtf."order" SET deleted = true WHERE "order".order_id = old.order_id;
+                            CREATE OR REPLACE RULE insert_v_user_order AS ON INSERT TO s_gtf.v_user_order DO INSTEAD  INSERT INTO s_gtf."order" (order_id, priority_id, workspace_id, user_id, wk_params, result_url, log_url, execution_date, attempt, email_notifications, email_option_id, deleted, gtf_engine_id, order_date, minexecdate) VALUES (new.order_id, new.priority_id, new.workspace_id, new.user_id, new.wk_params, new.result_url, new.log_url, new.execution_date, new.attempt, new.email_notifications, new.email_option_id, false, new.gtf_engine_id, new.order_date, new.minexecdate);
+
+                            CREATE OR REPLACE VIEW s_gtf.v_order_fast AS SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, "order".length_sec, gtf_engine.name, "order".minexecdate FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id LEFT JOIN s_gtf.rt_priority ON "order".priority_id = rt_priority.priority_id LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_gtf.rt_order_status ON "order".order_status_id = rt_order_status.order_status_id LEFT JOIN s_gtf.gtf_engine ON "order".gtf_engine_id = gtf_engine.gtf_engine_id WHERE "order".period_id IS NULL;
+                            ALTER TABLE s_gtf.v_order_fast OWNER TO u_vitis;
+                            GRANT SELECT ON TABLE s_gtf.v_order_fast TO gtf_user;
+                            GRANT SELECT ON TABLE s_gtf.v_order_fast TO gtf_author;
+                            GRANT ALL ON TABLE s_gtf.v_order_fast TO gtf_admin;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_workspace AS SELECT workspace.workspace_id, workspace.name, workspace.owner, workspace.creation_date, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.success_action_id, workspace.failed_action_id, workspace.survey, workspace.form_type, workspace.legal_terms_conditions, workspace.last_save_date, workspace.last_save_build, workspace.file_encoding, workspace.title, workspace.requirements, workspace.history, workspace.usage, workspace.key, workspace.email_template_id, workspace.locked, workspace.tag, "user".login, category.name AS category_name, CASE WHEN t.nb_demandes IS NULL THEN 0::bigint ELSE t.nb_demandes END AS nb_demande, email_template.name AS email_template, workspace.dataencrypt, workspace.usepersonaldata, workspace.unitcost, workspace.costpersecond FROM s_gtf.workspace LEFT JOIN s_vitis."user" ON workspace.owner = "user".user_id LEFT JOIN s_gtf.category ON workspace.category_id = category.category_id LEFT JOIN s_gtf.email_template ON workspace.email_template_id = email_template.email_template_id LEFT JOIN ( SELECT count(*) AS nb_demandes, v_order_fast.workspace_id FROM s_gtf.v_order_fast GROUP BY v_order_fast.workspace_id) t ON workspace.workspace_id = t.workspace_id;
+                            ALTER TABLE s_gtf.v_workspace OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_workspace TO gtf_admin;
+                            GRANT SELECT ON TABLE s_gtf.v_workspace TO gtf_user;
+                            GRANT SELECT ON TABLE s_gtf.v_workspace TO gtf_author;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_author_workspace AS SELECT v_workspace.workspace_id, v_workspace.name, v_workspace.owner, v_workspace.creation_date, v_workspace.description, v_workspace.subscription, v_workspace.fmw_file, v_workspace.category_id, v_workspace.success_action_id, v_workspace.failed_action_id, v_workspace.survey, v_workspace.form_type, v_workspace.legal_terms_conditions, v_workspace.last_save_date, v_workspace.last_save_build, v_workspace.file_encoding, v_workspace.title, v_workspace.requirements, v_workspace.history, v_workspace.usage, v_workspace.key, v_workspace.email_template_id, v_workspace.locked, v_workspace.tag, v_workspace.login, v_workspace.category_name, v_workspace.nb_demande, v_workspace.email_template, v_workspace.dataencrypt FROM s_gtf.v_workspace WHERE v_workspace.login::name::text = "current_user"()::text;
+                            ALTER TABLE s_gtf.v_author_workspace OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_author_workspace TO gtf_user;
+                            GRANT ALL ON TABLE s_gtf.v_author_workspace TO gtf_admin;
+                            GRANT ALL ON TABLE s_gtf.v_author_workspace TO gtf_author;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_order AS SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, s_gtf.s2hms("order".length_sec) AS length_sec, priority_translation.translation AS priority_label, email_option_translation.translation AS email_option_label, priority_translation.lang, gtf_engine.name, order_status_translation.translation AS order_status_label, "order".minexecdate FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id LEFT JOIN s_gtf.rt_priority ON "order".priority_id = rt_priority.priority_id LEFT JOIN s_vitis.vm_translation priority_translation ON rt_priority.label_id::text = priority_translation.translation_id::text LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text LEFT JOIN s_gtf.rt_order_status ON "order".order_status_id = rt_order_status.order_status_id LEFT JOIN s_vitis.vm_translation order_status_translation ON rt_order_status.label_id::text = order_status_translation.translation_id::text AND priority_translation.lang::text = order_status_translation.lang::text LEFT JOIN s_gtf.gtf_engine ON "order".gtf_engine_id = gtf_engine.gtf_engine_id WHERE "order".period_id IS NULL AND priority_translation.lang::text = email_option_translation.lang::text;
+                            ALTER TABLE s_gtf.v_order OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_order TO gtf_admin;
+                            GRANT SELECT ON TABLE s_gtf.v_order TO gtf_user;
+                            GRANT SELECT ON TABLE s_gtf.v_order TO gtf_author;
+                            CREATE OR REPLACE RULE delete_v_order AS ON DELETE TO s_gtf.v_order DO INSTEAD  DELETE FROM s_gtf."order" WHERE "order".order_id = old.order_id;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_subscription AS SELECT "order".order_id, "order".priority_id, "order".workspace_id, workspace.key AS workspace_key, "order".enabled, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, email_option_translation.translation AS notification, email_option_translation.lang FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text WHERE "order".period_id IS NOT NULL AND "order".survey_id IS NULL;
+                            ALTER TABLE s_gtf.v_subscription OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_subscription TO gtf_user;
+                            GRANT ALL ON TABLE s_gtf.v_subscription TO gtf_admin;
+                            GRANT ALL ON TABLE s_gtf.v_subscription TO gtf_author;
+                            CREATE OR REPLACE RULE delete_v_subscription AS ON DELETE TO s_gtf.v_subscription DO INSTEAD  DELETE FROM s_gtf."order" WHERE "order".order_id = old.order_id;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_survey AS SELECT "order".order_id, workspace.key AS workspace_key, "order".priority_id, "order".workspace_id, "order".enabled, workspace.name AS label_name, "order".order_status_id, "order".user_id, "user".login, "order".period_id, period.name AS order_period_libelle, "order".wk_params, "order".result_url, "order".order_date, "order".log_url, "order".execution_date, "order".attempt, "order".email_notifications, "order".email_option_id, "order".deleted, "order".gtf_engine_id, "order".survey_id, "order".condition, inbox.alias AS warehouse_name, email_option_translation.translation AS notification, email_option_translation.lang, survey_type_translation.translation AS survey_name FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_vitis."user" ON "user".user_id = "order".user_id LEFT JOIN s_gtf.inbox ON "order".inbox_id = inbox.inbox_id LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text LEFT JOIN s_gtf.rt_survey_type ON "order".survey_id = rt_survey_type.survey_id LEFT JOIN s_vitis.vm_translation survey_type_translation ON rt_survey_type.label_id::text = survey_type_translation.translation_id::text WHERE "order".period_id IS NOT NULL AND "order".survey_id = 1 AND email_option_translation.lang::text = survey_type_translation.lang::text;
+                            ALTER TABLE s_gtf.v_survey OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_survey TO gtf_user;
+                            GRANT ALL ON TABLE s_gtf.v_survey TO gtf_admin;
+                            GRANT ALL ON TABLE s_gtf.v_survey TO gtf_author;
+                            CREATE OR REPLACE RULE delete_v_survey AS ON DELETE TO s_gtf.v_survey DO INSTEAD  DELETE FROM s_gtf."order" WHERE "order".order_id = old.order_id;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_supervision_status AS SELECT count(v_order.order_id) AS nb_order_id, v_order.order_status_id AS filter, 'order'::text AS table_name FROM s_gtf.v_order WHERE v_order.lang::text = 'fr'::text GROUP BY v_order.order_status_id UNION SELECT count(v_subscription.order_id) AS nb_order_id, CASE WHEN v_subscription.enabled IS TRUE THEN 1 ELSE 0 END AS filter, 'subscription'::text AS table_name FROM s_gtf.v_subscription WHERE v_subscription.lang::text = 'fr'::text GROUP BY v_subscription.enabled UNION SELECT count(v_survey.order_id) AS nb_order_id, CASE WHEN v_survey.enabled IS TRUE THEN 1 ELSE 0 END AS filter, 'survey'::text AS table_name FROM s_gtf.v_survey WHERE v_survey.lang::text = 'fr'::text GROUP BY v_survey.enabled UNION SELECT count(message.message_id) AS nb_order_id, message.status AS filter, 'message'::text AS table_name FROM s_gtf.message GROUP BY message.status;
+                            ALTER TABLE s_gtf.v_supervision_status OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_supervision_status TO gtf_admin;
+                            GRANT SELECT ON TABLE s_gtf.v_supervision_status TO gtf_user;
+                            GRANT SELECT ON TABLE s_gtf.v_supervision_status TO gtf_author;
+
+                            CREATE OR REPLACE VIEW s_gtf.v_user_survey AS SELECT "order".order_id, workspace.key AS workspace_key, "order".workspace_id, workspace.name AS label_name, "order".enabled, "order".order_status_id, "order".user_id, "order".period_id, "order".order_date, "order".execution_date, "order".wk_params, "order".result_url, "order".email_option_id, "order".email_notifications, "order".gtf_engine_id, "order".survey_id, "order".condition, "order".inbox_id, inbox.alias AS name, workspace.name AS workspace_name, "order".survey_id AS monitoring_type, email_option_translation.translation AS notification, email_option_translation.lang, period.name AS order_period_libelle, survey_type_translation.translation AS survey_name FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text LEFT JOIN s_gtf.period ON "order".period_id = period.period_id LEFT JOIN s_gtf.inbox ON "order".inbox_id = inbox.inbox_id LEFT JOIN s_gtf.rt_survey_type ON "order".survey_id = rt_survey_type.survey_id LEFT JOIN s_vitis.vm_translation survey_type_translation ON rt_survey_type.label_id::text = survey_type_translation.translation_id::text WHERE "order".user_id::text ~ similar_escape((( SELECT "user".user_id FROM s_vitis."user" WHERE "user".login::name = "current_user"()))::text, NULL::text) AND "order".period_id IS NOT NULL AND "order".survey_id = 1 AND email_option_translation.lang::text = survey_type_translation.lang::text;
+                            ALTER TABLE s_gtf.v_user_survey OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_user_survey TO gtf_user;
+                            GRANT ALL ON TABLE s_gtf.v_user_survey TO gtf_admin;
+                            GRANT ALL ON TABLE s_gtf.v_user_survey TO gtf_author;
+                            COMMENT ON COLUMN s_gtf.v_user_survey.label_name IS 'Deprecated';
+                            COMMENT ON COLUMN s_gtf.v_user_survey.survey_id IS 'Deprecated';
+
+                            CREATE OR REPLACE RULE delete_v_user_survey AS ON DELETE TO s_gtf.v_user_survey DO INSTEAD  DELETE FROM s_gtf."order" WHERE "order".order_id = old.order_id;
+                            CREATE OR REPLACE RULE insert_v_user_survey AS ON INSERT TO s_gtf.v_user_survey DO INSTEAD  INSERT INTO s_gtf."order" (order_id, workspace_id, user_id, enabled, period_id, execution_date, wk_params, result_url, email_option_id, email_notifications, gtf_engine_id, survey_id, condition, inbox_id, order_date) VALUES (new.order_id, new.workspace_id, new.user_id, new.enabled, new.period_id, new.execution_date, new.wk_params, new.result_url, new.email_option_id, new.email_notifications, new.gtf_engine_id, new.survey_id, CASE WHEN new.condition IS NULL THEN ''::character varying ELSE new.condition END, new.inbox_id, new.order_date);
+                            CREATE OR REPLACE RULE update_v_user_survey AS ON UPDATE TO s_gtf.v_user_survey DO INSTEAD  UPDATE s_gtf."order" SET order_id = new.order_id, workspace_id = new.workspace_id, enabled = new.enabled, order_status_id = new.order_status_id, user_id = new.user_id, period_id = new.period_id, order_date = new.order_date, execution_date = new.execution_date, wk_params = new.wk_params, result_url = new.result_url, email_option_id = new.email_option_id, email_notifications = new.email_notifications, gtf_engine_id = new.gtf_engine_id, survey_id = new.survey_id, condition = CASE WHEN new.condition IS NULL THEN ''::character varying ELSE new.condition END, inbox_id = new.inbox_id WHERE "order".order_id = new.order_id;
+                            CREATE OR REPLACE VIEW s_gtf.v_user_subscription AS SELECT "order".order_id, "order".workspace_id, workspace.key AS workspace_key, "order".enabled, workspace.name AS label_name, "order".order_status_id, "order".user_id, "order".period_id, "order".order_date, "order".execution_date, "order".wk_params, "order".result_url, "order".email_option_id, "order".email_notifications, "order".gtf_engine_id, workspace.name AS workspace_name, email_option_translation.translation AS notification, period.name AS order_period_libelle, email_option_translation.lang FROM s_gtf."order" LEFT JOIN s_gtf.workspace ON "order".workspace_id = workspace.workspace_id LEFT JOIN s_gtf.rt_email_option ON "order".email_option_id = rt_email_option.email_option_id LEFT JOIN s_vitis.vm_translation email_option_translation ON rt_email_option.label_id::text = email_option_translation.translation_id::text LEFT JOIN s_gtf.period ON "order".period_id = period.period_id WHERE "order".user_id::text ~ similar_escape((( SELECT "user".user_id FROM s_vitis."user" WHERE "user".login::name = "current_user"()))::text, NULL::text) AND "order".period_id IS NOT NULL AND "order".survey_id IS NULL;
+
+                            ALTER TABLE s_gtf.v_user_subscription OWNER TO u_vitis;
+                            GRANT ALL ON TABLE s_gtf.v_user_subscription TO gtf_user;
+                            GRANT ALL ON TABLE s_gtf.v_user_subscription TO gtf_admin;
+                            GRANT ALL ON TABLE s_gtf.v_user_subscription TO gtf_author;
+                            COMMENT ON COLUMN s_gtf.v_user_subscription.label_name IS 'Deprecated';
+
+                            CREATE OR REPLACE RULE delete_v_user_subscription AS ON DELETE TO s_gtf.v_user_subscription DO INSTEAD  DELETE FROM s_gtf."order" WHERE "order".order_id = old.order_id;
+                            CREATE OR REPLACE RULE insert_v_user_subscription AS ON INSERT TO s_gtf.v_user_subscription DO INSTEAD  INSERT INTO s_gtf."order" (order_id, workspace_id, user_id, period_id, execution_date, wk_params, result_url, email_option_id, email_notifications, gtf_engine_id, enabled, order_date) VALUES (new.order_id, new.workspace_id, new.user_id, new.period_id, new.execution_date, new.wk_params, new.result_url, new.email_option_id, new.email_notifications, new.gtf_engine_id, new.enabled, new.order_date);
+                            CREATE OR REPLACE RULE update_v_user_subscription AS ON UPDATE TO s_gtf.v_user_subscription DO INSTEAD  UPDATE s_gtf."order" SET workspace_id = new.workspace_id, enabled = new.enabled, order_status_id = new.order_status_id, period_id = new.period_id, execution_date = new.execution_date, wk_params = new.wk_params, email_option_id = new.email_option_id, email_notifications = new.email_notifications WHERE "order".order_id = new.order_id;
+
+                            -- Frédéric le 23/07/2018 16:54
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order') AND name = 'order_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey') AND name = 'execution_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_user_subscription') AND name = 'order_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_subscription') AND name = 'order_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_survey') AND name = 'order_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_message') AND name = 'creation_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_order') AND name = 'order_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_user_survey') AND name = 'order_date';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order') AND name = 'minexecdate';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_order') AND name = 'minexecdate';
+                            UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_message') AND name = 'minexecdate';
+
+                            -- Frédéric le 26/07/2018 14:23
+                            DELETE FROM s_vitis.vm_table_field WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'gtf_user_order') AND name = 'priority_label';
+
+                            -- Anthony le 08/08/2018
+                            -- Ajout de workspace.key dans la vue v_user_workspace
+                            CREATE OR REPLACE VIEW s_gtf.v_user_workspace AS SELECT DISTINCT workspace.workspace_id, workspace.name, workspace.description, workspace.subscription, workspace.fmw_file, workspace.category_id, workspace.survey, workspace_group.group_id, workspace.key FROM s_gtf.workspace, s_gtf.workspace_group WHERE workspace.workspace_id = workspace_group.workspace_id ORDER BY workspace.workspace_id, workspace.name, workspace.description, workspace.subscription, workspace.fmw_file;
+                            -- Correction suite à discussion avec Yoann un gtf_user ne doit pas pouvoir lister tous les projets
+							REVOKE ALL ON s_gtf.v_workspace FROM gtf_user;
+                          ]]>
+                    </code>
+                </query>
+                <query>
+					<type>update</type>
+					<version>2018.02.01</version>
+                    <code>
+                        <![CDATA[ 
+                            -- Frédéric le 10/09/2018 12:00
+                            ALTER TABLE s_gtf.fme_engine ADD COLUMN fme_server_instance_name character varying(50);
+                            CREATE OR REPLACE VIEW s_gtf.v_fme_engine AS SELECT fme_engine.fme_engine_id, fme_engine.name, fme_engine.server_id, fme_engine.local_path, server.hostname AS server_name, fme_engine.server_url, fme_engine.login, fme_engine.password, fme_engine.fme_engine_type_id, fme_engine.s3_access_key_id, fme_engine.s3_secret_access_key, fme_engine.fme_cloud_api_token, v_fme_engine_type.fme_engine_type_label, v_fme_engine_type.lang, fme_engine.s3_region, fme_engine.iam_access_key_id, fme_engine.iam_secret_access_key, fme_engine.fme_server_instance_name FROM s_gtf.fme_engine LEFT JOIN s_gtf.server ON fme_engine.server_id = server.server_id LEFT JOIN s_gtf.v_fme_engine_type ON fme_engine.fme_engine_type_id::text = v_fme_engine_type.fme_engine_type_id::text;
+                            CREATE OR REPLACE RULE insert_v_fme_engine AS ON INSERT TO s_gtf.v_fme_engine DO INSTEAD  INSERT INTO s_gtf.fme_engine (fme_engine_id, name, server_id, local_path, server_url, login, password, fme_engine_type_id, s3_access_key_id, s3_secret_access_key, fme_cloud_api_token, s3_region, iam_access_key_id, iam_secret_access_key, fme_server_instance_name) VALUES (new.fme_engine_id, new.name, new.server_id, new.local_path, new.server_url, new.login, new.password, new.fme_engine_type_id, new.s3_access_key_id, new.s3_secret_access_key, new.fme_cloud_api_token, new.s3_region, new.iam_access_key_id, new.iam_secret_access_key, new.fme_server_instance_name);
+                            CREATE OR REPLACE RULE update_v_fme_engine AS ON UPDATE TO s_gtf.v_fme_engine DO INSTEAD  UPDATE s_gtf.fme_engine SET fme_engine_id = new.fme_engine_id, name = new.name, server_id = new.server_id, local_path = new.local_path, server_url = new.server_url, login = new.login, password = new.password, fme_engine_type_id = new.fme_engine_type_id, s3_access_key_id = new.s3_access_key_id, s3_secret_access_key = new.s3_secret_access_key, fme_cloud_api_token = new.fme_cloud_api_token, s3_region = new.s3_region, iam_access_key_id = new.iam_access_key_id, iam_secret_access_key = new.iam_secret_access_key, fme_server_instance_name = new.fme_server_instance_name WHERE fme_engine.fme_engine_id = new.fme_engine_id;
+
+                            -- Frédéric le 12/09/2018 15:15
+                            ALTER TABLE s_gtf.workspace ADD COLUMN version integer DEFAULT 0;
+                            CREATE FUNCTION s_gtf.update_workspace_version() RETURNS trigger    LANGUAGE plpgsql    AS $$  BEGIN  SELECT INTO new.version version + 1 FROM s_gtf.workspace WHERE workspace.workspace_id = new.workspace_id; return New;  END; $$;
+                            ALTER FUNCTION s_gtf.update_workspace_version() OWNER TO u_vitis;
+                            CREATE TRIGGER before_update_workspace BEFORE UPDATE ON s_gtf.workspace FOR EACH ROW EXECUTE PROCEDURE s_gtf.update_workspace_version();
+
+                            -- Frédéric le 13/09/2018 11:30
+                            ALTER TABLE s_gtf.fme_engine ADD COLUMN fme_server_s3_bucket character varying(50);
+                            CREATE OR REPLACE VIEW s_gtf.v_fme_engine AS SELECT fme_engine.fme_engine_id, fme_engine.name, fme_engine.server_id, fme_engine.local_path, server.hostname AS server_name, fme_engine.server_url, fme_engine.login, fme_engine.password, fme_engine.fme_engine_type_id, fme_engine.s3_access_key_id, fme_engine.s3_secret_access_key, fme_engine.fme_cloud_api_token, v_fme_engine_type.fme_engine_type_label, v_fme_engine_type.lang, fme_engine.s3_region, fme_engine.iam_access_key_id, fme_engine.iam_secret_access_key, fme_engine.fme_server_instance_name, fme_engine.fme_server_s3_bucket FROM s_gtf.fme_engine LEFT JOIN s_gtf.server ON fme_engine.server_id = server.server_id LEFT JOIN s_gtf.v_fme_engine_type ON fme_engine.fme_engine_type_id::text = v_fme_engine_type.fme_engine_type_id::text;
+                            CREATE OR REPLACE RULE insert_v_fme_engine AS ON INSERT TO s_gtf.v_fme_engine DO INSTEAD  INSERT INTO s_gtf.fme_engine (fme_engine_id, name, server_id, local_path, server_url, login, password, fme_engine_type_id, s3_access_key_id, s3_secret_access_key, fme_cloud_api_token, s3_region, iam_access_key_id, iam_secret_access_key, fme_server_instance_name, fme_server_s3_bucket) VALUES (new.fme_engine_id, new.name, new.server_id, new.local_path, new.server_url, new.login, new.password, new.fme_engine_type_id, new.s3_access_key_id, new.s3_secret_access_key, new.fme_cloud_api_token, new.s3_region, new.iam_access_key_id, new.iam_secret_access_key, new.fme_server_instance_name, new.fme_server_s3_bucket);
+                            CREATE OR REPLACE RULE update_v_fme_engine AS ON UPDATE TO s_gtf.v_fme_engine DO INSTEAD  UPDATE s_gtf.fme_engine SET fme_engine_id = new.fme_engine_id, name = new.name, server_id = new.server_id, local_path = new.local_path, server_url = new.server_url, login = new.login, password = new.password, fme_engine_type_id = new.fme_engine_type_id, s3_access_key_id = new.s3_access_key_id, s3_secret_access_key = new.s3_secret_access_key, fme_cloud_api_token = new.fme_cloud_api_token, s3_region = new.s3_region, iam_access_key_id = new.iam_access_key_id, iam_secret_access_key = new.iam_secret_access_key, fme_server_instance_name = new.fme_server_instance_name, fme_server_s3_bucket = new.fme_server_s3_bucket WHERE fme_engine.fme_engine_id = new.fme_engine_id;
+
+                            -- Anthony le 18/09/2018 14:43
+                            ALTER TABLE s_gtf.fme_engine ADD COLUMN useexternaldbconnection boolean DEFAULT FALSE;
+                            DROP VIEW s_gtf.v_fme_engine;
+                            CREATE OR REPLACE VIEW s_gtf.v_fme_engine AS SELECT fme_engine.fme_engine_id, fme_engine.name, fme_engine.server_id, fme_engine.local_path, server.hostname AS server_name, fme_engine.server_url, fme_engine.login, fme_engine.password, fme_engine.fme_engine_type_id, fme_engine.s3_access_key_id, fme_engine.s3_secret_access_key, fme_engine.fme_cloud_api_token, v_fme_engine_type.fme_engine_type_label, v_fme_engine_type.lang, fme_engine.s3_region, fme_engine.iam_access_key_id, fme_engine.iam_secret_access_key, fme_engine.fme_server_instance_name, fme_engine.fme_server_s3_bucket, useexternaldbconnection FROM s_gtf.fme_engine LEFT JOIN s_gtf.server ON fme_engine.server_id = server.server_id LEFT JOIN s_gtf.v_fme_engine_type ON fme_engine.fme_engine_type_id::text = v_fme_engine_type.fme_engine_type_id::text;
+                            ALTER TABLE s_gtf.v_fme_engine OWNER TO u_vitis;
+							GRANT SELECT ON TABLE s_gtf.v_fme_engine TO gtf_user;
+							GRANT ALL ON TABLE s_gtf.v_fme_engine TO u_vitis;
+							GRANT SELECT ON TABLE s_gtf.v_fme_engine TO gtf_author;
+							GRANT ALL ON TABLE s_gtf.v_fme_engine TO gtf_admin;
+                            CREATE OR REPLACE RULE insert_v_fme_engine AS ON INSERT TO s_gtf.v_fme_engine DO INSTEAD  INSERT INTO s_gtf.fme_engine (fme_engine_id, name, server_id, local_path, server_url, login, password, fme_engine_type_id, s3_access_key_id, s3_secret_access_key, fme_cloud_api_token, s3_region, iam_access_key_id, iam_secret_access_key, fme_server_instance_name, fme_server_s3_bucket, useexternaldbconnection) VALUES (new.fme_engine_id, new.name, new.server_id, new.local_path, new.server_url, new.login, new.password, new.fme_engine_type_id, new.s3_access_key_id, new.s3_secret_access_key, new.fme_cloud_api_token, new.s3_region, new.iam_access_key_id, new.iam_secret_access_key, new.fme_server_instance_name, new.fme_server_s3_bucket, new.useexternaldbconnection);
+                            CREATE OR REPLACE RULE update_v_fme_engine AS ON UPDATE TO s_gtf.v_fme_engine DO INSTEAD  UPDATE s_gtf.fme_engine SET fme_engine_id = new.fme_engine_id, name = new.name, server_id = new.server_id, local_path = new.local_path, server_url = new.server_url, login = new.login, password = new.password, fme_engine_type_id = new.fme_engine_type_id, s3_access_key_id = new.s3_access_key_id, s3_secret_access_key = new.s3_secret_access_key, fme_cloud_api_token = new.fme_cloud_api_token, s3_region = new.s3_region, iam_access_key_id = new.iam_access_key_id, iam_secret_access_key = new.iam_secret_access_key, fme_server_instance_name = new.fme_server_instance_name, fme_server_s3_bucket = new.fme_server_s3_bucket, useexternaldbconnection = new.useexternaldbconnection WHERE fme_engine.fme_engine_id = new.fme_engine_id;
+                            CREATE OR REPLACE RULE delete_v_fme_engine AS ON DELETE TO s_gtf.v_fme_engine DO INSTEAD DELETE FROM s_gtf.fme_engine WHERE fme_engine.fme_engine_id = old.fme_engine_id;
+
+                            -- Frédéric le 01/10/2018 16:30
+                            ALTER TABLE s_gtf."order" ADD COLUMN pid integer DEFAULT NULL;
+
+                            -- Frédéric le 04/10/2018 11:30
+                            UPDATE s_vitis.vm_table_button SET event = 'deleteGtfOrders' WHERE tab_id=(select tab_id from s_vitis.vm_tab where name = 'gtf_order') AND label_id='gtf_136';
+                            
+                            
+                            -- Frédéric le 11/10/2018 15:00
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Bouton d''arrêt d''une demande en cours table_button_id = 43', 'gtf_330');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_330', 'fr', 'Stopper le processus');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_330', 'en', 'Stop the process');
+                            INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('stopOrderProcessFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'stopOrderProcess', 'gtf_330', 'gtf/orders', (select tab_id from s_vitis.vm_tab where name = 'gtf_order'));
+                            INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('"Order_status_id 7 de la table tr_order_staus (Stoppé)', 'gtf_331');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_331', 'fr', 'Stoppé');
+                            INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('gtf_331', 'en', 'Stopped');
+                            INSERT INTO s_gtf.rt_order_status (order_status_id, label_id) VALUES (7, 'gtf_331');
+						]]>
+                    </code>
+                </query>
+            </queriesCollection>
+</sqlQueries>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/AuthorWorkspace.class.inc b/src/module_gtf/web_service/ws/AuthorWorkspace.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..886a2b074f147c3d5ca16511315c4a6873324f22
--- /dev/null
+++ b/src/module_gtf/web_service/ws/AuthorWorkspace.class.inc
@@ -0,0 +1,32 @@
+<?php
+
+require_once 'Workspace.class.inc';
+
+/**
+ * \file Workspace.class.inc
+ * \class Workspace
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Workspace php class
+ *
+ * This class defines operation for one Workspace
+ * 
+ */
+class AuthorWorkspace extends Workspace {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/AuthorWorkspaces.class.inc b/src/module_gtf/web_service/ws/AuthorWorkspaces.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..1712c1431b25758a51fd61e167b7bb902bc0a638
--- /dev/null
+++ b/src/module_gtf/web_service/ws/AuthorWorkspaces.class.inc
@@ -0,0 +1,91 @@
+<?php
+
+/**
+ * \file Workspaces.class.inc
+ * \class Workspaces
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Workspaces php class
+ *
+ * This class defines Rest Api to Gtf workspaces
+ * 
+ */
+require 'Workspaces.class.inc';
+require 'AuthorWorkspace.class.inc';
+
+class AuthorWorkspaces extends Workspaces {
+    /**
+     * @SWG\Definition(
+     *   definition="/authorworkspaces",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/authorworkspaces")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="AuthorWorkspaces",
+     *   description="Operations about Author Workspaces"
+     * )
+     */
+    
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+    
+    /**
+     * get author workspaces
+     * @return Author workspaces
+     */
+    function GET() {
+        if (!empty($this->aPath[3])) {
+            if ($this->aPath[3] == "File") {
+                $this->getWorkspaceFile();
+            } else {
+                if ($this->aPath[3] == "Tree") {
+                    $aReturn = $this->getWorkspaceDirectoryTree();
+                } else if ($this->aPath[3] == "Metadata") {
+                    $aReturn = $this->regenerateMetadata();
+                } else if ($this->aPath[3] == "CheckWidgetFile") {
+                    $aReturn = $this->checkWidgetFile();
+                }
+                $aXmlRacineAttribute['status'] = $aReturn['status'];
+                if ($aReturn['status'] == 1) {
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                } else {
+                    $oError = new VitisError($aReturn['error_code'], $aReturn['message']);
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                }
+                return $sMessage;
+            }
+        } else {
+            $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_author_workspace", "workspace_id");
+            // Formatage de la colonne "form_type".
+            if ($aReturn['sStatus'] == 1) {
+                foreach ($this->aObjects as &$oWorkspace) {
+                    $sFile = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields['workspace_id'] . '/form/Subform.json';
+                    if (!file_exists($sFile)) {
+                        $oWorkspace->aFields['form_type'] = '';
+                    } else {
+                        if ($oWorkspace->aFields['form_type'] != "custom") {
+                            $oWorkspace->aFields['form_type'] = "default";
+                        }
+                    }
+                }
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            } else {
+                $sMessage = $aReturn['sMessage'];
+            }
+            return $sMessage;
+        }
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/CHANGE_LOG.txt b/src/module_gtf/web_service/ws/CHANGE_LOG.txt
new file mode 100755
index 0000000000000000000000000000000000000000..8f7dc678c69395bc0cfcb8ec055fbbc2adfc120a
--- /dev/null
+++ b/src/module_gtf/web_service/ws/CHANGE_LOG.txt
@@ -0,0 +1,8 @@
+
+              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+              +                                                                                   +
+              +             			 VEREMES - Web Service GTF change log          		      +
+              +                                                                                   +
+              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
diff --git a/src/module_gtf/web_service/ws/Categories.class.inc b/src/module_gtf/web_service/ws/Categories.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..a4d1402860b6b3f0115307fc6157fa07d8b9bd86
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Categories.class.inc
@@ -0,0 +1,349 @@
+<?php
+
+/**
+ * \file Categories.class.inc
+ * \class Categories
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis Categories
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Category.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Categories extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/categories",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/categories")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Categories",
+     *   description="Operations about Category"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('category_id', 'name', 'description');
+    }
+
+    /**
+     * @SWG\Get(path="/categories",
+     *   tags={"Categories"},
+     *   summary="Get Category",
+     *   description="Request to get Category",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="category token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/categories")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Categories
+     * @return  Categories
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "category", "category_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/categories",
+     *   tags={"Categories"},
+     *   summary="Add Category",
+     *   description="Request to add category",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="category token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="formData",
+     *     description="name of the category",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="description",
+     *     in="formData",
+     *     description="description of the category",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspaces",
+     *     in="formData",
+     *     description="workspaces of the category",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/categories")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert category
+     * @return id of the category created
+     */
+    function POST() {
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'category', $this->aProperties['schema_gtf'] . '.seq_common', 'category_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oCategory = new Categorie($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oCategory->GET();
+            //
+            $this->insertTraitementCategory();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/categories/{category_id}",
+     *   tags={"Categories"},
+     *   summary="Update Category",
+     *   description="Request to update Category",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="category token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="category_id",
+     *     in="path",
+     *     description="id of the category",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="query",
+     *     description="name of the category",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="description",
+     *     in="query",
+     *     description="description of the category",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspaces",
+     *     in="query",
+     *     description="workspaces of the category",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/categories")
+     *     )
+     *  )
+     */
+
+    /**
+     * update category
+     * @return id of the category if ok error object if ko
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'category', 'category_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oCategory = new Categorie($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oCategory->GET();
+            //
+            $this->insertTraitementCategory();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/categories/",
+     *   tags={"Categories"},
+     *   summary="delete Category",
+     *   description="Request to delete Category",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="category token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the categories",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/categories")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/categories/{category_id}",
+     *   tags={"Categories"},
+     *   summary="delete Category",
+     *   description="Request to delete Category",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="category token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="category_id",
+     *     in="path",
+     *     description="id of the category",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/categories")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete category
+     * @return id of category deleted or error object if a category is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'category', 'category_id');
+        return $aReturn['sMessage'];
+    }
+
+    /*
+     * *	Traitements liés à la catégorie.
+     */
+
+    Public function insertTraitementCategory() {
+        // Le paramètre "workspaces" est passé dans la requête ?
+        if ($this->aValues['workspaces'] !== NULL) {
+            // Projets FME à rattacher à la catégorie ?
+            if (!empty($this->aValues['workspaces'])) {
+                $aWorkspaces = explode('|', $this->aValues['workspaces']);
+                foreach ($aWorkspaces as $iWorkspaceId) {
+                    $aValuesList = array("category_id" => $this->aValues["my_vitis_id"]);
+                    $this->oConnection->oBd->update($this->aProperties['schema_gtf'], 'workspace', $aValuesList, "workspace_id", $iWorkspaceId);
+                }
+            }
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Category.class.inc b/src/module_gtf/web_service/ws/Category.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..3dbcbeb66c96c167d9ced1aba485188750776d32
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Category.class.inc
@@ -0,0 +1,111 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Category.class.inc
+ * \class Category
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Category php class
+ *
+ * This class defines operation for one Category
+ * 
+ */
+class Categorie extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('category_id', 'name', 'description', 'workspaces');
+    }
+
+    /**
+     * @SWG\Get(path="/categories/{category_id}", 
+     *   tags={"Categories"},
+     *   summary="Get Category",
+     *   description="Request to get Category by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="category_id",
+     *     in="path",
+     *     description="category id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/categories")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "category", "category_id");
+        // Traitements liés à la catégorie.
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['category_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getCategoryTraitement'], $aParams);
+        $aWorkspacesId = array();
+        $aWorkspacesName = array();
+        while ($oWorkspacesId = $this->oConnection->oBd->objetSuivant($oPDOresult)) {
+            $aWorkspacesId[] = $oWorkspacesId->workspace_id;
+            $aWorkspacesName[] = $oWorkspacesId->name;
+        }
+        $this->aFields['workspaces'] = implode('|', $aWorkspacesId);
+        $this->aFields['workspaces_label'] = implode(',', $aWorkspacesName);
+    }
+
+    /**
+     * delete a category
+     */
+    function DELETE() {
+        // Workspaces liés à la catégorie.
+        require $this->sRessourcesFile;
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['category_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['setWorkspaceCategory'], $aParams);
+        //
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'category', 'category_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['category_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/EmailContext.class.inc b/src/module_gtf/web_service/ws/EmailContext.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..b9b8bbeb6b138f1f2aabb36e910ab916de528c24
--- /dev/null
+++ b/src/module_gtf/web_service/ws/EmailContext.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file EmailContext.class.inc
+ * \class EmailContext
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the EmailContext php class
+ *
+ * This class defines operation for one EmailContext
+ * 
+ */
+class EmailContext extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('rt_emailcontext_id');
+    }
+
+    /**
+     * get informations about emailcontext
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "rt_emailcontext", "rt_emailcontext_id");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/EmailContexts.class.inc b/src/module_gtf/web_service/ws/EmailContexts.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..b69471fa62f682116951994109fc045eb0f0780a
--- /dev/null
+++ b/src/module_gtf/web_service/ws/EmailContexts.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file EmailContexts.class.inc
+ * \class EmailContexts
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the EmailContexts php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'EmailContext.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class EmailContexts extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/emailcontexts",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/emailcontexts")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="EmailContexts",
+     *   description="Operations about EmailContexts"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('rt_emailcontext_id');
+    }
+
+    /**
+     * @SWG\Get(path="/emailcontexts",
+     *   tags={"EmailContexts"},
+     *   summary="Get EmailContexts",
+     *   description="Request to get EmailContexts",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailcontexts")
+     *     )
+     *  )
+     */
+
+    /**
+     * get EmailContexts
+     * @return  EmailContexts
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "rt_emailcontext", "rt_emailcontext_id");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/EmailOption.class.inc b/src/module_gtf/web_service/ws/EmailOption.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..c5d0e8d2d696fd666bbf1c3441df65d52870ceba
--- /dev/null
+++ b/src/module_gtf/web_service/ws/EmailOption.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file EmailOption.class.inc
+ * \class EmailOption
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the EmailOption php class
+ *
+ * This class defines operation for one EmailOption
+ * 
+ */
+class EmailOption extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('email_option_id', 'email_option_label');
+    }
+
+    /**
+     * get informations about emailoption
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_email_option", "email_option_id");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/EmailOptions.class.inc b/src/module_gtf/web_service/ws/EmailOptions.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..a786997fba0b184bb54022fbdcce314e8d33058b
--- /dev/null
+++ b/src/module_gtf/web_service/ws/EmailOptions.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file EmailOptions.class.inc
+ * \class EmailOptions
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the EmailOptions php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'EmailOption.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class EmailOptions extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/emailoptions",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/emailoptions")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="EmailOptions",
+     *   description="Operations about EmailOptions"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('email_option_id', 'email_option_label');
+    }
+
+    /**
+     * @SWG\Get(path="/emailoptions",
+     *   tags={"EmailOptions"},
+     *   summary="Get EmailOptions",
+     *   description="Request to get EmailOptions",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailoptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * get EmailOptions
+     * @return  EmailOptions
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_email_option", "email_option_id");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/EmailTemplate.class.inc b/src/module_gtf/web_service/ws/EmailTemplate.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..489104ebec34d9274247bc7b4b4de2d52048c4ee
--- /dev/null
+++ b/src/module_gtf/web_service/ws/EmailTemplate.class.inc
@@ -0,0 +1,93 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file EmailTemplate.class.inc
+ * \class EmailTemplate
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the EmailTemplate php class
+ *
+ * This class defines operation for one EmailTemplate
+ * 
+ */
+class EmailTemplate extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('email_template_id', 'name', 'subject', 'body', 'to', 'cc', 'cci', 'code', 'use_advanced', 'rt_emailcontext_id', 'attachment');
+    }
+
+    /**
+     * @SWG\Get(path="/emailtemplates/{email_template_id}", 
+     *   tags={"EmailTemplates"},
+     *   summary="Get EmailTemplate",
+     *   description="Request to get EmailTemplate by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="email_template_id",
+     *     in="path",
+     *     description="email template id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "email_template", "email_template_id");
+    }
+
+    /**
+     * delete an email template
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'email_template', 'email_template_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['email_template_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/EmailTemplates.class.inc b/src/module_gtf/web_service/ws/EmailTemplates.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..0160d88806a2a066d95f84860346acd67b15a5ec
--- /dev/null
+++ b/src/module_gtf/web_service/ws/EmailTemplates.class.inc
@@ -0,0 +1,634 @@
+<?php
+
+/**
+ * \file EmailTemplates.class.inc
+ * \class EmailTemplates
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis EmailTemplates
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'EmailTemplate.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/Email.class.inc';
+
+class EmailTemplates extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/emailtemplates",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/emailtemplates")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="EmailTemplates",
+     *   description="Operations about EmailTemplate"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('email_template_id', 'name', 'subject', 'body', 'to', 'cc', 'cci', 'code', 'use_advanced', 'rt_emailcontext_id', 'attachment');
+    }
+
+    /**
+     * @SWG\Get(path="/emailtemplates",
+     *   tags={"EmailTemplates"},
+     *   summary="Get EmailTemplate",
+     *   description="Request to get EmailTemplate",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="emailtemplate token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/emailtemplates/{email_template_id}/Code",
+     *   tags={"EmailTemplates"},
+     *   summary="Get EmailTemplate code",
+     *   description="Request to get EmailTemplate code by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="email_template_id",
+     *     in="path",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/emailtemplates/{email_template_id}/Tags",
+     *   tags={"EmailTemplates"},
+     *   summary="Get EmailTemplate tags",
+     *   description="Request to get EmailTemplate tags",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_template_id",
+     *     in="path",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="language",
+     *     in="query",
+     *     description="user language",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+
+    /**
+     * get EmailTemplates
+     * @return  EmailTemplates
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "email_template", "email_template_id");
+        if (isset($this->aPath[3])) {
+            // Code du template ?
+            if ($this->aPath[3] == "Code") {
+                if ($aReturn['sStatus'] == 1) {
+                    $this->getEmailTemplateCode();
+                    $aXmlRacineAttribute['status'] = 1;
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    return $sMessage;
+                }
+            }
+            // Tags du template ?
+            else if ($this->aPath[3] == "Tags") {
+                if ($aReturn['sStatus'] == 1) {
+                    $this->getEmailTemplateTags();
+                    $aXmlRacineAttribute['status'] = 1;
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    return $sMessage;
+                }
+            }
+        } else
+            return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/emailtemplates",
+     *   tags={"EmailTemplates"},
+     *   summary="Add EmailTemplate",
+     *   description="Request to add email template",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="email template token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="formData",
+     *     description="name of the email template",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="rt_emailcontext_id",
+     *     in="formData",
+     *     description="context of the email template",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="use_advanced",
+     *     in="formData",
+     *     description="use advanced definition of email template ?",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="to",
+     *     in="formData",
+     *     description="to",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="cc",
+     *     in="formData",
+     *     description="cc",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="cci",
+     *     in="formData",
+     *     description="cci",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="subject",
+     *     in="formData",
+     *     description="subject",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="body",
+     *     in="formData",
+     *     description="Message",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="code",
+     *     in="formData",
+     *     description="code",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Post(path="/emailtemplates/CodeValidation",
+     *   tags={"EmailTemplates"},
+     *   summary="Email template's code validation",
+     *   description="Request to validate email template's code",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="code",
+     *     in="formData",
+     *     description="code to check",
+     *     required=true,
+     *     type="string",
+     *   ),
+     *   @SWG\Parameter(
+     *     name="error_type",
+     *     in="formData",
+     *     description="types of error check",
+     *     required=false,
+     *     type="string",
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+    /**
+     * insert email template
+     * @return id of the email template created
+     */
+    function POST() {
+        // Vérification du code du template ?
+        if (!empty($this->aPath[3]) && $this->aPath[3] == "CodeValidation")
+            $this->checkEmailTemplateCode();
+        else {
+            $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'email_template', $this->aProperties['schema_gtf'] . '.seq_common', 'email_template_id');
+            if ($aReturn['sStatus'] == 1) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                $oEmailTemplate = new EmailTemplate($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                $oEmailTemplate->GET();
+            } else {
+                $sMessage = $aReturn['sMessage'];
+            }
+            return $sMessage;
+        }
+    }
+
+    /**
+     * @SWG\Put(path="/emailtemplates/{email_template_id}",
+     *   tags={"EmailTemplates"},
+     *   summary="Update EmailTemplate",
+     *   description="Request to update EmailTemplate",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="email template token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="email_template_id",
+     *     in="path",
+     *     description="id of the email template",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="query",
+     *     description="name of the email template",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="rt_emailcontext_id",
+     *     in="query",
+     *     description="context of the email template",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="use_advanced",
+     *     in="query",
+     *     description="use advanced definition of email template ?",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="to",
+     *     in="query",
+     *     description="to",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="cc",
+     *     in="query",
+     *     description="cc",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="cci",
+     *     in="query",
+     *     description="cci",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="subject",
+     *     in="query",
+     *     description="subject",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="body",
+     *     in="query",
+     *     description="Message",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="code",
+     *     in="query",
+     *     description="code",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+
+    /**
+     * update email template
+     * @return id of the email template if ok error object if ko
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'email_template', 'email_template_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oEmailTemplate = new EmailTemplate($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oEmailTemplate->GET();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/emailtemplates/",
+     *   tags={"EmailTemplates"},
+     *   summary="delete EmailTemplate",
+     *   description="Request to delete EmailTemplate",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="email template token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the EmailTemplates",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/emailtemplates/{email_template_id}",
+     *   tags={"EmailTemplates"},
+     *   summary="delete EmailTemplate",
+     *   description="Request to delete EmailTemplate",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="email template token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="email_template_id",
+     *     in="path",
+     *     description="id of the email template",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/emailtemplates")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete email template
+     * @return id of email template deleted or error object if a email template is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'email_template', 'email_template_id');
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * Get the code of email template.
+     */
+    function getEmailTemplateCode() {
+        $oEmail = new Email($this->oConnection->oBd, $this->aObjects[0]->aFields["email_template_id"], $this->aProperties, array());
+        $this->aObjects[0]->aFields = array('code' => $oEmail->oEmailTemplate->generateCode(true));
+    }
+
+    /**
+     * Fonction appelée à la fin du script (par défaut uniquement des erreurs de syntaxe)
+     */
+    static function shutDownCallBack($oEmailTemplates) {
+        // Constantes d'erreur passées ?
+        if (!empty($oEmailTemplates->aValues['error_type']))
+            $sErrorType = $oEmailTemplates->aValues['error_type'];
+        else
+            $sErrorType = 'E_PARSE';
+        // Récupère la dernière erreur php.
+        $error = error_get_last();
+        //
+        if (!empty($error)) {
+            $aErrorType = array(E_ERROR => 'PHP Fatal Error', E_WARNING => 'PHP Warning', E_PARSE => 'PHP Parse error', E_NOTICE => 'PHP Notice');
+            // Crée le masque avec toutes les constantes d'erreurs.
+            $iErrorType = 0;
+            foreach (explode('|', $sErrorType) as $sErrorConstant)
+                $iErrorType += constant($sErrorConstant);
+            //
+            if (($error['type'] & $iErrorType) > 0) {
+                $oError = new VitisError(1, $aErrorType["{$error['type']}"] . ' : ' . $error['message'] . ' on line ' . $error['line']);
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $oEmailTemplates->aValues['sEncoding'], True, $aXmlRacineAttribute, $oEmailTemplates->aValues['sSourceEncoding'], $oEmailTemplates->aValues['output']);
+            } else {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $oEmailTemplates->asDocument('', 'vitis', $oEmailTemplates->aValues['sEncoding'], True, $aXmlRacineAttribute, $oEmailTemplates->aValues['sSourceEncoding'], $oEmailTemplates->aValues['output']);
+            }
+        } else {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $oEmailTemplates->asDocument('', 'vitis', $oEmailTemplates->aValues['sEncoding'], True, $aXmlRacineAttribute, $oEmailTemplates->aValues['sSourceEncoding'], $oEmailTemplates->aValues['output']);
+        }
+        // Affiche le retour vers le client.
+        echo $sMessage;
+        header('HTTP/1.1 200 OK');
+    }
+
+    /**
+     * Check the code of email template.
+     */
+    function checkEmailTemplateCode() {
+        // Enregistre une fonction de rappel à appeler à la fin du script
+        register_shutdown_function('EmailTemplates::shutdownCallBack', $this);
+
+        // Evaluation du code 
+        if (!empty($this->aValues['code']))
+            @eval($this->aValues['code']);
+    }
+
+    /**
+     * Get the tags of email template.
+     */
+    function getEmailTemplateTags() {
+        // Liste des balises (récupère le code des balises sans l'exécuter).
+        $aTagButton = array();
+        if (file_exists($this->aProperties['vas_home'] . '/rest/class/vmlib/context/' . $this->aObjects[0]->aFields['rt_emailcontext_id'] . '.inc')) {
+            $sMailContextCode = file_get_contents($this->aProperties['vas_home'] . '/rest/class/vmlib/context/' . $this->aObjects[0]->aFields['rt_emailcontext_id'] . '.inc', true);
+            preg_match_all('/=.+;/', $sMailContextCode, $aTagCode);
+            foreach ($aTagCode[0] as $iIndex => $sTagCode) {
+                $sTagCode = trim(substr($sTagCode, 1, strlen($sTagCode) - 2));
+                if (preg_match('/^[^\'"]/', $sTagCode) === 1)
+                    $sMailContextCode = str_replace($sTagCode, "'" . str_replace("'", "\'", $sTagCode) . "'", $sMailContextCode);
+            }
+            $sMailContextCode = preg_replace("/'{2,}/", "'", $sMailContextCode);
+            $sMailContextCode = str_replace(array('<?php', '?>'), '', $sMailContextCode);
+            eval($sMailContextCode);
+            //	
+            define('TINYMCE_ADD_BUTTON', 'editor.addButton("[tag_name]", {text: "[[tag_name]]", tooltip: "[tag_description]", icon: false, size: "small", onclick: function() {editor.insertContent("[[tag_name]]");}});');
+            foreach ($properties as $sIndex => $aTagValues) {
+                $aMailTag[$sIndex]['value'] = $aTagValues['value'];
+                $aMailTag[$sIndex]['description'] = $aTagValues[$this->aValues['language']];
+            }
+
+            // Fichiers de langue de TinyMce
+            $aTinyMceLang = array('en' => '', 'fr' => 'fr_FR');
+
+            // Création des boutons en js
+            foreach ($aMailTag as $sIndex => $aTagValues) {
+                $aTagButton[] = array('name' => $sIndex, 'description' => $aTagValues['description']);
+            }
+        }
+        $this->aFields['tags'] = $aTagButton;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/FmeEngine.class.inc b/src/module_gtf/web_service/ws/FmeEngine.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..fe3ee90c9a4f658408a763c002d92aeaf3baf5ef
--- /dev/null
+++ b/src/module_gtf/web_service/ws/FmeEngine.class.inc
@@ -0,0 +1,167 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file FmeEngine.class.inc
+ * \class FmeEngine
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the FmeEngine php class
+ *
+ * This class defines operation for one FmeEngine
+ * 
+ */
+class FmeEngine extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("fme_engine_id", "name", "server_id", "local_path", "server_name", "fme_engine_type_id", "server_url", "login", "password", "s3_access_key_id", "s3_secret_access_key", "fme_cloud_api_token", "fme_engine_type_label", "s3_region", "iam_access_key_id", "iam_secret_access_key", 'fme_server_instance_name', 'fme_server_s3_bucket', "useexternaldbconnection");
+    }
+
+    /**
+     * @SWG\Get(path="/fmeengines/{fme_engine_id}", 
+     *   tags={"FmeEngines"},
+     *   summary="Get FmeEngine",
+     *   description="Request to get FmeEngine by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * @SWG\Get(path="/fmeengines/{fme_engine_id}/instances/{instance_name}", 
+     *   tags={"FmeEngines"},
+     *   summary="Get Fme Server instance",
+     *   description="Request to get an instance of Fme Server on Fme Cloud",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="instance_name",
+     *     in="path",
+     *     description="name of the fme server instance",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * @SWG\Get(path="/fmeengines/{fme_engine_id}/instances/{instance_name}/info", 
+     *   tags={"FmeEngines"},
+     *   summary="Get Fme Server instance information",
+     *   description="Request to get the FME Server build number and version on Fme Cloud",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="instance_name",
+     *     in="path",
+     *     description="name of the fme server instance",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+    
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_fme_engine", "fme_engine_id");
+    }
+
+    /**
+     * delete an user
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'v_fme_engine', 'fme_engine_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['fme_engine_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/FmeEngineType.class.inc b/src/module_gtf/web_service/ws/FmeEngineType.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..0bb700fe2e6511c427f997fa42855e75e08b97b6
--- /dev/null
+++ b/src/module_gtf/web_service/ws/FmeEngineType.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file FmeEngineType.class.inc
+ * \class FmeEngineType
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the FmeEngineType php class
+ *
+ * This class defines operation for one FmeEngineType
+ * 
+ */
+class FmeEngineType extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('fme_engine_type_id', 'fme_engine_type_label');
+    }
+
+    /**
+     * get informations about fme engine type
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_fme_engine_type", "fme_engine_type_id");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/FmeEngineTypes.class.inc b/src/module_gtf/web_service/ws/FmeEngineTypes.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..1cebef5c1e17706de2380441c4d0210dd50035c9
--- /dev/null
+++ b/src/module_gtf/web_service/ws/FmeEngineTypes.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file FmeEngineTypes.class.inc
+ * \class FmeEngineTypes
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the FmeEngineTypes php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'FmeEngineType.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class FmeEngineTypes extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/fmeenginetypes",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/fmeenginetypes")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="FmeEngineTypes",
+     *   description="Operations about Fme Engine Types"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('fme_engine_type_id', 'fme_engine_type_label');
+    }
+
+    /**
+     * @SWG\Get(path="/fmeenginetypes",
+     *   tags={"FmeEngineTypes"},
+     *   summary="Get FmeEngineTypes",
+     *   description="Request to get FmeEngineTypes",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeenginetypes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get FmeEngineTypes
+     * @return  FmeEngineTypes
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_fme_engine_type", "fme_engine_type_id");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/FmeEngines.class.inc b/src/module_gtf/web_service/ws/FmeEngines.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..d4c703338e423e975b5856107cc0081d2a7adbad
--- /dev/null
+++ b/src/module_gtf/web_service/ws/FmeEngines.class.inc
@@ -0,0 +1,736 @@
+<?php
+
+/**
+ * \file FmeEngines.class.inc
+ * \class FmeEngines
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis FmeEngines
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'FmeEngine.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once 'gtf_lib/FmeCloud.class.inc';
+require_once 'gtf_lib/FmeServer.class.inc';
+
+class FmeEngines extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/fmeengines",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/fmeengines")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="FmeEngines",
+     *   description="Operations about Fme Engines"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("fme_engine_id", "name", "server_id", "local_path", "server_name", "fme_engine_type_id", "server_url", "login", "password", "s3_access_key_id", "s3_secret_access_key", "fme_cloud_api_token", "fme_engine_type_label", "s3_region", "iam_access_key_id", "iam_secret_access_key", 'fme_server_instance_name', 'fme_server_s3_bucket', "useexternaldbconnection");
+    }
+
+    /**
+     * @SWG\Get(path="/fmeengines",
+     *   tags={"FmeEngines"},
+     *   summary="Get Fme Engines",
+     *   description="Request to get Fme Engines",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="fmeengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/fmeengines/{fme_engine_id}/Test", 
+     *   tags={"FmeEngines"},
+     *   summary="Get FmeEngine test",
+     *   description="Request to get FmeEnginetest by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * get FmeEngines
+     * @return  FmeEngines
+     */
+    function GET() {
+        // Instance FME Server sur Fme Cloud.
+        if (!empty($this->aPath[3]) && $this->aPath[3] == 'instances') {
+            if (empty($this->aPath[5])) {
+                $sMessage = $this->getFmeServerInstance($this->aPath[2], $this->aPath[4], $oFmeCloud);
+                return $sMessage;
+            }
+            else {
+                if ($this->aPath[5] == 'info')
+                    $sMessage = $this->getFmeServerInstanceInfo($this->aPath[2], $this->aPath[4]);
+                return $sMessage;
+            }
+        }
+        else {
+            $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_fme_engine", "fme_engine_id");
+            if (!empty($this->aPath[3]) && $this->aPath[3] == 'Test') {
+                if ($aReturn['sStatus'] == 1) {
+                    // Test de validité de la licence FME.
+                    $this->testFmeLicence();
+                    $aXmlRacineAttribute['status'] = 1;
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    return $sMessage;
+                }
+            } else
+                return $aReturn['sMessage'];
+        }
+    }
+
+    /**
+     * @SWG\Post(path="/fmeengines",
+     *   tags={"FmeEngines"},
+     *   summary="Add FmeEngine",
+     *   description="Request to add fmeengine",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="fmeengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="formData",
+     *     description="Name of the fme engine",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="server_id",
+     *     in="formData",
+     *     description="Server of fme engine",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="local_path",
+     *     in="formData",
+     *     description="local_path of the fme engine",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert fmeengine
+     * @return id of the fmeengine created
+     */
+    function POST() {
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'v_fme_engine', $this->aProperties['schema_gtf'] . '.seq_common', 'fme_engine_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oFmeEngine = new FmeEngine($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oFmeEngine->GET();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/fmeengines/{fme_engine_id}",
+     *   tags={"FmeEngines"},
+     *   summary="Update FmeEngine",
+     *   description="Request to update FmeEngine",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="fmeengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="id of the fme engine",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="query",
+     *     description="Name of the fme engine",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="server_id",
+     *     in="query",
+     *     description="Server of fme engine",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="local_path",
+     *     in="query",
+     *     description="local_path of the fme engine",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+    
+    /**
+     * @SWG\Put(path="/fmeengines/{fme_engine_id}/instances/{instance_name}/start",
+     *   tags={"FmeEngines"},
+     *   summary="Start Fme Server instance",
+     *   description="Request to start an instance of Fme Server on Fme Cloud",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="id of the fme engine",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="instance_name",
+     *     in="path",
+     *     description="name of the fme server instance",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * @SWG\Put(path="/fmeengines/{fme_engine_id}/instances/{instance_name}/pause",
+     *   tags={"FmeEngines"},
+     *   summary="Pause Fme Server instance",
+     *   description="Request to pause an instance of Fme Server on Fme Cloud",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="id of the fme engine",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="instance_name",
+     *     in="path",
+     *     description="name of the fme server instance",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+    
+    /**
+     * update fmeengine
+     * @return id of the fmeengine if ok error object if ko
+     */
+    function PUT() {
+        if (!empty($this->aPath[3])) {
+            if ($this->aPath[3] == 'instances') {
+                switch($this->aPath[5]) {
+                    case 'start':
+                        $sMessage = $this->startFmeServerInstance($this->aPath[2], $this->aPath[4]);
+                        break;
+                    case 'pause':
+                        $sMessage = $this->pauseFmeServerInstance($this->aPath[2], $this->aPath[4]);
+                        break;
+                }
+            }
+        }
+        else {
+            $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'v_fme_engine', 'fme_engine_id');
+            if ($aReturn['sStatus'] == 1) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                $oFmeEngine = new FmeEngine($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                $oFmeEngine->GET();
+            } else {
+                $sMessage = $aReturn['sMessage'];
+            }
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/fmeengines/",
+     *   tags={"FmeEngines"},
+     *   summary="delete FmeEngine",
+     *   description="Request to delete FmeEngine",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="fmeengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the fmeengines",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/fmeengines/{fme_engine_id}",
+     *   tags={"FmeEngines"},
+     *   summary="delete FmeEngine",
+     *   description="Request to delete FmeEngine",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="fmeengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="path",
+     *     description="id of the fmeengine",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/fmeengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete fmeengine.
+     * @return id of fmeengine deleted or error object if a fmeengine is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'v_fme_engine', 'fme_engine_id');
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * get fme licence parameters.
+     * @return id of fmeengine deleted or error object if a fmeengine is not deleted
+     */
+    function getFmeLicence($fmepath) {
+        // Si le fichier existe et la fonction exec ne renvoie pas d'erreur : remplissage du tableau
+        if (file_exists($fmepath)) {
+            // Le fichier existe
+            $this->aObjects[0]->aFields['exists'] = true;
+
+            // Exécute fme.exe
+            $aOutput = array();
+            $iReturnStatus = 1;
+            
+            // Variable d'environement "SystemDrive" obligatoire sinon erreur avec FME !
+            if (strtolower(substr(PHP_OS, 0, 3)) == 'win')
+                putenv('SystemDrive=' . substr($fmepath, 0, 2));
+            
+            // Paramètre "INFO" obligatoire pour FME 2016 sinon pas de ligne "Temporary License".
+            exec('"' . $fmepath . '"' . ' INFO', $aOutput, $iReturnStatus);
+            // Paramètre "INFO" non reconnu par FME 2014 (erreur).
+            if ($iReturnStatus === 1)
+                exec($fmepath, $aOutput, $iReturnStatus);
+
+            // Le fichier fme.exe s'est exécuté normalement ?
+            if ($iReturnStatus === 0) {
+                // Est ce que la licence a expiré ?
+                if (stripos(implode($aOutput), 'licence has expired') !== false)
+                    $this->aObjects[0]->aFields['valid'] = false;
+                else {
+                    // La licence est valide	
+                    $this->aObjects[0]->aFields['valid'] = true;
+
+                    // Version du logiciel
+                    $this->aObjects[0]->aFields['version'] = trim($aOutput[0]);
+
+                    // Type de licence
+                    $this->aObjects[0]->aFields['type'] = trim($aOutput[1]);
+
+                    // Validité de la licence
+                    $this->aObjects[0]->aFields['validity'] = trim($aOutput[2]);
+
+                    // Host
+                    $this->aObjects[0]->aFields['host'] = trim(substr($aOutput[3], stripos($aOutput[3], ':') + 1));
+                }
+            }
+        }
+    }
+    
+    /**
+     * Test Fme licence.
+     */
+    function testFmeLicence() {
+        // Tableau de retour contenant les infos de la licence
+        $aFmeLicence = array('exists' => false, 'valid' => false, 'version' => '', 'type' => '', 'validity' => '', 'host' => '');
+        $this->aObjects[0]->aFields = array_merge($this->aObjects[0]->aFields, $aFmeLicence);
+        //
+        if (empty($this->aObjects[0]->aFields['fme_engine_type_id']))
+            $this->aObjects[0]->aFields['fme_engine_type_id'] = 'desktop';
+        switch ($this->aObjects[0]->aFields['fme_engine_type_id']) {
+            case 'desktop':
+                $this->getFmeLicence($this->aObjects[0]->aFields["local_path"]);
+            break;
+            case 'fme_server':
+                $oFmeServer = new FmeServer($this->aObjects[0]->aFields['server_url'], $this->aObjects[0]->aFields['login'], $this->aObjects[0]->aFields['password'], 'day', 1);
+                $oFmeServerLicenceStatus = $oFmeServer->getLicenceStatus();
+                if ($oFmeServerLicenceStatus === false) {
+                    $this->aObjects[0]->aFields['exists'] = true;
+                    $this->aObjects[0]->aFields['request_error'] = true;
+                }
+                else if (empty($oFmeServerLicenceStatus))
+                    $this->aObjects[0]->aFields['exists'] = false;
+                else {
+                    $this->aObjects[0]->aFields['exists'] = true;
+                    if ($oFmeServerLicenceStatus->isLicenseExpired === true)
+                        $this->aObjects[0]->aFields['expired'] = true;
+                    else if ($oFmeServerLicenceStatus->isLicensed === false)
+                        $this->aObjects[0]->aFields['valid'] = false;
+                    else {
+                        // Info sur la licence de FME Server.
+                        //$this->aObjects[0]->aFields['exists'] = true;
+                        $this->aObjects[0]->aFields['valid'] = true;
+                        $sExpiryDate = $oFmeServerLicenceStatus->expiryDate;
+                        if (!empty($sExpiryDate))
+                            $sExpiryDate = substr($sExpiryDate, 6, 2) . '/' . substr($sExpiryDate, 4, 2) . '/' . substr($sExpiryDate, 0, 4);
+                        $this->aObjects[0]->aFields['validity'] = $sExpiryDate;
+                        // Info sur FME Server.
+                        $oFmeServerInfo = $oFmeServer->getInfo();
+                        $this->aObjects[0]->aFields['version'] = $oFmeServerInfo->build;
+                        $this->aObjects[0]->aFields['type'] = $oFmeServerInfo->version;
+                        $this->aObjects[0]->aFields['host'] = parse_url($this->aObjects[0]->aFields['server_url'], PHP_URL_HOST);
+                    }
+                }
+            break;
+        }
+    }
+
+    /**
+     * Get a Fme Server instance on Fme Cloud.
+     * @param {number} $iFmeEngineId Id of a Fme Engine.
+     * @param {string} $sFmeServerInstanceName Name of a Fme Server instance on Fme Cloud.
+     */
+    function getFmeServerInstance($iFmeEngineId, $sFmeServerInstanceName, &$oFmeCloud = null, &$aFmeEngine = array()) {
+        require $this->sRessourcesFile;
+        $iErrorId = 17;
+        $sErrorMessage = '';
+        // Paramètres du moteur Fme.
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['fme_engine_id'] = array('value' => $iFmeEngineId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getFmeEngine'], $aParams);
+        if ($this->oConnection->oBd->enErreur()) {
+            $iErrorId = 1;
+            $sErrorMessage = $this->oConnection->oBd->getBDMessage();
+        }
+        else if ($this->oConnection->oBd->nombreLigne($oPDOresult) > 0) {
+            $aFmeEngine = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+            $oFmeCloud = new FmeCloud($aFmeEngine['server_url'], $aFmeEngine['fme_cloud_api_token']);
+            // Liste des occurrences de FME Server.
+            $aFmeServerInstances = $oFmeCloud->serviceRequest('instances');
+            if (!empty($aFmeServerInstances)) {
+                foreach($aFmeServerInstances as $oInstance) {
+                    if ($oInstance->name == $sFmeServerInstanceName)
+                        $oFmeServerInstance = $oInstance;
+                }
+                if (empty($oFmeServerInstance))
+                    $sErrorMessage = 'L\'instance FME Server "' . $sFmeServerInstanceName . '" n\'existe pas.';
+                else {
+                    $this->aFields['instance'] = $oFmeServerInstance;
+                }
+            }
+            else
+                $sErrorMessage ='Aucune instance FME Server n\'est disponible.';
+        }
+        else
+            $sErrorMessage = 'Le moteur FME spécifiée n\'existe pas.';
+        // Message de retour pour l'API Rest.
+        if (empty($sErrorMessage)) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        else {
+            $oError = new VitisError($iErrorId, $sErrorMessage);
+            $aXmlRacineAttribute['status'] = 0;
+            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        return $sMessage;
+    }
+
+    
+    /**
+     * Start a Fme Server instance on Fme Cloud.
+     * @param {number} $iFmeEngineId Id of a Fme Engine.
+     * @param {string} $sFmeServerInstanceName Name of a Fme Server instance on Fme Cloud.
+     */
+    function startFmeServerInstance($iFmeEngineId, $sFmeServerInstanceName) {
+        $sMessage = $this->getFmeServerInstance($iFmeEngineId, $sFmeServerInstanceName, $oFmeCloud);
+        $oReturn = json_decode($sMessage);
+        if ($oReturn->status == 1) {
+            // Démarrage de l'occurence si elle est en pause.
+            if ($oReturn->instance->state == 'PAUSED') {
+                if ($oFmeCloud->startInstance($oReturn->instance->id) === false)
+                    $sErrorMessage = 'L\'instance Fme Server n\'a pu être démarrée.' ;
+                else {
+                    $oFmeServerInstance = $oFmeCloud->serviceRequest('instances/' . $oReturn->instance->id);
+                    if ($oFmeServerInstance === false)
+                        $sErrorMessage = 'Erreur pendant le démarrage de l\'instance Fme Server.';
+                    else
+                        $this->aFields = array('instance' => $oFmeServerInstance);
+                }
+            }
+            else if ($oReturn->instance->state == 'RUNNING')
+                $sErrorMessage = 'L\'instance Fme Server est déja en cours d\'exécution.';
+            else if ($oReturn->instance->state == 'executing_action')
+                $sErrorMessage = 'Une action est en cours d\'exéution sur L\'instance Fme Server.';
+            else
+                $sErrorMessage = $oReturn->instance->state;
+            // Message de retour pour l'API Rest.
+            if (empty($sErrorMessage)) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+            else {
+                $oError = new VitisError(17, $sErrorMessage);
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        }
+        return $sMessage;
+    }
+    
+    /**
+     * Pause a Fme Server instance on Fme Cloud.
+     * @param {number} $iFmeEngineId Id of a Fme Engine.
+     * @param {string} $sFmeServerInstanceName Name of a Fme Server instance on Fme Cloud.
+     */
+    function pauseFmeServerInstance($iFmeEngineId, $sFmeServerInstanceName) {
+        $sMessage = $this->getFmeServerInstance($iFmeEngineId, $sFmeServerInstanceName, $oFmeCloud);
+        $oReturn = json_decode($sMessage);
+        if ($oReturn->status == 1) {
+            // Mise en pause de l'occurence si elle est en cours d'éxecution.
+            if ($oReturn->instance->state == 'RUNNING') {
+                if ($oFmeCloud->pauseInstance($oReturn->instance->id) === false)
+                    $sErrorMessage = 'L\'instance Fme Server n\'a pu être arrêtée.' ;
+                else {
+                    $oFmeServerInstance = $oFmeCloud->serviceRequest('instances/' . $oReturn->instance->id);
+                    if ($oFmeServerInstance === false) 
+                        $sErrorMessage = 'Erreur pendant l\'arrêt de l\'instance Fme Server.';
+                    else
+                        $this->aFields = array('instance' => $oFmeServerInstance);
+                }
+            }
+            else if ($oReturn->instance->state == 'PAUSED')
+                $sErrorMessage = 'L\'instance Fme Server est déja à l\'arrêt';
+            else if ($oReturn->instance->state == 'executing_action')
+                $sErrorMessage = 'Une action est en cours d\'exécution sur L\'instance Fme Server.';
+            else
+                $sErrorMessage = $oReturn->instance->state;
+            // Message de retour pour l'API Rest.
+            if (empty($sErrorMessage)) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+            else {
+                $oError = new VitisError(17, $sErrorMessage);
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        }
+        return $sMessage;
+    }
+    
+    /**
+     * Get Fme Server instance information on Fme Cloud.
+     * @param {number} $iFmeEngineId Id of a Fme Engine.
+     * @param {string} $sFmeServerInstanceName Name of a Fme Server instance on Fme Cloud.
+     */
+    function getFmeServerInstanceInfo($iFmeEngineId, $sFmeServerInstanceName) {
+        $sMessage = $this->getFmeServerInstance($iFmeEngineId, $sFmeServerInstanceName, $oFmeCloud, $aFmeEngine);
+        $oReturn = json_decode($sMessage);
+        if ($oReturn->status == 1) {
+            $oFmeServer = new FmeServer('https://' . $oReturn->instance->public_ip, $aFmeEngine['login'], $aFmeEngine['password'], 'day', 1);
+            $oInstanceInfo = $oFmeServer->getInfo();
+            if ($oInstanceInfo === false)
+                $sErrorMessage = 'Erreur pendant la requête de demande d\'information sur l\'instance Fme Server';
+            else {
+                $oInstanceInfo->host = $oReturn->instance->instance_url;
+                $this->aFields = array('info' => $oInstanceInfo);
+            }
+            // Message de retour pour l'API Rest.
+            if (empty($sErrorMessage)) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+            else {
+                $oError = new VitisError(17, $sErrorMessage);
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        }
+        return $sMessage;
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Gtf.class.inc b/src/module_gtf/web_service/ws/Gtf.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e5711e5ed74d6269d8d5958c0dd3362e5b76a4bb
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Gtf.class.inc
@@ -0,0 +1,16 @@
+<?php
+
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . "/ws/vitis/Vitis.class.inc";
+
+class GTF extends Vitis {
+
+    //Chemin du fichier de ressources contenant les requêtes SQL
+    var $sRessourcesFile = "ws/gtf/Gtf.class.sql.inc";
+
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Gtf.class.sql.inc b/src/module_gtf/web_service/ws/Gtf.class.sql.inc
new file mode 100644
index 0000000000000000000000000000000000000000..724684fd24dc3c6678a3d13df317140b5edf6c46
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Gtf.class.sql.inc
@@ -0,0 +1,71 @@
+<?php
+
+//Définition des requêtes de l'api Vitis
+$aSql['checkIP'] = "SELECT user_id, ip_constraint FROM [sSchemaFramework].v_user WHERE login ='[sLogin]'";
+$aSql['getGroups'] = "SELECT group_id FROM [sSchemaFramework].v_user_group_by_rights WHERE user_id = [user_id]";
+$aSql['loginUnique'] = 'SELECT UPPER("login") FROM [sSchemaFramework]."v_user" where UPPER("login")=UPPER(\'sLoginUser\')';
+$aSql['getLoginbyId'] = 'SELECT "login" FROM [sSchemaFramework]."v_user" where user_id=[user_id]';
+$aSql['getTableColumn'] = 'SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS where table_schema = \'[sSchemaFramework]\' and table_name= \'[sTable]\'';
+$aSql['getUserPrivileges'] = 'SELECT groname FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) )inner join [sSchemaFramework].v_user on "v_user".login = usename where user_id = [user_id]';
+$aSql['listDomain'] = 'SELECT distinct domain, alias FROM [sSchemaFramework].domain WHERE "type" = \'AD\'';
+$aSql['createRolname'] = 'CREATE ROLE "vitis_[sDomain]" NOSUPERUSER INHERIT NOCREATEDB CREATEROLE;';
+$aSql['getInfoRolname'] = 'SELECT * FROM pg_catalog.pg_roles WHERE rolname = \'vitis_[sDomain]\'';
+// Orders
+$aSql['getEnginesId'] = 'SELECT * FROM [sSchemaGtf].gtf_engine WHERE enabled = TRUE AND tags like \'%\' || (SELECT tag FROM [sSchemaGtf].workspace WHERE workspace_id =[iWorkspaceId]) || \'%\'';
+$aSql['getEnginesDefaultTag'] = 'SELECT * FROM [sSchemaGtf].gtf_engine WHERE enabled = TRUE AND tags like \'%default%\'';
+$aSql['setOrderEngineId'] = 'UPDATE [sSchemaGtf].order SET gtf_engine_id=[gtf_engine_id] WHERE order_id=[order_id]';
+$aSql['getAllOrders'] = 'SELECT DISTINCT log_url FROM [sSchemaGtf].v_order WHERE log_url IS NOT NULL AND deleted = true';
+$aSql['getOrders'] = 'SELECT DISTINCT log_url FROM [sSchemaGtf].v_order WHERE log_url IS NOT NULL AND order_id IN ([idList])';
+$aSql['setOrderGtfEngine'] = 'UPDATE [sSchemaGtf].order SET gtf_engine_id = [gtf_engine_id] WHERE order_id IN ([idList])';
+$aSql['resetOrder'] = 'UPDATE [sSchemaGtf].order SET order_status_id = 1, attempt = 0, execution_date = NULL, length_sec = NULL, log_url = null, result_url = null WHERE order_id = [order_id]';
+$aSql['activateOrder'] = 'UPDATE [sSchemaGtf].order SET enabled = TRUE WHERE order_id IN ([idList])';
+$aSql['desactivateOrder'] = 'UPDATE [sSchemaGtf].order SET enabled = FALSE WHERE order_id IN ([idList])';
+$aSql['getOrderPathFiles'] = 'SELECT log_url,result_url FROM [sSchemaGtf].v_order WHERE order_id = [order_id]';
+$aSql['getOrderWorkspace'] = 'SELECT workspace_id FROM [sSchemaGtf].v_order WHERE order_id = [order_id] LIMIT 1';
+$aSql['getOrderEngineStatus'] = 'SELECT gtf_engine.enabled FROM [sSchemaGtf]."order" LEFT JOIN [sSchemaGtf].gtf_engine ON "order".gtf_engine_id = gtf_engine.gtf_engine_id WHERE order_id = [order_id]';
+$aSql['getRunningOrders'] = 'SELECT order_id, gtf_engine_id FROM [sSchemaGtf]."order" WHERE order_status_id IN (1, 5)';
+$aSql['updateOrderStatus'] = 'UPDATE [sSchemaGtf].order SET order_status_id = [order_status_id] WHERE order_id = [order_id]';
+//$aSql['getOrdersToDelete'] = 'SELECT order_id, gtf_engine_id, order_status_id FROM [sSchemaGtf]."order" WHERE order_id IN([idList])';
+$aSql['getOrdersToDelete'] = 'SELECT fme_engine.fme_engine_type_id, "order".order_id, "order".gtf_engine_id, "order".order_status_id FROM [sSchemaGtf].order, [sSchemaGtf].gtf_engine, [sSchemaGtf].fme_engine WHERE gtf_engine.gtf_engine_id = "order".gtf_engine_id AND fme_engine.fme_engine_id = gtf_engine.fme_engine_id AND order_id IN([idList])';
+//$aSql['getOrderFmeEngine'] = 'SELECT fme_engine.fme_engine_type_id, fme_engine.server_url, fme_engine.login, fme_engine.password, fme_engine.fme_cloud_api_token, fme_engine.fme_server_instance_name, server.engines_home, v_order.gtf_engine_id FROM [sSchemaGtf].v_order, [sSchemaGtf].gtf_engine, [sSchemaGtf].fme_engine, [sSchemaGtf].server WHERE gtf_engine.gtf_engine_id = v_order.gtf_engine_id AND fme_engine.fme_engine_id = gtf_engine.fme_engine_id AND server.server_id = fme_engine.server_id AND order_id = [iOrderId] LIMIT 1';
+$aSql['getGtfEngineHomeFromOrderId'] = 'SELECT engines_home, "order".gtf_engine_id, "order".order_id FROM [sSchemaGtf]."server", [sSchemaGtf].gtf_engine, [sSchemaGtf]."order" WHERE gtf_engine.server_id = "server".server_id AND gtf_engine.gtf_engine_id = "order".gtf_engine_id AND order_id = [order_id]';
+$aSql['getGtfEngineHomeFromEngineId'] = 'SELECT engines_home, "order".gtf_engine_id, "order".order_id FROM [sSchemaGtf]."server", [sSchemaGtf].gtf_engine, [sSchemaGtf]."order" WHERE gtf_engine.server_id = "server".server_id AND gtf_engine.gtf_engine_id = "order".gtf_engine_id AND gtf_engine.gtf_engine_id = [iGtfEngineId]';
+$aSql['getFmeServerOrder'] = 'SELECT fme_engine.fme_engine_type_id, fme_engine.server_url, fme_engine.login, fme_engine.password, fme_engine.fme_cloud_api_token, fme_engine.fme_server_instance_name, "order".gtf_engine_id, "order".pid, server.engines_home, "order".log_url FROM [sSchemaGtf].order, [sSchemaGtf].gtf_engine, [sSchemaGtf].fme_engine, [sSchemaGtf].server WHERE gtf_engine.gtf_engine_id = "order".gtf_engine_id AND fme_engine.fme_engine_id = gtf_engine.fme_engine_id AND server.server_id = fme_engine.server_id AND order_id = [order_id] LIMIT 1';
+$aSql['getOrderPid'] = 'SELECT fme_engine.fme_engine_type_id, "order".gtf_engine_id, "order".pid FROM [sSchemaGtf]."order", [sSchemaGtf].gtf_engine, [sSchemaGtf].fme_engine, [sSchemaGtf].server WHERE gtf_engine.gtf_engine_id = "order".gtf_engine_id AND fme_engine.fme_engine_id = gtf_engine.fme_engine_id AND server.server_id = fme_engine.server_id AND order_id = [order_id] LIMIT 1';
+$aSql['getOrderFmeEngineType'] = 'SELECT fme_engine.fme_engine_type_id FROM [sSchemaGtf]."order", [sSchemaGtf].gtf_engine, [sSchemaGtf].fme_engine WHERE gtf_engine.gtf_engine_id = "order".gtf_engine_id AND fme_engine.fme_engine_id = gtf_engine.fme_engine_id AND order_id = [order_id] LIMIT 1';
+// UserSubscriptions
+$aSql['setSubscriptionEngineId'] = 'UPDATE [sSchemaGtf].subscription SET gtf_engine_id=[gtf_engine_id] WHERE subscription_id=[subscription_id]';
+$aSql['getUserSubscriptions'] = "SELECT order_id, label_name, CASE when v_user_subscription.enabled IS TRUE THEN '<img src=''./images/true.png'' />' ELSE '<img src=''./images/false.png'' />' END as enabled, order_date, '<img src=''./images/wk_params.png''  onmouseover=''loadTooltip(event,0,0,\"White\",\"#' || order_id || '\", \"' || replace(replace(replace(replace(wk_params,'\r\n', '<br/>'),'\\','\\\\'), '\"', '\\\"'),'''', '&#39;') || '\" )'' onmouseout=''unshow()''/>'  as wk_params, period.name as order_period_libelle, v_user_subscription.email_option_id, label_id, CASE WHEN email_notifications IS NOT NULL then '<img src=''./images/enveloppe.png'' onmouseover=''showTooltip(event,500,0,\"White\",\"#' || order_id || '\", \"' || replace(email_notifications, ';', '<br>') || '\" )'' onmouseout=''unshow()''/>' END as email_notifications, translation_email_notification.translation as notification FROM [sSchemaGtf].v_user_subscription LEFT JOIN [sSchemaGtf].period ON period.period_id = v_user_subscription.period_id LEFT JOIN [sSchemaGtf].rt_email_option on rt_email_option.email_option_id = v_user_subscription.email_option_id LEFT JOIN [sSchemaFramework].vm_translation translation_email_notification ON rt_email_option.label_id = translation_email_notification.translation_id WHERE translation_email_notification.lang = '[sLang]'";
+$aSql['getUserSubscription'] = "SELECT order_id, workspace_id, enabled, login, order_status_id,  order_date, execution_date, wk_params, period_id, result_url, user_id, order_period_libelle, v_subscription.email_option_id, vm_translation.translation as notification FROM [sSchemaGtf].v_subscription LEFT JOIN [sSchemaGtf].rt_email_option ON v_subscription.email_option_id = rt_email_option.email_option_id LEFT JOIN [sSchemaFramework].vm_translation ON rt_email_option.label_id = vm_translation.translation_id WHERE vm_translation.lang = '[sLang]' AND v_subscription.order_id = [order_id]";
+// GtfEngines
+$aSql['getTags'] = 'SELECT tags FROM [sSchemaGtf].gtf_engine WHERE tags IS NOT NULL';
+$aSql['truncateTags'] = 'TRUNCATE [sSchemaGtf].rt_tag';
+$aSql['insertTag'] = 'INSERT INTO [sSchemaGtf].rt_tag VALUES ([sTag])';
+// Categories
+$aSql['getCategoryTraitement'] = 'SELECT workspace_id, name FROM [sSchemaGtf].workspace WHERE category_id=[category_id]';
+$aSql['setWorkspaceCategory'] = 'UPDATE [sSchemaGtf].workspace SET category_id=NULL WHERE category_id IN([category_id])';
+// Inboxes
+$aSql['getInboxGroups'] = 'SELECT inbox_group.group_id, "group".name FROM [sSchemaGtf].inbox_group LEFT JOIN [sSchemaFramework]."group" ON inbox_group.group_id = "group".group_id WHERE inbox_group.inbox_id = [inbox_id]';
+// UserOrders
+$aSql['getUserOrders'] = "SELECT order_id, workspace.name as label_name,CASE WHEN rt_order_status.order_status_id =1 then '<img src=''./images/sql_list/st1.gif'' \ronmouseover=''showTooltip(event,100,0,\"White\",\"#' || order_id || '\", \"' || translation_status.translation || '\" )'' onmouseout=''unshow()''/>' WHEN rt_order_status.order_status_id =2 then '<img src=''./images/sql_list/st2.png'' onmouseover=''showTooltip(event,100,0,\"White\",\"#' || order_id || '\", \"' || translation_status.translation || '\" )'' onmouseout=''unshow()''/>' WHEN rt_order_status.order_status_id =3 then '<img src=''./images/sql_list/st3.png'' onmouseover=''showTooltip(event,100,0,\"White\",\"#' || order_id || '\", \"' || translation_status.translation || '\" )'' onmouseout=''unshow()''/>' WHEN rt_order_status.order_status_id =5 then '<img src=''./images/sql_list/st5.gif'' onmouseover=''showTooltip(event,100,0,\"White\",\"#' || order_id || '\", \"' || translation_status.translation || '\" )'' onmouseout=''unshow()''/>' WHEN rt_order_status.order_status_id =6 then '<img src=''./images/sql_list/st6.png'' onmouseover=''showTooltip(event,100,0,\"White\",\"#' || order_id || '\", \"' || translation_status.translation || '\" )'' onmouseout=''unshow()''/>' else '<img src=''./images/sql_list/st4.png''  onmouseover=''showTooltip(event,100,0,\"White\",\"#' || order_id || '\", \"' || translation_status.translation || '\" )'' onmouseout=''unshow()''/>' end as order_status_libelle, translation_status.translation, order_date, execution_date, CASE WHEN email_notifications IS NOT NULL then '<img src=''./images/enveloppe.png'' onmouseover=''showTooltip(event,500,0,\"White\",\"#' || order_id || '\", \"' || replace(email_notifications, ';', '<br>') || '\" )'' onmouseout=''unshow()''/>' END as email_notifications, '<img src=''./images/wk_params.png''  onmouseover=''loadTooltip(event,0,0,\"White\",\"#' || order_id || '\", \"' || replace(replace(replace(replace(wk_params,'\r\n', '<br/>' ),'\\','\\\\'), '\"', '\\\"'),'''', '&#39;') || '\" )'' onmouseout=''unshow()''/>'  as parametres, rt_priority.priority_id, translation_priority.translation as priorite_libelle, translation_email.translation as email_libelle, case when result_url IS NULL then '' else '<a href=javascript:OpenFile(\"' || 'properties[url_export]/' || result_url ||'\");><img src=''./images/telecharger.png''/></a>' end as result_url, log_url,  deleted, gtf_engine_id, length_sec FROM ([sSchemaGtf].\"v_user_order\" LEFT JOIN [sSchemaGtf].workspace ON \"v_user_order\".workspace_id = workspace.workspace_id LEFT JOIN [sSchemaGtf].rt_order_status ON \"v_user_order\".order_status_id = rt_order_status.order_status_id LEFT JOIN [sSchemaGtf].rt_priority ON \"v_user_order\".priority_id = rt_priority.priority_id) LEFT JOIN [sSchemaGtf].\"rt_email_option\" ON \"v_user_order\".\"email_option_id\" = \"rt_email_option\".\"email_option_id\" LEFT JOIN [sSchemaFramework].\"v_user\" ON \"v_user\".\"user_id\" = [sSchemaGtf].\"v_user_order\".\"user_id\" LEFT JOIN [sSchemaFramework].vm_translation as translation_priority ON translation_priority.translation_id = rt_priority.label_id LEFT JOIN [sSchemaFramework].vm_translation as translation_email ON translation_email.translation_id = rt_email_option.label_id and translation_email.lang=translation_priority.lang LEFT JOIN [sSchemaFramework].vm_translation as translation_status ON rt_order_status.label_id = translation_status.translation_id and translation_status.lang=translation_priority.lang WHERE translation_status.lang = '[sLang]'";
+$aSql['getUserOrder'] = "SELECT v_user_order.order_id, workspace.workspace_id, workspace.name, \"v_user\".\"user_id\" as \"user_id\", \"v_user\".\"name\" as \"user_name\", v_user_order.order_date, v_user_order.execution_date, v_user_order.wk_params, rt_priority.priority_id, v_user_order.result_url as \"result_url\", v_user_order.log_url as \"log_url\", v_user_order.email_notifications FROM ([sSchemaGtf].v_user_order LEFT JOIN [sSchemaGtf].order ON v_user_order.order_id = \"order\".order_id LEFT JOIN [sSchemaGtf].workspace ON v_user_order.workspace_id = workspace.workspace_id LEFT JOIN [sSchemaGtf].rt_order_status ON v_user_order.order_status_id = rt_order_status.order_status_id LEFT JOIN [sSchemaGtf].rt_priority ON v_user_order.priority_id = rt_priority.priority_id LEFT JOIN [sSchemaGtf].rt_email_option ON v_user_order.email_option_id = rt_email_option.email_option_id) LEFT JOIN [sSchemaFramework].\"v_user\" ON \"v_user\".\"user_id\" = v_user_order.\"user_id\" WHERE v_user_order.order_id = [order_id]";
+$aSql['setUserOrderEngineId'] = 'UPDATE [sSchemaGtf].order SET gtf_engine_id=[gtf_engine_id] WHERE order_id=[order_id]';
+// Groups
+$aSql['getWorkspaces'] = "SELECT workspace_id FROM [sSchemaGtf].workspace_group WHERE group_id = [group_id]";
+$aSql['getInboxes'] = "SELECT inbox_id FROM [sSchemaGtf].inbox_group WHERE group_id = [group_id]";
+$aSql['insertGroupWorkspaces'] = "INSERT INTO [sSchemaGtf].workspace_group(workspace_id, group_id, workspace_group_id) VALUES([workspace_id], [group_id], nextval('[sSchemaGtf].seq_common'))";
+$aSql['insertGroupInboxes'] = "INSERT INTO [sSchemaGtf].inbox_group(inbox_id, group_id) VALUES([inbox_id], [group_id])";
+$aSql['getWorkspaceGroups'] = 'SELECT workspace_group.group_id, "group".name FROM [sSchemaGtf].workspace_group LEFT JOIN [sSchemaFramework].group ON workspace_group.group_id = "group".group_id WHERE workspace_group.workspace_id=[workspace_id]';
+$aSql['getLastGTFEngineID'] = 'SELECT min(num)-1 as id FROM generate_series(1,(SELECT max(gtf_engine_id) FROM [sSchemaGtf].gtf_engine)+ 1) t(num) LEFT JOIN [sSchemaGtf].gtf_engine  on (t.num =gtf_engine.gtf_engine_id) WHERE gtf_engine.gtf_engine_id is null;';
+//ImportWorkspace
+$aSql['getWorkspaceId'] = 'SELECT workspace_id FROM [sSchemaGtf].workspace WHERE lower(name) = lower([sFileName]);';
+$aSql['getWorkspaceId2'] = 'SELECT workspace_id FROM [sSchemaGtf].workspace where key = [sKey];';
+$aSql['getOwnerId'] = 'SELECT "user_id" FROM [sSchemaFramework]."v_user" WHERE login = [sLogin]';
+// UserOrders
+$aSql['checkUserWorkspace'] = 'SELECT * FROM [sSchemaGtf].v_user_workspace WHERE workspace_id=[workspace_id]';
+// Workspaces
+$aSql['getWorkspaceLastSaveData'] = 'SELECT last_save_date, last_save_build FROM [sSchemaGtf].workspace WHERE workspace_id=[workspace_id]';
+$aSql['checkWorkspaceName'] = 'SELECT workspace_id FROM [sSchemaGtf].workspace WHERE name=[name]';
+// FmeEngines
+$aSql['getFmeEngine'] = 'SELECT * FROM [sSchemaGtf].fme_engine WHERE fme_engine_id = [fme_engine_id]';
+?>
diff --git a/src/module_gtf/web_service/ws/GtfEngine.class.inc b/src/module_gtf/web_service/ws/GtfEngine.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..6a94d7125376ddbd382053ed444bf42466456169
--- /dev/null
+++ b/src/module_gtf/web_service/ws/GtfEngine.class.inc
@@ -0,0 +1,93 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * @file GtfEngine.class.inc
+ * @class GtfEngine
+ *
+ * @author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * @brief This file contains the GtfEngine php class
+ *
+ * This class defines operation for one GtfEngine
+ * 
+ */
+class GtfEngine extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('gtf_engine_id', 'name', 'period', 'enabled', 'server_id', 'fme_engine_id', 'server_name', 'fme_name', 'tags');
+    }
+
+    /**
+     * @SWG\Get(path="/gtfengines/{gtf_engine_id}", 
+     *   tags={"GtfEngines"},
+     *   summary="Get GtfEngine",
+     *   description="Request to get GtfEngine by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="gtf_engine_id",
+     *     in="path",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/gtfengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_gtf_engine", "gtf_engine_id");
+    }
+
+    /**
+     * delete an user
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'v_gtf_engine', 'gtf_engine_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['gtf_engine_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/GtfEngines.class.inc b/src/module_gtf/web_service/ws/GtfEngines.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..0985607d4b612448a00d9435f5d1f15436274bd4
--- /dev/null
+++ b/src/module_gtf/web_service/ws/GtfEngines.class.inc
@@ -0,0 +1,441 @@
+<?php
+
+/**
+ * \file GtfEngines.class.inc
+ * \class GtfEngines
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis GtfEngines
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'GtfEngine.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class GtfEngines extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/gtfengines",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/gtfengines")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="GtfEngines",
+     *   description="Operations about Gtf Engines"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('gtf_engine_id', 'name', 'period', 'enabled', 'server_id', 'fme_engine_id', 'server_name', 'fme_name', 'tags');
+    }
+
+    /**
+     * @SWG\Get(path="/gtfengines",
+     *   tags={"GtfEngines"},
+     *   summary="Get Gtf Engines",
+     *   description="Request to get Gtf Engines",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="gtfengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/gtfengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * get GtfEngines
+     * @return  GtfEngines
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_gtf_engine", "gtf_engine_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/gtfengines",
+     *   tags={"GtfEngines"},
+     *   summary="Add GtfEngine",
+     *   description="Request to add gtfengine",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="gtfengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="formData",
+     *     description="Name of the gtf engine",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="period",
+     *     in="formData",
+     *     description="period (minutes) of the gtf engine",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="formData",
+     *     description="gtf engine enabled ?",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="server_id",
+     *     in="formData",
+     *     description="Server of gtf engine",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="formData",
+     *     description="id of fme engine",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="tags",
+     *     in="formData",
+     *     description="tags of the gtf engine",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/gtfengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert gtfengine
+     * @return id of the gtfengine created
+     */
+    function POST() {
+        if (!isset($this->aValues['tags'])) {
+            $this->aValues['tags'] = 'default';
+        }
+        require $this->sRessourcesFile;
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getLastGTFEngineID'], $aParams);
+        while ($oId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+            $this->aValues['gtf_engine_id'] = $oId->id + 1;
+        $oPDOresult = $this->oConnection->oBd->fermeResultat();
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'v_gtf_engine', '', 'gtf_engine_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oGtfEngine = new GtfEngine($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oGtfEngine->GET();
+            //
+            $this->insertGtfEngineTags();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/gtfengines/{gtf_engine_id}",
+     *   tags={"GtfEngines"},
+     *   summary="Update GtfEngine",
+     *   description="Request to update GtfEngine",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="gtfengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="gtf_engine_id",
+     *     in="path",
+     *     description="id of the gtfengine",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="query",
+     *     description="Name of the gtf engine",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="period",
+     *     in="query",
+     *     description="period (minutes) of the gtf engine",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="query",
+     *     description="gtf engine enabled ?",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="server_id",
+     *     in="query",
+     *     description="Server of gtf engine",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="fme_engine_id",
+     *     in="query",
+     *     description="id of fme engine",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="tags",
+     *     in="query",
+     *     description="tags of the gtf engine",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/gtfengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * update gtfengine
+     * @return id of the gtfengine if ok error object if ko
+     */
+    function PUT() {
+        if (!isset($this->aValues['tags'])) {
+            $this->aValues['tags'] = 'default';
+        }
+        $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'v_gtf_engine', 'gtf_engine_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oGtfEngine = new GtfEngine($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oGtfEngine->GET();
+            //
+            $this->insertGtfEngineTags();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/gtfengines/",
+     *   tags={"GtfEngines"},
+     *   summary="delete GtfEngine",
+     *   description="Request to delete GtfEngine",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="gtfengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the gtfengines",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/gtfengines")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/gtfengines/{gtf_engine_id}",
+     *   tags={"GtfEngines"},
+     *   summary="delete GtfEngine",
+     *   description="Request to delete GtfEngine",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="gtfengine token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="gtf_engine_id",
+     *     in="path",
+     *     description="id of the gtfengine",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/gtfengines")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete gtfengine
+     * @return id of gtfengine deleted or error object if a gtfengine is not deleted
+     */
+    function DELETE() {
+        $aId = explode('|', $this->aValues['idList']);
+        $aServeur = array();
+        foreach ($aId as $id) {
+            $this->aValues['my_vitis_id'] = $id;
+            $oGtfEngine = new GtfEngine($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oGtfEngine->GET();
+            array_push($aServeur, $oGtfEngine->aFields['server_id']);
+        }
+        unset($this->aValues['my_vitis_id']);
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'v_gtf_engine', 'gtf_engine_id');
+        foreach ($aServeur as $serveur_id) {
+            require_once("ServerClass.class.inc");
+            $oCrontab = new ServerClass($oGtfEngine->aFields['server_id'], $this->oConnection->oBd, $this->aProperties['vas_home'], null, $this->aProperties);
+            $oCrontab->deleteCrontabValuesEngine();
+            $oCrontab->AddCrontabValuesEngines();
+            $oCrontab->AddPropertiesFME();
+        }
+        return $aReturn['sMessage'];
+    }
+
+    /*
+     * *	Insère les mots clefs liés au moteur GTF.
+     */
+
+    function insertGtfEngineTags() {
+        require $this->sRessourcesFile;
+        require_once("ServerClass.class.inc");
+        $oCrontab = new ServerClass($this->aValues['server_id'], $this->oConnection->oBd, $this->aProperties['vas_home'], null, $this->aProperties);
+        $oCrontab->deleteCrontabValuesEngine();
+        $oCrontab->AddCrontabValuesEngines();
+        $oCrontab->AddPropertiesFME();
+
+        // Récupération des tags
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getTags'], $aParams);
+        $aTags = array("default");
+        while ($oTags = $this->oConnection->oBd->objetSuivant($oPDOresult)) {
+            foreach (explode(",", trim($oTags->tags, ",")) as $sTag) {
+                if ($sTag != "")
+                    $aTags[] = $sTag;
+            }
+        }
+        $aTags = array_unique($aTags);
+
+        // truncate sur la table rt_tag
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $this->oConnection->oBd->executeWithParams($aSql['truncateTags'], $aParams);
+
+        // insertion des tags dans rt_tag
+        $sSql = $aSql['insertTag'];
+        foreach ($aTags as $sTag) {
+            $sSql = $aSql['insertTag'];
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['sTag'] = array('value' => $sTag, 'type' => 'string');
+            $this->oConnection->oBd->executeWithParams($sSql, $aParams);
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/GtfGroup.class.inc b/src/module_gtf/web_service/ws/GtfGroup.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..586bf5ce523821642afa98df36033874352b3781
--- /dev/null
+++ b/src/module_gtf/web_service/ws/GtfGroup.class.inc
@@ -0,0 +1,127 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Group.class.inc
+ * \class Group
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Group php class
+ *
+ * This class defines operation for one Group
+ * 
+ */
+class GtfGroup extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("group_id", "name", "nb_members", "workspaces", "inboxes");
+    }
+
+    /**
+     * @SWG\Get(path="/gtfgroups/{group_id}", 
+     *   tags={"Groups"},
+     *   summary="Get Group",
+     *   description="Request to get Group by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="group_id",
+     *     in="path",
+     *     description="group id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/groups")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_framework'], "v_group", "group_id");
+        $this->getWorkspaces();
+        $this->getInboxes();
+    }
+
+    /**
+     *  get workspaces of group
+     */
+    function getWorkspaces() {
+        require $this->sRessourcesFile;
+        if (in_array("workspaces", $this->aSelectedFields)) {
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['group_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getWorkspaces'], $aParams);
+            $sListWorkspaceId = "";
+            while ($aLigne = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                if ($sListWorkspaceId == "") {
+                    $sListWorkspaceId = $aLigne["workspace_id"];
+                } else {
+                    $sListWorkspaceId .= "|" . $aLigne["workspace_id"];
+                }
+            }
+            $oPDOresult = $this->oConnection->oBd->fermeResultat();
+            $this->aFields['workspaces'] = $sListWorkspaceId;
+        }
+    }
+
+    /**
+     *  get inboxes of group
+     */
+    function getinboxes() {
+        require $this->sRessourcesFile;
+        if (in_array("inboxes", $this->aSelectedFields)) {
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['group_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getInboxes'], $aParams);
+            $sListInboxId = "";
+            while ($aLigne = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                if ($sListInboxId == "") {
+                    $sListInboxId = $aLigne["inbox_id"];
+                } else {
+                    $sListInboxId .= "|" . $aLigne["inbox_id"];
+                }
+            }
+            $oPDOresult = $this->oConnection->oBd->fermeResultat();
+            $this->aFields['inboxes'] = $sListInboxId;
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/GtfGroups.class.inc b/src/module_gtf/web_service/ws/GtfGroups.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..b1714a66c7fd655f407d986f79ecf2be37270d62
--- /dev/null
+++ b/src/module_gtf/web_service/ws/GtfGroups.class.inc
@@ -0,0 +1,146 @@
+<?php
+
+/**
+ * \file Groups.class.inc
+ * \class Groups
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis Groups
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'GtfGroup.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class GtfGroups extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/gtfgroups",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/gtfgroups")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="GtfGroups",
+     *   description="Operations about Groups"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("group_id", "name", "nb_members", "workspaces", "inboxes");
+    }
+
+    /**
+     * get Groups
+     * @return  Groups
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_framework'], "v_group", "group_id");
+
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Put(path="/gtfgroups/{group_id}",
+     *   tags={"Groups"},
+     *   summary="Update Group",
+     *   description="Request to update Group",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="group token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="group_id",
+     *     in="path",
+     *     description="id of the group",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="workspaces",
+     *     in="query",
+     *     description="Workspaces of the group",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="inboxes",
+     *     in="query",
+     *     description="Inboxes of the group",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/groups")
+     *     )
+     *  )
+     */
+
+    /**
+     * update group
+     * @return id of the group if ok error object if ko
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_framework'], 'v_group', 'group_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oGroup = new GTFGroup($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oGroup->GET();
+            require $this->sRessourcesFile;
+            // Supprime les Traitements rattachés au groupe.
+            $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'workspace_group', 'group_id', $this->aValues["my_vitis_id"]);
+            // Traitements à rattacher au groupe ?
+            if (!empty($this->aValues['workspaces'])) {
+                $aWorkspaces = explode('|', $this->aValues['workspaces']);
+                foreach ($aWorkspaces as $iWorkspaceId) {
+                    $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                    $aParams['group_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+                    $aParams['workspace_id'] = array('value' => $iWorkspaceId, 'type' => 'number');
+                    $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['insertGroupWorkspaces'], $aParams);
+                }
+            }
+
+            // Supprime les dépôts rattachés au groupe.
+            $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'inbox_group', 'group_id', $this->aValues["my_vitis_id"]);
+            // Traitements à rattacher au groupe ?
+            if (!empty($this->aValues['inboxes'])) {
+                $aInboxes = explode('|', $this->aValues['inboxes']);
+                foreach ($aInboxes as $iInboxId) {
+                    $aParams = array();
+                    $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                    $aParams['group_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+                    $aParams['inbox_id'] = array('value' => $iInboxId, 'type' => 'number');
+                    $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['insertGroupInboxes'], $aParams);
+                }
+            }
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Inbox.class.inc b/src/module_gtf/web_service/ws/Inbox.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..6e4fca7780558618b3aa4ee82264067c07cb6029
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Inbox.class.inc
@@ -0,0 +1,106 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Inbox.class.inc
+ * \class Inbox
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Inbox php class
+ *
+ * This class defines operation for one Inbox
+ * 
+ */
+class Inboxe extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('inbox_id', 'name', 'alias', 'groups');
+    }
+
+    /**
+     * @SWG\Get(path="/inboxes/{inbox_id}", 
+     *   tags={"Inboxes"},
+     *   summary="Get Inbox",
+     *   description="Request to get Inbox by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="inbox_id",
+     *     in="path",
+     *     description="inbox id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/inboxes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "inbox", "inbox_id");
+        // Groupes liés à au dépôt.
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name');
+        $aParams['inbox_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getInboxGroups'], $aParams);
+        $aGroupsId = array();
+        $aGroupsName = array();
+        while ($oGroupsId = $this->oConnection->oBd->objetSuivant($oPDOresult)) {
+            $aGroupsId[] = $oGroupsId->group_id;
+            $aGroupsName[] = $oGroupsId->name;
+        }
+        $this->aFields['groups'] = implode('|', $aGroupsId);
+        $this->aFields['groups_label'] = implode(',', $aGroupsName);
+    }
+
+    /**
+     * delete an inbox
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'inbox', 'inbox_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['inbox_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Inboxes.class.inc b/src/module_gtf/web_service/ws/Inboxes.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..56d29daae6ec890730b8ceaffd3f28359432575d
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Inboxes.class.inc
@@ -0,0 +1,360 @@
+<?php
+
+/**
+ * \file Inboxes.class.inc
+ * \class Inboxes
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis Inboxes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Inbox.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Inboxes extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/inboxes",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/inboxes")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Inboxes",
+     *   description="Operations about Inbox"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('inbox_id', 'name', 'alias');
+    }
+
+    /**
+     * @SWG\Get(path="/inboxes",
+     *   tags={"Inboxes"},
+     *   summary="Get Inbox",
+     *   description="Request to get Inbox",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="inbox token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/inboxes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Inboxes
+     * @return  Inboxes
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "inbox", "inbox_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/inboxes",
+     *   tags={"Inboxes"},
+     *   summary="Add Inbox",
+     *   description="Request to add inbox",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="inbox token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="formData",
+     *     description="name of the inbox",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="alias",
+     *     in="formData",
+     *     description="alias of the inbox",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="groups",
+     *     in="formData",
+     *     description="groups of the inbox",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/inboxes")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert inbox
+     * @return id of the inbox created
+     */
+    function POST() {
+        if (strpos($this->aValues['name'], '/$user') == false) {
+            $this->aValues['name'] .= '/$user';
+        }
+        if (strpos($this->aValues['alias'], '/$user') == false) {
+            $this->aValues['alias'] .= '/$user';
+        }
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'inbox', $this->aProperties['schema_gtf'] . '.seq_common', 'inbox_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oInbox = new Inboxe($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oInbox->GET();
+            // Groupes à associer au dépôt.
+            $this->insertGroupInbox();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/inboxes/{inbox_id}",
+     *   tags={"Inboxes"},
+     *   summary="Update Inbox",
+     *   description="Request to update Inbox",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="inbox token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="inbox_id",
+     *     in="path",
+     *     description="id of the inbox",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="query",
+     *     description="name of the inbox",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="alias",
+     *     in="query",
+     *     description="alias of the inbox",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="groups",
+     *     in="query",
+     *     description="groups of the inbox",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/inboxes")
+     *     )
+     *  )
+     */
+
+    /**
+     * update inbox
+     * @return id of the inbox if ok error object if ko
+     */
+    function PUT() {
+        if (strpos($this->aValues['name'], '/$user') == false) {
+            $this->aValues['name'] .= '/$user';
+        }
+        $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'inbox', 'inbox_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oInbox = new Inboxe($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oInbox->GET();
+            // Groupes à associer au dépôt.
+            $this->insertGroupInbox();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/inboxes/",
+     *   tags={"Inboxes"},
+     *   summary="delete Inbox",
+     *   description="Request to delete Inbox",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="inbox token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the Inboxes",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/inboxes")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/inboxes/{inbox_id}",
+     *   tags={"Inboxes"},
+     *   summary="delete Inbox",
+     *   description="Request to delete Inbox",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="inbox token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="inbox_id",
+     *     in="path",
+     *     description="id of the inbox",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/inboxes")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete inbox
+     * @return id of inbox deleted or error object if a inbox is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'inbox', 'inbox_id');
+        return $aReturn['sMessage'];
+    }
+
+    /*
+     * *	Groupes liés au dépôts.
+     */
+
+    Public function insertGroupInbox() {
+        //
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'inbox_group', 'inbox_id', $this->aValues["my_vitis_id"]);
+        // Le paramètre "groups" est passé dans la requête ?
+        if ($this->aValues['groups'] !== NULL) {
+            // Groupes à rattacher au dépôt ?
+            if (!empty($this->aValues['groups'])) {
+                $aGroups = explode('|', $this->aValues['groups']);
+                foreach ($aGroups as $sValue) {
+                    $aValues = array('inbox_id' => $this->aValues["my_vitis_id"], 'group_id' => $sValue);
+                    $this->oConnection->oBd->insert($this->aProperties['schema_gtf'], 'inbox_group', $aValues, $this->aProperties['schema_gtf'] . '.seq_common', '');
+                }
+            }
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Instance.class.inc b/src/module_gtf/web_service/ws/Instance.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..0c024c1e4f3dc66891075154e46f35022ef62d2c
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Instance.class.inc
@@ -0,0 +1,81 @@
+<?php
+/**
+ * \file Instance.class.inc
+ * \class Instance
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Instance php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once ("gtf_lib/phpUtility.inc");
+
+class Instance extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/instance",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/instance")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Instance",
+     *   description="Operations about Instance"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('instance_id');
+    }
+
+    /**
+     * @SWG\Post(path="/instance/generate",
+     *   tags={"Instance"},
+     *   summary="Generate a GTF instance id",
+     *   description="Request to generate a new instance id for GTF",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   consumes= { "multipart/form-data"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/instance")
+     *     )
+     *  )
+     */
+
+    /**
+     * Generate a GTF instance
+     * @return id of the workspace created
+     */
+    function POST() {
+        if ($this->aPath[2] == 'generate') {
+            $this->aFields['instance_id'] = generateGtfInstanceId();
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            return $sMessage;
+        }
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/License.class.inc b/src/module_gtf/web_service/ws/License.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..8f1e63df69d834a2b084cc1fbf2f2c35053dd714
--- /dev/null
+++ b/src/module_gtf/web_service/ws/License.class.inc
@@ -0,0 +1,238 @@
+<?php
+
+/**
+ * \file License.class.inc
+ * \class License
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the License php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+//require_once 'Priority.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+//require_once ("PEAR/Mail.php");
+use PHPMailer\PHPMailer\PHPMailer;
+use PHPMailer\PHPMailer\Exception;
+require_once 'PHPMailer/src/Exception.php';
+require_once 'PHPMailer/src/PHPMailer.php';
+require_once 'PHPMailer/src/SMTP.php';
+
+//require_once ("PEAR/Mail/mime.php");
+
+class License extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/license",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/license")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="License",
+     *   description="Operations about License"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('priority_id', 'priority_label');
+    }
+
+    /**
+     * @SWG\Get(path="/license",
+     *   tags={"License"},
+     *   summary="Get License",
+     *   description="Request to get License",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/license")
+     *     )
+     *  )
+     */
+
+    /**
+     * get License
+     * @return  License
+     */
+    function GET() {
+        $sLicenseFile = $this->aProperties['vas_home'] . '/../gtf.engines/licenses/license.txt';
+        if (!file_exists($sLicenseFile) || !$fp = fopen($sLicenseFile, 'r'))
+            $aLicense = array('license' => false);
+        else {
+            $aLicense = array('license' => true);
+            while (!feof($fp)) { //on parcourt toutes les lignes
+                $ligne = str_replace('Sgtf-', '', fgets($fp, 4096)); // lecture du contenu de la ligne
+                //
+                $pattern = '#^License number: ([0-9A-Za-z]+)#';
+                $found = preg_match($pattern, $ligne, $matches, PREG_OFFSET_CAPTURE, 0);
+                if ($found)
+                    $aLicense['license_number'] = $matches[1][0];
+                //
+                $pattern = '#^Expiry date: (Permanent|[0-9]{8})#';
+                $found = preg_match($pattern, $ligne, $matches, PREG_OFFSET_CAPTURE, 0);
+                if ($found)
+                    $aLicense['expiry_date'] = str_replace(chr(13), "", str_replace(chr(10), "", $matches[1][0]));
+                //
+                $pattern = '#^Engines: ([0-9]+)#';
+                $found = preg_match($pattern, $ligne, $matches, PREG_OFFSET_CAPTURE, 0);
+                if ($found)
+                    $aLicense['engines'] = $matches[1][0];
+                //
+                $pattern = '#^Owner: (.+)\n#';
+                $found = preg_match($pattern, $ligne, $matches, PREG_OFFSET_CAPTURE, 0);
+                if ($found)
+                    $aLicense['owner'] = str_replace(chr(13), "", str_replace(chr(10), "", $matches[1][0]));
+            }
+        }
+        $this->aFields['license'] = $aLicense;
+        $aXmlRacineAttribute['status'] = 1;
+        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Post(path="/license",
+     *   tags={"License"},
+     *   summary="Add license file",
+     *   description="Request to add a licence file",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   consumes= { "multipart/form-data"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="license_file",
+     *     in="formData",
+     *     description="File of the licence",
+     *     required=true,
+     *     type="file"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="action",
+     *     in="formData",
+     *     description="File of the licence (ask or activate)",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/activate")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert licence file
+     * @return id of the workspace created
+     */
+    function POST() {
+        if ($this->aValues["action"] == 'activate') {
+            if (!empty($_FILES['license_file'])) {
+                $sErrorMessage = uploadFile('license_file', "", $this->aProperties['vas_home'] . '/../gtf.engines/licenses/' . $_FILES['license_file']["name"], $_FILES['license_file']['size'] + 1);
+                rename($this->aProperties['vas_home'] . '/../gtf.engines/licenses/' . $_FILES['license_file']["name"], $this->aProperties['vas_home'] . '/../gtf.engines/licenses/license.txt');
+                if ($sErrorMessage == "") {
+                    $aXmlRacineAttribute['status'] = 1;
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                } else {
+                    writeToErrorLog($sErrorMessage);
+                    $oError = new VitisError(1, 'LICENSE_FILE_INSTALL_ERROR_CONFIGURATION_CONFIGURATION_GTF_LICENSE');
+                    $aXmlRacineAttribute['status'] = 0;
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                }
+            }
+        } else if ($this->aValues["action"] == 'ask') {
+            $mail = new PHPMailer;
+
+            $mail->isSMTP();                                                // Set mailer to use SMTP
+            //$mail->SMTPDebug = 3;                                         // debugger level (3 all with connection)
+            $mail->Debugoutput = function($str, $level) {error_log("debug level $level; message: $str");};
+            $mail->Host = $this->aProperties["smtp_host"];                  // Specify main and backup SMTP servers
+            $mail->Port = $this->aProperties["smtp_port"];                  // TCP port to connect to
+            $mail->SMTPAuth = $this->aProperties["smtp_authentification"];  // Enable SMTP authentication
+            // if authentication add parameter to connect SMTP
+            if ($this->aProperties["smtp_authentification"] === true){
+                $mail->AuthType = 'LOGIN';
+                $mail->Username = $this->aProperties["smtp_login"];             // SMTP username
+                $mail->Password = $this->aProperties["smtp_password"];          // SMTP password
+                $mail->SMTPSecure = 'tls';                                      // Enable TLS encryption, `ssl` also accepted (deprecated)
+            } 
+            $sTo = 'codes@veremes.com';
+            $mail->AddAddress($sTo);
+            $mail->SetFrom($this->aProperties['mail_sender'], $this->aProperties['nickname_sender']);
+            $mail->AddReplyTo($this->aValues['reply_to']);
+            $mail->IsHTML(true);                                            // Set email format to HTML
+            $mail->CharSet = 'UTF-8';
+            $mail->Subject = $this->aValues['subject'] . $this->aValues['license_number'];
+            $mail->Body = /*utf8_decode*/('<html><body>' . $this->aValues['message'] . '</body></html>');
+            $mail->AddCC($this->aValues['reply_to']);
+            
+            // Depuis PHP 5.6 -> vérification du certificat SSL.
+            if (!$this->aProperties['proxy_check_ssl']) {
+                $mail->SMTPOptions = array(
+                    'ssl' => array(
+                        'verify_peer' => false,
+                        'verify_peer_name' => false,
+                        'allow_self_signed' => true
+                    )
+                );
+            }
+            
+            //
+            if (!$mail->send()) {
+                writeToErrorLog(ERROR_0023 . $sTo . '.');
+                writeToErrorLog("Error message : " . $mail->ErrorInfo);
+                writeToLog("|WARN|PHP|Failed sending email to the following address : " . $sTo . ' and copy to : ' . $this->aValues['reply_to'], $this->aProperties['mail_log_file']);
+                $oError = new VitisError(1, 'SEND_MAIL_ERROR_CONFIGURATION_CONFIGURATION_GTF_LICENSE');
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    //$sErrorMessage = $sMail->getMessage();
+            } else {
+                writeToLog("|INFORM|PHP| An email has been sent to the following address : " . $sTo . ' and copy to : ' . $this->aValues['reply_to'], $this->aProperties['mail_log_file']);
+                if(!empty($this->aProperties['SaveSentMail']) && $this->aProperties['SaveSentMail'] === true){
+                    $imap = new Imap($this->aProperties['imapBotSender_host'], $this->aProperties['imapBotSender_port'], $this->aProperties['imapBotSender_login'], $this->aProperties['imapBotSender_pwd'], $this->aProperties['imapBotSender_encrypt']);
+                    if($imap->isConnected()===false)
+                        writeToLog("|WARN|PHP| can't connect to the IMAP at hostname : " . $this->aProperties['imapBotSender_host'], $this->aProperties['mail_log_file']);
+                    else{
+                        $imap->selectFolder("Sent");
+                        $imap->saveMessageInSent($mail->getSentMIMEMessage(), "");
+                    }
+                }
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        }
+        return $sMessage;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Message.class.inc b/src/module_gtf/web_service/ws/Message.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..04c94cede1a1ef2e5be0a2c15233e4cf5a9fd3cc
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Message.class.inc
@@ -0,0 +1,93 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Message.class.inc
+ * \class Message
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Message php class
+ *
+ * This class defines operation for one Message
+ * 
+ */
+class Message extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('message_id', 'messageclass', $this->getDateSelectedFields('creation_date', 'yeartosecond'), 'body', 'sender', 'messageclass_type', 'status', $this->getDateSelectedFields('minexecdate', 'yeartosecond'));
+    }
+
+    /**
+     * @SWG\Get(path="/messages/{message_id}", 
+     *   tags={"Messages"},
+     *   summary="Get Message",
+     *   description="Request to get Message by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="message_id",
+     *     in="path",
+     *     description="message id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/messages")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about message
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_message", "message_id");
+    }
+
+    /**
+     * delete an message
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'message', 'message_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['message_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/MessageClass.class.inc b/src/module_gtf/web_service/ws/MessageClass.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..de85c62c123085a1be27fe65629421a78ec2f74b
--- /dev/null
+++ b/src/module_gtf/web_service/ws/MessageClass.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file MessageClass.class.inc
+ * \class MessageClass
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the MessageClass php class
+ *
+ * This class defines operation for one MessageClass
+ * 
+ */
+class MessageClasse extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('messageclass', 'messageclass_type');
+    }
+
+    /**
+     * get informations about messageclass
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "messageclass", "messageclass");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/MessageClassType.class.inc b/src/module_gtf/web_service/ws/MessageClassType.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..839d16d90f2caabb4842ad2366272bd56dc90e3f
--- /dev/null
+++ b/src/module_gtf/web_service/ws/MessageClassType.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file MessageClassType.class.inc
+ * \class MessageClassType
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the MessageClassType php class
+ *
+ * This class defines operation for one MessageClassType
+ * 
+ */
+class MessageClassType extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('messageclass_type');
+    }
+
+    /**
+     * get informations about messageclasstype
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "rt_messageclass_type", "messageclass_type");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/MessageClassTypes.class.inc b/src/module_gtf/web_service/ws/MessageClassTypes.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..9d97e2a5d007994a8730a0ba3b7ccb93a42c739d
--- /dev/null
+++ b/src/module_gtf/web_service/ws/MessageClassTypes.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file MessageClassTypes.class.inc
+ * \class MessageClassTypes
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the MessageClassTypes php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'MessageClassType.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class MessageClassTypes extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/messageclasstypes",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/messageclasstypes")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="MessageClassTypes",
+     *   description="Operations about MessageClassTypes"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('messageclass_type');
+    }
+
+    /**
+     * @SWG\Get(path="/messageclasstypes",
+     *   tags={"MessageClassTypes"},
+     *   summary="Get MessageClassTypes",
+     *   description="Request to get MessageClassTypes",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/messageclasstypes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get MessageClassTypes
+     * @return  MessageClassTypes
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "rt_messageclass_type", "messageclass_type");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/MessageClasses.class.inc b/src/module_gtf/web_service/ws/MessageClasses.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..570da8da8925143eb1e278f442b05b3e58cd937d
--- /dev/null
+++ b/src/module_gtf/web_service/ws/MessageClasses.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file MessageClasses.class.inc
+ * \class MessageClasses
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the MessageClasses php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'MessageClass.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class MessageClasses extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/messageclasses",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/messageclasses")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="MessageClasses",
+     *   description="Operations about MessageClasses"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('messageclass', 'messageclass_type');
+    }
+
+    /**
+     * @SWG\Get(path="/messageclasses",
+     *   tags={"MessageClasses"},
+     *   summary="Get MessageClasses",
+     *   description="Request to get MessageClasses",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/messageclasses")
+     *     )
+     *  )
+     */
+
+    /**
+     * get MessageClasses
+     * @return  MessageClasses
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "messageclass", "messageclass");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Messages.class.inc b/src/module_gtf/web_service/ws/Messages.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..2b27d033bc4700279df9f2536335456af8c6995b
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Messages.class.inc
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * \file Messages.class.inc
+ * \class Messages
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Messages php class
+ *
+ * This class defines Rest Api to Gtf messages
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Message.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Messages extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/messages",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/messages")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Messages",
+     *   description="Operations about Messages"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('message_id', 'messageclass', $this->getDateSelectedFields('creation_date', 'yeartosecond'), 'body', 'sender', 'messageclass_type', 'status', $this->getDateSelectedFields('minexecdate', 'yeartosecond'));
+    }
+
+    /**
+     * @SWG\Get(path="/messages",
+     *   tags={"Messages"},
+     *   summary="Get Messages",
+     *   description="Request to get Messages",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="message_by",
+     *     in="query",
+     *     description="list of messageing fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/messages")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Messages
+     * @return  Messages
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_message", "message_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Delete(path="/messages/",
+     *   tags={"Messages"},
+     *   summary="delete Message",
+     *   description="Request to delete Message",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the messages",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/messages")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/messages/{message_id}",
+     *   tags={"Messages"},
+     *   summary="delete Message",
+     *   description="Request to delete Message",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="message_id",
+     *     in="path",
+     *     description="id of the message",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/messages")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete message
+     * @return id of message deleted or error object if a message is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'message', 'message_id');
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Order.class.inc b/src/module_gtf/web_service/ws/Order.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ef369ff66d1b510d308872d2e45ca844bdd65111
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Order.class.inc
@@ -0,0 +1,121 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Order.class.inc
+ * \class Order
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Order php class
+ *
+ * This class defines operation for one Order
+ * 
+ */
+class Order extends GTF {
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("order_id", "priority_id", "workspace_id", "workspace_key", "label_name", "order_status_id", "user_id", "login", "period_id", "order_period_libelle", "wk_params", "result_url", $this->getDateSelectedFields('order_date', 'yeartosecond'), "log_url", $this->getDateSelectedFields('execution_date', 'yeartosecond'), "attempt", "email_notifications", "email_option_id", "deleted", "gtf_engine_id", "length_sec", "email_option_label", $this->getDateSelectedFields('minexecdate', 'yeartosecond'));
+    }
+
+    /**
+     * @SWG\Get(path="/orders/{order_id}", 
+     *   tags={"Orders"},
+     *   summary="Get Order",
+     *   description="Request to get Order by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="order id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about order
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_order", "order_id");
+    }
+
+    /**
+     * delete an order
+     */
+    function DELETE() {
+        // Supprime les fichiers de la demande (log, résultat...).
+        $this->cleanOrderFiles();
+        // Supprime la demande.
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'order', 'order_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['order_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+    /**
+     * cleanOrderFiles
+     */
+    function cleanOrderFiles() {
+        require $this->sRessourcesFile;
+        // Répertoire ou sont stockés les fichiers de la demande.
+        $sSql = $aSql['getOrderPathFiles'];
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['order_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            if ($this->oConnection->oBd->nombreLigne($oPDOresult) > 0) {
+                $aDemande = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+                // Supprime le répertoire.
+                if (!empty($aDemande['log_url']))
+                    $sFolder = $aDemande['log_url'];
+                else if (!empty($aDemande['result_url']))
+                    $sFolder = $aDemande['result_url'];
+                if (!empty($sFolder)) {
+                    $aFolder = explode("/", $sFolder);
+                    $sFolder = $this->aProperties['dir_export'] . "/gtf/" . $aFolder[0];
+                    clearDir($sFolder);
+                }
+            }
+        }
+    }
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/OrderStatus.class.inc b/src/module_gtf/web_service/ws/OrderStatus.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..15313451ffa92a18fa3190aee5a536d00d2b7b81
--- /dev/null
+++ b/src/module_gtf/web_service/ws/OrderStatus.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file OrderStatus.class.inc
+ * \class OrderStatus
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the OrderStatus php class
+ *
+ * This class defines operation for one OrderStatus
+ * 
+ */
+class OrderStatute extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_status_id', 'order_status_label');
+    }
+
+    /**
+     * get informations about orderstatus
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_order_status", "order_status_id");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/OrderStatutes.class.inc b/src/module_gtf/web_service/ws/OrderStatutes.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..eb8f463c42acfa446b980f0b4d4a507b6144d02c
--- /dev/null
+++ b/src/module_gtf/web_service/ws/OrderStatutes.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file OrderStatutes.class.inc
+ * \class OrderStatutes
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the OrderStatutes php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'OrderStatus.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class OrderStatutes extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/orderstatutes",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/orderstatutes")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="OrderStatutes",
+     *   description="Operations about OrderStatutes"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_status_id', 'order_status_label');
+    }
+
+    /**
+     * @SWG\Get(path="/orderstatutes",
+     *   tags={"OrderStatutes"},
+     *   summary="Get OrderStatutes",
+     *   description="Request to get OrderStatutes",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orderstatutes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get OrderStatutes
+     * @return  OrderStatutes
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_order_status", "order_status_id");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Orders.class.inc b/src/module_gtf/web_service/ws/Orders.class.inc
new file mode 100644
index 0000000000000000000000000000000000000000..c3142fb17ae5c8e40a2c483535967333fadd400b
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Orders.class.inc
@@ -0,0 +1,1006 @@
+<?php
+
+/**
+ * \file Orders.class.inc
+ * \class Orders
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Orders php class
+ *
+ * This class defines Rest Api to Gtf orders
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Order.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once 'gtf_lib/FmeServer.class.inc';
+require_once 'gtf_lib/FmeCloud.class.inc';
+
+class Orders extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/orders",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/orders")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Orders",
+     *   description="Operations about Orders"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("order_id", "priority_id", "workspace_id", "workspace_key", "label_name", "order_status_id", "user_id", "login", "period_id", "order_period_libelle", "wk_params", "result_url", $this->getDateSelectedFields('order_date', 'yeartosecond'), "log_url", $this->getDateSelectedFields('execution_date', 'yeartosecond'), "attempt", "email_notifications", "email_option_id", "deleted", "gtf_engine_id", "length_sec", "email_option_label", "order_status_label", "concat(gtf_engine_id, ' - ', name) as name", $this->getDateSelectedFields('minexecdate', 'yeartosecond'));
+    }
+
+    /**
+     * @SWG\Get(path="/orders",
+     *   tags={"Orders"},
+     *   summary="Get Orders",
+     *   description="Request to get Orders",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+
+    /**
+     * @SWG\Get(path="/orders/running",
+     *   tags={"Orders"},
+     *   summary="Get running orders",
+     *   description="Request to get all the running orders",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Properties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+    
+    /**
+     * get Orders
+     * @return  Orders
+     */
+    function GET() {
+        if (!empty($this->aPath[2]) && $this->aPath[2] == "running")
+            $sMessage = $this->getRunningOrders();
+        else {
+            if (in_array('gtf_admin', $this->oConnection->aPrivileges))
+                $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_order_fast", "order_id");
+            else {
+                $oError = new VitisError(12, "You don't have the rights to get orders");
+                $aXmlRacineAttribute['status'] = 0;
+                $aReturn = array();
+                $aReturn['sMessage'] = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/orders/gtfengine",
+     *   tags={"Orders"},
+     *   summary="Update gtf engine of orders",
+     *   description="Request to update the gtf engine of orders",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="category token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="gtf_engine_id",
+     *     in="query",
+     *     description="id of the gtf engine",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="List of orders id",
+     *     required=true,
+     *     type="string",
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Put(path="/orders/reset",
+     *   tags={"Orders"},
+     *   summary="Reset orders",
+     *   description="Request to reset the orders",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="category token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="List of orders id",
+     *     required=true,
+     *     type="string",
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Put(path="/orders/activate",
+     *   tags={"Orders"},
+     *   summary="Activate orders",
+     *   description="Request to activate orders",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="List of orders id",
+     *     required=true,
+     *     type="string",
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Put(path="/orders/desactivate",
+     *   tags={"Orders"},
+     *   summary="Desactivate orders",
+     *   description="Request to desactivate orders",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="List of orders id",
+     *     required=true,
+     *     type="string",
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+
+    /**
+     * @SWG\Put(path="/orders/{order_id}/stop",
+     *   tags={"Orders"},
+     *   summary="Stop order",
+     *   description="Request to stop an order",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="Order id",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+    
+    /**
+     * update order
+     */
+    function PUT() {
+        if (!empty($this->aPath[2])) {
+            if (!empty($this->aPath[3])) {
+                // Arrêt d'une demande en cours.
+                if ($this->aPath[3] == 'stop')
+                    $aReturn = $this->stopFmeOrder($this->aValues["my_vitis_id"]);
+            }
+            else {
+                switch ($this->aPath[2]) {
+                    case 'gtfengine':
+                        $aReturn = $this->setOrderGtfEngine();
+                        break;
+                    case 'reset':
+                        $aReturn = $this->resetOrder();
+                        break;
+                    case 'activate':
+                        $aReturn = $this->activateOrder();
+                        break;
+                    case 'desactivate':
+                        $aReturn = $this->desactivateOrder();
+                        break;
+                }
+            }
+            $aXmlRacineAttribute['status'] = $aReturn['status'];
+            if ($aReturn['status'] == 1)
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            else {
+                $oError = new VitisError($aReturn['error_code'], $aReturn['message']);
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+            return $sMessage;
+        }
+    }
+
+    /**
+     * activateOrder
+     */
+    function activateOrder() {
+        require $this->sRessourcesFile;
+        $aReturn = array('status' => 1, 'message' => '');
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['idList'] = array('value' => $this->aValues['idList'], 'type' => 'group');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['activateOrder'], $aParams);
+        if ($this->oConnection->oBd->enErreur())
+            $aReturn = array('status' => 0, 'message' => $this->oConnection->oBd->getBDMessage(), 'error_code' => 1);
+        return $aReturn;
+    }
+
+    /**
+     * desactivateOrder
+     */
+    function desactivateOrder() {
+        require $this->sRessourcesFile;
+        $aReturn = array('status' => 1, 'message' => '');
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['idList'] = array('value' => $this->aValues['idList'], 'type' => 'group');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['desactivateOrder'], $aParams);
+        if ($this->oConnection->oBd->enErreur())
+            $aReturn = array('status' => 0, 'message' => $this->oConnection->oBd->getBDMessage(), 'error_code' => 1);
+        return $aReturn;
+    }
+
+    /**
+     * @SWG\Delete(path="/orders/",
+     *   tags={"Orders"},
+     *   summary="delete Order",
+     *   description="Request to delete Order",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="order token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the orders",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/orders/{order_id}",
+     *   tags={"Orders"},
+     *   summary="delete Order",
+     *   description="Request to delete Order",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="order token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the order",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/orders/clean/",
+     *   tags={"Orders"},
+     *   summary="clean Orders",
+     *   description="Request to clean the orders",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="order token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the orders",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/orders")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete order
+     * @return id of order deleted or error object if a order is not deleted
+     */
+    function DELETE() {
+        if (!in_array('gtf_admin', $this->oConnection->aPrivileges)) {
+            $oError = new VitisError(12, "You don't have the rights to delete orders");
+            $aXmlRacineAttribute['status'] = 0;
+            $aReturn['sMessage'] = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $sMessage = $aReturn['sMessage'];
+        }
+        else if (!empty($this->aPath[2]) && $this->aPath[2] == "clean") {
+            $aReturn = $this->cleanOrders();
+            $aXmlRacineAttribute['status'] = $aReturn['status'];
+            if ($aReturn['status'] == 1)
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            else {
+                $oError = new VitisError($aReturn['error_code'], $aReturn['message']);
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        } else {
+            // Stoppe les demandes en cours (Fme Server -> supprime le traitement et le répertoire des données).
+            $this->deleteFmeOrders();
+            //
+            $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'order', 'order_id');
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * cleanOrders
+     */
+    function cleanOrders() {
+        require $this->sRessourcesFile;
+        $aReturn = array('status' => 1, 'message' => '');
+        // Liste des demandes.
+        if (!empty($this->aValues['idList'])) {
+            $sSql = $aSql['getOrders'];
+            $aParams['idList'] = array('value' => $this->aValues['idList'], 'type' => 'group');
+        } else
+            $sSql = $aSql['getAllOrders'];
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aParams);
+        if ($this->oConnection->oBd->enErreur())
+            $aReturn = array('status' => 0, 'message' => $this->oConnection->oBd->getBDMessage(), 'error_code' => 1);
+        else {
+            while ($aDemande = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                $aFolder = explode("/", $aDemande['log_url']);
+                $sFolder = $this->aProperties['dir_export'] . "/gtf/" . $aFolder[0];
+                clearDir($sFolder);
+            }
+        }
+        // Supprime les demandes dont la colonne "deleted" = true.
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'order', 'deleted', 'true', 'bool');
+        return $aReturn;
+    }
+
+    /**
+     * setOrderGtfEngine
+     */
+    function setOrderGtfEngine() {
+        require $this->sRessourcesFile;
+        $aReturn = array('status' => 1, 'message' => '');
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['gtf_engine_id'] = array('value' => $this->aValues['gtf_engine_id'], 'type' => 'number');
+        $aParams['idList'] = array('value' => $this->aValues['idList'], 'type' => 'group');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['setOrderGtfEngine'], $aParams);
+        if ($this->oConnection->oBd->enErreur())
+            $aReturn = array('status' => 0, 'message' => $this->oConnection->oBd->getBDMessage(), 'error_code' => 1);
+        return $aReturn;
+    }
+
+    /**
+     * resetOrder
+     */
+    function resetOrder() {
+        require $this->sRessourcesFile;
+        // Supprime l'ancien résultat.
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['idList'] = array('value' => $this->aValues['idList'], 'type' => 'group');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getOrders'], $aParams);
+        if ($this->oConnection->oBd->enErreur())
+            $aReturn = array('status' => 0, 'message' => $this->oConnection->oBd->getBDMessage(), 'error_code' => 1);
+        else {
+            while ($aDemande = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                $aFolder = explode("/", $aDemande['log_url']);
+                $sFolder = $this->aProperties['dir_export'] . "/gtf/" . $aFolder[0];
+                clearDir($sFolder);
+            }
+        }
+        // Réinitialise la demande.
+        $aOrderId = explode('|', $this->aValues['idList']);
+        foreach ($aOrderId as $iOrderId) {
+            // Vérifie si le moteur déja assigné est actif.
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getOrderEngineStatus'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+            else if ($this->oConnection->oBd->nombreLigne($oPDOresult) > 0) {
+                $aGtfEngine = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+                // Si le moteur déja assigné est inactif, il faut en sélectionner un autre.
+                if ($aGtfEngine['enabled'] === false) {
+                    // Récupère l'id du projet de la demande.
+                    $aParams = array();
+                    $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                    $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+                    $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getOrderWorkspace'], $aParams);
+                    if ($this->oConnection->oBd->enErreur()) {
+                        $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                        $aXmlRacineAttribute['status'] = 0;
+                        $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    }
+                    else if ($this->oConnection->oBd->nombreLigne($oPDOresult) > 0) {
+                        $aWorkspace = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+                        $this->getIdEngine($iOrderId, 'order', $aWorkspace['workspace_id']);
+                        // Met à jour le n° du moteur.
+                        $aParams = array();
+                        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                        $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+                        $aParams['gtf_engine_id'] = array('value' => $this->aValues['gtf_engine_id'], 'type' => 'number');
+                        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['setUserOrderEngineId'], $aParams);
+                        if ($this->oConnection->oBd->enErreur()) {
+                            $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                            $aXmlRacineAttribute['status'] = 0;
+                            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                        }
+                    }
+                }
+            }
+            // Réinitialise la demande.
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['resetOrder'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $aReturn = array('status' => 0, 'message' => $this->oConnection->oBd->getBDMessage(), 'error_code' => 1);
+                return $aReturn;
+            }
+        }
+        $aReturn = array('status' => 1, 'message' => '');
+        return $aReturn;
+    }
+
+    /*
+     * function getIdEngine
+     * \brief function that assigns each request processing an engine number. This engine number will be defined by the algorithm associated to the treatment.
+     * \param $iUserOrderId Identifier of the request
+     * \param $sTable Name of the table.
+     * \param $iWorkspaceId Identifier of the treatment.
+     */
+    function getIdEngine($iUserOrderId, $sTable, $iWorkspaceId) {
+        require $this->sRessourcesFile;
+        // Récupération de l'algorithme
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['iWorkspaceId'] = array('value' => $iWorkspaceId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesId'], $aParams);
+        $this->oConnection->oBd->cleanMessage();
+        $aEnginesId = array();
+        while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+            $aEnginesId[] = $oEnginesId->gtf_engine_id;
+        $this->oConnection->oBd->fermeResultat();
+
+        if (count($aEnginesId) == 0) {
+            // Le tag correspondant n'a pas été trouvé, nous allons cherché la liste des moteur ayant comme tag |default|
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesDefaultTag'], $aParams);
+            $this->oConnection->oBd->cleanMessage();
+            $aEnginesId = array();
+            while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+                $aEnginesId[] = $oEnginesId->gtf_engine_id;
+            $this->oConnection->oBd->fermeResultat();
+            if (count($aEnginesId) > 0)
+                writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0006));
+        }
+        // Si la requête est en erreur ou Si aucun moteur n'a été trouvé.
+        if ($this->oConnection->oBd->erreurRencontree || count($aEnginesId) == 0) {
+            $aGtfEngineList = explode(",", $this->aProperties["engines_list"]);
+            // Aucun tag ne correspond
+            $iEngine = $aGtfEngineList[0];
+            if ($iEngine != "")
+                writeToErrorLog(str_replace('[aGtfEngineList[0]]', $iEngine, str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0007)));
+        }else {
+            $iEngine = $this->returnEngineId($iUserOrderId, $aEnginesId);
+        }
+
+        if ($iEngine == "") {
+            writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0008));
+            $this->aValues['gtf_engine_id'] = 1;
+        } else {
+            $this->aValues['gtf_engine_id'] = $iEngine;
+        }
+    }
+
+    /*
+     * function returnEngineId
+     * \param $oAlgoIndex Object of the algorithm.
+     * \param $aGtfEngineList Array that corresponds to the list of available engines numbers.
+     * \return Returns the engine number.
+     */
+
+    function returnEngineId($iUserOrderId, $aEnginesId) {
+        $iEngine = "";
+        if (count($aEnginesId) > 0) {
+            $sRowCount = $iUserOrderId % count($aEnginesId);
+            $iEngine = $aEnginesId[$sRowCount];
+        }
+        return $iEngine;
+    }
+    
+    /**
+     * function getRunningOrders
+     */
+    function getRunningOrders() {
+        require $this->sRessourcesFile;
+        // Liste des demandes.
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getRunningOrders'], $aParams);
+        if ($this->oConnection->oBd->enErreur()) {
+            $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+            $aXmlRacineAttribute['status'] = 0;
+            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        else {
+            $aOrders = array();
+            while ($aOrder = $this->oConnection->oBd->ligneSuivante($oPDOresult))
+                $aOrders['orders'][] = $aOrder['order_id'];
+            $this->aFields = $aOrders;
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        return $sMessage;
+    }
+    
+    /**
+     * function deleteFmeOrders
+     */
+    function deleteFmeOrders() {
+        require $this->sRessourcesFile;
+        // Infos des demandes à supprimer.
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['idList'] = array('value' => $this->aValues['idList'], 'type' => 'group');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getOrdersToDelete'], $aParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            while ($aDemande = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                $aRunningJob = array();
+                if ($aDemande['order_status_id'] == 5) {
+                    // Paramètres de la demande si c'est un traitement asynchrone sur Fme server.
+                    if ($aDemande['fme_engine_type_id'] != "desktop") {
+                        $aRunningJobs = $this->getFmeServerRunningJobs($aDemande['gtf_engine_id']);
+                        $aRunningJob = $this->getFmeServerRunningJob($aDemande['order_id'], $aRunningJobs);
+                    }
+                    // Stoppe la demande en cours.
+                    $this->stopFmeOrder($aDemande['order_id']);
+                }
+                // Supprime le traitement sur Fme Server.
+                if ($aDemande['fme_engine_type_id'] != "desktop")
+                    $this->deleteFmeServerOrder($aDemande['order_id'], $aDemande['gtf_engine_id'], $aRunningJob);
+            }
+        }
+    }
+    
+    /**
+     * function deleteFmeServerOrder
+     * \param $iOrderId Id of the Gtf order.
+     * \param $iGtfEngineId Id of the Gtf engine.
+     * \param $aRunningJob A running job on Fme Server.
+     */
+    function deleteFmeServerOrder($iOrderId, $iGtfEngineId, $aRunningJob = array()) {
+        $sEngineLogFilePath = $this->aProperties['vas_home'] . '/log/engines/' . date($this->aProperties['log_period']) . '/engine_' . $iGtfEngineId . '/engine.log';
+        if (!empty($aRunningJob)) {
+            // Demande en cours -> informations de connexion sur Fme Server dans la liste des traitements asynchrones.
+            $sFmeServerUrl = $aRunningJob['fme_server_url'];
+            $sLogin = $aRunningJob['login'];
+            $sPassword = $aRunningJob['password'];
+            $sResource = $aRunningJob['resource'];
+            $sPath = $aRunningJob['path'];
+            $iJobId = $aRunningJob['job_id'];
+        }
+        else {
+            // Demande en attente ou terminée -> informations de connexion sur Fme Server dans la base.
+            require $this->sRessourcesFile;
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getFmeServerOrder'], $aParams);
+            if (!$this->oConnection->oBd->enErreur()) {
+                $aOrder = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+                require $aOrder['engines_home'] . '/' . 'string.inc';
+                // Si Fme Cloud -> l'instance de Fme Server doit être démarrée.
+                if ($aOrder['fme_engine_type_id'] == 'fme_cloud') {
+                    // Ip de l'instance Fme Server.
+                    $oFmeCloud = new FmeCloud($aOrder['server_url'], $aOrder['fme_cloud_api_token']);
+                    $oFmeCloud->sLogFilePath = $sEngineLogFilePath;
+                    // Adresse Ip publique de l'instance de FME Server.
+                    $aFmeServerInstances = $oFmeCloud->serviceRequest('instances');
+                    if (!empty($aFmeServerInstances)) {
+                        foreach($aFmeServerInstances as $oInstance) {
+                            if ($oInstance->name == $aOrder['fme_server_instance_name'])
+                                $oFmeServerInstance = $oInstance;
+                        }
+                        if (empty($oFmeServerInstance)) {
+                            // Aucune instace active.
+                            writeToLog(INFO_FME_CLOUD_INSTANCE_NOT_FOUND, $sEngineLogFilePath);
+                        }
+                        else {
+                            // Statut de l'instance.
+                            writeToLog(INFO_FME_CLOUD_INSTANCE_STATUS . $oFmeServerInstance->state, $sEngineLogFilePath);
+                            $sFmeServerUrl = 'https://' . $oFmeServerInstance->public_ip;
+                            // Pas de suppression possible si l'instance n'est pas démarrée.
+                            if ($oFmeServerInstance->state != "RUNNING")
+                                return false;
+                        }
+                    }
+                }
+                $sLogin = $aOrder['login'];
+                $sPassword = $aOrder['password'];
+                $sResource = 'FME_SHAREDRESOURCE_TEMP';
+                if (!empty($aOrder['log_url']))
+                    $sPath = dirname($this->aProperties["gtf_instance_id"] . '/' . pathinfo($aOrder['log_url'], PATHINFO_DIRNAME));
+                $iJobId = $aOrder['pid'];
+            }
+        }
+        // Suppression du traitement et du répertoire sur Fme Server.
+        if (!empty($sFmeServerUrl) && !empty($sLogin) && !empty($sPassword)) {
+            $oFmeServer = new FmeServer($sFmeServerUrl, $sLogin, $sPassword);
+            $oFmeServer->sLogFilePath = $sEngineLogFilePath;
+            if (!empty($iJobId))
+                if ($oFmeServer->deleteJob($iJobId) === false)
+                    return false;
+            // Supprime le répertoire des ressources de la demande sur Fme Server.
+            if (!empty($sResource) && !empty($sPath))
+                if ($oFmeServer->serviceRequest('resources/connections/' . $sResource . '/filesys/' . $sPath, 'delete') === false)
+                    return false;
+        }
+    }
+    
+    /**
+     * function stopFmeOrder
+     * \param $iOrderId Id of the Gtf order.
+     */
+    function stopFmeOrder($iOrderId) {
+        require $this->sRessourcesFile;
+        // Informations de la demande à stopper.
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getOrderFmeEngineType'], $aParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            $aOrder = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+            if ($aOrder['fme_engine_type_id'] == 'desktop') {
+                if ($this->stopFmeDesktopOrderProcess($iOrderId) === false)
+                    $sErrorMessage = ERROR_0037;
+            }
+            else {
+                if ($this->stopFmeServerOrder($iOrderId) === false)
+                    $sErrorMessage = ERROR_0038;
+            }
+            // Message de retour pour l'API Rest.
+            if (empty($sErrorMessage)) {
+                $aReturn = array('status' => 1, 'message' => '');
+                // Mise à jour du statut de la demande (stoppé).
+                $aParams = array();
+                $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+                $aParams['order_status_id'] = array('value' => 7, 'type' => 'number');
+                $this->oConnection->oBd->executeWithParams($aSql['updateOrderStatus'], $aParams);
+            }
+            else
+                $aReturn = array('status' => 0, 'message' => $sErrorMessage, 'error_code' => 17);
+            return $aReturn;
+        }
+    }
+    
+    /**
+     * function stopFmeDesktopOrderProcess
+     * \param $iOrderId Id of the Gtf order.
+     */
+    function stopFmeDesktopOrderProcess($iOrderId) {
+        require $this->sRessourcesFile;
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getGtfEngineHomeFromOrderId'], $aParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            $aGtfEngineHome = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+            $sPidFilePath = $aGtfEngineHome['engines_home'] . '/' . 'pid_' . $aGtfEngineHome['gtf_engine_id'] . '.txt';
+            if (file_exists($sPidFilePath)) {
+                $iPid = file_get_contents($sPidFilePath);
+                if (is_numeric($iPid)) {
+                    if (strtolower(substr(PHP_OS, 0, 3)) == 'win') {
+                        // Supprime le processus "engine.exe".
+                        $this->killProcess($iPid);
+                        // Tue tous les processus liés à une demande et un traitement sur Fme Desktop.
+                        $aProcessName = array('cmd.exe', 'php.exe', 'cmd.exe', 'fme.exe');
+                        foreach ($aProcessName as $sProcessName) {
+                            $iPid = $this->getChildProcess($iPid, $sProcessName);
+                            if ($iPid !== false)
+                                $this->killProcess($iPid);
+                        }
+                    }
+                    else {
+                        // Supprime tous les processus enfants.
+                        $aResult = array();
+                        $sResultCommande = exec('pkill -9 -P ' . $iPid, $aResult, $iResult);
+                        // Supprime le processus du moteur.
+                        $this->killProcess($iPid);
+                    }
+                }
+                // Suppression du fichier contenant le pid du processus "engine.exe".
+                unlink($sPidFilePath);
+            }
+        }
+    }    
+    
+    /**
+     * function killProcess
+     * \param $iPid Id of the process.
+     */
+    function killProcess($iPid) {
+        $aResult = array();
+        if (strtolower(substr(PHP_OS, 0, 3)) == 'win')
+            $sResultCommande = exec('taskkill /PID ' . $iPid . ' /F', $aResult, $iResult);
+        else
+            $sResultCommande = exec('kill ' . $iPid, $aResult, $iResult);
+        // Log si erreur.
+        if ($iResult !== 0)
+            writeToErrorLog(ERROR_0035 . ' (pid = ' . $iPid . ').');
+    }
+    
+    /**
+     * function getChildProcess
+     * \param $iParentPid Id of the parent process.
+     * \param $sProcessName Name of the process.
+     */
+    function getChildProcess($iParentPid, $sProcessName) {
+        $aResult = array();
+        if (strtolower(substr(PHP_OS, 0, 3)) == 'win')
+            $sResultCommande = exec('wmic process where "ParentProcessId=' . $iParentPid . ' AND Name=\'' . $sProcessName . '\'" get ProcessId', $aResult, $iResult);
+        //else
+            //$sResultCommande = exec('' . $iParentPid, $aResult, $iResult);
+            //ps -o ppid=
+        // Log si erreur.
+        if ($iResult !== 0)
+            writeToErrorLog(ERROR_0036 . ' (pid = ' . $iPid . ').');
+        else if ($iResult == 0 && !empty($aResult) && is_numeric($aResult[1]))
+            return $aResult[1];
+        else
+            return false;
+    }
+    
+    /**
+     * function stopFmeServerOrder
+     * \param $iOrderId Id of the Gtf order.
+     */
+    function stopFmeServerOrder($iOrderId) {
+        require $this->sRessourcesFile;
+        // Récupère le répertoire des moteurs de GTF.
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['order_id'] = array('value' => $iOrderId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getGtfEngineHomeFromOrderId'], $aParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            $aGtfEngineHome = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+            // Stoppe le traitement sur Fme Server.
+            $sAsyncOrdersFilePath = $aGtfEngineHome['engines_home'] . '/' . 'gtf_engine' . $aGtfEngineHome['gtf_engine_id'] . '_jobid.txt';
+            if (file_exists($sAsyncOrdersFilePath)) {
+                $aRunningJobs = unserialize(file_get_contents($sAsyncOrdersFilePath));
+                $aRunningJob = $this->getFmeServerRunningJob($iOrderId, $aRunningJobs);
+                if ($aRunningJob !== false && !empty($aRunningJob['job_id'])) {
+                    $sEngineLogFilePath = $this->aProperties['vas_home'] . '/log/engines/' . date($this->aProperties['log_period']) . '/engine_' . $aGtfEngineHome['gtf_engine_id'] . '/engine.log';
+                    $oFmeServer = new FmeServer($aRunningJob['fme_server_url'], $aRunningJob['login'], $aRunningJob['password'], 'day', 1);
+                    $oFmeServer->sLogFilePath = $sEngineLogFilePath;
+                    $oFmeServer->stopJob($aRunningJob['job_id']);
+                    // Supprime le traitement dans la liste des demandes asynchrones.
+                    $iJobIndex = null;
+                    foreach ($aRunningJobs as $iIndex => $aRunningJob) {
+                        if ($aRunningJob['order_id'] == $iOrderId) {
+                            $iJobIndex = $iIndex;
+                            break;
+                        }
+                    }
+                    if ($iJobIndex !== null) {
+                        // Sauve la liste des demandes asynchrones en cours.
+                        $aRunningJob = array_splice($aRunningJobs, $iJobIndex, 1)[0];
+                        if (empty($aRunningJobs))
+                            unlink($sAsyncOrdersFilePath);
+                        else
+                            file_put_contents($sAsyncOrdersFilePath, serialize($aRunningJobs));
+                        // Log.
+                        require $aGtfEngineHome['engines_home'] . '/' . 'string.inc';
+                        writeToLog(INFO_FME_SERVER_ASYNCHRONOUS_JOB_REMOVED_FROM_LIST . " (demande $iOrderId).", $sEngineLogFilePath);
+                    }
+                }
+            }
+        }
+    }
+    
+    /**
+     * Retourne les infos d'un traitement asynchrones en cours d'exécution.
+     * @param {number} $iOrderId I de la demande en cours.
+     * @param {array} $aRunningJobs Tableau contenant la liste des traitements asynchrones en cours d'exécution.
+     * return array
+     */
+    function getFmeServerRunningJob($iOrderId, $aRunningJobs) {
+        foreach ($aRunningJobs as $aRunningJob) {
+            if ($aRunningJob['order_id'] == $iOrderId)
+                return $aRunningJob;
+        }
+        return false;
+    }
+    
+    /**
+     * Retourne la liste des traitements asynchrones en cours d'exécution d'un moteur GTF.
+     * @param {number} $iGtfEngineId Id du moteur GTF.
+     * return array
+     */
+    function getFmeServerRunningJobs($iGtfEngineId) {
+        require $this->sRessourcesFile;
+        // Récupère le répertoire des moteurs de GTF.
+        $aRunningJobs = array();
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['iGtfEngineId'] = array('value' => $iGtfEngineId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getGtfEngineHomeFromEngineId'], $aParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            $aGtfEngineHome = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+            $sAsyncOrdersFilePath = $aGtfEngineHome['engines_home'] . '/' . 'gtf_engine' . $aGtfEngineHome['gtf_engine_id'] . '_jobid.txt';
+            if (file_exists($sAsyncOrdersFilePath))
+                $aRunningJobs = unserialize(file_get_contents($sAsyncOrdersFilePath));
+        }
+        return $aRunningJobs;
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Period.class.inc b/src/module_gtf/web_service/ws/Period.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f6db78daf01b565f1f54421cc0d877ae62cba1e5
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Period.class.inc
@@ -0,0 +1,146 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * This class defines operation for one Period
+ * @file Period.class.inc
+ * @class Period
+ * 
+ * @author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * @brief This file contains the Period php class
+ *
+ * 
+ */
+class Period extends GTF {
+
+    public $oError;
+
+    /**
+	 *Construct
+     *@param type $aPath url of the request
+     *@param type $aValues parameters of the request
+     *@param type $properties properties
+     *@param type $bShortcut false to reinit variables
+     *@param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('period_id', 'cron_expression', 'name', 'enabled');
+    }
+
+    /**
+     * @SWG\Get(path="/periods/{period_id}", 
+     *   tags={"Periods"},
+     *   summary="Get Period",
+     *   description="Request to get Period by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="period_id",
+     *     in="path",
+     *     description="period id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/periods")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        if (isset($this->aPath[3]) && $this->aPath[3] == "CronValidation") {
+            $aCheckCronResult = $this->checkCronExpression($this->aValues["code"]);
+            $this->aFields = array('checkcron' => $aCheckCronResult);
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        } else {
+            require $this->sRessourcesFile;
+            $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "period", "period_id");
+        }
+    }
+
+    /**
+     * delete a period
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'period', 'period_id', $this->aValues["my_vitis_id"], 'integer');
+        $this->insertCrontabSubscription();
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['period_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+    Public function insertCrontabSubscription() {
+        require_once("ServerClass.class.inc");
+        $oCrontab = new ServerClass(1, $this->oConnection->oBd, $this->aProperties['vas_home'], null, $this->aProperties);
+        $oCrontab->deleteCrontabValuesSubscription();
+        $oCrontab->AddCrontabValuesSubscription();
+    }
+
+    /**
+     * Vérification de l'expression CRON.
+	 * @return mixed $aCheckCronResult
+     */
+    function checkCronExpression($sCronExpression) {
+        //$sCronExpression = $this->aPath[3];
+        $aCheckCronResult = array('cron_expression' => $sCronExpression);
+        $aCode = explode(" ", $sCronExpression);
+        if (count($aCode) != 5 || $aCode[4] == "") {
+            $aCheckCronResult['status'] = 0;
+            $aCheckCronResult['message'] = 'FORM_CRON_ERROR_MSG_PUBLICATION_PERIOD';
+        } else {
+            $aCheckCronResult['arguments'] = $aCode;
+            $columns = explode(" ", $sCronExpression);
+            $patterns = array(
+                '((?P<minute>(?:\*|(?:(?:[0-9]|[1-5][0-9])(?:-(?:[0-9]|[1-5][0-9]))?)(?:,(?:[0-9]|[1-5][0-9])(?:-(?:[0-9]|[1-5][0-9]))?)*)(?:/(?:[1-9]|[1-5][0-9]))?)$)AD',
+                '((?P<hour>(?:\*|(?:(?:[0-9]|1[0-9]|2[0-3])(?:-(?:[0-9]|1[0-9]|2[0-3]))?)(?:,(?:[0-9]|1[0-9]|2[0-3])(?:-(?:[0-9]|1[0-9]|2[0-3]))?)*)(?:/(?:[1-9]|1[0-9]|2[0-3]))?)$)AD',
+                '((?P<dayOfMonth>(?:\*|(?:(?:[1-9]|[1-2][0-9]|3[0-1])(?:-(?:[1-9]|[1-2][0-9]|3[0-1]))?)(?:,(?:[1-9]|[1-2][0-9]|3[0-1])(?:-(?:[1-9]|[1-2][0-9]|3[0-1]))?)*)(?:/(?:[1-9]|[1-2][0-9]|3[0-1]))?)$)AD',
+                '((?P<month>(?:\*|jan|feb|mar|abr|may|jun|jul|aug|sep|oct|nov|dec|JAN|FEB|MAR|ABR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC|(?:(?:[1-9]|1[0-2])(?:-(?:[1-9]|1[1-2]))?)(?:,(?:[1-9]|1[1-2])(?:-(?:[1-9]|1[1-2]))?)*)(?:/(?:[1-9]|1[1-2]))?)$)AD',
+                '((?P<dayOfWeek>(?:\*|sun|mon|tue|wed|thu|fri|sat|SUN|MON|TUE|WED|THU|FRI|SAT|(?:(?:[0-7])(?:-(?:[0-7]))?)(?:,(?:[0-7])(?:-(?:[0-7]))?)*)(?:/(?:[1-7]))?)$)AD',
+            );
+            $bIsCorrecte = true;
+            foreach ($columns as $key => $column) {
+                if (preg_match($patterns[$key], $column) !== 1) {
+                    $bIsCorrecte = false;
+                    $aCheckCronResult['status'] = 0;
+                    $aCheckCronResult['message'] = 'FORM_CRON_ERROR_MSG2_PUBLICATION_PERIOD';
+                    $aCheckCronResult['index_error_argument'] = $key + 1;
+                }
+            }
+            if ($bIsCorrecte == true) {
+                $aCheckCronResult['status'] = 1;
+                $aCheckCronResult['message'] = 'FORM_CRON_VALID_PUBLICATION_PERIOD';
+            }
+        }
+        return $aCheckCronResult;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Periods.class.inc b/src/module_gtf/web_service/ws/Periods.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..3801fcd51df10fa99460cfe9609be61e80f3b2ad
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Periods.class.inc
@@ -0,0 +1,428 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Period.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+/**
+ * \file Periods.class.inc
+ * \class Periods
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis Periods
+ * 
+ */
+class Periods extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/periods",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/periods")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Periods",
+     *   description="Operations about Period"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('period_id', 'cron_expression', 'name', 'enabled');
+    }
+
+    /**
+     * @SWG\Get(path="/periods",
+     *   tags={"Periods"},
+     *   summary="Get Period",
+     *   description="Request to get Period",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="period token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/periods")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/periods/CronValidation/{cron_expression}",
+     *   tags={"Periods"},
+     *   summary="Get cron expression validation",
+     *   description="Request to get a validation of the cron expression",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="cron_expression",
+     *     in="path",
+     *     description="cron expression",
+     *     required=true,
+     *     type="string",
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/periods")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Periods
+     * @return  Periods
+     */
+    function GET() {
+
+
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "period", "period_id");
+        $sMessage = $aReturn['sMessage'];
+
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Post(path="/periods",
+     *   tags={"Periods"},
+     *   summary="Add Period",
+     *   description="Request to add period",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="period token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="formData",
+     *     description="Alias of the period",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="cron_expression",
+     *     in="formData",
+     *     description="cron expression of the period",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="formData",
+     *     description="period enabled ?",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/periods")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert period
+     * @return id of the period created
+     */
+    function POST() {
+        $aCheckCronResult = $this->checkCronExpression($this->aValues['cron_expression']);
+        if ($aCheckCronResult["status"] == 1) {
+            $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'period', $this->aProperties['schema_gtf'] . '.seq_common', 'period_id');
+            if ($aReturn['sStatus'] == 1) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                $oPeriod = new Period($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                $oPeriod->GET();
+                //
+                //$this->checkCronExpression();
+                //
+                    $this->insertCrontabSubscription();
+            } else {
+                $sMessage = $aReturn['sMessage'];
+            }
+        } else {
+            $oError = new VitisError(1, "Cron expression invalid");
+            $aXmlRacineAttribute['status'] = 0;
+            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/periods/{period_id}",
+     *   tags={"Periods"},
+     *   summary="Update Period",
+     *   description="Request to update Period",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="period token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="period_id",
+     *     in="path",
+     *     description="id of the period",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="query",
+     *     description="Alias of the period",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="cron_expression",
+     *     in="query",
+     *     description="cron expression of the period",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="query",
+     *     description="period enabled ?",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/periods")
+     *     )
+     *  )
+     */
+
+    /**
+     * update period
+     * @return id of the period if ok error object if ko
+     */
+    function PUT() {
+        $aCheckCronResult = $this->checkCronExpression($this->aValues['cron_expression']);
+        if ($aCheckCronResult["status"] == 1) {
+            $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'period', 'period_id');
+            if ($aReturn['sStatus'] == 1) {
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                $oPeriod = new Period($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                $oPeriod->GET();
+                //
+                $this->insertCrontabSubscription();
+            } else {
+                $sMessage = $aReturn['sMessage'];
+            }
+        } else {
+            $oError = new VitisError(1, "Cron expression invalid");
+            $aXmlRacineAttribute['status'] = 0;
+            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/periods/",
+     *   tags={"Periods"},
+     *   summary="delete Period",
+     *   description="Request to delete Period",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="period token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the Periods",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/periods")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/periods/{period_id}",
+     *   tags={"Periods"},
+     *   summary="delete Period",
+     *   description="Request to delete Period",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="period token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="period_id",
+     *     in="path",
+     *     description="id of the period",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/periods")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete period
+     * @return id of period deleted or error object if a period is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'period', 'period_id');
+        $this->insertCrontabSubscription();
+        return $aReturn['sMessage'];
+    }
+
+    /*
+     * *	Insère les mots clefs liés au moteur GTF.
+     */
+
+    Public function insertCrontabSubscription() {
+        require_once("ServerClass.class.inc");
+        $oCrontab = new ServerClass(1, $this->oConnection->oBd, $this->aProperties['vas_home'], null, $this->aProperties);
+        $oCrontab->deleteCrontabValuesSubscription();
+        $oCrontab->AddCrontabValuesSubscription();
+    }
+
+    /**
+     * Vérification de l'expression CRON.
+     */
+    function checkCronExpression($sCronExpression) {
+        //$sCronExpression = $this->aPath[3];
+        $aCheckCronResult = array('cron_expression' => $sCronExpression);
+        $aCode = explode(" ", $sCronExpression);
+        if (count($aCode) != 5 || $aCode[4] == "") {
+            $aCheckCronResult['status'] = 0;
+            $aCheckCronResult['message'] = 'FORM_CRON_ERROR_MSG_PUBLICATION_PERIOD';
+        } else {
+            $aCheckCronResult['arguments'] = $aCode;
+            $columns = explode(" ", $sCronExpression);
+            $patterns = array(
+                '((?P<minute>(?:\*|(?:(?:[0-9]|[1-5][0-9])(?:-(?:[0-9]|[1-5][0-9]))?)(?:,(?:[0-9]|[1-5][0-9])(?:-(?:[0-9]|[1-5][0-9]))?)*)(?:/(?:[1-9]|[1-5][0-9]))?)$)AD',
+                '((?P<hour>(?:\*|(?:(?:[0-9]|1[0-9]|2[0-3])(?:-(?:[0-9]|1[0-9]|2[0-3]))?)(?:,(?:[0-9]|1[0-9]|2[0-3])(?:-(?:[0-9]|1[0-9]|2[0-3]))?)*)(?:/(?:[1-9]|1[0-9]|2[0-3]))?)$)AD',
+                '((?P<dayOfMonth>(?:\*|(?:(?:[1-9]|[1-2][0-9]|3[0-1])(?:-(?:[1-9]|[1-2][0-9]|3[0-1]))?)(?:,(?:[1-9]|[1-2][0-9]|3[0-1])(?:-(?:[1-9]|[1-2][0-9]|3[0-1]))?)*)(?:/(?:[1-9]|[1-2][0-9]|3[0-1]))?)$)AD',
+                '((?P<month>(?:\*|jan|feb|mar|abr|may|jun|jul|aug|sep|oct|nov|dec|JAN|FEB|MAR|ABR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC|(?:(?:[1-9]|1[0-2])(?:-(?:[1-9]|1[1-2]))?)(?:,(?:[1-9]|1[1-2])(?:-(?:[1-9]|1[1-2]))?)*)(?:/(?:[1-9]|1[1-2]))?)$)AD',
+                '((?P<dayOfWeek>(?:\*|sun|mon|tue|wed|thu|fri|sat|SUN|MON|TUE|WED|THU|FRI|SAT|(?:(?:[0-7])(?:-(?:[0-7]))?)(?:,(?:[0-7])(?:-(?:[0-7]))?)*)(?:/(?:[1-7]))?)$)AD',
+            );
+            $bIsCorrecte = true;
+            foreach ($columns as $key => $column) {
+                if (preg_match($patterns[$key], $column) !== 1) {
+                    $bIsCorrecte = false;
+                    $aCheckCronResult['status'] = 0;
+                    $aCheckCronResult['message'] = 'FORM_CRON_ERROR_MSG2_PUBLICATION_PERIOD';
+                    $aCheckCronResult['index_error_argument'] = $key + 1;
+                }
+            }
+            if ($bIsCorrecte == true) {
+                $aCheckCronResult['status'] = 1;
+                $aCheckCronResult['message'] = 'FORM_CRON_VALID_PUBLICATION_PERIOD';
+            }
+        }
+        return $aCheckCronResult;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Priorities.class.inc b/src/module_gtf/web_service/ws/Priorities.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..dcc02aa8f2ddd40bc1b916f1b1d30f8dc4623005
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Priorities.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file Priorities.class.inc
+ * \class Priorities
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Priorities php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Priority.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Priorities extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/priorities",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/priorities")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Priorities",
+     *   description="Operations about Priorities"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('priority_id', 'priority_label');
+    }
+
+    /**
+     * @SWG\Get(path="/priorities",
+     *   tags={"Priorities"},
+     *   summary="Get Priorities",
+     *   description="Request to get Priorities",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/priorities")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Priorities
+     * @return  Priorities
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_priority", "priority_id");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Priority.class.inc b/src/module_gtf/web_service/ws/Priority.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..063bc42ea71b37d1943a75f2e107e72095ee53de
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Priority.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Priority.class.inc
+ * \class Priority
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Priority php class
+ *
+ * This class defines operation for one Priority
+ * 
+ */
+class Prioritie extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('priority_id', 'priority_label');
+    }
+
+    /**
+     * get informations about priority
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_priority", "priority_id");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SchemaGroup.class.inc b/src/module_gtf/web_service/ws/SchemaGroup.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..6dc50604e1b053f0ce4ba912fbf27361e25d1054
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SchemaGroup.class.inc
@@ -0,0 +1,73 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file SchemaGroup.class.inc
+ * \class SchemaGroup
+ *
+ * \author Sofian Pujo <Sofian.pujo@veremes.com>.
+ *
+ * 	\brief This file contains the SchemaGroup php class
+ *
+ * This class defines operation for one SchemaGroup
+ * 
+ */
+class SchemaGroup extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('group_id', 'schema_group_id', 'schema', 'id_schema');
+    }
+
+    /**
+     * get SchemaGroup
+     * @return  SchemaGroup
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_contraintes'], "schema", "id_schema");
+        $this->getSchemas();
+    }
+    
+    /**
+     *  get schemas of group
+     */
+    function getSchemas() {
+        $this->sRessourcesFile = "ws/gtf/SchemaGroups.class.sql.inc";
+        require $this->sRessourcesFile;
+        if (in_array("id_schema", $this->aSelectedFields)) {             
+            $aParams['sSchemaContraintes'] = array('value' => $this->aProperties['schema_contraintes'], 'type' => 'schema_name');
+            $aParams['group_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+            //Requête pour récupérer les schémas
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getSchemas'], $aParams);
+            $sListSchemaId = "";
+            $aListSchemaName = array();
+            //Formation du tableau pour les schémas
+            while ($aLigne = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                if ($sListSchemaId == "") {
+                    $sListSchemaId = $aLigne["id_schema"];
+                } else {
+                    $sListSchemaId .= "|" . $aLigne["id_schema"];
+                }
+                $aListSchemaName[] = $aLigne["name"];
+            }
+            $oPDOresult = $this->oConnection->oBd->fermeResultat();
+            $this->aFields['group_schema'] = $sListSchemaId;
+            $this->aFields['group_schema_label'] = implode(',', $aListSchemaName);
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SchemaGroups.class.inc b/src/module_gtf/web_service/ws/SchemaGroups.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..d0dfd66527b74e82d96ecc015bea94d8202b35eb
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SchemaGroups.class.inc
@@ -0,0 +1,184 @@
+<?php
+
+/**
+ * \file SchemaGroups.class.inc
+ * \class SchemaGroups
+ *
+ * \author Sofian Pujo <sofian.pujo@veremes.com>.
+ *
+ * 	\brief This file contains the SchemaGroups php class
+ *
+ * This class defines Rest Api to Gtf schemagroups
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'SchemaGroup.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class SchemaGroups extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/schemagroups",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/schemagroups")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="SchemaGroups",
+     *   description="Operations about SchemaGroups"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('group_id', 'id_schema', 'schema_group_id', 'schema');
+    }
+
+    /**
+     * @SWG\Get(path="/schemagroups",
+     *   tags={"SchemaGroups"},
+     *   summary="Get SchemaGroups",
+     *   description="Request to get SchemaGroups",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *  @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/schemagroups")
+     *     )
+     *  )
+     */
+
+    /**
+     * get SchemaGroups
+     * @return  SchemaGroups
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_contraintes'], "v_schema_group", "id_schema");
+        return $aReturn['sMessage'];
+    }
+    
+    /**
+     * @SWG\Put(path="/schemagroups",
+     *   tags={"SchemaGroups"},
+     *   summary="Put SchemaGroups",
+     *   description="Request to Put SchemaGroups",
+     *   operationId="Put",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/schemagroups")
+     *     )
+     *  )
+     */
+
+    /**
+     * Put SchemaGroups
+     * @return  SchemaGroups
+     */
+    function PUT() {
+        
+        $this->sRessourcesFile = "ws/gtf/SchemaGroups.class.sql.inc";
+        require $this->sRessourcesFile;
+        $aReturn = $this->genericPut($this->aProperties['schema_contraintes'], 'v_schema_group', 'id_schema');
+        //Suppression de tous les schémas dans la table
+        $this->oConnection->oBd->delete($this->aProperties['schema_contraintes'], 'v_schema_group', 'group_id', $this->aValues["my_vitis_id"]);
+        
+        if (!empty($this->aValues['group_schema'])) {
+                $aSchemas = explode('|', $this->aValues['group_schema']);
+                foreach ($aSchemas as $iSchemaId) {
+                    $aParams['sSchemaContraintes'] = array('value' => $this->aProperties['schema_contraintes'], 'type' => 'schema_name');
+                    $aParams['group_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+                    $aParams['id_schema'] = array('value' => $iSchemaId, 'type' => 'string');
+                    //Enregistrement des schémas dans la table
+                    $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['insertGroupSchema'], $aParams);
+                }
+            }
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SchemaGroups.class.sql.inc b/src/module_gtf/web_service/ws/SchemaGroups.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..48ed4cd432408df3237526955155923d604a7a61
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SchemaGroups.class.sql.inc
@@ -0,0 +1,7 @@
+<?php
+
+//Définition des requêtes de l'api Vitis
+$aSql['insertGroupSchema'] = "INSERT INTO [sSchemaContraintes].v_schema_group(id_schema, group_id, schema_group_id) VALUES([id_schema], [group_id], nextval('[sSchemaContraintes].seq_qualigeo'))";
+$aSql['getSchemas'] = "SELECT id_schema FROM [sSchemaContraintes].v_schema_group WHERE group_id = [group_id]";
+$aSql['getAllSchemas'] = "SELECT DISTINCT id_schema FROM [sSchemaContraintes].schema";
+?>
diff --git a/src/module_gtf/web_service/ws/Server.class.inc b/src/module_gtf/web_service/ws/Server.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..f21f596b36a5ba8c1d36e7d46628b9632fa1d208
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Server.class.inc
@@ -0,0 +1,93 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Server.class.inc
+ * \class Server
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Server php class
+ *
+ * This class defines operation for one Server
+ * 
+ */
+class Server extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('server_id', 'hostname', 'scheduler_network_home', 'engines_home');
+    }
+
+    /**
+     * @SWG\Get(path="/servers/{server_id}", 
+     *   tags={"Servers"},
+     *   summary="Get Server",
+     *   description="Request to get Server by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="server_id",
+     *     in="path",
+     *     description="server id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/servers")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about mode
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "server", "server_id");
+    }
+
+    /**
+     * delete an user
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'server', 'server_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['server_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/ServerClass.class.inc b/src/module_gtf/web_service/ws/ServerClass.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..8eb898ae2f078268b9d27e156c9c01bd112ae543
--- /dev/null
+++ b/src/module_gtf/web_service/ws/ServerClass.class.inc
@@ -0,0 +1,196 @@
+<?php
+
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/dbUtil.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/logUtil.inc';
+
+class ServerClass {
+
+    //Chemin du fichier crontab
+    var $sCrontabFile;
+    //Id du server
+    var $iId;
+    //Nom du server
+    var $sServerName;
+    //Ancien nom du server
+    var $sOldServerName;
+    //Répertoire racine
+    var $sGtfHome;
+    //Répertoire Engines
+    var $EnginesHome;
+    //Objet de labase de données 
+    var $oBd;
+
+    function __construct($iId, $oBd, $sGtfHome, $sOldServerName = "", $aProperties = array()) {
+        $this->iId = $iId;
+        $this->oBd = $oBd;
+        $this->sOldServerName = $sOldServerName;
+        $this->sGtfHome = $sGtfHome;
+        $this->aProperties = $aProperties;
+        $this->setValues($iId);
+    }
+
+    function setValues($iId) {
+        if ($iId != "") {
+            $sSql = 'SELECT scheduler_network_home, hostname, engines_home FROM ' . $this->aProperties['schema_gtf'] . '.server where server_id=[iIdServer]';
+            $aParams['iIdServer'] = array('value' => $this->iId, 'type' => 'number');
+            $oPDOresult = $this->oBd->executeWithParams($sSql, $aParams);
+            $oServer = $this->oBd->objetSuivant($oPDOresult);
+            $this->sCrontabFile = $oServer->scheduler_network_home;
+            $this->sServerName = $oServer->hostname;
+            $this->EnginesHome = $oServer->engines_home;
+            if ($this->sOldServerName == "") {
+                $this->sOldServerName = $this->sServerName;
+            }
+        }
+    }
+
+    function deleteCrontabValuesEngine() {
+        $aValuesPycronNewFile = Array();
+        if (is_file($this->sCrontabFile)) {
+            $aPycronValues = file($this->sCrontabFile);
+            $bWrite = true;
+            foreach ($aPycronValues as $sPycronValue) {
+                $sPycronValue = str_replace("\n", "", $sPycronValue);
+                $sPycronValue = str_replace("\r", "", $sPycronValue);
+                if ($sPycronValue == "#<gtf_engines " . gethostname() . " " . $this->sGtfHome . ">") {
+
+                    $bWrite = false;
+                } else if ($sPycronValue == "#</gtf_engines " . gethostname() . " " . $this->sGtfHome . ">") {
+                    $bWrite = true;
+                }
+                if ($bWrite == true && $sPycronValue != "#</gtf_engines " . gethostname() . " " . $this->sGtfHome . ">") {
+                    $aValuesPycronNewFile[] = $sPycronValue;
+                }
+            }
+        }
+        // On écrit dans le fichier texte	
+        $sFichierCrontab = fopen($this->sCrontabFile, "w");
+        // Le fichier texte est vidé
+        ftruncate($sFichierCrontab, 0);
+        $aValuesPycronNewFile = str_replace("\n", "", $aValuesPycronNewFile);
+        $aValuesPycronNewFile = str_replace("\r", "", $aValuesPycronNewFile);
+        foreach ($aValuesPycronNewFile as $sPycronValues2) {
+            fputs($sFichierCrontab, $sPycronValues2 . "\n");
+        }
+        // Enfin fermer le fichier
+        fclose($sFichierCrontab);
+    }
+
+    function deleteCrontabValuesSubscription() {
+        $aPycronValues = file($this->sCrontabFile);
+        $aValuesPycronNewFile = Array();
+        $bWrite = true;
+        foreach ($aPycronValues as $sPycronValue) {
+            $sPycronValue = str_replace("\n", "", $sPycronValue);
+            $sPycronValue = str_replace("\r", "", $sPycronValue);
+
+            if ($sPycronValue == "#<gtf_subscription " . gethostname() . " " . $this->sGtfHome . ">") {
+
+                $bWrite = false;
+            } else if ($sPycronValue == "#</gtf_subscription " . gethostname() . " " . $this->sGtfHome . ">") {
+                $bWrite = true;
+            }
+            if ($bWrite == true && $sPycronValue != "#</gtf_subscription " . gethostname() . " " . $this->sGtfHome . ">") {
+                $aValuesPycronNewFile[] = $sPycronValue;
+            }
+        }
+        // On écrit dans le fichier texte	
+        $sFichierCrontab = fopen($this->sCrontabFile, "w");
+        // Le fichier texte est vidé
+        ftruncate($sFichierCrontab, 0);
+        $aValuesPycronNewFile = str_replace("\n", "", $aValuesPycronNewFile);
+        $aValuesPycronNewFile = str_replace("\r", "", $aValuesPycronNewFile);
+        foreach ($aValuesPycronNewFile as $sPycronValues2) {
+            fputs($sFichierCrontab, $sPycronValues2 . "\n");
+        }
+        // Enfin fermer le fichier
+        fclose($sFichierCrontab);
+    }
+
+    function AddCrontabValuesEngines($sNotInList = "") {
+        if ($sNotInList == "") {
+            $sSql = 'SELECT gtf_engine_id, period, enabled FROM ' . $this->aProperties['schema_gtf'] . '.gtf_engine WHERE server_id=[iIdServer]';
+        } else {
+            $sSql = 'SELECT gtf_engine_id, period, enabled FROM ' . $this->aProperties['schema_gtf'] . '.gtf_engine WHERE server_id=[iIdServer] AND gtf_engine_id not in ([sNotInList])';
+            $aParams['sNotInList'] = array('value' => str_replace(',', '|', $sNotInList), 'type' => 'group');
+        }
+        $aParams['iIdServer'] = array('value' => $this->iId, 'type' => 'number');
+        $oPDOresult = $this->oBd->executeWithParams($sSql, $aParams);
+        $sFichierCrontab = fopen($this->sCrontabFile, "a");
+        fputs($sFichierCrontab, "#<gtf_engines " . gethostname() . " " . $this->sGtfHome . ">" . "\n");
+        while ($oGTF = $this->oBd->objetSuivant($oPDOresult)) {
+            if ($oGTF->enabled == true) {
+                $sActif = "";
+            } else {
+                $sActif = "#";
+            }
+            if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+                $sLigne = $sActif . "*/" . $oGTF->period . " * * * * \"" . $this->EnginesHome . "/engine.exe\" " . $oGTF->gtf_engine_id;
+            } else {
+                $sLigne = $sActif . "*/" . $oGTF->period . " * * * * cd \"" . $this->EnginesHome . "\" && \"" . $this->EnginesHome . "/engine\" " . $oGTF->gtf_engine_id;
+            }
+            fputs($sFichierCrontab, $sLigne . "\n");
+        }
+        fputs($sFichierCrontab, "#</gtf_engines " . gethostname() . " " . $this->sGtfHome . ">" . "\n");
+        if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
+            $sCronTmp = '/tmp/' . uniqid('cron_');
+            exec("crontab -u www-data -l > " . $sCronTmp);
+            exec("crontab -u www-data " . $sCronTmp);
+            exec("rm " . $sCronTmp);
+        }
+    }
+
+    function AddCrontabValuesSubscription() {
+        $sSql = 'SELECT period_id, cron_expression, enabled FROM ' . $this->aProperties['schema_gtf'] . '.period';
+        $oPDOresult = $this->oBd->executeWithParams($sSql, array());
+        $sFichierCrontab = fopen($this->sCrontabFile, "a");
+        fputs($sFichierCrontab, "#<gtf_subscription " . gethostname() . " " . $this->sGtfHome . ">" . "\n");
+        while ($oPeriod = $this->oBd->objetSuivant($oPDOresult)) {
+            if ($oPeriod->enabled == true) {
+                $sActif = "";
+            } else {
+                $sActif = "#";
+            }
+            if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+                $sLigne = $sActif . $oPeriod->cron_expression . " \"" . $this->EnginesHome . "/php/php.exe\" \"" . $this->EnginesHome . "/subscription.php\" " . $oPeriod->period_id;
+            } else {
+                $sLigne = $sActif . $oPeriod->cron_expression . " (\"" . $this->EnginesHome . "/php/bin/php\" \"" . $this->EnginesHome . "/subscription.php\" " . $oPeriod->period_id . ")";
+            }
+            fputs($sFichierCrontab, $sLigne . "\n");
+        }
+        fputs($sFichierCrontab, "#</gtf_subscription " . gethostname() . " " . $this->sGtfHome . ">" . "\n");
+        if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
+            $sCronTmp = '/tmp/' . uniqid('cron_');
+            exec("crontab -u www-data -l > " . $sCronTmp);
+            exec("crontab -u www-data " . $sCronTmp);
+            exec("rm " . $sCronTmp);
+        }
+    }
+
+    function AddPropertiesFME($sNotInList = "") {
+        $sFichierProperties = fopen($this->sGtfHome . "/rest/conf/gtf/properties_post_engines.inc", "w");
+        fputs($sFichierProperties, "<?php" . "\n");
+        $sLigne = '$properties["engines_list"] = \'';
+        $aParams = array();
+        if ($sNotInList == "") {
+            $sSql = 'SELECT gtf_engine_id FROM ' . $this->aProperties['schema_gtf'] . '.gtf_engine WHERE enabled = true ORDER BY gtf_engine_id';
+        } else {
+            $sSql = 'SELECT gtf_engine_id FROM ' . $this->aProperties['schema_gtf'] . '.gtf_engine WHERE gtf_engine_id not in (' . $sNotInList . ") AND enabled = true ORDER BY gtf_engine_id";
+            $aParams['sNotInList'] = array('value' => str_replace(',', '|', $sNotInList), 'type' => 'group');
+        }
+        $oPDOresult = $this->oBd->executeWithParams($sSql, $aParams);
+        while ($oFme = $this->oBd->objetSuivant($oPDOresult)) {
+            if ($sLigne == '$properties["engines_list"] = \'') {
+                $sLigne .= $oFme->gtf_engine_id;
+            } else {
+                $sLigne .= "," . $oFme->gtf_engine_id;
+            }
+        }
+        $sLigne .= "';";
+        fputs($sFichierProperties, $sLigne . "\n");
+        fputs($sFichierProperties, "?>" . "\n");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Servers.class.inc b/src/module_gtf/web_service/ws/Servers.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..ba40d3c37b91bb8172f417c7e27c20381c32b099
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Servers.class.inc
@@ -0,0 +1,348 @@
+<?php
+
+/**
+ * \file Servers.class.inc
+ * \class Servers
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Modes php class
+ *
+ * This class defines Rest Api to Vitis Servers
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Server.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Servers extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/servers",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/servers")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Servers",
+     *   description="Operations about Server"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('server_id', 'hostname', 'scheduler_network_home', 'engines_home');
+    }
+
+    /**
+     * @SWG\Get(path="/servers",
+     *   tags={"Servers"},
+     *   summary="Get Server",
+     *   description="Request to get Server",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="server token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/servers")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Servers
+     * @return  Servers
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "server", "server_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/servers",
+     *   tags={"Servers"},
+     *   summary="Add Server",
+     *   description="Request to add server",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="server token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="hostname",
+     *     in="formData",
+     *     description="hostname of server",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="scheduler_network_home",
+     *     in="formData",
+     *     description="scheduler network home of the server",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="engines_home",
+     *     in="formData",
+     *     description="engines home of the server",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/servers")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert server
+     * @return id of the server created
+     */
+    function POST() {
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'server', $this->aProperties['schema_gtf'] . '.seq_common', 'server_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oServer = new Server($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oServer->GET();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/servers/{server_id}",
+     *   tags={"Servers"},
+     *   summary="Update Server",
+     *   description="Request to update Server",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="server token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="server_id",
+     *     in="path",
+     *     description="id of the server",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="hostname",
+     *     in="query",
+     *     description="hostname of server",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="scheduler_network_home",
+     *     in="query",
+     *     description="scheduler network home of the server",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="engines_home",
+     *     in="query",
+     *     description="engines home of the server",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/servers")
+     *     )
+     *  )
+     */
+
+    /**
+     * update server
+     * @return id of the server if ok error object if ko
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'server', 'server_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oServer = new Server($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oServer->GET();
+            //
+            $this->insertCrontab();
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/servers/",
+     *   tags={"Servers"},
+     *   summary="delete Server",
+     *   description="Request to delete Server",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="server token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the servers",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/servers")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/servers/{server_id}",
+     *   tags={"Servers"},
+     *   summary="delete Server",
+     *   description="Request to delete Server",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="server token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="server_id",
+     *     in="path",
+     *     description="id of the server",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/servers")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete server
+     * @return id of server deleted or error object if a server is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'server', 'server_id');
+        return $aReturn['sMessage'];
+    }
+
+    /*
+     * *	
+     */
+
+    Public function insertCrontab() {
+        require_once("ServerClass.class.inc");
+        if (isset($this->aValues['old_hostname']))
+            $sOldHostname = $this->aValues['old_hostname'];
+        else
+            $sOldHostname = null;
+        $oCrontab = new ServerClass($this->aValues["my_vitis_id"], $this->oConnection->oBd, $this->aProperties['vas_home'], $sOldHostname, $this->aProperties);
+        $oCrontab->deleteCrontabValuesEngine();
+        $oCrontab->deleteCrontabValuesSubscription();
+        $oCrontab->AddCrontabValuesEngines();
+        if ($this->aValues["hostname"] == "localhost")
+            $oCrontab->AddCrontabValuesSubscription();
+        $oCrontab->AddPropertiesFME();
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SmtpServer.class.inc b/src/module_gtf/web_service/ws/SmtpServer.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..bf715b64b2210343b0f8da996be810deea64d2a2
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SmtpServer.class.inc
@@ -0,0 +1,125 @@
+<?php
+
+/**
+ * \file SmtpServer.class.inc
+ * \class SmtpServer
+ *
+ * \author Armand Bahi <armand.bahi@veremes.com>.
+ *
+ * \brief This file contains the SmtpServer php class
+ *
+ * This class defines Rest Api to SmtpServer
+ * 
+ */
+
+// usage of this class is deprecated 
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+use PHPMailer\PHPMailer\PHPMailer;
+use PHPMailer\PHPMailer\Exception;
+require_once 'PHPMailer/src/Exception.php';
+require_once 'PHPMailer/src/PHPMailer.php';
+require_once 'PHPMailer/src/SMTP.php';
+
+class SmtpServer extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/smtpserver",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/smtpserver")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="SmtpServer",
+     *   description=""
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+    }
+
+    /**
+     * @SWG\Get(path="/smtpserver/Check",
+     *   tags={"SmtpServer"},
+ *   summary="Check smtp server connection",
+     *   description="Request to check the connection to the Smtp Server",
+     *   operationId="GET",
+     *   produces={"application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/smtpserver")
+     *     )
+     *  )
+     */
+
+    /**
+     * get SmtpServer
+     * @return  SmtpServer
+     */
+    function GET() {
+        if (!empty($this->aPath[2])) {
+            if ($this->aPath[2] == "Check")
+                $sMessage = $this->checkSmtpServerConnection();
+            return $sMessage;
+        }
+    }
+
+    /**
+     * Retourne les symboles du fichier "symbols.sym".
+     */
+    function checkSmtpServerConnection() {
+        $mail = new PHPMailer;
+        $mail->isSMTP();                                                // Set mailer to use SMTP
+        //$mail->SMTPDebug = 3;                                         // debugger level (3 all with connection)
+        $mail->Debugoutput = function($str, $level) {error_log("debug level $level; message: $str");};
+        $mail->Host = $this->aProperties["smtp_host"];                  // Specify main and backup SMTP servers
+        $mail->Port = $this->aProperties["smtp_port"];                  // TCP port to connect to
+        $mail->SMTPAuth = $this->aProperties["smtp_authentification"];  // Enable SMTP authentication
+        // if authentication add parameter to connect SMTP
+        if ($this->aProperties["smtp_authentification"] === true){
+            $mail->AuthType = 'LOGIN';
+            $mail->Username = $this->aProperties["smtp_login"];             // SMTP username
+            $mail->Password = $this->aProperties["smtp_password"];          // SMTP password
+            $mail->SMTPSecure = 'tls';                                      // Enable TLS encryption, `ssl` also accepted (deprecated)
+        }
+        // Depuis PHP 5.6 -> vérification du certificat SSL.
+        if (!$this->aProperties['proxy_check_ssl']) {
+            $mail->SMTPOptions = array(
+                'ssl' => array(
+                    'verify_peer' => false,
+                    'verify_peer_name' => false,
+                    'allow_self_signed' => true
+                )
+            );
+        }
+        if ($mail->smtpConnect()) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        else {
+            $oError = new VitisError(1, 'MODAL_CONTENT_ERROR_CHECK_SMTP_CONNECTION_CONFIGURATION');
+            $aXmlRacineAttribute['status'] = 0;
+            $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        }
+        return $sMessage;
+    }
+}
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Statistics.class.inc b/src/module_gtf/web_service/ws/Statistics.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..5e2025b7137e45965df9dc533e7980b59edff4d9
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Statistics.class.inc
@@ -0,0 +1,172 @@
+<?php
+
+/**
+ * \file Statistics.class.inc
+ * \class Statistics
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Statistics php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require 'Stats.class.inc';
+
+class Statistics extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/statistics",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/statistics")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Statistics",
+     *   description="Operations about Statistics"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('email_option_id', 'email_option_label');
+    }
+
+    /**
+     * @SWG\Get(path="/statistics",
+     *   tags={"Statistics"},
+     *   summary="Get Statistics",
+     *   description="Request to get Statistics",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="variable_id",
+     *     in="query",
+     *     description="Type of statistics",
+     *     required=true,
+     *     type="array",
+     *         @SWG\Items(type="string"),
+     *         collectionFormat="multi",
+     *         default="var_tjl",
+     *         enum={"var_tjl", "var_ujl", "var_jn"}
+     *   ),
+     * @SWG\Parameter(
+     *     name="unit_id",
+     *     in="query",
+     *     description="Type of unit",
+     *     required=true,
+     *     type="array",
+     *         @SWG\Items(type="string"),
+     *         collectionFormat="multi",
+     *         default="unit_sec",
+     *         enum={"unit_sec", "unit_min", "unit_hour", "unit_pc"}
+     *   ),
+     * @SWG\Parameter(
+     *     name="gb_id",
+     *     in="query",
+     *     description="Type of legend",
+     *     required=true,
+     *     type="array",
+     *         @SWG\Items(type="string"),
+     *         collectionFormat="multi",
+     *         default="gb_workspace",
+     *         enum={"gb_workspace", "gb_user", "gb_engine", "gb_status"}
+     *   ),
+     * @SWG\Parameter(
+     *     name="per_type",
+     *     in="query",
+     *     description="Type of period",
+     *     required=true,
+     *     type="array",
+     *         @SWG\Items(type="string"),
+     *         collectionFormat="multi",
+     *         default="per_week",
+     *         enum={"per_day", "per_week", "per_month", "per_year"}
+     *   ),
+     * @SWG\Parameter(
+     *     name="per_date",
+     *     in="query",
+     *     description="",
+     *     required=true,
+     *     type="string",
+     *   ),
+     * @SWG\Parameter(
+     *     name="max_elements",
+     *     in="query",
+     *     description="number of max elements",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="max_labels_characters",
+     *     in="query",
+     *     description="number of max labels characters",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="graph_colors",
+     *     in="query",
+     *     description="Type of graph colors",
+     *     required=true,
+     *     type="array",
+     *         @SWG\Items(type="string"),
+     *         collectionFormat="multi",
+     *         default="palette1",
+     *         enum={"palette1", "palette2"}
+     *   ),
+     * @SWG\Parameter(
+     *     name="view_id",
+     *     in="query",
+     *     description="Type of ",
+     *     required=true,
+     *     type="array",
+     *         @SWG\Items(type="string"),
+     *         collectionFormat="multi",
+     *         default="view_graph",
+     *         enum={"view_graph", "view_table"}
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/statistics")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Statistics
+     * @return  Statistics
+     */
+    function GET() {
+        $oMyStats = new Stats($this->oConnection->oBd, $this->aProperties);
+        $aReturn = $oMyStats->getStats($this->aValues);
+        $this->aFields["statistics"] = $aReturn;
+        $aXmlRacineAttribute['status'] = 1;
+        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        return $sMessage;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Stats.class.inc b/src/module_gtf/web_service/ws/Stats.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..c9561c78fea06616a362c171a50f6d5ebe60bb58
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Stats.class.inc
@@ -0,0 +1,444 @@
+<?php
+
+class Stats {
+    /* Critères de la requête sql suivant les données demandées : */
+
+    // Nom de la requête à exécuter suivant la variable et le regroupement
+    private $aSqlRequest = array('var_tjl' => array('gb_workspace' => 'max_elements', 'gb_user' => 'max_elements', 'gb_engine' => 'normal', 'gb_status' => 'traductions'),
+        'var_ujl' => array('gb_workspace' => 'traitements_unitaires'),
+        'var_jn' => array('gb_workspace' => 'max_elements', 'gb_user' => 'max_elements', 'gb_engine' => 'normal', 'gb_status' => 'traductions'));
+    // Valeurs de retour suivant l'unité (et suivant le grain si %)	
+    private $aSqlUnit = array('unit_sec' => 'aSqlUnitFonction[this->variable_id]::integer',
+        'unit_min' => '(aSqlUnitFonction[this->variable_id]::real/60)',
+        'unit_hour' => '(aSqlUnitFonction[this->variable_id]::real/3600)',
+        'unit_pc' => '((100*aSqlUnitFonction[this->variable_id]::real)/aSecondGranularity[this->per_type])');
+    // Valeurs de retour suivant l'unité uniquement pour 'traitements unitaires'(plusieurs colonnes: min, moy, max)	
+    private $aSqlUnitVarUjl = array('unit_sec' => '::integer',
+        'unit_min' => '::real/60',
+        'unit_hour' => '::real/3600');
+    // Fonctions à exécuter dans la requête suivant 'variable_id' : sum,count...
+    private $aSqlUnitFonction = array('var_tjl' => 'sum(job.length_sec)',
+        'var_ujl' => '',
+        'var_jn' => 'count(*)');
+    // Nb secondes par granularité (uniquement pour '%')
+    private $aSecondGranularity = array('per_day' => 3600, // 1h
+        'per_week' => 86400, // 1 jour
+        'per_month' => 86400, // 1jour
+        'per_year' => "((date_part('day', DATE([per_date]) + '1 month - 1 day'::interval)::integer)*86400)");
+    // Durée de l'intervalle (= date de fin)
+    private $aSqlIntervalLength = array('per_day' => '1 day',
+        'per_week' => '1 week',
+        'per_month' => '1 month',
+        'per_year' => '1 year');
+    // generate series : remplir les données vides par des 0 --> graphique 'bar'
+    private $aSqlPerDateGenerateSeries = array('per_day' => 'generate_series (0,24)',
+        'per_week' => array('generate_series (0,6)', 'generate_series (1,7)'),
+        'per_month' => "generate_series (1,date_part('day', DATE([per_date]) + '1 month - 1 day'::interval)::integer)",
+        'per_year' => 'generate_series (1,12)');
+    // Critère de tri pour la granularité (order by)
+    private $aSqlGranularityOrderBy = array('per_day' => 'hour',
+        'per_week' => array('dow', 'isodow'),
+        'per_month' => 'day',
+        'per_year' => 'month');
+    // Critère de regroupement pour la légende (gb_id)
+    private $aSqlLegendGroupBy = array('gb_workspace' => 'workspace',
+        'gb_user' => 'login',
+        'gb_engine' => 'engine_id',
+        'gb_status' => 'order_status_id');
+// Formatage des dates (constantes)
+    private $aGranularityLabels = array('per_week' => array('DIMANCHE_STATISTICS_STATISTICS', 'LUNDI_STATISTICS_STATISTICS', 'MARDI_STATISTICS_STATISTICS', 'MERCREDI_STATISTICS_STATISTICS', 'JEUDI_STATISTICS_STATISTICS', 'VENDREDI_STATISTICS_STATISTICS', 'SAMEDI_STATISTICS_STATISTICS', 'DIMANCHE_STATISTICS_STATISTICS'),
+        'per_year' => array('', 'JANVIER_STATISTICS_STATISTICS', 'FEVRIER_STATISTICS_STATISTICS', 'MARS_STATISTICS_STATISTICS', 'AVRIL_STATISTICS_STATISTICS', 'MAI_STATISTICS_STATISTICS', 'JUIN_STATISTICS_STATISTICS', 'JUILLET_STATISTICS_STATISTICS', 'AOUT_STATISTICS_STATISTICS', 'SEPTEMBRE_STATISTICS_STATISTICS', 'OCTOBRE_STATISTICS_STATISTICS', 'NOVEMBRE_STATISTICS_STATISTICS', 'DECEMBRE_STATISTICS_STATISTICS')); // Constante (fichier de trad.)
+    private $aMonthNames = array('', 'JANVIER_STATISTICS_STATISTICS', 'FEVRIER_STATISTICS_STATISTICS', 'MARS_STATISTICS_STATISTICS', 'AVRIL_STATISTICS_STATISTICS', 'MAI_STATISTICS_STATISTICS', 'JUIN_STATISTICS_STATISTICS', 'JUILLET_STATISTICS_STATISTICS', 'AOUT_STATISTICS_STATISTICS', 'SEPTEMBRE_STATISTICS_STATISTICS', 'OCTOBRE_STATISTICS_STATISTICS', 'NOVEMBRE_STATISTICS_STATISTICS', 'DECEMBRE_STATISTICS_STATISTICS');
+// Palettes de couleurs	(suivant le critère de regroupement)
+    private $aGraphColors = array('gb_status' => array('1' => 'Silver', '2' => 'Red', '3' => 'Lime', '4' => 'Black', '5' => 'Gold'));
+
+// Valeurs par défaut
+    const DEFAULT_MAX_ELEMENTS = 5;
+    const DEFAULT_MAX_LABELS_CHARACTERS = 50;
+    const DEFAULT_UNIT_ID = 'unit_sec';
+
+// Paramètres pour la requête de stats
+    private $variable_id; // Variable à représenter dans les tableaux ou graphiques : var_tjl, var_ujl, var_jn
+    private $unit_id; // Unité de temps pour la représentation (unit_sec(s), unit_min(m), unit_hour(h) - pourcentage (unit_pc - traitement particulier)
+    private $gb_id; // Critère de regroupement : gb_workspace, gb_user, gb_engine, gb_status
+    private $per_type; // Durée totale de la série statistique analysée : per_year (semaine), per_month (jour), per_week (jour), per_day (heure)
+    private $per_date; // Date de début de la série statistique analysée : 1er jour année, 1er jour mois, 1er jour semaine, jour choisi
+    private $max_elements; // Nb éléments max. à retourner (ex: 5 utilisateurs + autres)
+    private $max_labels_characters; // Nb caractères max. pour les labels
+    private $first_day_week;
+    private $graph_type; // Type de données à retourner (générales ou détaillées) suivant le graphique
+    private $aStats; // Tableau de stats qui sera converti en json et retourné
+    private $oBd; // Objet de connexion vers la base
+
+// RGraph : structure des données pour le tableau de retour
+
+    const GRAPH_TITLE = 'title';
+    const GRAPH_SUBTITLE = 'subtitle';
+    const GRAPH_LABELS = 'labels';
+    const GRAPH_DATA = 'data';
+    const GRAPH_KEY = 'key';
+    const LEGEND_TITLE = 'legend';
+    const GRAPH_DATA_UNIT = 'data_unit';
+    const GRAPH_COLORS = 'colors'; // Palette de couleurs imposée ()
+    const SCATTER_LEGEND = 'scatter_legend';
+// RGraph : paramètres pour l'affichage
+    const SCATTER_X_SPACING = 3;
+    const SCATTER_COLOR_UP = 'black';
+    const SCATTER_COLOR_DOWN = 'white';
+    const SCATTER_COLOR_OUTLINE = 'black';
+// Tableau de retour (succès ou échec)
+    const REQUEST_SUCCESS = 1;
+    const REQUEST_ERROR = 0;
+// Paramètres spécifiques de la requête sql pour le mode 'général' (pie) --> pas de granularité
+    const SQL_PER_DATE_GENERATE_SERIES_GENERAL = "date_part('millennium', DATE([per_date]))";
+    const SQL_GRANULARITY_ORDER_BY_GENERAL = 'millennium';
+
+    /*     * ********************************
+      Connexion à la bdd
+      $oBd : Objet de connexion vers la base
+     * ********************************* */
+
+    function __construct($oBd, $aProperties) {
+        $this->aProperties = $aProperties;
+        $this->oBd = $oBd;
+    }
+
+    /*     * *********************************
+      Initialise les paramètres et appelle la méthode correspondante à la variable (variable_id) à afficher
+      $aStatsRequest : Tableau contenant les paramètres pour la requête de stats (en général le tableau $_POST)
+      Retour : idem
+     * ********************************* */
+
+    function getStats($aStatsRequest) {
+        if (!empty($aStatsRequest)) {
+            // Vérifie et initialise les paramètres pour la requête de stats dans l'objet
+            if ($this->checkStatsRequest($aStatsRequest)) {
+                // Configure et lance la requête sql correspondante	
+                $aRawStats = $this->setSqlRequest();
+
+                // Crée un tableau structuré pour la partie graphique
+                $this->getGraphTable($aRawStats);
+            }
+        }
+
+        // Converti et retourne le tableau au format json	
+        return $this->aStats;
+    }
+
+    /*     * *********************************
+      Vérifie et initialise les paramètres pour la requête de stats
+      $aStatsRequest : Tableau contenant les paramètres pour la requête de stats (en général $_POST)
+     * ********************************* */
+
+    private function checkStatsRequest($aStatsRequest) {
+        // Variable, période, date de début, unité (sauf si nombre de traitements), critère de regroupement : obligatoires
+        if (!empty($aStatsRequest['variable_id']) && !empty($aStatsRequest['per_type']) && !empty($aStatsRequest['per_date_sql']) && !empty($aStatsRequest['gb_id'])) {
+            $this->variable_id = $aStatsRequest['variable_id'];
+            $this->per_type = $aStatsRequest['per_type'];
+            $this->per_date = $aStatsRequest['per_date_sql'];
+            $this->gb_id = $aStatsRequest['gb_id'];
+            $this->first_day_week = $aStatsRequest['first_day_week'];
+            $this->graph_type = $aStatsRequest['graph_type'];
+            $this->aStats = array();
+
+            // Si l'unité est vide (<select> grisé pour 'nombre de traitements') : valeur par défaut
+            if (empty($aStatsRequest['unit_id']))
+                $this->unit_id = self::DEFAULT_UNIT_ID;
+            else
+                $this->unit_id = $aStatsRequest['unit_id'];
+
+            // Si max_elements = 0 : pas de limite
+            if (!isset($aStatsRequest['max_elements']))
+                $this->max_elements = self::DEFAULT_MAX_ELEMENTS;
+            else {
+                if ($aStatsRequest['max_elements'] == '0')
+                    $this->max_elements = 1000;
+                else
+                    $this->max_elements = $aStatsRequest['max_elements'];
+            }
+            // max_labels_characters : obligatoire ? (sinon valeur par défaut)
+            if (!empty($aStatsRequest['max_labels_characters']))
+                $this->max_labels_characters = $aStatsRequest['max_labels_characters'];
+            else
+                $this->max_labels_characters = self::DEFAULT_MAX_LABELS_CHARACTERS;
+
+            // Paramètres vérifiés : la requête de stats peut-être lancée
+            $this->setStatus(self::REQUEST_SUCCESS);
+            $iDoRequest = true;
+        }else {
+            // Erreur : pas de requête et message en retour
+            $this->setStatus(self::REQUEST_ERROR, "ERROR_MISSING_DATA_STATISTICS_STATISTICS");
+            $iDoRequest = false;
+        }
+
+        return $iDoRequest;
+    }
+
+    /*     * *********************************
+      Configure la requête sql 'brute' correspondante et l'exécute
+     * ********************************* */
+
+    private function setSqlRequest() {
+        // Toutes les requêtes génériques : à remplir suivant les critères
+        require_once("Stats.class.sql.inc");
+
+        // Requête Sql suivant la variable et le regroupement ?
+        $sSqlRequest = $this->aSqlRequest[$this->variable_id][$this->gb_id];
+        $sSql = $aSql[$this->oBd->sgbd]['stats'][$sSqlRequest];
+
+        // Rempli l'unité (sec, min...)
+        if ($this->variable_id == 'var_ujl')
+            $sSql = str_replace('aSqlUnitVarUjl[this->unit_id]', $this->aSqlUnitVarUjl["$this->unit_id"], $sSql);
+        else {
+            $sSql = str_replace('aSqlUnit[this->unit_id]', $this->aSqlUnit["$this->unit_id"], $sSql);
+            $sSql = str_replace('aSqlUnitFonction[this->variable_id]', $this->aSqlUnitFonction["$this->variable_id"], $sSql);
+
+            // Traitement spécial si pourcentage	
+            if ($this->unit_id == 'unit_pc')
+                $sSql = str_replace('aSecondGranularity[this->per_type]', $this->aSecondGranularity["$this->per_type"], $sSql);
+        }
+
+        // Interval (Durée de la période de stats)
+        $sSql = str_replace('aSqlIntervalLength[this->per_type]', $this->aSqlIntervalLength["$this->per_type"], $sSql);
+
+        // Granularité (Order by) & astuce pour remplir à 0 la granularité sans données (exception pour per_week)
+        // Si le type de graphique est 'general' (pie) : granularité identique pour toutes les données
+        if ($this->graph_type == 'detail') {
+            if ($this->per_type == 'per_week') {
+                $sSql = str_replace('aSqlPerDateGenerateSeries[this->per_type]', $this->aSqlPerDateGenerateSeries[$this->per_type][$this->first_day_week], $sSql);
+                $sSql = str_replace('aSqlGranularityOrderBy[this->per_type]', $this->aSqlGranularityOrderBy[$this->per_type][$this->first_day_week], $sSql);
+            } else {
+                $sSql = str_replace('aSqlPerDateGenerateSeries[this->per_type]', $this->aSqlPerDateGenerateSeries[$this->per_type], $sSql);
+                $sSql = str_replace('aSqlGranularityOrderBy[this->per_type]', $this->aSqlGranularityOrderBy[$this->per_type], $sSql);
+            }
+        } else {
+            $sSql = str_replace('aSqlPerDateGenerateSeries[this->per_type]', self::SQL_PER_DATE_GENERATE_SERIES_GENERAL, $sSql);
+            $sSql = str_replace('aSqlGranularityOrderBy[this->per_type]', self::SQL_GRANULARITY_ORDER_BY_GENERAL, $sSql);
+        }
+
+        // Critère de regroupement (gb_id)
+        $sSql = str_replace('aSqlLegendGroupBy[this->gb_id]', $this->aSqlLegendGroupBy[$this->gb_id], $sSql);
+
+        // Langue pour les traductions
+        $sSql = str_replace("properties['language']", $this->aProperties['language'], $sSql);
+
+        // Traduction de 'autres'
+        //$sSql = str_replace('SQL_MAX_ELEMENTS_OTHERS', html_entity_decode(SQL_MAX_ELEMENTS_OTHERS, ENT_QUOTES | ENT_HTML5, 'UTF-8'), $sSql);
+        $sSql = str_replace('SQL_MAX_ELEMENTS_OTHERS', 'SQL_MAX_ELEMENTS_OTHERS_STATISTICS_STATISTICS', $sSql);
+
+        $sSql = str_replace('grain,pc.engine_id', "grain,pc.engine_id || ' - ' || gtf_engine.name", $sSql);
+        $sSql = str_replace('AND pc.engine_id=dynamic.engine_id', "AND pc.engine_id=dynamic.engine_id LEFT JOIN [sSchemaGtf].gtf_engine ON pc.engine_id = gtf_engine.gtf_engine_id", $sSql);
+
+        // Nom des schémas à partir des properties
+        $sSql = str_replace("[sSchemaGtf]", $this->aProperties['schema_gtf'], $sSql);
+        $sSql = str_replace("[sSchemaFramework]", $this->aProperties['schema_framework'], $sSql);
+
+        //  Exécute la requête sql
+        if ($sSqlRequest != 'traitements_unitaires')
+            $aParams['max_elements'] = array('value' => $this->max_elements, 'type' => 'number');
+        $aParams['per_date'] = array('value' => $this->per_date, 'type' => 'string');
+        $oPDOresult = $this->oBd->executeWithParams($sSql, $aParams);
+        if (!empty($this->erreurRencontree)) {
+            $this->setStatus(self::REQUEST_ERROR, $this->oBd->getBDMessage());
+            exit(json_encode($this->aStats));
+        }
+
+        // Récupère les données sous forme de tableau associatif	
+        $aRawStats = $this->oBd->getResultTableAssoc($oPDOresult);
+        $oPDOresult = $this->oBd->fermeResultat();
+
+        return $aRawStats;
+    }
+
+    /*     * *********************************
+      Transforme un tableau de résultats de bdd (brut) en tableau json formaté pour l'affichage
+      $aRawStats : Tableau de résultat de bdd brut
+     * ********************************* */
+
+    private function getGraphTable($aRawStats) {
+        // Si la requête ne renvoie pas de données : message d'erreur	
+        if (empty($aRawStats))
+            $this->setStatus(self::REQUEST_ERROR, 'ERROR_NO_PERIOD_DATA_STATISTICS_STATISTICS');
+        else {
+            // Titre du graphique
+            if ($this->variable_id == 'var_ujl')
+                $sTitle = 'GRAPH_TITLE_VARIABLE_ID_' . strtoupper($this->variable_id) . '_STATISTICS_STATISTICS';
+            else
+                $sTitle = 'GRAPH_TITLE_VARIABLE_ID_' . strtoupper($this->variable_id) . '_' . strtoupper($this->graph_type) . '_STATISTICS_STATISTICS';
+
+            // Titre de la légende (Projet_FME, utilisateur...)
+            $sLegendTitle = 'FORM_STATS_LEGEND_' . strtoupper($this->gb_id) . '_STATISTICS_STATISTICS';
+            $this->aStats[self::LEGEND_TITLE] = $sLegendTitle;
+            $sTitle .= ' / ' . $this->aStats[self::LEGEND_TITLE]; // Ajoute la légende au titre du graphique
+            // Unité dans le titre (sauf pour le nombre de traitements et les données générales (pie)) & unité (version courte) à coté des nombres
+            if ($this->variable_id != 'var_jn' && ($this->graph_type != 'general' || $this->variable_id == 'var_ujl')) {
+                $sTitle .= ' (' . 'FORM_STATS_UNIT_ID_' . strtoupper($this->unit_id) . '_STATISTICS_STATISTICS' . ')';
+                $this->aStats[self::GRAPH_DATA_UNIT] = ' ' . 'FORM_STATS_UNIT_ID_SHORT_' . strtoupper($this->unit_id) . '_STATISTICS_STATISTICS';
+            }
+            $this->aStats[self::GRAPH_TITLE] = $sTitle;
+
+            // Sous titre (période du xx)
+            $this->aStats[self::GRAPH_SUBTITLE] = $this->getPeriodText();
+
+            // Labels suivant la période : utilise un tableau de référence si il existe (sauf pour 'durée des traitements unitaires')
+            $arrLabels = array();
+            if (!empty($this->aGranularityLabels["$this->per_type"]) && $this->variable_id != 'var_ujl')
+                $arrLabels = $this->aGranularityLabels["$this->per_type"];
+
+            // Si variable = traitements unitaires : intitulés de la légende (min, moy, max) suivant la langue
+            if ($this->variable_id == 'var_ujl') {
+                $aScatterLegend['min'] = 'SCATTER_LEGEND_MIN_STATISTICS_STATISTICS';
+                $aScatterLegend['avg'] = 'SCATTER_LEGEND_AVG_STATISTICS_STATISTICS';
+                $aScatterLegend['max'] = 'SCATTER_LEGEND_MAX_STATISTICS_STATISTICS';
+                $this->aStats[self::SCATTER_LEGEND] = $aScatterLegend;
+            }
+
+            // Rempli le tableau json avec les données de stats, les labels , la légende et la palette de couleur (si imposée)
+            $arrKeys = array();
+            $aLabels = array();
+            $aData = array();
+
+            // Une palette de couleur est elle imposée pour ce critère de regroupement ?
+            $aColors = array();
+            if (isset($this->aGraphColors[$this->gb_id]))
+                $aGraphColors = $this->aGraphColors[$this->gb_id];
+            else
+                $aGraphColors = '';
+
+            $i = 0;
+            foreach ($aRawStats as $aDb) {
+                // Légende : pas de doublons (forcage en str)
+                if (!empty($aDb['legend'])) {
+                    $sKeyLegend = substr(strval($aDb['legend']), 0, $this->max_labels_characters);
+                    if (!in_array($sKeyLegend, $arrKeys))
+                        $arrKeys[] = $sKeyLegend;
+                }
+                // Palette de couleurs suivant legend_id (id de chaque élément de la légende)
+                if (is_array($aGraphColors))
+                    $aColors["{$aDb['legend_id']}"] = $aGraphColors["{$aDb['legend_id']}"];
+
+                // Labels par tableau de référence sinon par les index
+                if (!empty($arrLabels)) {
+                    if (isset($arrLabels[$aDb['grain']]))
+                        $sLabel = $arrLabels[$aDb['grain']]; // --> Constante introuvable ?????
+                    //$sLabel = html_entity_decode($arrLabels[$aDb['grain']], ENT_QUOTES | ENT_HTML5, 'UTF-8'); // --> Constante introuvable ?????
+                }
+                else {
+                    if (isset($aDb['grain']))
+                        $sLabel = substr(strval($aDb['grain']), 0, $this->max_labels_characters);
+                }
+
+                // Data : traitement spécifique pour 'traitement unitaire' : min, moy, max. Les autres : value
+                // Force le typage en numérique (sinon problème avec json_encode), si float : arrondi à 2 décimales	
+                if ($this->variable_id == 'var_ujl') {
+                    //$iPosition = ($i * self::SCATTER_X_SPACING) + self::SCATTER_X_SPACING;
+                    $iPosition = ($i * self::SCATTER_X_SPACING) + 1;
+                    $iMinimum = round($aDb['minimum'], 2);
+                    $iMoyenne = round($aDb['moyenne'], 2);
+                    $iMaximum = round($aDb['maximum'], 2);
+                    $aData[] = array($iPosition, array($iMinimum, $iMinimum, $iMoyenne, $iMaximum, $iMaximum, self::SCATTER_COLOR_DOWN, self::SCATTER_COLOR_UP), self::SCATTER_COLOR_OUTLINE, array($sLabel, $iPosition));
+
+                    // Ajoute le label et ses coordonnées (spécifique à traitements unitaires)
+                    $aLabels[] = array($sLabel, $iPosition);
+                } else {
+                    $aData["{$aDb['grain']}"][] = round($aDb['value'], 2);
+
+                    // Si le label n'est pas déja présent : on l'ajoute (pour eviter les doublons)	
+                    if (!in_array($sLabel, $aLabels))
+                        $aLabels[] = $sLabel;
+                }
+                $i++;
+            }
+
+            // Supprime les clés et garde uniquement les valeurs du tableau de données converti
+            $aData = array_values($aData);
+
+            // Ajoute les données formatées des stats, les labels, la légende et la palette de couleurs dans le tableau json
+            $this->aStats[self::GRAPH_DATA] = $aData;
+            $this->aStats[self::GRAPH_KEY] = $arrKeys;
+            if (!empty($aColors))
+                $this->aStats[self::GRAPH_COLORS] = array_values($aColors); // Garde les valeurs mais pas les clés
+            if (!empty($aLabels))
+                $this->aStats[self::GRAPH_LABELS] = $aLabels;
+        }
+    }
+
+    /*     * *********************************
+      Retourne un texte formaté correspondant à la période des stats et à la langue (ex: semaine = semaine du xx au xx)
+     * ********************************* */
+
+    private function getPeriodText() {
+        // Texte correspondant au type de période sélectionné (jour, mois....)
+        $sPeriodText = 'PERIOD_TEXT_' . strtoupper($this->per_type) . '_STATISTICS_STATISTICS';
+
+        // Formate la date suivant $this->aProperties['date_format'] / sinon suivant la langue
+        $oMyDate = new DateTime($this->per_date);
+        if (!empty($this->aProperties['date_format']))
+            $date_format = $this->aProperties['date_format'];
+        else {
+            if ($this->aProperties["language"] == 'fr')
+                $date_format = 'd/m/Y';
+            else
+                $date_format = 'm/d/Y';
+        }
+        $sPerDate = $oMyDate->format($date_format);
+
+        // Formatage du texte suivant la période
+
+        $this->aStats['translation_values'] = array();
+
+        switch ($this->per_type) {
+            // Période = jour
+            case 'per_day':
+                $sPeriodText = str_replace('[sPerDate]', $sPerDate, $sPeriodText); // Date au format
+                $this->aStats['translation_values']['sPerDate'] = $sPerDate;
+                break;
+
+            // Période = semaine
+            case 'per_week';
+                $oMyDate = $oMyDate->add(date_interval_create_from_date_string('6 days')); // Ajoute 1 semaine à la date de début '1 week'
+                $sEndPerDate = $oMyDate->format($date_format);
+                $sPeriodText = str_replace('[sEndPerDate]', $sEndPerDate, $sPeriodText);
+                $sPeriodText = str_replace('[sPerDate]', $sPerDate, $sPeriodText);
+                $this->aStats['translation_values']['sPerDate'] = $sPerDate;
+                $this->aStats['translation_values']['sEndPerDate'] = $sEndPerDate;
+                break;
+
+            // Période = mois
+            case 'per_month':
+                $sPeriodText = $this->aMonthNames[$oMyDate->format('n')] . ' ' . $oMyDate->format('Y'); // Nom du mois + l'année sur 4 chiffres;
+                break;
+
+            // Période = année
+            case 'per_year':
+                $sPerYear = $oMyDate->format('Y'); // L'année sur 4 chiffres
+                $sPeriodText = str_replace('[sPerYear]', $sPerYear, $sPeriodText);
+                $this->aStats['translation_values']['sPerYear'] = $sPerYear;
+                break;
+        }
+
+        return $sPeriodText;
+    }
+
+    /*     * ********************************
+      Configure le statut et un message dans le tableau json
+      $iStatus : Succés, erreur...
+      $sMessage : Message correspondant au statut
+     * ********************************* */
+
+    private function setStatus($iStatus, $sMessage = '') {
+        $this->aStats['status'] = $iStatus;
+        $this->aStats['message'] = $sMessage;
+    }
+
+}
+
+/* * ********************************
+  Fermeture de la connexion à la bdd
+ * ********************************* */
+
+function __destruct() {
+    $this->oBd->quitter();
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Stats.class.sql.inc b/src/module_gtf/web_service/ws/Stats.class.sql.inc
new file mode 100755
index 0000000000000000000000000000000000000000..7ea1293d11b3b2a75eb2cb269abf07ba9ce14234
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Stats.class.sql.inc
@@ -0,0 +1,24 @@
+<?php
+
+// Requête générique de données sur la période et par granularité
+$aSql['pgsql']['stats']['normal'] = "SELECT grain,pc.aSqlLegendGroupBy[this->gb_id] as legend,COALESCE(dynamic.value, 0::integer) AS value FROM ( SELECT static.grain,xuser.aSqlLegendGroupBy[this->gb_id] FROM (SELECT aSqlPerDateGenerateSeries[this->per_type] as grain) as static, (SELECT distinct aSqlLegendGroupBy[this->gb_id] FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') ORDER BY aSqlLegendGroupBy[this->gb_id] LIMIT [max_elements]) as xuser ) as pc left join (SELECT date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date) as jour,job.aSqlLegendGroupBy[this->gb_id] ,aSqlUnit[this->unit_id] as value FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') GROUP BY date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date),aSqlLegendGroupBy[this->gb_id] ) as dynamic ON pc.grain=dynamic.jour AND pc.aSqlLegendGroupBy[this->gb_id]=dynamic.aSqlLegendGroupBy[this->gb_id] order by pc.grain, legend";
+
+// Idem requête 'normal' + récupération des traductions (ex: état des traitements : traité, non traité...)
+$aSql['pgsql']['stats']['traductions'] = "SELECT grain,translation as legend,COALESCE(dynamic.value, 0::integer) AS value,pc.aSqlLegendGroupBy[this->gb_id] as legend_id FROM ( SELECT static.grain,xuser.aSqlLegendGroupBy[this->gb_id] FROM (SELECT aSqlPerDateGenerateSeries[this->per_type] as grain) as static, (SELECT distinct aSqlLegendGroupBy[this->gb_id] FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') ORDER BY aSqlLegendGroupBy[this->gb_id] LIMIT [max_elements]) as xuser ) as pc left join (SELECT date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date) as jour,job.aSqlLegendGroupBy[this->gb_id] ,aSqlUnit[this->unit_id] as value FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') GROUP BY date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date),aSqlLegendGroupBy[this->gb_id] ) as dynamic ON pc.grain=dynamic.jour AND pc.aSqlLegendGroupBy[this->gb_id]=dynamic.aSqlLegendGroupBy[this->gb_id] left join [sSchemaGtf].rt_order_status ON pc.order_status_id=rt_order_status.order_status_id left join [sSchemaFramework].vm_translation ON rt_order_status.label_id=vm_translation.translation_id WHERE vm_translation.lang='properties['language']' order by pc.grain, legend";
+
+// Requête spécifique de données limités à un regroupement de x valeurs (ex: 5 utilisateurs max + 'SQL_MAX_ELEMENTS_OTHERS')
+$aSql['pgsql']['stats']['max_elements'] = "SELECT grain, legend, value FROM ( SELECT grain,pc.aSqlLegendGroupBy[this->gb_id]::text as legend,COALESCE(dynamic.value, 0::integer) AS value FROM ( SELECT static.grain,xuser.aSqlLegendGroupBy[this->gb_id] FROM (SELECT aSqlPerDateGenerateSeries[this->per_type] as grain) as static, ( SELECT aSqlLegendGroupBy[this->gb_id] FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') group by  aSqlLegendGroupBy[this->gb_id] order by sum(length_sec) desc limit [max_elements] ) as xuser ) as pc left join (SELECT date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date) as jour,job.aSqlLegendGroupBy[this->gb_id] ,aSqlUnit[this->unit_id] as value FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') GROUP BY date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date),aSqlLegendGroupBy[this->gb_id] ) as dynamic ON pc.grain=dynamic.jour AND pc.aSqlLegendGroupBy[this->gb_id]=dynamic.aSqlLegendGroupBy[this->gb_id] ) p1 union SELECT grain,'SQL_MAX_ELEMENTS_OTHERS' as legend,COALESCE(sum(dynamic.value), 0::integer) AS value FROM ( SELECT static.grain,xuser2.aSqlLegendGroupBy[this->gb_id] FROM (SELECT aSqlPerDateGenerateSeries[this->per_type] as grain) as static, ( SELECT aSqlLegendGroupBy[this->gb_id] FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') group by  aSqlLegendGroupBy[this->gb_id] order by sum(length_sec) desc offset [max_elements] ) as xuser2 ) as pc2 left join (SELECT date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date) as jour,job.aSqlLegendGroupBy[this->gb_id] ,aSqlUnit[this->unit_id] as value FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') GROUP BY date_part('aSqlGranularityOrderBy[this->per_type]', job.execution_date),aSqlLegendGroupBy[this->gb_id] ) as dynamic ON pc2.grain=dynamic.jour AND pc2.aSqlLegendGroupBy[this->gb_id]=dynamic.aSqlLegendGroupBy[this->gb_id] group by pc2.grain order by grain, legend";
+
+// Durée des traitements unitaires
+$aSql['pgsql']['stats']['traitements_unitaires'] = "SELECT distinct workspace as grain,min(length_sec)aSqlUnitVarUjl[this->unit_id] as minimum, avg(length_sec)aSqlUnitVarUjl[this->unit_id] as moyenne, max(length_sec)aSqlUnitVarUjl[this->unit_id] as maximum FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') group by grain ORDER BY moyenne DESC";
+
+// Requête générique pour la répartition (2eme graphique)
+//	$aSql['pgsql']['generic'][1] = "SELECT distinct job.aSqlLegendGroupBy[this->gb_id] as legend,(0) as grain,sum(job.length_sec)::integer as value FROM [sSchemaGtf].job WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') GROUP BY job.aSqlLegendGroupBy[this->gb_id] ORDER BY legend desc LIMIT [max_elements]";
+
+/*
+  // Exception : répartition (2eme graphique) : Critère = état --> récupération des traductions
+  $aSql['pgsql']['gb_status'][1] = "SELECT distinct (0) as grain,vm_translation.translation as legend,sum(job.length_sec)::integer as value FROM [sSchemaGtf].job,[sSchemaGtf].rt_order_status,[sSchemaGtf].vm_translation
+  WHERE job.execution_date >= DATE([per_date]) AND job.execution_date < (DATE([per_date]) + interval 'aSqlIntervalLength[this->per_type]') AND job.order_status_id=rt_order_status.order_status_id AND rt_order_status.label_id=vm_translation.translation_id AND vm_translation.lang='properties['lang']'
+  GROUP BY legend ORDER BY value desc LIMIT [max_elements]";
+ */
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Subscription.class.inc b/src/module_gtf/web_service/ws/Subscription.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..c07bd07ea137b33320dd010e2b884e3b7bf78bcd
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Subscription.class.inc
@@ -0,0 +1,93 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Subscription.class.inc
+ * \class Subscription
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Subscription php class
+ *
+ * This class defines operation for one Subscription
+ * 
+ */
+class Subscription extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_id', 'priority_id', 'workspace_id', 'workspace_key', 'enabled', 'label_name', 'order_status_id', 'user_id', 'login', 'period_id', 'order_period_libelle', 'wk_params', 'result_url', $this->getDateSelectedFields('order_date', 'yeartosecond'), 'log_url', $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'attempt', 'email_notifications', 'email_option_id', 'deleted', 'gtf_engine_id', 'notification');
+    }
+
+    /**
+     * @SWG\Get(path="/subscriptions/{order_id}", 
+     *   tags={"Subscriptions"},
+     *   summary="Get Subscription",
+     *   description="Request to get Subscription by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="subscription id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/subscriptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about subscription
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_subscription", "order_id");
+    }
+
+    /**
+     * delete an subscription
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'v_subscription', 'order_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['order_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Subscriptions.class.inc b/src/module_gtf/web_service/ws/Subscriptions.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..74de1e181910b9d28cc1a2554eaf2866d1eca4de
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Subscriptions.class.inc
@@ -0,0 +1,265 @@
+<?php
+
+/**
+ * \file Subscriptions.class.inc
+ * \class Subscriptions
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Subscriptions php class
+ *
+ * This class defines Rest Api to Gtf subscriptions
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Subscription.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Subscriptions extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/subscriptions",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/subscriptions")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Subscriptions",
+     *   description="Operations about Subscriptions"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_id', 'priority_id', 'workspace_id', 'workspace_key', 'enabled', 'label_name', 'order_status_id', 'user_id', 'login', 'period_id', 'order_period_libelle', 'wk_params', 'result_url', $this->getDateSelectedFields('order_date', 'yeartosecond'), 'log_url', $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'attempt', 'email_notifications', 'email_option_id', 'deleted', 'gtf_engine_id', 'notification');
+    }
+
+    /**
+     * @SWG\Get(path="/subscriptions",
+     *   tags={"Subscriptions"},
+     *   summary="Get Subscriptions",
+     *   description="Request to get Subscriptions",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of subscriptioning fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/subscriptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Subscriptions
+     * @return  Subscriptions
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_subscription", "order_id");
+        return $aReturn['sMessage'];
+    }
+
+    /*
+     * function getIdEngine
+     * \brief function that assigns each request processing an engine number. This engine number will be defined by the algorithm associated to the treatment.
+     * \param $iSubscriptionId Identifier of the request
+     * \param $sTable Name of the table.
+     * \param $iWorkspaceId Identifier of the treatment.
+     */
+
+    function getIdEngine($iSubscriptionId, $sTable, $iWorkspaceId) {
+        require $this->sRessourcesFile;
+        // Récupération de l'algorithme
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['iWorkspaceId'] = array('value' => $iWorkspaceId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesId'], $aParams);
+        $this->oConnection->oBd->cleanMessage();
+        $aEnginesId = array();
+        while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+            $aEnginesId[] = $oEnginesId->gtf_engine_id;
+        $this->oConnection->oBd->fermeResultat();
+
+        if (count($aEnginesId) == 0) {
+            // Le tag correspondant n'a pas été trouvé, nous allons cherché la liste des moteur ayant comme tag |default|
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesDefaultTag'], $aParams);
+            $this->oConnection->oBd->cleanMessage();
+            $aEnginesId = array();
+            while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+                $aEnginesId[] = $oEnginesId->gtf_engine_id;
+            $this->oConnection->oBd->fermeResultat();
+            if (count($aEnginesId) > 0)
+                writeToErrorLog(str_replace('[iSubscriptionId]', $iSubscriptionId, ERROR_0006));
+        }
+        // Si la requête est en erreur ou Si aucun moteur n'a été trouvé.
+        if ($this->oConnection->oBd->erreurRencontree || count($aEnginesId) == 0) {
+            $aGtfEngineList = explode(",", $this->aProperties["engines_list"]);
+            // Aucun tag ne correspond
+            $iEngine = $aGtfEngineList[0];
+            if ($iEngine != "")
+                writeToErrorLog(str_replace('[aGtfEngineList[0]]', $iEngine, str_replace('[iSubscriptionId]', $iSubscriptionId, ERROR_0007)));
+        }else {
+            $iEngine = $this->returnEngineId($iSubscriptionId, $aEnginesId);
+        }
+
+        if ($iEngine == "") {
+            writeToErrorLog(str_replace('[iSubscriptionId]', $iSubscriptionId, ERROR_0008));
+            $this->aValues['gtf_engine_id'] = 1;
+        } else {
+            $this->aValues['gtf_engine_id'] = $iEngine;
+        }
+    }
+
+    /*
+     * function returnEngineId
+     * \param $oAlgoIndex Object of the algorithm.
+     * \param $aGtfEngineList Array that corresponds to the list of available engines numbers.
+     * \return Returns the engine number.
+     */
+
+    function returnEngineId($iSubscriptionId, $aEnginesId) {
+        $iEngine = "";
+        if (count($aEnginesId) > 0) {
+            $sRowCount = $iSubscriptionId % count($aEnginesId);
+            $iEngine = $aEnginesId[$sRowCount];
+        }
+        return $iEngine;
+    }
+
+    /**
+     * @SWG\Delete(path="/subscriptions/",
+     *   tags={"Subscriptions"},
+     *   summary="delete Subscription",
+     *   description="Request to delete Subscription",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the subscriptions",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/subscriptions")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/subscriptions/{order_id}",
+     *   tags={"Subscriptions"},
+     *   summary="delete Subscription",
+     *   description="Request to delete Subscription",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the order",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/subscriptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete subscription
+     * @return id of subscription deleted or error object if a subscription is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'v_subscription', 'order_id');
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SupervisionStatus.class.inc b/src/module_gtf/web_service/ws/SupervisionStatus.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..396a82695194a999f5727ffd4cedd5e3c07f32d2
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SupervisionStatus.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file SupervisionStatus.class.inc
+ * \class SupervisionStatus
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the SupervisionStatus php class
+ *
+ * This class defines operation for one SupervisionStatus
+ * 
+ */
+class SupervisionStatute extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('nb_order_id', 'filter', 'table_name');
+    }
+
+    /**
+     * get informations about supervisionstatus
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_supervision_status", "table_name");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SupervisionStatutes.class.inc b/src/module_gtf/web_service/ws/SupervisionStatutes.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..ad0ee6f9992201369ef8b1e4cdfa4659567431d7
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SupervisionStatutes.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file SupervisionStatutes.class.inc
+ * \class SupervisionStatutes
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the SupervisionStatutes php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'SupervisionStatus.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class SupervisionStatutes extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/supervisionstatutes",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/supervisionstatutes")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="SupervisionStatutes",
+     *   description="Operations about SupervisionStatutes"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('nb_order_id', 'filter', 'table_name');
+    }
+
+    /**
+     * @SWG\Get(path="/supervisionstatutes",
+     *   tags={"SupervisionStatutes"},
+     *   summary="Get SupervisionStatutes",
+     *   description="Request to get SupervisionStatutes",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/supervisionstatutes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get SupervisionStatutes
+     * @return  SupervisionStatutes
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_supervision_status", "table_name");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Survey.class.inc b/src/module_gtf/web_service/ws/Survey.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..7d4a7f4ae3091cab00c29ed0ec86099629447f22
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Survey.class.inc
@@ -0,0 +1,92 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Survey.class.inc
+ * \class Survey
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Survey php class
+ *
+ * This class defines operation for one Survey
+ * 
+ */
+class Survey extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_id', 'workspace_key', 'priority_id', 'workspace_id', 'enabled', 'label_name', 'order_status_id', 'user_id', 'login', 'period_id', 'order_period_libelle', 'wk_params', 'result_url', $this->getDateSelectedFields('order_date', 'yeartosecond'), 'log_url', $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'attempt', 'email_notifications', 'email_option_id', 'deleted', 'gtf_engine_id', 'survey_id', 'condition', 'warehouse_name', 'notification', 'survey_name');
+    }
+
+    /**
+     * @SWG\Get(path="/surveys/{order_id}", 
+     *   tags={"Surveys"},
+     *   summary="Get Survey",
+     *   description="Request to get Survey by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="order id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/surveys")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about survey
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_survey", "order_id");
+    }
+
+    /**
+     * delete an survey
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'v_survey', 'order_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['order_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SurveyType.class.inc b/src/module_gtf/web_service/ws/SurveyType.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..a12d7107d71ac2889a2faf41ecbb6bad52a1e29f
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SurveyType.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file SurveyType.class.inc
+ * \class SurveyType
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the SurveyType php class
+ *
+ * This class defines operation for one SurveyType
+ * 
+ */
+class SurveyType extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('survey_id', 'survey_label');
+    }
+
+    /**
+     * get informations about surveytype
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_survey_type", "survey_id");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/SurveyTypes.class.inc b/src/module_gtf/web_service/ws/SurveyTypes.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..d72bd10480a882124b1c9979b1327554dc307de3
--- /dev/null
+++ b/src/module_gtf/web_service/ws/SurveyTypes.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file SurveyTypes.class.inc
+ * \class SurveyTypes
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the SurveyTypes php class
+ *
+ * This class defines Rest Api to Gtf order statutes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'SurveyType.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class SurveyTypes extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/surveytypes",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/surveytypes")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="SurveyTypes",
+     *   description="Operations about SurveyTypes"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('survey_id', 'survey_label');
+    }
+
+    /**
+     * @SWG\Get(path="/surveytypes",
+     *   tags={"SurveyTypes"},
+     *   summary="Get SurveyTypes",
+     *   description="Request to get SurveyTypes",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json",  "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/surveytypes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get SurveyTypes
+     * @return  SurveyTypes
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_survey_type", "survey_id");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Surveys.class.inc b/src/module_gtf/web_service/ws/Surveys.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..52657a5f0f7d0dc9f58ed4c6ab10f4b22cafdc11
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Surveys.class.inc
@@ -0,0 +1,197 @@
+<?php
+
+/**
+ * \file Surveys.class.inc
+ * \class Surveys
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Surveys php class
+ *
+ * This class defines Rest Api to Gtf surveys
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Survey.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Surveys extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/surveys",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/surveys")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Surveys",
+     *   description="Operations about Surveys"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_id', 'workspace_key', 'priority_id', 'workspace_id', 'enabled', 'label_name', 'order_status_id', 'user_id', 'login', 'period_id', 'order_period_libelle', 'wk_params', 'result_url', $this->getDateSelectedFields('order_date', 'yeartosecond'), 'log_url', $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'attempt', 'email_notifications', 'email_option_id', 'deleted', 'gtf_engine_id', 'survey_id', 'condition', 'warehouse_name', 'notification', 'survey_name', "name || '/' || condition as full_condition");
+    }
+
+    /**
+     * @SWG\Get(path="/surveys",
+     *   tags={"Surveys"},
+     *   summary="Get Surveys",
+     *   description="Request to get Surveys",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of surveying fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/surveys")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Surveys
+     * @return  Surveys
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_survey", "order_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Delete(path="/surveys/",
+     *   tags={"Surveys"},
+     *   summary="delete Survey",
+     *   description="Request to delete Survey",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the surveys",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/surveys")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/surveys/{order_id}",
+     *   tags={"Surveys"},
+     *   summary="delete Survey",
+     *   description="Request to delete Survey",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the order",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/surveys")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete survey
+     * @return id of survey deleted or error object if a survey is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'v_survey', 'order_id');
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Tag.class.inc b/src/module_gtf/web_service/ws/Tag.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..5278084891136b208a99241dd83877b54edf9799
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Tag.class.inc
@@ -0,0 +1,44 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Tag.class.inc
+ * \class Tag
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Tag php class
+ *
+ * This class defines operation for one Tag
+ * 
+ */
+class Tag extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('tag');
+    }
+
+    /**
+     * get informations about tag
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "rt_tag", "tag");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Tags.class.inc b/src/module_gtf/web_service/ws/Tags.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..d4309a0a8b9cc2ba0cebba647508af6b513fc285
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Tags.class.inc
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * \file Tags.class.inc
+ * \class Tags
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Tags php class
+ *
+ * This class defines Rest Api to Gtf tags
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Tag.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class Tags extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/tags",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/tags")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Tags",
+     *   description="Operations about Tags"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('tag');
+    }
+
+    /**
+     * @SWG\Get(path="/tags",
+     *   tags={"Tags"},
+     *   summary="Get Tags",
+     *   description="Request to get Tags",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/tags")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Tags
+     * @return  Tags
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "rt_tag", "tag");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserInboxe.class.inc b/src/module_gtf/web_service/ws/UserInboxe.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..5f426e42551b107cbf86925bb0860dad2ae7939e
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserInboxe.class.inc
@@ -0,0 +1,87 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Inbox.class.inc
+ * \class Inboxe
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Inboxe php class
+ *
+ * This class defines operation for one Inbox
+ * 
+ */
+class UserInboxe extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('inbox_id', 'name');
+    }
+
+    /**
+     * @SWG\Get(path="/userinboxes/{inbox_id}", 
+     *   tags={"Inboxes"},
+     *   summary="Get Inboxe",
+     *   description="Request to get Inbox by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="inbox_id",
+     *     in="path",
+     *     description="inbox id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="form",
+     *     in="query",
+     *     description="form to load",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userinboxes")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about inbox
+     */
+    function GET() {
+        require $this->sRessourcesFile;
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_inbox", "inbox_id");
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserInboxes.class.inc b/src/module_gtf/web_service/ws/UserInboxes.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..93cbab60f7c83f0eb9b3c01984ee196752a8d7a9
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserInboxes.class.inc
@@ -0,0 +1,128 @@
+<?php
+
+/**
+ * \file Inboxes.class.inc
+ * \class Inboxes
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Inboxes php class
+ *
+ * This class defines Rest Api to Gtf Inboxes
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once 'UserInboxe.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/phpUtil.inc';
+
+class UserInboxes extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/userinboxes",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/userinboxes")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Inboxes",
+     *   description="Operations about Inboxes"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        $this->aValues = $aValues;
+        $this->aPath = $aPath;
+        $this->aProperties = $properties;
+        $this->aValues['getGroup'] = true;
+        $this->oConnection = new Connection($this->aValues, $this->aProperties);
+        $this->aSelectedFields = Array('inbox_id', 'alias', 'name');
+    }
+
+    /**
+     * @SWG\Get(path="/userinboxes",
+     *   tags={"Inboxes"},
+     *   summary="Get User Inboxes",
+     *   description="Request to get Inboxes",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userworkspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Workspaces
+     * @return  Workspaces
+     */
+    function GET() {
+        $sesGroup = $this->oConnection->sesGroup;
+        if (!empty($this->aValues['filter'])) {
+            $oFilter = json_decode($this->aValues['filter']);
+            $oFilter->operators[] = json_decode('{"column": "group_id", "compare_operator": "IN", "value": [' . $sesGroup . ']}');
+            $this->aValues['filter'] = json_encode($oFilter);
+        } else
+            $this->aValues['filter'] = '{"relation": "AND", "operators": [{"column": "group_id", "compare_operator": "IN", "value": [' . $sesGroup . ']}]}';
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_inbox", "inbox_id");
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserOrder.class.inc b/src/module_gtf/web_service/ws/UserOrder.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..8b80abfff0cb81b2fa0c4ef3c591d91f8c845fb3
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserOrder.class.inc
@@ -0,0 +1,92 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file UserOrder.class.inc
+ * \class UserOrder
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the UserOrder php class
+ *
+ * This class defines operation for one UserOrder
+ * 
+ */
+class UserOrder extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("order_id", "priority_id", "workspace_key", "workspace_id", "name", "order_status_id", "user_id", "wk_params", "result_url", $this->getDateSelectedFields('order_date', 'yeartosecond'), "log_url", $this->getDateSelectedFields('execution_date', 'yeartosecond'), "attempt", "email_notifications", "email_option_id", "deleted", "gtf_engine_id", "length_sec", "workspace_name", $this->getDateSelectedFields('minexecdate', 'yeartosecond'));
+    }
+
+    /**
+     * @SWG\Get(path="/userorders/{order_id}", 
+     *   tags={"UserOrders"},
+     *   summary="Get UserOrder",
+     *   description="Request to get UserOrder by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="userorder id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userorders")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about userorder
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_user_order", "order_id");
+    }
+
+    /**
+     * delete an userorder
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'v_user_order', 'order_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['order_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
diff --git a/src/module_gtf/web_service/ws/UserOrders.class.inc b/src/module_gtf/web_service/ws/UserOrders.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..b0919bb3ecfaf61b8412fe4a3594420d092dcbb5
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserOrders.class.inc
@@ -0,0 +1,432 @@
+<?php
+
+/**
+ * \file UserOrders.class.inc
+ * \class UserOrders
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the UserOrders php class
+ *
+ * This class defines Rest Api to Gtf userorders
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'UserOrder.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/ws/vitis/PrivateToken.class.inc';
+
+class UserOrders extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/userorders",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/userorders")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="UserOrders",
+     *   description="Operations about UserOrders"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array("order_id", "priority_id", "workspace_key", "workspace_id", "name", "order_status_id", "user_id", "wk_params", "result_url", $this->getDateSelectedFields('order_date', 'yeartosecond'), "log_url", $this->getDateSelectedFields('execution_date', 'yeartosecond'), "attempt", "email_notifications", "email_option_id", "deleted", "gtf_engine_id", "length_sec", "workspace_name", "email_option_label", "order_status_label", $this->getDateSelectedFields('minexecdate', 'yeartosecond'));
+    }
+
+    /**
+     * @SWG\Get(path="/userorders",
+     *   tags={"UserOrders"},
+     *   summary="Get UserOrders",
+     *   description="Request to get UserOrders",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json",  "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of ordering fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userorders")
+     *     )
+     *  )
+     */
+
+    /**
+     * get UserOrders
+     * @return  UserOrders
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_user_order", "order_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/userorders",
+     *   tags={"UserOrders"},
+     *   summary="Add UserOrder",
+     *   description="Request to add userorder",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json",  "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_date",
+     *     in="formData",
+     *     description="userorder date",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="formData",
+     *     description="workspace id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="priority_id",
+     *     in="formData",
+     *     description="priority id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_option_id",
+     *     in="formData",
+     *     description="email option id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="wk_params",
+     *     in="formData",
+     *     description="workspace parameters",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userorders")
+     *     ),
+     * 
+     *  )
+     */
+
+    /**
+     * insert user's order
+     * @return id of the user's userorder created
+     */
+    function POST() {
+        $this->aValues['order_date'] = gmdate('Y-m-d H:i:s');
+        $this->aValues['priority_id'] = 1;
+        if (!empty($this->aValues['minexecdate']))
+            $this->aValues['minexecdate'] = gmdate('Y-m-d H:i:00', date_timestamp_get(date_create_from_format('d/m/Y H:i', $this->aValues['minexecdate'])));
+        else
+            $this->aValues['minexecdate'] = null;
+        if (!empty($_SESSION['ses_user_id']))
+            $this->aValues['user_id'] = $_SESSION['ses_user_id'];
+        if (!empty($this->aValues['email_notifications']))
+            $this->aValues['email_notifications'] = str_replace(chr(13) . chr(10), ";", $this->aValues['email_notifications']);
+        // Si token public -> id du compte public.
+        if ($this->aValues['token'] == $this->aProperties['public_token']) {
+            $aPrivateTokenValues = $this->aValues;
+            $aPrivateTokenValues['user'] = $_SESSION['ses_Login'];
+            $aPrivateTokenValues['password'] = $this->oConnection->oBd->mdp;
+            $oPrivateToken = new PrivateToken($this->aPath, $aPrivateTokenValues, $this->aProperties, $this->oConnection);
+            $oPrivateToken->POST();
+            $this->aValues['user_id'] = $oPrivateToken->aFields['user_id'];
+            // Teste si le compte 'public' a un des groupes qui est lié au traitement.
+            require $this->sRessourcesFile;
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['workspace_id'] = array('value' => $this->aValues['workspace_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['checkUserWorkspace'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            } else {
+                if ($this->oConnection->oBd->nombreLigne($oPDOresult) == 0) {
+                    $oError = new VitisError(1, "ERROR_WORKSPACE_NOT_LINKED_USER_GROUPS_WIDGET");
+                    $aXmlRacineAttribute['status'] = 0;
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    return $sMessage;
+                }
+            }
+        }
+        // Captcha ?
+        if (!empty($this->aValues['captcha_response'])) {
+            $sResponse = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $this->aProperties['private_captcha_key'] . "&response=" . $this->aValues['captcha_response']);
+            $oResponse = json_decode($sResponse, true);
+            if (empty($oResponse) || !$oResponse['success']) {
+                $oError = new VitisError(1, "ERROR_CAPTCHA_VALIDATION_WIDGET");
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            }
+        }
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'v_user_order', $this->aProperties['schema_gtf'] . '.seq_order', 'order_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oUserOrder = new UserOrder($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oUserOrder->GET();
+            // Fichiers à uploader ?
+            if (!empty($_FILES)) {
+                foreach ($_FILES as $sName => $aFile) {
+
+                    $sDirName = $this->aProperties['upload_dir'] . "/" . $this->aValues['upload_directory'];
+                    if (!is_dir($sDirName))
+                        mkdir($sDirName, 0777, true);
+                    uploadFile($sName, "", $sDirName . "/" . $aFile['name'], $aFile['size'] + 1);
+                }
+            }
+            // Met à jour le n° du moteur.
+            $this->getIdEngine($this->aValues["my_vitis_id"], 'userorder', $this->aValues['workspace_id']);
+            require $this->sRessourcesFile;
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['order_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+            $aParams['gtf_engine_id'] = array('value' => $this->aValues['gtf_engine_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['setUserOrderEngineId'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        /*
+          if ($aReturn['sStatus'] == 1){
+          $oUserOrder = new UserOrder($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+          $oUserOrder->GET();
+          $this->getIdEngine($this->aValues["my_vitis_id"], 'userorder', $this->aValues['workspace_id']);
+          // Met à jour le n° du moteur.
+          require $this->sRessourcesFile;
+          $sSql = $aSql['setUserOrderEngineId'];
+          $sSql = str_replace("[sSchemaGtf]", $this->aProperties['schema_gtf'], $sSql);
+          $sSql = str_replace("[order_id]", $this->aValues["my_vitis_id"], $sSql);
+          $sSql = str_replace("[gtf_engine_id]", $this->aValues['gtf_engine_id'], $sSql);
+          $resultat = $this->oConnection->oBd->execute ($sSql);
+          if ($this->oConnection->oBd->enErreur()) {
+          $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+          $aXmlRacineAttribute['status'] = 0;
+          $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+          }
+          else {
+          $aXmlRacineAttribute['status'] = 1;
+          $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+          }
+          }else{
+          $sMessage = $aReturn['sMessage'];
+          }
+         */
+        return $sMessage;
+    }
+
+    /*
+     * function getIdEngine
+     * \brief function that assigns each request processing an engine number. This engine number will be defined by the algorithm associated to the treatment.
+     * \param $iUserOrderId Identifier of the request
+     * \param $sTable Name of the table.
+     * \param $iWorkspaceId Identifier of the treatment.
+     */
+
+    function getIdEngine($iUserOrderId, $sTable, $iWorkspaceId) {
+        require $this->sRessourcesFile;
+        // Récupération de l'algorithme
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['iWorkspaceId'] = array('value' => $iWorkspaceId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesId'], $aParams);
+        $this->oConnection->oBd->cleanMessage();
+        $aEnginesId = array();
+        while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+            $aEnginesId[] = $oEnginesId->gtf_engine_id;
+        $this->oConnection->oBd->fermeResultat();
+
+        if (count($aEnginesId) == 0) {
+            // Le tag correspondant n'a pas été trouvé, nous allons cherché la liste des moteur ayant comme tag |default|
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesDefaultTag'], $aParams);
+            $this->oConnection->oBd->cleanMessage();
+            $aEnginesId = array();
+            while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+                $aEnginesId[] = $oEnginesId->gtf_engine_id;
+            $this->oConnection->oBd->fermeResultat();
+            if (count($aEnginesId) > 0)
+                writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0006));
+        }
+        // Si la requête est en erreur ou Si aucun moteur n'a été trouvé.
+        if ($this->oConnection->oBd->erreurRencontree || count($aEnginesId) == 0) {
+            $aGtfEngineList = explode(",", $this->aProperties["engines_list"]);
+            // Aucun tag ne correspond
+            $iEngine = $aGtfEngineList[0];
+            if ($iEngine != "")
+                writeToErrorLog(str_replace('[aGtfEngineList[0]]', $iEngine, str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0007)));
+        }else {
+            $iEngine = $this->returnEngineId($iUserOrderId, $aEnginesId);
+        }
+
+        if ($iEngine == "") {
+            writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0008));
+            $this->aValues['gtf_engine_id'] = 1;
+        } else {
+            $this->aValues['gtf_engine_id'] = $iEngine;
+        }
+    }
+
+    /*
+     * function returnEngineId
+     * \param $oAlgoIndex Object of the algorithm.
+     * \param $aGtfEngineList Array that corresponds to the list of available engines numbers.
+     * \return Returns the engine number.
+     */
+
+    function returnEngineId($iUserOrderId, $aEnginesId) {
+        $iEngine = "";
+        if (count($aEnginesId) > 0) {
+            $sRowCount = $iUserOrderId % count($aEnginesId);
+            $iEngine = $aEnginesId[$sRowCount];
+        }
+        return $iEngine;
+    }
+
+    /**
+     * @SWG\Delete(path="/userorders/",
+     *   tags={"UserOrders"},
+     *   summary="delete UserOrder",
+     *   description="Request to delete UserOrder",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json",  "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="userorder token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the userorders",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userorders")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/userorders/{order_id}",
+     *   tags={"UserOrders"},
+     *   summary="delete UserOrder",
+     *   description="Request to delete UserOrder",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json",  "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="userorder token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the userorder",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userorders")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete userorder
+     * @return id of userorder deleted or error object if a userorder is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'v_user_order', 'order_id');
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
diff --git a/src/module_gtf/web_service/ws/UserSubscription.class.inc b/src/module_gtf/web_service/ws/UserSubscription.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..6e0b5b45823df8c869a739839bbaab1afbc9c171
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserSubscription.class.inc
@@ -0,0 +1,92 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file UserSubscription.class.inc
+ * \class UserSubscription
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the UserSubscription php class
+ *
+ * This class defines operation for one UserSubscription
+ * 
+ */
+class UserSubscription extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_id', 'workspace_id', 'workspace_key', 'enabled', 'label_name', 'order_status_id', 'user_id', 'period_id', $this->getDateSelectedFields('order_date', 'yeartosecond'), $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'wk_params', 'result_url', 'email_option_id', 'email_notifications', 'gtf_engine_id', 'workspace_name', 'notification', 'order_period_libelle');
+    }
+
+    /**
+     * @SWG\Get(path="/usersubscriptions/{order_id}",
+     *   tags={"UserSubscriptions"},
+     *   summary="Get UserSubscription",
+     *   description="Request to get UserSubscription by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="order id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersubscriptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about usersubscription
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_user_subscription", "order_id");
+    }
+
+    /**
+     * delete an usersubscription
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'v_user_subscription', 'order_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['order_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserSubscriptions.class.inc b/src/module_gtf/web_service/ws/UserSubscriptions.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e70b529f49dc172522680880274ec5b1ad4105ba
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserSubscriptions.class.inc
@@ -0,0 +1,511 @@
+<?php
+
+/**
+ * \file UserSubscriptions.class.inc
+ * \class UserSubscriptions
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the UserSubscriptions php class
+ *
+ * This class defines Rest Api to Gtf usersubscriptions
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'UserSubscription.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class UserSubscriptions extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/usersubscriptions",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/usersubscriptions")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="UserSubscriptions",
+     *   description="Operations about UserSubscriptions"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_id', 'workspace_id', 'workspace_key', 'enabled', 'label_name', 'order_status_id', 'user_id', 'period_id', $this->getDateSelectedFields('order_date', 'yeartosecond'), $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'wk_params', 'result_url', 'email_option_id', 'email_notifications', 'gtf_engine_id', 'workspace_name', 'notification', 'order_period_libelle');
+    }
+
+    /**
+     * @SWG\Get(path="/usersubscriptions",
+     *   tags={"UserSubscriptions"},
+     *   summary="Get UserSubscriptions",
+     *   description="Request to get UserSubscriptions",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of subscriptioning fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersubscriptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * get UserSubscriptions
+     * @return  UserSubscriptions
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_user_subscription", "order_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/usersubscriptions",
+     *   tags={"UserSubscriptions"},
+     *   summary="Add UserSubscription",
+     *   description="Request to add user subscription",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json",  "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_date",
+     *     in="formData",
+     *     description="user order date",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="formData",
+     *     description="workspace id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="priority_id",
+     *     in="formData",
+     *     description="priority id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_option_id",
+     *     in="formData",
+     *     description="email option id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="user_id",
+     *     in="formData",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="wk_params",
+     *     in="formData",
+     *     description="workspace parameters",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="period_id",
+     *     in="formData",
+     *     description="period id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="formData",
+     *     description="enabled",
+     *     required=true,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersubscriptions")
+     *     ),
+     * 
+     *  )
+     */
+
+    /**
+     * insert user's subscription
+     * @return id of the user's usersubscription created
+     */
+    function POST() {
+        $this->aValues['order_date'] = gmdate('Y-m-d H:i:s');
+        $this->aValues['user_id'] = $_SESSION['ses_user_id'];
+        // Si token public -> id du compte public.
+        if ($this->aValues['token'] == $this->aProperties['public_token']) {
+            $aPrivateTokenValues = $this->aValues;
+            $aPrivateTokenValues['user'] = $_SESSION['ses_Login'];
+            $aPrivateTokenValues['password'] = $this->oConnection->oBd->mdp;
+            $oPrivateToken = new PrivateToken($this->aPath, $aPrivateTokenValues, $this->aProperties, $this->oConnection);
+            $oPrivateToken->POST();
+            // Teste si le compte 'public' a un des groupes qui est lié au traitement.
+            require $this->sRessourcesFile;
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['workspace_id'] = array('value' => $this->aValues['workspace_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['checkUserWorkspace'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            } else {
+                if ($this->oConnection->oBd->nombreLigne($oPDOresult) == 0) {
+                    $oError = new VitisError(1, "ERROR_WORKSPACE_NOT_LINKED_USER_GROUPS_WIDGET");
+                    $aXmlRacineAttribute['status'] = 0;
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    return $sMessage;
+                }
+            }
+        }
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'v_user_subscription', $this->aProperties['schema_gtf'] . '.seq_order', 'order_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oUserSubscription = new UserSubscription($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oUserSubscription->GET();
+            // Met à jour le n° du moteur.
+            $this->getIdEngine($this->aValues["my_vitis_id"], 'userorder', $this->aValues['workspace_id']);
+            require $this->sRessourcesFile;
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['order_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+            $aParams['gtf_engine_id'] = array('value' => $this->aValues['gtf_engine_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['setUserOrderEngineId'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /*
+     * function getIdEngine
+     * \brief function that assigns each request processing an engine number. This engine number will be defined by the algorithm associated to the treatment.
+     * \param $iUserOrderId Identifier of the request
+     * \param $sTable Name of the table.
+     * \param $iWorkspaceId Identifier of the treatment.
+     */
+
+    function getIdEngine($iUserOrderId, $sTable, $iWorkspaceId) {
+        require $this->sRessourcesFile;
+        // Récupération de l'algorithme
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['iWorkspaceId'] = array('value' => $iWorkspaceId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesId'], $aParams);
+        $this->oConnection->oBd->cleanMessage();
+        $aEnginesId = array();
+        while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+            $aEnginesId[] = $oEnginesId->gtf_engine_id;
+        $this->oConnection->oBd->fermeResultat();
+
+        if (count($aEnginesId) == 0) {
+            // Le tag correspondant n'a pas été trouvé, nous allons cherché la liste des moteur ayant comme tag |default|
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesDefaultTag'], $aParams);
+            $this->oConnection->oBd->cleanMessage();
+            $aEnginesId = array();
+            while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+                $aEnginesId[] = $oEnginesId->gtf_engine_id;
+            $this->oConnection->oBd->fermeResultat();
+            if (count($aEnginesId) > 0)
+                writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0006));
+        }
+        // Si la requête est en erreur ou Si aucun moteur n'a été trouvé.
+        if ($this->oConnection->oBd->erreurRencontree || count($aEnginesId) == 0) {
+            $aGtfEngineList = explode(",", $this->aProperties["engines_list"]);
+            // Aucun tag ne correspond
+            $iEngine = $aGtfEngineList[0];
+            if ($iEngine != "")
+                writeToErrorLog(str_replace('[aGtfEngineList[0]]', $iEngine, str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0007)));
+        }else {
+            $iEngine = $this->returnEngineId($iUserOrderId, $aEnginesId);
+        }
+
+        if ($iEngine == "") {
+            writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0008));
+            $this->aValues['gtf_engine_id'] = 1;
+        } else {
+            $this->aValues['gtf_engine_id'] = $iEngine;
+        }
+    }
+
+    /*
+     * function returnEngineId
+     * \param $oAlgoIndex Object of the algorithm.
+     * \param $aGtfEngineList Array that corresponds to the list of available engines numbers.
+     * \return Returns the engine number.
+     */
+
+    function returnEngineId($iUserOrderId, $aEnginesId) {
+        $iEngine = "";
+        if (count($aEnginesId) > 0) {
+            $sRowCount = $iUserOrderId % count($aEnginesId);
+            $iEngine = $aEnginesId[$sRowCount];
+        }
+        return $iEngine;
+    }
+
+    /**
+     * @SWG\Put(path="/usersubscriptions/{order_id}",
+     *   tags={"UserSubscriptions"},
+     *   summary="Update UserSubscription",
+     *   description="Request to update UserSubscription",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="usersubscription token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the usersubscription",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_date",
+     *     in="query",
+     *     description="user order date",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="query",
+     *     description="workspace id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="priority_id",
+     *     in="query",
+     *     description="priority id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_option_id",
+     *     in="query",
+     *     description="email option id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="user_id",
+     *     in="query",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="wk_params",
+     *     in="query",
+     *     description="workspace parameters",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="period_id",
+     *     in="query",
+     *     description="period id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="query",
+     *     description="enabled",
+     *     required=true,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersubscriptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * update category
+     * @return id of the category if ok error object if ko
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'v_user_subscription', 'order_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/usersubscriptions/",
+     *   tags={"UserSubscriptions"},
+     *   summary="delete UserSubscription",
+     *   description="Request to delete UserSubscription",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="usersubscription token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the usersubscriptions",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersubscriptions")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/usersubscriptions/{usersubscription_id}",
+     *   tags={"UserSubscriptions"},
+     *   summary="delete UserSubscription",
+     *   description="Request to delete UserSubscription",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="usersubscription token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the usersubscription",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersubscriptions")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete usersubscription
+     * @return id of usersubscription deleted or error object if a usersubscription is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'v_user_subscription', 'order_id');
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserSurvey.class.inc b/src/module_gtf/web_service/ws/UserSurvey.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..a603ae25cb6196baabd96e161012146d67500024
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserSurvey.class.inc
@@ -0,0 +1,92 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file UserSurvey.class.inc
+ * \class UserSurvey
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the UserSurvey php class
+ *
+ * This class defines operation for one UserSurvey
+ * 
+ */
+class UserSurvey extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('order_id', 'workspace_key', 'workspace_id', 'label_name', 'enabled', 'order_status_id', 'user_id', 'period_id', $this->getDateSelectedFields('order_date', 'yeartosecond'), $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'wk_params', 'result_url', 'email_option_id', 'email_notifications', 'gtf_engine_id', 'survey_id', 'condition', 'inbox_id', 'name', 'workspace_name', 'monitoring_type', 'notification', 'order_period_libelle', 'survey_name');
+    }
+
+    /**
+     * @SWG\Get(path="/usersurveys/{order_id}", 
+     *   tags={"UserSurveys"},
+     *   summary="Get UserSurvey",
+     *   description="Request to get UserSurvey by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="order id",
+     *     required=true,
+     *     type="integer",
+     *   format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersurveys")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about usersurvey
+     */
+    function GET() {
+        $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_user_survey", "order_id");
+    }
+
+    /**
+     * delete an usersurvey
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'v_user_survey', 'order_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['order_id'] = $this->aValues["my_vitis_id"];
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserSurveys.class.inc b/src/module_gtf/web_service/ws/UserSurveys.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..e9e955c9d5d1475f338315347ca7b10a9bcb2c8c
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserSurveys.class.inc
@@ -0,0 +1,559 @@
+<?php
+
+/**
+ * \file UserSurveys.class.inc
+ * \class UserSurveys
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the UserSurveys php class
+ *
+ * This class defines Rest Api to Gtf usersurveys
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'UserSurvey.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+
+class UserSurveys extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/usersurveys",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/usersurveys")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="UserSurveys",
+     *   description="Operations about UserSurveys"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $login = $_SESSION['ses_Login'];
+        $this->aSelectedFields = Array('order_id', 'workspace_key', 'workspace_id', 'label_name', 'enabled', 'order_status_id', 'user_id', 'period_id', $this->getDateSelectedFields('order_date', 'yeartosecond'), $this->getDateSelectedFields('execution_date', 'yeartosecond'), 'wk_params', 'result_url', 'email_option_id', 'email_notifications', 'gtf_engine_id', 'survey_id', 'condition', 'inbox_id', 'name', 'workspace_name', 'monitoring_type', 'notification', 'order_period_libelle', 'survey_name', "replace(name, '\$user', '$login') || '/' || condition as full_condition");
+    }
+
+    /**
+     * @SWG\Get(path="/usersurveys",
+     *   tags={"UserSurveys"},
+     *   summary="Get UserSurveys",
+     *   description="Request to get UserSurveys",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="order_by",
+     *     in="query",
+     *     description="list of surveying fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="sort_order",
+     *     in="query",
+     *     description="sort order",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersurveys")
+     *     )
+     *  )
+     */
+
+    /**
+     * get UserSurveys
+     * @return  UserSurveys
+     */
+    function GET() {
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_user_survey", "order_id");
+        return $aReturn['sMessage'];
+    }
+
+    /**
+     * @SWG\Post(path="/usersurveys",
+     *   tags={"UserSurveys"},
+     *   summary="Add UserSurvey",
+     *   description="Request to add user survey",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json",  "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_date",
+     *     in="formData",
+     *     description="user order date",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="formData",
+     *     description="workspace id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="priority_id",
+     *     in="formData",
+     *     description="priority id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_option_id",
+     *     in="formData",
+     *     description="email option id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="user_id",
+     *     in="formData",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="wk_params",
+     *     in="formData",
+     *     description="workspace parameters",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="period_id",
+     *     in="formData",
+     *     description="period id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="formData",
+     *     description="enabled",
+     *     required=true,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="survey_id",
+     *     in="formData",
+     *     description="survey id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="inbox_id",
+     *     in="formData",
+     *     description="inbox id",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="condition",
+     *     in="formData",
+     *     description="condition",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersurveys")
+     *     ),
+     * 
+     *  )
+     */
+
+    /**
+     * insert user's survey
+     * @return id of the user's usersurvey created
+     */
+    function POST() {
+        $this->aValues['order_date'] = gmdate('Y-m-d H:i:s');
+        $this->aValues['user_id'] = $_SESSION['ses_user_id'];
+        // Si token public -> id du compte public.
+        if ($this->aValues['token'] == $this->aProperties['public_token']) {
+            $aPrivateTokenValues = $this->aValues;
+            $aPrivateTokenValues['user'] = $_SESSION['ses_Login'];
+            $aPrivateTokenValues['password'] = $this->oConnection->oBd->mdp;
+            $oPrivateToken = new PrivateToken($this->aPath, $aPrivateTokenValues, $this->aProperties, $this->oConnection);
+            $oPrivateToken->POST();
+            // Teste si le compte 'public' a un des groupes qui est lié au traitement.
+            require $this->sRessourcesFile;
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['workspace_id'] = array('value' => $this->aValues['workspace_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['checkUserWorkspace'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            } else {
+                if ($this->oConnection->oBd->nombreLigne($oPDOresult) == 0) {
+                    $oError = new VitisError(1, "ERROR_WORKSPACE_NOT_LINKED_USER_GROUPS_WIDGET");
+                    $aXmlRacineAttribute['status'] = 0;
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                    return $sMessage;
+                }
+            }
+        }
+        $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'v_user_survey', $this->aProperties['schema_gtf'] . '.seq_order', 'order_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            $oUserSurvey = new UserSurvey($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oUserSurvey->GET();
+            // Met à jour le n° du moteur.
+            $this->getIdEngine($this->aValues["my_vitis_id"], 'userorder', $this->aValues['workspace_id']);
+            require $this->sRessourcesFile;
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['order_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+            $aParams['gtf_engine_id'] = array('value' => $this->aValues['gtf_engine_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['setUserOrderEngineId'], $aParams);
+            if ($this->oConnection->oBd->enErreur()) {
+                $oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+                $aXmlRacineAttribute['status'] = 0;
+                $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            }
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /*
+     * function getIdEngine
+     * \brief function that assigns each request processing an engine number. This engine number will be defined by the algorithm associated to the treatment.
+     * \param $iUserOrderId Identifier of the request
+     * \param $sTable Name of the table.
+     * \param $iWorkspaceId Identifier of the treatment.
+     */
+
+    function getIdEngine($iUserOrderId, $sTable, $iWorkspaceId) {
+        require $this->sRessourcesFile;
+        // Récupération de l'algorithme
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['iWorkspaceId'] = array('value' => $iWorkspaceId, 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesId'], $aParams);
+        $this->oConnection->oBd->cleanMessage();
+        $aEnginesId = array();
+        while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+            $aEnginesId[] = $oEnginesId->gtf_engine_id;
+        $this->oConnection->oBd->fermeResultat();
+
+        if (count($aEnginesId) == 0) {
+            // Le tag correspondant n'a pas été trouvé, nous allons cherché la liste des moteur ayant comme tag |default|
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getEnginesDefaultTag'], $aParams);
+            $this->oConnection->oBd->cleanMessage();
+            $aEnginesId = array();
+            while ($oEnginesId = $this->oConnection->oBd->objetSuivant($oPDOresult))
+                $aEnginesId[] = $oEnginesId->gtf_engine_id;
+            $this->oConnection->oBd->fermeResultat();
+            if (count($aEnginesId) > 0)
+                writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0006));
+        }
+        // Si la requête est en erreur ou Si aucun moteur n'a été trouvé.
+        if ($this->oConnection->oBd->erreurRencontree || count($aEnginesId) == 0) {
+            $aGtfEngineList = explode(",", $this->aProperties["engines_list"]);
+            // Aucun tag ne correspond
+            $iEngine = $aGtfEngineList[0];
+            if ($iEngine != "")
+                writeToErrorLog(str_replace('[aGtfEngineList[0]]', $iEngine, str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0007)));
+        }else {
+            $iEngine = $this->returnEngineId($iUserOrderId, $aEnginesId);
+        }
+
+        if ($iEngine == "") {
+            writeToErrorLog(str_replace('[iUserOrderId]', $iUserOrderId, ERROR_0008));
+            $this->aValues['gtf_engine_id'] = 1;
+        } else {
+            $this->aValues['gtf_engine_id'] = $iEngine;
+        }
+    }
+
+    /*
+     * function returnEngineId
+     * \param $oAlgoIndex Object of the algorithm.
+     * \param $aGtfEngineList Array that corresponds to the list of available engines numbers.
+     * \return Returns the engine number.
+     */
+
+    function returnEngineId($iUserOrderId, $aEnginesId) {
+        $iEngine = "";
+        if (count($aEnginesId) > 0) {
+            $sRowCount = $iUserOrderId % count($aEnginesId);
+            $iEngine = $aEnginesId[$sRowCount];
+        }
+        return $iEngine;
+    }
+
+    /**
+     * @SWG\Put(path="/usersurveys/{order_id}",
+     *   tags={"UserSurveys"},
+     *   summary="Update UserSurvey",
+     *   description="Request to update UserSurvey",
+     *   operationId="PUT",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="usersurvey token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the usersurvey",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="order_date",
+     *     in="query",
+     *     description="user order date",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="query",
+     *     description="workspace id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="priority_id",
+     *     in="query",
+     *     description="priority id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_option_id",
+     *     in="query",
+     *     description="email option id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="user_id",
+     *     in="query",
+     *     description="user id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="wk_params",
+     *     in="query",
+     *     description="workspace parameters",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="period_id",
+     *     in="query",
+     *     description="period id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="enabled",
+     *     in="query",
+     *     description="enabled",
+     *     required=true,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="survey_id",
+     *     in="query",
+     *     description="survey id",
+     *     required=true,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="inbox_id",
+     *     in="query",
+     *     description="inbox id",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="condition",
+     *     in="query",
+     *     description="condition",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersurveys")
+     *     )
+     *  )
+     */
+
+    /**
+     * update category
+     * @return id of the category if ok error object if ko
+     */
+    function PUT() {
+        $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'v_user_survey', 'order_id');
+        if ($aReturn['sStatus'] == 1) {
+            $aXmlRacineAttribute['status'] = 1;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        } else {
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/usersurveys/",
+     *   tags={"UserSurveys"},
+     *   summary="delete UserSurvey",
+     *   description="Request to delete UserSurvey",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="usersurvey token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the usersurveys",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersurveys")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/usersurveys/{order_id}",
+     *   tags={"UserSurveys"},
+     *   summary="delete UserSurvey",
+     *   description="Request to delete UserSurvey",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="usersurvey token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="order_id",
+     *     in="path",
+     *     description="id of the usersurvey",
+     *     required=true,
+     *     type="integer",
+     *     format = "int32"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/usersurveys")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete usersurvey
+     * @return id of usersurvey deleted or error object if a usersurvey is not deleted
+     */
+    function DELETE() {
+        $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'v_user_survey', 'order_id');
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserWorkspace.class.inc b/src/module_gtf/web_service/ws/UserWorkspace.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..ab5e357b5f6c8fd8818928943435b84fee1e9973
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserWorkspace.class.inc
@@ -0,0 +1,124 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'vmlib/logUtil.inc';
+
+/**
+ * \file Workspace.class.inc
+ * \class Workspace
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Workspace php class
+ *
+ * This class defines operation for one Workspace
+ * 
+ */
+class UserWorkspace extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('workspace_id', 'name');
+    }
+
+    /**
+     * @SWG\Get(path="/userworkspaces/{workspace_id}", 
+     *   tags={"Workspaces"},
+     *   summary="Get Workspace",
+     *   description="Request to get Workspace by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="form",
+     *     in="query",
+     *     description="form to load",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userworkspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about workspace
+     */
+    function GET() {
+        if ($this->aValues["form"]) {
+            $sDirName = $this->aProperties['vas_home'] . "/rest/ws/gtf/workspace/" . (string) $this->aValues["my_vitis_id"];
+            if ($this->aValues["form"] == "Default") {
+                $pFile = fopen($sDirName . "/form/DSubform.json", "r");
+                $iSize = filesize($sDirName . "/form/DSubform.json");
+            } else if ($this->aValues["form"] == "Perso") {
+                $pFile = fopen($sDirName . "/form/WSubform.json", "r");
+                $iSize = filesize($sDirName . "/form/WSubform.json");
+            } else if ($this->aValues["form"] == "Published") {
+                $pFile = fopen($sDirName . "/form/Subform.json", "r");
+                $iSize = filesize($sDirName . "/form/Subform.json");
+            } else {
+                writeToErrorLog("ERROR : Error parameter is not a known mode");
+            }
+            $sJson = fread($pFile, $iSize);
+            fclose($pFile);
+            $aJson = json_decode($sJson, true);
+            $this->aFields = array($aJson);
+            $sJs = "";
+            $sCss = "";
+            if ($aJson["insert"]["javascript"] == true) {
+                $pFileJS = fopen($sDirName . "/form/ressources/Subform.js", "r");
+                $iSize = filesize($sDirName . "/form/ressources/Subform.js");
+                $sJs = fread($pFileJS, $iSize);
+                fclose($pFileJS);
+            }
+            if ($aJson["insert"]["style"] == true) {
+                $pFileCSS = fopen($sDirName . "/form/ressources/Subform.css", "r");
+                $iSize = filesize($sDirName . "/form/ressources/Subform.css");
+                $sCss = fread($pFileCSS, $iSize);
+                fclose($pFileCSS);
+            }
+            array_push($this->aFields, $sJs);
+            array_push($this->aFields, $sCss);
+        } else {
+            require $this->sRessourcesFile;
+            $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_user_workspace", "workspace_id");
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/UserWorkspaces.class.inc b/src/module_gtf/web_service/ws/UserWorkspaces.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..5fd494de1b691f46e6f066c4490e21ca0a6454b6
--- /dev/null
+++ b/src/module_gtf/web_service/ws/UserWorkspaces.class.inc
@@ -0,0 +1,148 @@
+<?php
+
+/**
+ * \file Workspaces.class.inc
+ * \class Workspaces
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Workspaces php class
+ *
+ * This class defines Rest Api to Gtf workspaces
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once 'UserWorkspace.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/phpUtil.inc';
+
+class UserWorkspaces extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/userworkspaces",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/userworkspaces")
+     *   }
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        $this->aValues = $aValues;
+        $this->aPath = $aPath;
+        $this->aProperties = $properties;
+        $this->aValues['getGroup'] = true;
+        $this->oConnection = new Connection($this->aValues, $this->aProperties);
+        $this->aSelectedFields = Array('workspace_id', 'name');
+    }
+
+    /**
+     * @SWG\Get(path="/userworkspaces",
+     *   tags={"Workspaces"},
+     *   summary="Get User Workspaces",
+     *   description="Request to get Workspaces",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="workspace_by",
+     *     in="query",
+     *     description="list of workspaceing fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/userworkspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Workspaces
+     * @return  Workspaces
+     */
+    function GET() {
+        require_once "vmlib/dbUtil.inc";
+        $sesGroup = $this->oConnection->sesGroup;
+        if (!empty($this->aValues['filter'])) {
+            $oFilter = json_decode($this->aValues['filter']);
+            $oFilter->operators[] = json_decode('{"column": "group_id", "compare_operator": "IN", "value": [' . $sesGroup . ']}');
+            $this->aValues['filter'] = json_encode($oFilter);
+        } else
+            $this->aValues['filter'] = '{"relation": "AND", "operators": [{"column": "group_id", "compare_operator": "IN", "value": [' . $sesGroup . ']}]}';
+        $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_user_workspace", "workspace_id");
+        // Dédoublonnage.
+        if ($aReturn['sStatus'] == 1) {
+            $oReturn = json_decode($aReturn['sMessage']);
+            if (!empty($oReturn->data)) {
+                $aWorkspaces = array();
+                $aWorkspaceId = array();
+                foreach ($oReturn->data as $oWorkspace) {
+                    if (!in_array($oWorkspace->workspace_id, $aWorkspaceId)) {
+                        $aWorkspaceId[] = $oWorkspace->workspace_id;
+                        $aWorkspaces[] = $oWorkspace;
+                    }
+                }
+                $oReturn->data = $aWorkspaces;
+                $aReturn['sMessage'] = json_encode($oReturn);
+            }
+        }
+        return $aReturn['sMessage'];
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Versions.class.inc b/src/module_gtf/web_service/ws/Versions.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..d0f1b0a6529e0a5f40857124513a9a4873b5a67c
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Versions.class.inc
@@ -0,0 +1,79 @@
+<?php
+
+require_once 'Gtf.class.inc';
+
+/**
+ * \file versions.class.inc
+ * \class Versions
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Versions php class
+ *
+ * This class defines the rest api for versions
+ * 
+ */
+class Versions extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/Versions",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/Versions")
+     *   }
+     * )
+     * @SWG\Tag(
+     *   name="Versions",
+     *   description="Operations about versions"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $versions ptroperties
+     */
+    function __construct($aPath, $aValues, $properties) {
+        $this->aValues = $aValues;
+        $this->aPath = $aPath;
+        $this->aProperties = $properties;
+    }
+
+    /**
+     * @SWG\Get(path="/Versions",
+     *   tags={"Versions"},
+     *   summary="Get versions",
+     *   description="Request to get versions",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json", "application/x-vm-json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *  @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/Versions")
+     *     )
+     *  )
+     */
+
+    /**
+     * 
+     * @return versions
+     */
+    function GET() {
+        $this->getVersion("gtf");
+        //$this->aFields = $this->aVersions;
+        //
+        $aXmlRacineAttribute['status'] = 1;
+        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        return $sMessage;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Workspace.class.inc b/src/module_gtf/web_service/ws/Workspace.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..07a23d46851c83cd464c1eb8445c26eae394af73
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Workspace.class.inc
@@ -0,0 +1,289 @@
+<?php
+
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+
+/**
+ * \file Workspace.class.inc
+ * \class Workspace
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Workspace php class
+ *
+ * This class defines operation for one Workspace
+ * 
+ */
+class Workspace extends GTF {
+
+    public $oError;
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('workspace_id', 'name', 'owner', $this->getDateSelectedFields('creation_date', 'yeartosecond'), 'description', 'subscription', 'category_id', 'success_action_id', 'failed_action_id', 'survey', 'form_type', 'legal_terms_conditions', $this->getDateSelectedFields('last_save_date', 'yeartosecond'), 'last_save_build', 'file_encoding', 'title', 'requirements', 'history', 'usage', 'key', 'email_template_id', 'locked', 'tag', 'groups', 'login', 'category_name', 'email_template', 'fmw_file', 'dataencrypt', 'usepersonaldata', 'unitcost', 'costpersecond');
+    }
+
+    /**
+     * @SWG\Get(path="/workspaces/{workspace_id}", 
+     *   tags={"Workspaces"},
+     *   summary="Get Workspace",
+     *   description="Request to get Workspace by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="form",
+     *     in="query",
+     *     description="form to load",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/workspaces/{workspace_id}/Tree",
+     *   tags={"Workspaces"},
+     *   summary="Get Workspace directory tree",
+     *   description="Request to get Workspace directory tree by id",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/workspaces/{workspace_id}/File",
+     *   tags={"Workspaces"},
+     *   summary="Get Workspace file",
+     *   description="Request to get a file from the workspace directory",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="file_name",
+     *     in="query",
+     *     description="file name",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/workspaces/{workspace_id}/Metadata",
+     *   tags={"Workspaces"},
+     *   summary="Regenerate workspace metadata",
+     *   description="Request to regenerate the metadata of a workspace",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Properties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * get informations about workspace
+     */
+    function GET() {
+        if (!empty($this->aValues["form"])) {
+            $sDirName = $this->aProperties['workspace_dir'] . "/" . (string) $this->aValues["my_vitis_id"];
+            require $this->sRessourcesFile;
+            $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_workspace", "workspace_id");
+            $this->getGroups();
+
+            if ($this->aValues["form"] == "Default") {
+                $sFile = $sDirName . "/form/DSubform.json";
+            } else if ($this->aValues["form"] == "Perso") {
+                $sFile = $sDirName . "/form/WSubform.json";
+            } else if ($this->aValues["form"] == "Published") {
+                $sFile = $sDirName . "/form/Subform.json";
+            } else {
+                writeToErrorLog("Error parameter is not a known mode user :" . $_SESSION["user_id"]);
+
+                $this->oError = new VitisError(1, "Error parameter is not a known mode");
+            }
+            if (is_file($sFile)) {
+                $pFile = fopen($sFile, "r");
+                $iSize = filesize($sFile);
+                $sJson = fread($pFile, $iSize);
+                fclose($pFile);
+                $aJson = json_decode($sJson, true);
+                $this->aFields["json_form"] = array($aJson);
+                $sJs = "";
+                $sCss = "";
+                if (is_dir($sDirName . "/form")) {
+                    if ($dh = opendir($sDirName . "/form/ressources")) {
+                        while (($file = readdir($dh)) !== false) {
+                            $sName = explode(".", $file);
+                            if ($sName[1] == "js") {
+                                // $pFileJS = fopen($sDirName . "/form/ressources/Subform.js", "r");
+                                // $iSize = filesize($sDirName . "/form/ressources/Subform.js");
+                                // $sJs = fread($pFileJS, $iSize);
+                                // fclose($pFileJS);
+
+                                $sJs = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . "/gtf/workspace/" . (string) $this->aValues["my_vitis_id"] . "/form/ressources/Subform.js";
+                            }
+                            if ($sName[1] == "css") {
+                                /* $pFileCSS = fopen($sDirName . "/form/ressources/Subform.css", "r");
+                                  $iSize = filesize($sDirName . "/form/ressources/Subform.css");
+                                  $sCss = fread($pFileCSS, $iSize);
+                                  fclose($pFileCSS); */
+                                $sCss = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . "/gtf/workspace/" . (string) $this->aValues["my_vitis_id"] . "/form/ressources/Subform.css";
+                            }
+                        }
+                        closedir($dh);
+                    }
+                }
+                array_push($this->aFields["json_form"], $sJs);
+                array_push($this->aFields["json_form"], $sCss);
+            } else {
+
+                $this->oError = new VitisError(1, "File not found");
+            }
+        } else {
+            require $this->sRessourcesFile;
+            $this->aFields = $this->getFields($this->aProperties['schema_gtf'], "v_workspace", "workspace_id");
+            $this->getGroups();
+            // Url vers le fichier fmw du projet.
+            if (!empty($this->aFields['fmw_file']))
+                $this->aFields['fmw_file_url'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . '/gtf/workspace/' . $this->aValues['my_vitis_id'] . '/fme/' . $this->aFields['fmw_file'];
+        }
+        // Formatage de la colonne "form_type".
+        $sFile = $this->aProperties['workspace_dir'] . "/" . $this->aValues["my_vitis_id"] . '/form/Subform.json';
+        if (!file_exists($sFile))
+            $this->aFields['form_type'] = '';
+        else {
+            if ($this->aFields['form_type'] != "custom")
+                $this->aFields['form_type'] = "default";
+        }
+    }
+
+    function getGroups() {
+        require $this->sRessourcesFile;
+        if (in_array("groups", $this->aSelectedFields)) {
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name');
+            $aParams['workspace_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getWorkspaceGroups'], $aParams);
+            $sListGroupId = "";
+            $aListGroupName = array();
+            while ($aLigne = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                if ($sListGroupId == "") {
+                    $sListGroupId = $aLigne["group_id"];
+                } else {
+                    $sListGroupId .= "|" . $aLigne["group_id"];
+                }
+                $aListGroupName[] = $aLigne["name"];
+            }
+            $oPDOresult = $this->oConnection->oBd->fermeResultat();
+            $this->aFields['groups'] = $sListGroupId;
+            $this->aFields['groups_label'] = implode(',', $aListGroupName);
+        }
+    }
+
+    /**
+     * delete a workspace
+     */
+    function DELETE() {
+        $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'workspace', 'workspace_id', $this->aValues["my_vitis_id"], 'integer');
+        if ($this->oConnection->oBd->enErreur()) {
+            $this->oError = new VitisError(1, $this->oConnection->oBd->getBDMessage());
+        } else {
+            $this->aFields['workspace_id'] = $this->aValues["my_vitis_id"];
+
+            $sDirName = $this->aProperties['workspace_dir'] . "/" . $this->aFields["workspace_id"] . "/";
+            if (is_dir($sDirName)) {
+                clearDir($sDirName);
+            } else {
+                writeToErrorLog("No folder link with this workspace. verify if the workspace folder already exist on the server");
+            }
+        }
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/Workspaces.class.inc b/src/module_gtf/web_service/ws/Workspaces.class.inc
new file mode 100755
index 0000000000000000000000000000000000000000..521713a108af401fa00b0e09fad16465a2433361
--- /dev/null
+++ b/src/module_gtf/web_service/ws/Workspaces.class.inc
@@ -0,0 +1,1244 @@
+<?php
+
+/**
+ * \file Workspaces.class.inc
+ * \class Workspaces
+ *
+ * \author Yoann Perollet <yoann.perollet@veremes.com>.
+ *
+ * 	\brief This file contains the Workspaces php class
+ *
+ * This class defines Rest Api to Gtf workspaces
+ * 
+ */
+require_once 'Gtf.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc';
+require_once 'Workspace.class.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/phpUtil.inc';
+require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/gtf_lib/GtfFmwParser.class.inc';
+
+class Workspaces extends GTF {
+    /**
+     * @SWG\Definition(
+     *   definition="/workspaces",
+     *   allOf={
+     *     @SWG\Schema(ref="#/definitions/workspaces")
+     *   }
+     * )
+     * * @SWG\Tag(
+     *   name="Workspaces",
+     *   description="Operations about Workspaces"
+     * )
+     */
+
+    /**
+     * construct
+     * @param type $aPath url of the request
+     * @param type $aValues parameters of the request
+     * @param type $properties properties
+     * @param type $bShortcut false to reinit variables
+     * @param type $oConnection connection object
+     */
+    function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) {
+        parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection);
+        $this->aSelectedFields = Array('workspace_id', 'name', 'fmw_file', 'owner', $this->getDateSelectedFields('creation_date', 'yeartosecond'), 'description', 'subscription', 'category_id', 'success_action_id', 'failed_action_id', 'survey', 'form_type', 'legal_terms_conditions', $this->getDateSelectedFields('last_save_date', 'yeartosecond'), 'last_save_build', 'file_encoding', 'title', 'requirements', 'history', 'usage', 'key', 'email_template_id', 'locked', 'tag', 'login', 'category_name', 'nb_demande', 'email_template', 'dataencrypt', 'usepersonaldata');
+    }
+
+    /**
+     * @SWG\Get(path="/workspaces",
+     *   tags={"Workspaces"},
+     *   summary="Get Workspaces",
+     *   description="Request to get Workspaces",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="workspace_by",
+     *     in="query",
+     *     description="list of workspaceing fields",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="limit",
+     *     in="query",
+     *     description="number of element",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="offset",
+     *     in="query",
+     *     description="index of first element",
+     *     required=false,
+     *     type="string",
+     *     format="int32"
+     *   ),
+     * @SWG\Parameter(
+     *     name="attributs",
+     *     in="query",
+     *     description="list of attributs",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="filter",
+     *     in="query",
+     *     description="filter results",
+     *     required=false,
+     *     type="string"
+     *   ),
+     * @SWG\Parameter(
+     *     name="distinct",
+     *     in="query",
+     *     description="delete duplicates",
+     *     required=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Get(path="/workspaces/{workspace_id}/CheckWidgetFile",
+     *   tags={"Workspaces"},
+     *   summary="Check if the widget file exist",
+     *   description="Request to check if the widget file exist",
+     *   operationId="GET",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Properties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * get Workspaces
+     * @return  Workspaces
+     */
+    function GET() {
+        if (!empty($this->aPath[3])) {
+            if ($this->aPath[3] == "File") {
+                $this->getWorkspaceFile();
+            } else {
+                if ($this->aPath[3] == "Tree") {
+                    $aReturn = $this->getWorkspaceDirectoryTree();
+                } else if ($this->aPath[3] == "Metadata") {
+                    $aReturn = $this->regenerateMetadata();
+                } else if ($this->aPath[3] == "CheckWidgetFile") {
+                    $aReturn = $this->checkWidgetFile();
+                }
+                $aXmlRacineAttribute['status'] = $aReturn['status'];
+                if ($aReturn['status'] == 1) {
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                } else {
+                    $oError = new VitisError($aReturn['error_code'], $aReturn['message']);
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                }
+                return $sMessage;
+            }
+        } else {
+            $aReturn = $this->genericGet($this->aProperties['schema_gtf'], "v_workspace", "workspace_id");
+            // Formatage de la colonne "form_type".
+            if ($aReturn['sStatus'] == 1) {
+                foreach ($this->aObjects as &$oWorkspace) {
+                    $sFile = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields['workspace_id'] . '/form/Subform.json';
+                    if (!file_exists($sFile)) {
+                        $oWorkspace->aFields['form_type'] = '';
+                    } else {
+                        if ($oWorkspace->aFields['form_type'] != "custom") {
+                            $oWorkspace->aFields['form_type'] = "default";
+                        }
+                    }
+                }
+                $aXmlRacineAttribute['status'] = 1;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            } else {
+                $sMessage = $aReturn['sMessage'];
+            }
+            return $sMessage;
+        }
+    }
+
+    /**
+     * @SWG\Post(path="/workspaces",
+     *   tags={"Workspaces"},
+     *   summary="Add Workspace",
+     *   description="Request to add workspace",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   consumes= { "multipart/form-data"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="workspace token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="formData",
+     *     description="Name of the workspace",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="fmw_file",
+     *     in="formData",
+     *     description="Fmw file of the workspace",
+     *     required=false,
+     *     type="file"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="comp_file",
+     *     in="formData",
+     *     description="Other file (.zip) of the workspace",
+     *     required=false,
+     *     type="file"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="tag",
+     *     in="formData",
+     *     description="Tag of the workspace",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_template_id",
+     *     in="formData",
+     *     description="Email template of the workspace",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="subscription",
+     *     in="formData",
+     *     description="Subscription ?",
+     *     required=false,
+     *     default=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="survey",
+     *     in="formData",
+     *     description="Survey ?",
+     *     required=false,
+     *     default=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="locked",
+     *     in="formData",
+     *     description="Locked ?",
+     *     required=false,
+     *     default=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Post(path="/workspaces/{workspace_id}/GenerateWidgetFile",
+     *   tags={"Workspaces"},
+     *   summary="Generate Widget file",
+     *   description="Request to get a file from the workspace directory",
+     *   operationId="POST",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="formData",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="content_file",
+     *     in="formData",
+     *     description="File content of the widget",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * insert workspace
+     * @return id of the workspace created
+     */
+    function POST() {
+        require $this->sRessourcesFile;
+        // Importation de projets.
+        if (!empty($this->aPath[3]) && $this->aPath[3] === "GenerateWidgetFile") {
+            unset($this->aPath[3]);
+            $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+            $oWorkspace->GET();
+            $sWorkspace_key = $oWorkspace->aFields["key"];
+            // Emplacement des widgets
+            $sWidgetDirectory = $this->aProperties["vas_home"] . '/ws_data/gtf/widget';
+            $bError = False;
+            if (!is_dir($sWidgetDirectory)) {
+                if (!mkdir($sWidgetDirectory, 0777, true)) {
+                    $bError = True;
+                    $this->aFields['errorMessage'] = "Failed to create directory " . $sWidgetDirectory;
+                }
+            }
+            if (!$bError) {
+                $this->aFields['workspace_key'] = $sWorkspace_key;
+                // Widget dans une page html.
+                $sWidgetHtml = '<!DOCTYPE html>' . PHP_EOL . '<html>' . PHP_EOL . '<head>' . PHP_EOL . '<title>Widget</title>' . PHP_EOL . '<meta name="viewport" content="width=device-width, initial-scale=1.0">' . PHP_EOL . '<meta http-equiv="X-UA-Compatible" content="IE=edge">' . PHP_EOL . '</head>' . PHP_EOL . '<body>';
+                $sWidgetHtml .= $this->aValues['widgetFileContent'];
+                $sWidgetHtml .= '' . PHP_EOL . '</body>' . PHP_EOL . '</html>';
+                file_put_contents($this->aProperties["vas_home"] . '/ws_data/gtf/widget/' . $sWorkspace_key . ".html", $sWidgetHtml);
+            }
+            $aXmlRacineAttribute['status'] = (int) !$bError;
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+            return $sMessage;
+        }
+        if (!empty($this->aValues['mode']) && $this->aValues['mode'] == "import") {
+            for ($i = 0; $i < count($_FILES['fmw_file']['name']); $i++) {
+                $aParams = array();
+                $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                $aParams['sFileName'] = array('value' => str_replace(".fmw", "", str_replace(".fme", "", $_FILES['fmw_file']['name'][$i])), 'type' => 'string');
+                $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getWorkspaceId'], $aParams);
+                if ($aWorkspace = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                    $this->aValues['name'] = str_replace(".fmw", "", str_replace(".fme", "", $_FILES['fmw_file']['name'][$i])) . gmdate("Ymd-His") . rand(0, 100);
+                } else {
+                    $this->aValues['name'] = str_replace(".fmw", "", str_replace(".fme", "", $_FILES['fmw_file']['name'][$i]));
+                }
+
+                // **** Récupération de user_id
+
+                $this->aValues['subscription'] = 'FALSE';
+                $this->aValues['fmw_file'] = $_FILES['fmw_file']['name'][$i];
+                $this->aValues['tag'] = 'default';
+                $this->aValues['survey'] = 'FALSE';
+                $this->aValues['form_type'] = 'default';
+                $this->aValues['creation_date'] = gmdate("Y-m-d H:i:s");
+                // Id de l'utilisateur connecté.
+                $aParams = array();
+                $aParams['sSchemaFramework'] = array('value' => $this->aProperties["schema_framework"], 'type' => 'schema_name');
+                $aParams['sLogin'] = array('value' => $_SESSION['ses_Login'], 'type' => 'string');
+                $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getOwnerId'], $aParams);
+                $oOwner = $this->oConnection->oBd->objetSuivant($oPDOresult);
+                $this->aValues['owner'] = $oOwner->user_id;
+                $oPDOresult = $this->oConnection->oBd->fermeResultat();
+                // Création de la clé du projet.
+                $bExistKey = false;
+                while ($bExistKey == false) {
+                    // En majuscules et suppression du point.
+                    $this->aValues['key'] = strtoupper(base_convert(rand(1000000000, 9999999999) . time(), 10, 36));
+                    $aParams = array();
+                    $aParams['sSchemaGtf'] = array('value' => $this->aProperties["schema_gtf"], 'type' => 'schema_name');
+                    $aParams['sKey'] = array('value' => $this->aValues['key'], 'type' => 'string');
+                    $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getWorkspaceId2'], $aParams);
+                    if (!$aWorkspace = $this->oConnection->oBd->ligneSuivante($oPDOresult))
+                        $bExistKey = true;
+                }
+
+                $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'workspace', $this->aProperties['schema_gtf'] . '.seq_common', 'workspace_id');
+                $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                $oWorkspace->GET();
+                $sFilePathName = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields["workspace_id"] . "/fme/" . $_FILES['fmw_file']['name'][$i];
+                $sDirName = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields["workspace_id"];
+                // Si le répertoire existe déja : suppression.
+                if (is_dir($sDirName))
+                    clearDir($sDirName);
+                //
+                mkdir($sDirName, 0777, true);
+                mkdir($sDirName . "/form", 0777, true);
+                mkdir($sDirName . "/form/ressources", 0777, true);
+                mkdir($sDirName . "/fme", 0777, true);
+
+                if (!move_uploaded_file($_FILES['fmw_file']['tmp_name'][$i], utf8_decode($sFilePathName))) {
+                    writeToErrorLog(ERROR_0031 . $_FILES['file']['name']);
+                    $aReturn = array(sStatus => 1, sMessage => WORKSPACE_ERROR_COPYING_FILE);
+                } else {
+                    // Fichier .fmw original en .bak.
+                    copy($sDirName . "/fme/" . utf8_decode($this->aValues['fmw_file']), $sDirName . "/fme/" . utf8_decode($this->aValues['fmw_file']) . '.bak');
+                    //
+                    fclose(fopen($sDirName . "/form/ressources/Subform.js", "w+"));
+                    fclose(fopen($sDirName . "/form/ressources/Subform.css", "w+"));
+                    $oFmwParser = new GtfFmwParser($sDirName . "/fme/" . $_FILES['fmw_file']['name'][$i]);
+                    // Sauve le .fmw sans les visualizers.
+                    $oFmwParser->save($sDirName . "/fme/" . utf8_decode($this->aValues['fmw_file']));
+                    // Création des formulaires json.
+                    $aJson = $oFmwParser->productJson($this->aProperties, $oWorkspace->aFields["name"]);
+                    $fJson = fopen($sDirName . "/form/Subform.json", "w+");
+                    if (fwrite($fJson, json_encode($aJson)) == FALSE) {
+                        if ($fJson == FALSE) {
+                            writeToErrorLog("Subform.json can't be opened : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the property workspace_dir)");
+                        } else {
+                            writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
+                        }
+                    }
+                    fclose($fJson);
+                    copy($sDirName . "/form/Subform.json", $sDirName . "/form/WSubform.json");
+                    copy($sDirName . "/form/Subform.json", $sDirName . "/form/DSubform.json");
+                    $oFmwParser->updateMetadata($this->oConnection->oBd, $oWorkspace->aFields["workspace_id"]);
+                    $this->aValues["errorkeys"] = "";
+                }
+                $sMessage = $aReturn['sMessage'];
+            }
+        } else {
+            $this->aValues["fmw_file"] = $_FILES['fmw_file']['name'];
+            $aParams = array();
+            $aParams['sSchemaFramework'] = array('value' => $this->aProperties["schema_framework"], 'type' => 'schema_name');
+            $aParams['sLogin'] = array('value' => $_SESSION['ses_Login'], 'type' => 'string');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getOwnerId'], $aParams);
+            $oOwner = $this->oConnection->oBd->objetSuivant($oPDOresult);
+            $this->aValues['owner'] = $oOwner->user_id;
+            $oPDOresult = $this->oConnection->oBd->fermeResultat();
+            // Le nom du projet n'est pas spécifié.
+            if (empty($this->aValues["name"])) {
+                $aParams = array();
+                $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                $aParams['sFileName'] = array('value' => str_replace(".fmw", "", str_replace(".fme", "", $_FILES['fmw_file']['name'])), 'type' => 'string');
+                $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getWorkspaceId'], $aParams);
+                if ($aWorkspace = $this->oConnection->oBd->ligneSuivante($oPDOresult)) {
+                    $this->aValues['name'] = str_replace(".fmw", "", str_replace(".fme", "", $_FILES['fmw_file']['name'])) . gmdate("Ymd-His") . rand(0, 100);
+                } else {
+                    $this->aValues['name'] = str_replace(".fmw", "", str_replace(".fme", "", $_FILES['fmw_file']['name']));
+                }
+            }
+            // Vérifie si un projet existe déja avec ce nom.
+            $aParams = array();
+            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+            $aParams['name'] = array('value' => $this->aValues['name'], 'type' => 'string');
+            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['checkWorkspaceName'], $aParams);
+            if (!$this->oConnection->oBd->enErreur()) {
+                if ($this->oConnection->oBd->nombreLigne($oPDOresult) > 0) {
+                    $oError = new VitisError(1, "FORM_WORKSPACE_NAME_EXISTS_PUBLICATION_WORKSPACE");
+                    $aXmlRacineAttribute['status'] = 0;
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                }          
+                else {
+                    $this->aValues['creation_date'] = gmdate('Y-m-d H:i:s');
+                    // Création de la clé du projet.
+                    $bExistKey = false;
+                    while ($bExistKey == false) {
+                        // En majuscules et suppression du point.
+                        $this->aValues['key'] = strtoupper(base_convert(rand(1000000000, 9999999999) . time(), 10, 36));
+                        $aParams = array();
+                        $aParams['sSchemaGtf'] = array('value' => $this->aProperties["schema_gtf"], 'type' => 'schema_name');
+                        $aParams['sKey'] = array('value' => $this->aValues['key'], 'type' => 'string');
+                        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getWorkspaceId2'], $aParams);
+                        if (!$aWorkspace = $this->oConnection->oBd->ligneSuivante($oPDOresult))
+                            $bExistKey = true;
+                    }
+                    $aReturn = $this->genericPost($this->aProperties['schema_gtf'], 'workspace', $this->aProperties['schema_gtf'] . '.seq_common', 'workspace_id');
+                    if ($aReturn['sStatus'] == 1) {
+                        $aXmlRacineAttribute['status'] = 1;
+                        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                        $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                        $oWorkspace->GET();
+                        // Upload de fichiers ?
+                        if (!empty($_FILES)) {
+                            $this->aValues["fmw_file"] = $_FILES['fmw_file']['name'];
+                            $this->aValues["comp_file"] = '';
+                            if (!empty($_FILES["comp_file"]))
+                                $this->aValues["comp_file"] = $_FILES["comp_file"]["name"]; //si pas de zip la chaine est vide
+                            $aExt = explode(".", $this->aValues["fmw_file"]);
+                            if ($aExt[count($aExt) - 1] == "fmw") {
+                                $this->aValues['creation_date'] = gmdate('Y-m-d H:i:s');
+                                $this->aValues['owner'] = $_SESSION["ses_user_id"];
+                                $this->aValues['form_type'] = 'custom';
+                                if ($this->aValues["name"] == "") {
+                                    $sSQL = "SELECT workspace_id FROM " . $this->aProperties['schema_gtf'] . ".workspace WHERE fmw_file = [fmw_file]";
+                                    $aParams = array();
+                                    $aParams['fmw_file'] = array('value' => $this->aValues["fmw_file"], 'type' => 'string');
+                                    $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getCategoryTraitement'], $aParams);
+                                    for ($i = 0; $i < count($aExt) - 1; $i++) {
+                                        $sFilename = $sFilename . $aExt[$i];
+                                    }
+                                    if (!$this->oConnection->oBd->enErreur() && $this->oConnection->oBd->nombreLigne($oPDOresult) > 0) {
+                                        $this->aValues['name'] = $sFilename . gmdate("Ymd-His") . rand(0, 100);
+                                    } else {
+                                        $this->aValues['name'] = $sFilename;
+                                    }
+                                }
+                                $sDirName = $this->aProperties['workspace_dir'] . "/" . $oWorkspace->aFields["workspace_id"];
+                                // Si le répertoire existe déja : suppression.
+                                if (is_dir($sDirName))
+                                    clearDir($sDirName);
+                                //
+                                mkdir($sDirName, 0777, true);
+                                mkdir($sDirName . "/form", 0777, true);
+                                mkdir($sDirName . "/form/ressources", 0777, true);
+                                mkdir($sDirName . "/fme", 0777, true);
+                                uploadFile('fmw_file', "fmw", $sDirName . "/fme/" . $_FILES['fmw_file']['name'], $_FILES['fmw_file']['size'] + 1);
+                                // Fichier .fmw original en .bak.
+                                copy($sDirName . "/fme/" . utf8_decode($_FILES['fmw_file']['name']), $sDirName . "/fme/" . utf8_decode($_FILES['fmw_file']['name']) . '.bak');
+                                //
+                                fclose(fopen($sDirName . "/form/ressources/Subform.js", "w+"));
+                                fclose(fopen($sDirName . "/form/ressources/Subform.css", "w+"));
+                                if ($this->aValues["comp_file"] != "") {
+                                    uploadFile('comp_file', "", $sDirName . "/fme/" . $_FILES['comp_file']['name'], $_FILES['comp_file']['size'] + 1);
+                                    $ext = pathinfo($_FILES['comp_file']['name'], PATHINFO_EXTENSION);
+                                    if ($ext == "zip") {
+                                        unZip($sDirName . "/fme/" . utf8_decode($_FILES['comp_file']['name']), $sDirName . "/fme/");
+                                    }
+                                }
+                                $oFmwParser = new GtfFmwParser($sDirName . "/fme/" . $_FILES['fmw_file']['name']);
+                                // Sauve le .fmw sans les visualizers.
+                                $oFmwParser->save($sDirName . "/fme/" . utf8_decode($_FILES['fmw_file']['name']));
+                                // Création des formulaires json.
+                                $aJson = $oFmwParser->productJson($this->aProperties, $oWorkspace->aFields["name"]);
+                                $fJson = fopen($sDirName . "/form/Subform.json", "w+");
+                                if (fwrite($fJson, json_encode($aJson)) == FALSE) {
+                                    if ($fJson == FALSE) {
+                                        writeToErrorLog("Subform.json can't be opened : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the property workspace_dir)");
+                                    } else {
+                                        writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
+                                    }
+                                }
+                                fclose($fJson);
+                                copy($sDirName . "/form/Subform.json", $sDirName . "/form/WSubform.json");
+                                copy($sDirName . "/form/Subform.json", $sDirName . "/form/DSubform.json");
+                                $oFmwParser->updateMetadata($this->oConnection->oBd, $oWorkspace->aFields["workspace_id"]);
+                                /*                         * ************************************************************** */
+                            } else {
+                                writeToErrorLog("the uploaded file is not a fmw file or no file uploaded (Workspaces.class.inc : user_id->" . $_SESSION["user_id"] . ")");
+                                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                            }
+                        }
+                    } else
+                        $sMessage = $aReturn['sMessage'];
+                }
+            }
+        };
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Put(path="/workspaces/{workspace_id}",
+     *   tags={"Workspaces"},
+     *   summary="Update Workspace",
+     *   description="Request to update Workspace",
+     *   operationId="PUT",
+     *  consumes= { "multipart/form-data"},
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="workspace token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="id of the workspace",
+     *     required=true,
+     *     type="string",
+     *   ),
+     *   @SWG\Parameter(
+     *     name="name",
+     *     in="query",
+     *     description="Name of the workspace",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="fmw_file",
+     *     in="formData",
+     *     description="Fmw file of the workspace",
+     *     required=false,
+     *     type="file"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="comp_file",
+     *     in="formData",
+     *     description="Other file (.zip) of the workspace",
+     *     required=false,
+     *     type="file"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="json_file",
+     *     in="formData",
+     *     description="Wsubform.json",
+     *     required=false,
+     *     type="file"
+     *   ),
+     *  @SWG\Parameter(
+     *     name="js_file",
+     *     in="formData",
+     *     description="Javascript file link with WSubform",
+     *     required=false,
+     *     type="file"
+     *   ),
+     *  @SWG\Parameter(
+     *     name="css_file",
+     *     in="formData",
+     *     description="Css file link with WSubform",
+     *     required=false,
+     *     type="file"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="tag",
+     *     in="query",
+     *     description="Tag of the workspace",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="cmd",
+     *     in="query",
+     *     description="command send from the studio",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="action",
+     *     in="query",
+     *     description="command send from the studio",
+     *     required=false,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="email_template_id",
+     *     in="query",
+     *     description="Email template of the workspace",
+     *     required=false,
+     *     type="integer",
+     *     format="int32"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="subscription",
+     *     in="query",
+     *     description="Subscription ?",
+     *     required=false,
+     *     default=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="survey",
+     *     in="query",
+     *     description="Survey ?",
+     *     required=false,
+     *     default=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="locked",
+     *     in="query",
+     *     description="Locked ?",
+     *     required=false,
+     *     default=false,
+     *     type="boolean"
+     *   ),
+     *   @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * update workspace
+     * @return id of the workspace if ok error object if ko
+     */
+    function PUT() {
+        if (!empty($this->aValues["action"]) && $this->aValues["action"] == "Metadata") {
+            $aReturn = $this->reintegrateMetadata();
+
+            $aXmlRacineAttribute['status'] = $aReturn['status'];
+            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+        } else {
+            $sDirName = $this->aProperties['workspace_dir'] . "/" . (string) $this->aValues["my_vitis_id"];
+
+
+            $sDirName = $this->aProperties['workspace_dir'] . "/" . (string) $this->aValues["my_vitis_id"];
+
+            $error_message = "";
+
+            // Si le dossier {id} n'existe pas (Important pour gérer les erreurs)
+            if (!is_dir($sDirName)) {
+                $error_message .= $sDirName . " does not exist";
+                writeToErrorLog("WARNING: " . $error_message);
+
+                $aXmlRacineAttribute['status'] = 0;
+                $this->aFields = array();
+                $this->aFields['errorMessage'] = $error_message;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            }
+            // Si le dossier {id}/fme n'existe pas (Important pour gérer les erreurs)
+            if (!is_dir($sDirName . "/fme")) {
+                $error_message .= $sDirName . "/fme does not exist";
+                writeToErrorLog("WARNING: " . $error_message);
+
+                $aXmlRacineAttribute['status'] = 0;
+                $this->aFields = array();
+                $this->aFields['errorMessage'] = $error_message;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            }
+
+            // Si le dossier {id}/form n'existe pas il est crée
+            if (!is_dir($sDirName . "/form")) {
+                writeToErrorLog("WARNING: " . $sDirName . "/form dit not exist");
+                @mkdir($sDirName . "/form");
+            }
+
+            if (!empty($this->aValues["cmd"])) {
+                switch ($this->aValues["cmd"]) {
+
+                    // DSubform: formulaire par défaut
+                    // Subform: formulaire publié
+                    // WSubform: formulaire personnalié
+                    // Remplace le formulaire publié par celui par défaut
+                    case "Default_Published":
+                        // Si le fichier par défaut n'existe pas, il est généré
+                        if (!file_exists($sDirname . "/form/DSubform.json")) {
+                            $this->aValues["cmd"] = "Default_Reset";
+                            $this->PUT();
+                        }
+                        @unlink($sDirname . "/form/Subform.json");
+                        copy($sDirName . "/form/DSubform.json", $sDirName . "/form/Subform.json");
+                        $this->aValues["form_type"] = 'default';
+                        break;
+                    // Regénère le formulaire par défaut en fonction du fmw
+                    case "Default_Reset":
+                        $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                        $oWorkspace->GET();
+
+                        if (empty($oWorkspace->aFields["fmw_file"])) {
+                            $error_message .= "Any FME file founded in" . $sDirName . "/fme/ ";
+                            writeToErrorLog("WARNING: " . $error_message);
+
+                            $aXmlRacineAttribute['status'] = 0;
+                            $this->aFields = array();
+                            $this->aFields['errorMessage'] = $error_message;
+                            $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                            return $sMessage;
+                        }
+
+                        $oFmwParser = new GtfFmwParser($sDirName . "/fme/" . $oWorkspace->aFields["fmw_file"]);
+                        $aJson = $oFmwParser->productJson($this->aProperties, $oWorkspace->aFields["name"]);
+                        $fJson = fopen($sDirName . "/form/DSubform.json", "w");
+                        if (fwrite($fJson, json_encode($aJson)) == FALSE) {
+                            if ($fJson == FALSE) {
+                                writeToErrorLog("Subform.json can't be opened : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the property workspace_dir)");
+                            } else {
+                                writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
+                            }
+                        }
+                        fclose($fJson);
+                        //$oFmwParser->updateMetadata($this->oConnection->oBd, $oWorkspace->aFields["workspace_id"]);
+                        break;
+                    // Remplace le formulaire publié par celui personnalisé
+                    case "Perso_Published" :
+                        @unlink($sDirname . "/form/Subform.json");
+                        copy($sDirName . "/form/WSubform.json", $sDirName . "/form/Subform.json");
+                        $this->aValues["form_type"] = 'custom';
+                        break;
+                    // Remplace le fornulaire personnalisé par le formulaire par défaut
+                    case "Perso_Reset":
+                        // Si le fichier par défaut n'existe pas, il est généré
+                        if (!file_exists($sDirname . "/form/DSubform.json")) {
+                            $this->aValues["cmd"] = "Default_Reset";
+                            $this->PUT();
+                        }
+                        @unlink($sDirname . "/form/WSubform.json");
+                        copy($sDirName . "/form/DSubform.json", $sDirName . "/form/WSubform.json");
+                        break;
+                    // Sauvegarde le formulaire personnalisé
+                    case "Perso_Save":
+                        $pFile = fopen($sDirName . "/form/WSubform.json", "w");
+                        if (fwrite($pFile, $this->aValues["Json"]) == FALSE) {
+                            if ($fJson == FALSE) {
+                                writeToErrorLog("Subform.json can't be opened : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the property workspace_dir)");
+                            } else {
+                                writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
+                            }
+                        }
+                        fclose($pFile);
+
+                        if ($this->aValues["Js"] != "") {
+                            $pFileJS = fopen($sDirName . "/form/ressources/Subform.js", "w+");
+                            if (fwrite($pFileJS, $this->aValues["Js"]) == FALSE) {
+                                if ($pFileJS == FALSE) {
+                                    writeToErrorLog("Subform.js can't be opened : " . $sDirName . "/form/ressources/Subform.js" . "(Workspaces.class.inc : verify the property workspace_dir)");
+                                } else {
+                                    writeToErrorLog("Subform.js can't be writed : " . $sDirName . "/form/ressources/Subform.js" . "(Workspaces.class.inc : verify the folder's rights)");
+                                }
+                            }
+                            fclose($pFileJS);
+                        }
+
+                        if ($this->aValues["Css"] != "") {
+                            $pFileCSS = fopen($sDirName . "/form/ressources/Subform.css", "w+");
+                            if (fwrite($pFileCSS, $this->aValues["Css"]) == FALSE) {
+                                if ($pFileCSS == FALSE) {
+                                    writeToErrorLog("Subform.css can't be opened : " . $sDirName . "/form/ressources/Subform.css" . "(Workspaces.class.inc : verify the property workspace_dir)");
+                                } else {
+                                    writeToErrorLog("Subform.css can't be writed : " . $sDirName . "/form/ressources/Subform.css" . "(Workspaces.class.inc : verify the folder's rights)");
+                                }
+                            }
+                            fclose($pFileCSS);
+                        }
+                        break;
+                    default : writeToErrorLog("ERROR  : Bad request from Client : " . $this->aValues["cmd"] . " form user ->" . $_SESSION["user_id"]);
+                }
+            }
+            if (!empty($this->aValues["fmw_file_file"])) {
+                $this->aValues["fmw_file"] = $this->aValues["fmw_file_name"];
+            }
+            if (!empty($this->aValues["comp_file_file"])) {
+                $this->aValues["comp_file"] = $this->aValues["comp_file_name"];
+                $fp = fopen($sDirName . "/fme/" . utf8_decode($this->aValues["comp_file_name"]), "w");
+                fwrite($fp, $this->aValues["comp_file_file"]);
+                fclose($fp);
+                $ext = pathinfo($sDirName . "/fme/" . utf8_decode($this->aValues["comp_file_name"]), PATHINFO_EXTENSION);
+                if ($ext == "zip") {
+                    unZip($sDirName . "/fme/" . utf8_decode($this->aValues["comp_file_name"]), $sDirName . "/fme/");
+                }
+            }
+            $aReturn = $this->genericPut($this->aProperties['schema_gtf'], 'workspace', 'workspace_id');
+            if ($aReturn["sStatus"] == 1) {
+                if (!empty($this->aValues["groups"])) {
+                    require $this->sRessourcesFile;
+                    $this->oConnection->oBd->delete($this->aProperties['schema_gtf'], 'workspace_group', 'workspace_id', $this->aValues["my_vitis_id"]);
+                    // Traitements à rattacher au groupe ?
+                    if (isset($this->aValues['groups'])) {
+                        $aGroups = explode('|', $this->aValues['groups']);
+                        foreach ($aGroups as $iGroupId) {
+                            $aParams = array();
+                            $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+                            $aParams['workspace_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+                            $aParams['group_id'] = array('value' => $iGroupId, 'type' => 'number');
+                            $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['insertGroupWorkspaces'], $aParams);
+                        }
+                    }
+                }
+                if (!empty($this->aValues["fmw_file_file"])) {
+                    if ($aReturn['sStatus'] == 1) {
+                        $aXmlRacineAttribute['status'] = 1;
+                        $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                        $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                        $oWorkspace->GET();
+                        $aExt = explode(".", $this->aValues["fmw_file_name"]);
+                        if ($aExt[count($aExt) - 1] == "fmw") {
+                            // Sauve le nouveau fichier fmw.
+                            $fp = fopen($sDirName . "/fme/" . utf8_decode($this->aValues["fmw_file_name"]), "w");
+                            fwrite($fp, $this->aValues["fmw_file_file"]);
+                            fclose($fp);
+                            // Fichier .fmw original en .bak.
+                            copy($sDirName . "/fme/" . utf8_decode($this->aValues['fmw_file_name']), $sDirName . "/fme/" . utf8_decode($this->aValues['fmw_file_name']) . '.bak');
+                            // Création du nouveau formulaire.
+                            $oFmwParser = new GtfFmwParser($sDirName . "/fme/" . $this->aValues["fmw_file_name"]);
+                            // Sauve le .fmw sans les visualizers.
+                            $oFmwParser->save($sDirName . "/fme/" . utf8_decode($this->aValues["fmw_file_name"]));
+                            // Création des formulaires json.
+                            $aJson = $oFmwParser->productJson($this->aProperties, $oWorkspace->aFields["name"]);
+                            $fJson = fopen($sDirName . "/form/DSubform.json", "w");
+                            if (fwrite($fJson, json_encode($aJson)) == FALSE) {
+                                if ($fJson == FALSE) {
+                                    writeToErrorLog("Subform.json can't be opened : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the property workspace_dir)");
+                                } else {
+                                    writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
+                                }
+                            }
+                            fclose($fJson);
+                            if ($oWorkspace->aFields["form_type"] == 'default') {
+                                copy($sDirName . "/form/DSubform.json", $sDirName . "/form/Subform.json");
+                                copy($sDirName . "/form/DSubform.json", $sDirName . "/form/WSubform.json");
+                            }
+                            // Récupère les anciens paramètres.
+                            $oFmwParser->getBdMetadata($this->oConnection->oBd, $this->aValues["my_vitis_id"]);
+                            // Mise à jour des paramètres du nouveau fichier dans la base.
+                            $oFmwParser->sSaveDate = gmdate('Y-m-d G:i:s');
+                            $oFmwParser->updateMetadata($this->oConnection->oBd, $this->aValues["my_vitis_id"]);
+                        }
+                    } else {
+                        $aXmlRacineAttribute['status'] = 1;
+                        $sMessage = $aReturn['sMessage'];
+                    }
+                } else if (!empty($error_message)) {
+                    $aXmlRacineAttribute['status'] = 0;
+                    $this->aFields = array();
+                    $this->aFields['errorMessage'] = $error_message;
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                } else {
+                    $aXmlRacineAttribute['status'] = 1;
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                }
+            } else
+                $sMessage = $aReturn["sMessage"];
+        }
+
+        return $sMessage;
+    }
+
+    /**
+     * @SWG\Delete(path="/workspaces/",
+     *   tags={"Workspaces"},
+     *   summary="Delete Workspace",
+     *   description="Request to delete Workspace",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="workspace token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="idList",
+     *     in="query",
+     *     description="id of the workspaces",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/workspaces/{workspace_id}",
+     *   tags={"Workspaces"},
+     *   summary="delete Workspace",
+     *   description="Request to delete Workspace",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="workspace token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * * @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="id of the workspace",
+     *     required=true,
+     *     type="string",
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/workspaces/{workspace_id}/File",
+     *   tags={"Workspaces"},
+     *   summary="delete Workspace directory file",
+     *   description="Request to delete a file of the Workspace directory",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="file_name",
+     *     in="query",
+     *     description="File name",
+     *     required=true,
+     *     type="string",
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+    /**
+     * @SWG\Delete(path="/workspaces/{workspace_id}/DeleteWidgetFile",
+     *   tags={"Workspaces"},
+     *   summary="delete Widget file",
+     *   description="Request to delete the file of the Widget",
+     *   operationId="DELETE",
+     *   produces={"application/xml", "application/json"},
+     *   @SWG\Parameter(
+     *     name="token",
+     *     in="query",
+     *     description="user token",
+     *     required=true,
+     *     type="string"
+     *   ),
+     *   @SWG\Parameter(
+     *     name="workspace_id",
+     *     in="path",
+     *     description="workspace id",
+     *     required=true,
+     *     type="string"
+     *   ),
+     * @SWG\Response(
+     *         response=200,
+     *         description="Poprerties Response",
+     *         @SWG\Schema(ref="#/definitions/workspaces")
+     *     )
+     *  )
+     */
+
+    /**
+     * delete workspace
+     * @return id of workspace deleted or error object if a workspace is not deleted
+     */
+    function DELETE() {
+        if (!empty($this->aPath[3])) {
+            if ($this->aPath[3] == "File") {
+                $aReturn = $this->deleteWorkspaceFile();
+                $aXmlRacineAttribute['status'] = $aReturn['status'];
+                if ($aReturn['status'] == 1) {
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                } else {
+                    $oError = new VitisError(1, 'LICENSE_FILE_INSTALL_ERROR_CONFIGURATION_CONFIGURATION_GTF_LICENSE');
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                }
+            } elseif ($this->aPath[3] == "DeleteWidgetFile") {
+                unset($this->aPath[3]);
+                $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+                $oWorkspace->GET();
+                $sWorkspace_key = $oWorkspace->aFields["key"];
+                // Emplacement des widgets
+                $sWidgetFilePath = $this->aProperties["vas_home"] . '/ws_data/gtf/widget/' . $sWorkspace_key . ".html";
+                $bError = False;
+                if (is_file($sWidgetFilePath)) {
+                    if (!unlink($sWidgetFilePath)) {
+                        $bError = True;
+                        $this->aFields['errorMessage'] = "Failed to remove the widget " . $sWidgetFilePath;
+                    }
+                }
+                $aXmlRacineAttribute['status'] = (int) !$bError;
+                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                return $sMessage;
+            }
+        } else {
+            $aReturn = $this->genericDelete($this->aProperties['schema_gtf'], 'workspace', $this->aValues['idList']);
+            $sMessage = $aReturn['sMessage'];
+        }
+        return $sMessage;
+    }
+
+    /**
+     * Get workspace directory tree.
+     */
+    function getWorkspaceDirectoryTree() {
+        $aReturn = array('status' => 1, 'message' => '');
+        $sWorkspaceDir = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme';
+        $sTreeName = 'fme';
+        if (is_dir($sWorkspaceDir)) {
+            $aDirStructure = $this->getDirStructure($sWorkspaceDir, $sTreeName);
+            $aTreeviewLogs["data"][] = $aDirStructure["data"];
+            foreach ($aDirStructure["files"] as $aFiles) {
+                $aTreeviewLogs["files"][] = $aFiles;
+            }
+            $this->aFields['tree'] = $aTreeviewLogs;
+        } else
+            writeToErrorLog('scandir(' . $sWorkspaceDir . '): failed to open dir');
+        return $aReturn;
+    }
+
+    /*
+     * Retourne l'arborescence d'un répertoire formaté pour "bootstrap-treeview".
+     */
+
+    function getDirStructure($sWorkspaceDir, $sDirName) {
+        $aFilteredDir['data'] = array('text' => $sDirName, 'selectable' => false);
+        $aDir = scandir($sWorkspaceDir);
+        foreach ($aDir as $sName) {
+            $sPath = $sWorkspaceDir . '/' . $sName;
+            $sFileType = filetype($sPath);
+            // Répertoire ?
+            if ($sFileType == 'dir') {
+                if ($sName != '.' && $sName != '..') {
+                    if (is_dir($sPath)) {
+                        $aDirStructure = $this->getDirStructure($sPath . '/', $sName);
+                        if (!empty($aDirStructure['data']['nodes'])) {
+                            // Structure du répertoire.
+                            $aFilteredDir['data']['nodes'][] = $aDirStructure['data'];
+                            // Liste des fichiers .log du répertoire.
+                            foreach ($aDirStructure["files"] as $aFiles) {
+                                $aFilteredDir["files"][] = $aFiles;
+                            }
+                        }
+                    } else
+                        writeToErrorLog('scandir(' . $sPath . '): failed to open dir');
+                }
+            }
+            // fichier ?
+            if ($sFileType == 'file') {
+                // Taille + unité du fichier.
+                //$iFileSize = filesize($sPath);
+                $aFileInfos = stat($sPath);
+                $iFileSizeLabel = $aFileInfos['size'];
+                $aFileSizeUnity = array('o', 'Ko', 'Mo', 'Go', 'To');
+                $i = 0;
+                while ($iFileSizeLabel > 1024) {
+                    $iFileSizeLabel /= 1024;
+                    $i++;
+                }
+                // Sauve la structure du fichier pour le treeview.
+                $sFileLabel = $sName . ' (' . round($iFileSizeLabel) . ' ' . $aFileSizeUnity[$i] . ')';
+                $aFilteredDir['data']['nodes'][] = array(
+                    'text' => utf8_encode($sFileLabel),
+                    'icon' => 'glyphicon glyphicon-file',
+                    'path' => utf8_encode($sPath),
+                    'size' => $aFileInfos['size'],
+                    'tags' => array(date('d/m/Y H:i', $aFileInfos['mtime']))
+                );
+                // Sauve le nom et la date du fichier.
+                $aFilteredDir['files'][] = array(
+                    'path' => utf8_encode($sPath),
+                    'last_modif' => floor((time() - $aFileInfos['mtime']) / (24 * 3600))    // dernière modif. (Nb jours). 
+                );
+            }
+        }
+        return $aFilteredDir;
+    }
+
+    /**
+     * Get workspace file.
+     */
+    function getWorkspaceFile() {
+        $aReturn = array('status' => 1, 'message' => '');
+        $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $this->aValues['file_name'];
+        // Le fichier existe ?
+        if (file_exists($sFilePath)) {
+            header("Content-Type: application/octet-stream");
+            header("Content-Transfer-Encoding: Binary");
+            header("Content-disposition: attachment; filename=\"" . $this->aValues['file_name'] . "\"");
+            header('Content-Length: ' . filesize($sFilePath));
+            readfile($sFilePath);
+        }
+    }
+
+    /**
+     *  Check if Widget file exist
+     */
+    function checkWidgetFile() {
+        $aReturn = array('status' => 1);
+        unset($this->aPath[3]);
+        $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
+        $oWorkspace->GET();
+        $this->aFields['workspace_key'] = $oWorkspace->aFields["key"];
+        $sWidgetFilePath = $this->aProperties["vas_home"] . '/ws_data/gtf/widget/' . $this->aFields['workspace_key'] . '.html';
+        // Le fichier existe ?
+        if (!file_exists($sWidgetFilePath)) {
+            $aReturn = array('status' => 0, 'error_code' => 13, 'message' => 'The file ' . $this->aFields['workspace_key'] . '.html' . 'does not exist.');
+            WriteToErrorLog("The file '$sWidgetFilePath' does not exist.");
+        }
+        return $aReturn;
+    }
+
+    /**
+     * Delete workspace file.
+     */
+    function deleteWorkspaceFile() {
+        $aReturn = array('status' => 1, 'message' => '');
+        $sFilePath = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $this->aValues['file_name'];
+        // Le fichier existe ?
+        if (file_exists(utf8_decode($sFilePath))) {
+            if (!unlink(utf8_decode($sFilePath)))
+                $aReturn = array('status' => 0, 'message' => 'DELETE_FILE_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY', 'error_code' => null);
+        } else
+            $aReturn = array('status' => 0, 'message' => 'FILE_NOT_FOUND_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY', 'error_code' => null);
+
+        return $aReturn;
+    }
+
+    /**
+     * Regenerate workspace metadata.
+     */
+    function regenerateMetadata() {
+        require $this->sRessourcesFile;
+        $aReturn = array('status' => 1, 'message' => '');
+        $aFields = $this->getFields($this->aProperties['schema_gtf'], "workspace", "workspace_id");
+        $sFmwFile = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $aFields['fmw_file'];
+        $oObject = new GtfFmwParser($sFmwFile);
+        // Valeurs des colonnes "last_save_date" et "last_save_build" originales.
+        $aParams = array();
+        $aParams['sSchemaGtf'] = array('value' => $this->aProperties['schema_gtf'], 'type' => 'schema_name');
+        $aParams['workspace_id'] = array('value' => $this->aValues['my_vitis_id'], 'type' => 'number');
+        $oPDOresult = $this->oConnection->oBd->executeWithParams($aSql['getWorkspaceLastSaveData'], $aParams);
+        if (!$this->oConnection->oBd->enErreur()) {
+            $aRow = $this->oConnection->oBd->ligneSuivante($oPDOresult);
+            $oObject->sSaveDate = gmdate('Y-m-d G:i:s');
+            $oObject->sSaveBuild = $aRow['last_save_build'];
+        }
+        // Mise à jour du projet en base.
+        $oObject->updateMetadata($this->oConnection->oBd, $this->aValues["my_vitis_id"]);
+        return $aReturn;
+    }
+
+    /**
+     * Reintegrate workspace metadata.
+     */
+    function reintegrateMetadata() {
+        $aReturn = array('status' => 1, 'message' => '');
+        $aFields = $this->getFields($this->aProperties['schema_gtf'], "workspace", "workspace_id");
+        $sFmwFile = $this->aProperties['workspace_dir'] . '/' . $this->aValues["my_vitis_id"] . '/fme/' . $aFields['fmw_file'];
+        $oObject = new GtfFmwParser($sFmwFile);
+        $oObject->getBdMetadata($this->oConnection->oBd, $this->aValues["my_vitis_id"]);
+        $oObject->save($sFmwFile);
+        return $aReturn;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws/overview.phtml b/src/module_gtf/web_service/ws/overview.phtml
new file mode 100755
index 0000000000000000000000000000000000000000..abcd5e42289921beccfd6aa5da1bf457998d89c4
--- /dev/null
+++ b/src/module_gtf/web_service/ws/overview.phtml
@@ -0,0 +1,24 @@
+<?php
+/**
+ * @SWG\Swagger(
+ *      basePath="/[service_alias]/gtf",
+ *     	host="[server]",
+ *    	schemes={"[protocol]"},
+ *     	produces={  
+ *          "application/json",
+            "application/xml",
+            "text/html"
+ * 		},
+ *     @SWG\Info(
+ *         version="1.0.0",
+ *         title="Gtf Test Rest",
+ *         description="All features to access server operation for gtf",
+ *     )
+ * )
+ */
+?>
+
+<h1 class="titleOverview">Service Gtf</h1>
+<p>
+	<a class="linkOverview" href="javascript:sService='gtf';LoadApi()">Gtf :</a> this is the most comprehensive service which should be used as a preference when developing applications communicating with Gtf. Those services allow you to administrate gtf applications.
+</p>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/gtf.png b/src/module_gtf/web_service/ws_data/gtf/gtf.png
new file mode 100755
index 0000000000000000000000000000000000000000..7e49c0f6504d4c844a1d965c6ff21e0dae87dc54
Binary files /dev/null and b/src/module_gtf/web_service/ws_data/gtf/gtf.png differ
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-1/fme/exportv3.fmw b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/fme/exportv3.fmw
new file mode 100755
index 0000000000000000000000000000000000000000..915752d477e95a4c5d9860e3d815e5391d31864b
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/fme/exportv3.fmw
@@ -0,0 +1,2559 @@
+#! <?xml version="1.0" encoding="UTF-8" ?>
+#! <WORKSPACE
+#    
+#    
+#    Ligne de commande pour exécuter le projet :
+#    
+#    
+#    C:\Apps\FME_2017.0.1.1x64\fme.exe C:\vm02.veremes.net\produit_vitis\web_services\gtf\trunk\ws_data\gtf\workspace\-1\fme\exportv3.fmw
+#          --idWorkspaceList "35"
+#          --destGexFile "C:\antoine_non_sauv\2017_11_gtf_export\test.gex"
+#          --GTF_CONNECTION_STRING "********"
+#    
+#    
+#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Datum"
+#!   SOURCE="NONE"
+#!   DESTINATION_ROUTING_FILE=""
+#!   LAST_SAVE_BUILD="FME(R) 2017.0.1.1 (20170512 - Build 17291 - WIN64)"
+#!   DOC_EXTENTS="8341.68 1887.5"
+#!   SHOW_INFO_NODES="true"
+#!   FME_DOCUMENT_GUID="24e88c09-2967-4adc-b277-b5ac32851349"
+#!   FME_SERVER_SERVICES=""
+#!   DESTINATION="NONE"
+#!   DOC_TOP_LEFT="-1097.25 -1510"
+#!   MARKDOWN_USAGE=""
+#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
+#!   EXPLICIT_BOOKMARK_ORDER="false"
+#!   FME_BUILD_NUM="17291"
+#!   FME_DOCUMENT_PRIORGUID="fd89c3eb-5182-456f-bd29-c4bdae64195b,47d199cd-a566-402e-b9c6-4844847c098b,5a359828-7a13-4433-97c1-631ebac2f228,3c2eb166-2bb5-4c14-b1b9-165496ccf77d,b9f89332-b24a-4203-bf96-28924ba82071,2d525983-25e0-48e0-924f-e75221456754,dd1480d1-fb7f-4010-8027-72314e8d8cb3,df096b1c-049d-4eb1-a9b2-15d706b0ea54,3cb7b1f1-3810-4409-8a78-1eb1e1274190,18039d49-8f55-4145-89fd-b94fba95238b,004cd3a4-00fe-4b9c-933b-5986d0689edc,910f42aa-c3b6-11e7-b7dc-020000e1df2f,0e7248ea-c859-11e7-a6c1-020000e1df2f,7f09b758-378d-41e5-bc51-de9e768c02e4"
+#!   TERMINATE_REJECTED="NO"
+#!   FME_GEOMETRY_HANDLING="Enhanced"
+#!   PASSWORD=""
+#!   DESCRIPTION="&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Export de traitements GEX depuis GTF &lt;/p&gt;&#10;"
+#!   VIEW_POSITION="-674.786 428.655"
+#!   USAGE="&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;    &lt;br/&gt;&lt;/p&gt;"
+#!   MAX_LOG_FEATURES="200"
+#!   ATTR_TYPE_ENCODING="SDF"
+#!   END_PYTHON=""
+#!   WORKSPACE_VERSION="1"
+#!   TITLE="Export GTF"
+#!   IGNORE_READER_FAILURE="No"
+#!   LAST_SAVE_DATE="2018-02-04T21:24:43"
+#!   BEGIN_TCL=""
+#!   HISTORY="20120601,M.&lt;space&gt;Ambrosy,v3&lt;space&gt;:&lt;space&gt;Les&lt;space&gt;traitements&lt;space&gt;sont&lt;space&gt;dans&lt;space&gt;le&lt;space&gt;dossier&lt;space&gt;workspace,20140306,M.&lt;space&gt;Ambrosy,Refonte&lt;space&gt;et&lt;space&gt;gestion&lt;space&gt;des&lt;space&gt;m&lt;u00e9&gt;tadonn&lt;u00e9&gt;es,20140307,M.&lt;space&gt;Ambrosy,D&lt;u00e9&gt;sactivation&lt;space&gt;des&lt;space&gt;groupes,20150109,M.&lt;space&gt;Ambrosy,Mises&lt;space&gt;&lt;u00e0&gt;&lt;space&gt;jour&lt;space&gt;majeures"
+#!   SHOW_ANNOTATIONS="true"
+#!   ZOOM_SCALE="113"
+#!   MARKDOWN_DESCRIPTION=""
+#!   END_TCL=""
+#!   LOG_MAX_RECORDED_FEATURES="200"
+#!   PYTHON_COMPATIBILITY="27"
+#!   CATEGORY="GTF"
+#!   FME_STROKE_MAX_DEVIATION="0"
+#!   SOURCE_ROUTING_FILE=""
+#!   FME_REPROJECTION_ENGINE="FME"
+#!   LOG_FILE=""
+#!   BEGIN_PYTHON=""
+#!   USE_MARKDOWN=""
+#!   REDIRECT_TERMINATORS="NONE"
+#!   WARN_INVALID_XFORM_PARAM="Yes"
+#! >
+#! <DATASETS>
+#! <DATASET
+#!   IS_SOURCE="true"
+#!   ROLE="READER"
+#!   FORMAT="POSTGRES"
+#!   DATASET="$(dbDatabase)"
+#!   KEYWORD="POSTGRES_1"
+#!   MULTI_GEOM_ALLOWED="false"
+#!   ATTR_MAX_LENGTH="60"
+#!   ATTR_CASE="ANY"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="true"
+#!   DEFLINE_TEMPLATE="postgres_type {FME_GEN_GEOMETRY} postgres_sql_where_clause &quot;&quot; postgres_sql_statement &quot;&quot;"
+#!   DEFLINE_ATTRS="true"
+#!   EXPOSABLE_ATTRS="multi_reader_full_id int4 fme_text_size float8 fme_text_string char(50) multi_reader_keyword char(50) fme_fill_color char(50) postgres_oid int4 fme_geometry fme_char(50) multi_reader_id int4 fme_basename char(50) fme_secondary_axis float8 fme_start_angle float8 fme_sweep_angle float8 fme_type char(50) fme_dataset char(50) multi_reader_type char(50) fme_color char(50) fme_feature_type char(50) postgres_type char(50) fme_rotation float8 fme_primary_axis float8"
+#!   DEFLINE_PARMS="&quot;GUI OPTIONAL TEXT postgres_sql_where_clause WHERE Clause&quot; &quot;&quot; &quot;GUI OPTIONAL TEXT postgres_sql_statement SELECT Statement&quot; &quot;&quot; "
+#!   ATTR_INDEX_TYPES="BTREE HASH PRIKEY RTREE"
+#!   ATTR_NAME_INVALID_CHARS=""
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="DATABASE"
+#!   GENERATE_FME_BUILD_NUM="13547"
+#!   MAX_FEATURES=""
+#!   COORDSYS=""
+#!   MIN_FEATURES=""
+#!   MAX_FEATURES_PER_FEATURE_TYPE=""
+#!   FEATURE_TYPES=""
+#!   START_FEATURE=""
+#! />
+#! <DATASET
+#!   IS_SOURCE="false"
+#!   ROLE="WRITER"
+#!   FORMAT="GML"
+#!   DATASET="test.gml"
+#!   KEYWORD="GML_1"
+#!   MULTI_GEOM_ALLOWED="true"
+#!   ATTR_MAX_LENGTH="254"
+#!   ATTR_CASE="ANY"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="true"
+#!   DEFLINE_TEMPLATE=""
+#!   DEFLINE_ATTRS="true"
+#!   EXPOSABLE_ATTRS="fme_rotation xml_real64 fme_text_size xml_real64 fme_geometry fme_char(50) fme_type xml_char(50) fme_color xml_char(50) gml_id xml_char(64) fme_fill_color xml_char(50) fme_feature_type xml_char(50) fme_basename xml_char(50) fme_secondary_axis xml_real64 xml_type xml_char(50) fme_dataset xml_char(50) fme_start_angle xml_real64 fme_sweep_angle xml_real64 fme_text_string xml_char(50) fme_primary_axis xml_real64"
+#!   DEFLINE_PARMS=""
+#!   ATTR_INDEX_TYPES=""
+#!   ATTR_NAME_INVALID_CHARS="[]= %~!@$&amp;#[()^?*&apos;+\\/&quot;:"
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="FILE_OR_URL"
+#!   GENERATE_FME_BUILD_NUM="6508"
+#!   FANOUT_EXPRESSION=""
+#!   FANOUT_GROUP="NO"
+#!   COORDSYS=""
+#! >
+#! <METAFILE_PARAMETER
+#!   NAME="MIME_TYPE"
+#!   VALUE="application/xml"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="ADVANCED_PARMS"
+#!   VALUE="_CONTINUE_ON_GEOM_ERROR HTTP_PROXY HTTP_PROXY_PORT HTTP_PROXY_USER HTTP_PROXY_PASSWORD HTTP_PROXY_AUTH_METHOD _CACHE_XSD _CACHE_XSD_EXPIRY_TIME READ_PREDEFINED_GML_PROPERTIES _SYSTEM_ENCODING _SUPPRESS_XSD_DOCUMENT _SUPPRESS_XSI_SCHEMALOCATION _FEATURE_COLLECTION"
+#! />
+#! </DATASET>
+#! </DATASETS>
+#! <DATA_TYPES>
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bool"
+#!   FME_TYPE="fme_boolean"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varchar(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="xml"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="json"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="jsonb"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_binarybuffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_varbinary(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_binary(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_int8"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_uint8"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int4"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int4"
+#!   FME_TYPE="fme_uint16"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int8"
+#!   FME_TYPE="fme_int64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int8"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="numeric(width,decimal)"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="numeric(20,0)"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="oid"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="serial"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="float4"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="money"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="float8"
+#!   FME_TYPE="fme_real64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="date"
+#!   FME_TYPE="fme_date"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="time"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="timetz"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="timestamp"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="timestamptz"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="uuid"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bit(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varbit"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varbit(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varchar(20)"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="float8"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(1)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_varbinary(width)"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_binary(width)"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_binarybuffer"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_xml"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_datetime"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_date"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_time"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int64"
+#!   FME_TYPE="fme_int64"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint64"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int32"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint32"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int16"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint16"
+#!   FME_TYPE="fme_uint16"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_byte"
+#!   FME_TYPE="fme_int8"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_ubyte"
+#!   FME_TYPE="fme_uint8"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_real32"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_real64"
+#!   FME_TYPE="fme_real64"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_decimal(width,decimal)"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_boolean"
+#!   FME_TYPE="fme_boolean"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(20)"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(8)"
+#!   FME_TYPE="fme_date"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(12)"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_geometry"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="GML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_xml"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="GML"
+#! />
+#! </DATA_TYPES>
+#! <GEOM_TYPES>
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_no_geom"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_point"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_line"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_area"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_rectangle"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_rounded_rectangle"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_text"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_ellipse"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_arc"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postrgres_none"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_raster"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_solid"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_point_cloud"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_no_geom"
+#!   FME_TYPE="fme_no_geom"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_point"
+#!   FME_TYPE="fme_point"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_line"
+#!   FME_TYPE="fme_line"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_area"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_aggregate"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_text"
+#!   FME_TYPE="fme_text"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_ellipse"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_rectangle"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_rounded_rectangle"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_arc"
+#!   FME_TYPE="fme_arc"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_surface"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_solid"
+#!   FME_TYPE="fme_solid"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_mesh"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_raster"
+#!   FORMAT="GML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_point_cloud"
+#!   FORMAT="GML"
+#! />
+#! </GEOM_TYPES>
+#! <FEATURE_TYPES>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="true"
+#!   NODE_NAME="workspace"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER="s_gtf"
+#!   IS_EDITABLE="false"
+#!   IDENTIFIER="35"
+#!   FEAT_GEOMTYPE="postgres_none"
+#!   POSITION="-1097.25 -187"
+#!   BOUNDING_RECT="-1097.25 -187 990.386 71"
+#!   ORDER="5e+14"
+#!   COLLAPSED="true"
+#!   KEYWORD="POSTGRES_1"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   HIDDEN_USER_ATTRS=""
+#!   MERGE_FILTER=""
+#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
+#!   MERGE_FILTER_CASE_SENSITIVE="false"
+#!   DYNAMIC_SCHEMA="false"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="workspace_id" ATTR_TYPE="int4,PRIKEY" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="name" ATTR_TYPE="varchar(100),BTREE" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="description" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="subscription" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="fmw_file" ATTR_TYPE="varchar(150)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="category_id" ATTR_TYPE="int4,BTREE" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="success_action_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="failed_action_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="survey" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="form_type" ATTR_TYPE="varchar(10)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="legal_terms_conditions" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="usage" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="requirements" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="history" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_date" ATTR_TYPE="timestamp" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_build" ATTR_TYPE="varchar(255)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="file_encoding" ATTR_TYPE="varchar(50)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="title" ATTR_TYPE="varchar(255)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="key" ATTR_TYPE="varchar(40)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="email_template_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="owner" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="creation_date" ATTR_TYPE="date" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="locked" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="tag" ATTR_TYPE="varchar(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_sql_statement" PARM_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_sql_where_clause" PARM_VALUE=""/>
+#! </FEATURE_TYPE>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="true"
+#!   NODE_NAME="category"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER="s_gtf"
+#!   IS_EDITABLE="false"
+#!   IDENTIFIER="42"
+#!   FEAT_GEOMTYPE="postgres_none"
+#!   POSITION="1786 -1013"
+#!   BOUNDING_RECT="1786 -1013 0 0"
+#!   ORDER="5e+14"
+#!   COLLAPSED="false"
+#!   KEYWORD="POSTGRES_1"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   HIDDEN_USER_ATTRS=""
+#!   MERGE_FILTER=""
+#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
+#!   MERGE_FILTER_CASE_SENSITIVE="false"
+#!   DYNAMIC_SCHEMA="false"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="category_id" ATTR_TYPE="int4,PRIKEY" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="name" ATTR_TYPE="varchar(50)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="description" ATTR_TYPE="varchar(200)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_sql_statement" PARM_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_sql_where_clause" PARM_VALUE=""/>
+#! </FEATURE_TYPE>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="false"
+#!   NODE_NAME="gtf_pro_workspace"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER=""
+#!   IS_EDITABLE="true"
+#!   IDENTIFIER="77"
+#!   FEAT_GEOMTYPE="All"
+#!   POSITION="6218.97 -1439"
+#!   BOUNDING_RECT="6218.97 -1439 1025.46 71"
+#!   ORDER="5e+14"
+#!   COLLAPSED="false"
+#!   KEYWORD="GML_1"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   SCHEMA_ATTRIBUTE_SOURCE="1"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="workspace_id" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="label_name" ATTR_TYPE="xml_char(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="description" ATTR_TYPE="xml_buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="subscription" ATTR_TYPE="xml_boolean" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="fmw_file" ATTR_TYPE="xml_char(150)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="category_id" ATTR_TYPE="xml_int16" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="category_name" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="lb_method_id" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="success_action_id" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="failed_action_id" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="survey" ATTR_TYPE="xml_boolean" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="form_type" ATTR_TYPE="xml_char(10)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="legal_terms_conditions" ATTR_TYPE="xml_buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="usage" ATTR_TYPE="xml_buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="requirements" ATTR_TYPE="xml_buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="history" ATTR_TYPE="xml_buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_date" ATTR_TYPE="xml_char(20)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_build" ATTR_TYPE="xml_char(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="file_encoding" ATTR_TYPE="xml_char(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="title" ATTR_TYPE="xml_char(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="key" ATTR_TYPE="xml_char(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="email_template_id" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="owner" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="creation_date" ATTR_TYPE="xml_char(8)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="locked" ATTR_TYPE="xml_boolean" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="tag" ATTR_TYPE="xml_char(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#! </FEATURE_TYPE>
+#! </FEATURE_TYPES>
+#! <FMESERVER>
+#! </FMESERVER>
+#! <GLOBAL_PARAMETERS>
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR idWorkspaceList id séparés par un espace :"
+#!   DEFAULT_VALUE="35"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI FILENAME_OR_ATTR destGexFile Export_GTF|*.gex Fichier Gtf Export (.gex) :"
+#!   DEFAULT_VALUE="C:\antoine_non_sauv\2017_11_gtf_export\test.gex"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL PASSWORD_OR_ATTR GTF_CONNECTION_STRING Chaîne de connexion à la base GTF :"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbServer Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;0&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbPort Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;1&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbDatabase Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;2&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbUser Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;3&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbPassword Script Python:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;4&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! </GLOBAL_PARAMETERS>
+#! <COMMENTS>
+#! <COMMENT
+#!   IDENTIFIER="43"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;s_gtf.category&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="1793 -835"
+#!   TOP_LEFT="1793 -835"
+#!   BOTTOM_RIGHT="1793 -835"
+#!   BOUNDING_RECT="1793 -835 0 0"
+#!   ORDER="26"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="42"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="87"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:11px; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Copie des fichiers vers temp&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="4479 -830"
+#!   TOP_LEFT="4479 -830"
+#!   BOTTOM_RIGHT="4479 -830"
+#!   BOUNDING_RECT="4479 -830 0 0"
+#!   ORDER="30"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="86"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="46"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;s_gtf.workspace&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-761.286 54.5576"
+#!   TOP_LEFT="-761.286 54.5576"
+#!   BOTTOM_RIGHT="-761.286 54.5576"
+#!   BOUNDING_RECT="-761.286 54.5576 0 0"
+#!   ORDER="41"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="35"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="73"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;Ecriture du fichier GML&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="6246.97 -1250"
+#!   TOP_LEFT="6246.97 -1250"
+#!   BOTTOM_RIGHT="6246.97 -1250"
+#!   BOUNDING_RECT="6246.97 -1250 0 0"
+#!   ORDER="47"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="77"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="33"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:11px; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11px;&quot;&gt;On est obligé de récupèrer&lt;/span&gt;&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11px;&quot;&gt;le paramètre sous forme d&apos;attribut&lt;/span&gt;&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11px;&quot;&gt;pour le modifier ensuite&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="237.997 136.558"
+#!   TOP_LEFT="237.997 136.558"
+#!   BOTTOM_RIGHT="237.997 136.558"
+#!   BOUNDING_RECT="237.997 136.558 0 0"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="26"
+#! />
+#! </COMMENTS>
+#! <CONSTANTS>
+#! </CONSTANTS>
+#! <BOOKMARKS>
+#! <BOOKMARK
+#!   IDENTIFIER="25"
+#!   NAME="Récupère le nom de la catégorie"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="1688 -693"
+#!   BOTTOM_RIGHT="4069 -1345"
+#!   BOUNDING_RECT="1688 -693 2381 652"
+#!   STICKY="true"
+#!   COLOUR="0.164706,0.866667,0.976471"
+#!   CONTENTS="63 43 64 42 66 51 59 65 "
+#! />
+#! </BOOKMARKS>
+#! <TRANSFORMERS>
+#! <TRANSFORMER
+#!   IDENTIFIER="57"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="2"
+#!   POSITION="2907 -194"
+#!   BOUNDING_RECT="2907 -194 0 0"
+#!   ORDER="34"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="name,label_name,&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="59"
+#!   TYPE="AttributeRemover"
+#!   VERSION="0"
+#!   POSITION="2374 -1021"
+#!   BOUNDING_RECT="2374 -1021 0 0"
+#!   ORDER="27"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="description"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_2"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="63"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="2"
+#!   POSITION="2971 -1038"
+#!   BOUNDING_RECT="2971 -1038 0 0"
+#!   ORDER="28"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer_2"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="name,category_name,&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="65"
+#!   TYPE="FeatureMerger"
+#!   VERSION="10"
+#!   POSITION="3589 -783"
+#!   BOUNDING_RECT="3589 -783 0 0"
+#!   ORDER="35"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="NOT_MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <OUTPUT_FEAT NAME="REFERENCED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="2"/>
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="numReferences" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <OUTPUT_FEAT NAME="UNREFERENCED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="3"/>
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <OUTPUT_FEAT NAME="DUPLICATE_SUPPLIER"/>
+#!     <FEAT_COLLAPSED COLLAPSED="4"/>
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_PARM PARM_NAME="JOIN_KEYS" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;category_id&lt;closeparen&gt; &lt;at&gt;Value&lt;openparen&gt;category_id&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="JOIN_ATTRIBUTES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="IGNORE_NULLS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIER_PREFIX_DUMMY" PARM_VALUE="YES"/>
+#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GEOM_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIER_PREFIX" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureMerger_3"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIERS_FIRST" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="PROCESS_DUPS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="MERGE_TYPE" PARM_VALUE="Attributes Only"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="86"
+#!   TYPE="PythonCaller"
+#!   VERSION="4"
+#!   POSITION="4490 -997"
+#!   BOUNDING_RECT="4490 -997 0 0"
+#!   ORDER="42"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="PYTHONSYMBOL" PARM_VALUE="FeatureProcessor"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PYTHONSOURCE" PARM_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;os&lt;lf&gt;import&lt;space&gt;shutil&lt;lf&gt;&lt;lf&gt;def&lt;space&gt;FeatureProcessor&lt;openparen&gt;feature&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;fme_mf_dir&lt;space&gt;=&lt;space&gt;os.path.normpath&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;FME_MF_DIR&lt;apos&gt;&lt;closebracket&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;workspace_id&lt;space&gt;=&lt;space&gt;feature.getAttribute&lt;openparen&gt;&lt;apos&gt;workspace_id&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;projectsourcedir&lt;space&gt;=&lt;space&gt;fme_mf_dir&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;&lt;solidus&gt;..&lt;solidus&gt;&lt;solidus&gt;..&lt;solidus&gt;&lt;solidus&gt;&lt;apos&gt;&lt;space&gt;+&lt;space&gt;workspace_id&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;os.path.exists&lt;openparen&gt;projectsourcedir&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;try:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;shutil.copytree&lt;openparen&gt;projectsourcedir&lt;comma&gt;&lt;space&gt;feature.getAttribute&lt;openparen&gt;&lt;apos&gt;_tempDir&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;&lt;solidus&gt;&lt;apos&gt;&lt;space&gt;+&lt;space&gt;workspace_id&lt;comma&gt;&lt;space&gt;symlinks=False&lt;comma&gt;&lt;space&gt;ignore=None&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;except:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;print&lt;space&gt;&lt;quote&gt;Une&lt;space&gt;erreur&lt;space&gt;PYTHON&lt;space&gt;est&lt;space&gt;survenue&lt;space&gt;!&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;raise"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="PythonCaller"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="HIDE_ATTRIBUTES" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="56"
+#!   TYPE="StringReplacer"
+#!   VERSION="3"
+#!   POSITION="952.985 -184"
+#!   BOUNDING_RECT="952.985 -184 0 0"
+#!   ORDER="49"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_idWorkspaceList" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;space&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="StringReplacer"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_idWorkspaceList"/>
+#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE="&lt;comma&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="58"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="1623.91 -179"
+#!   BOUNDING_RECT="1623.91 -179 0 0"
+#!   ORDER="48"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_idWorkspaceList" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_idWorkspaceList" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt; IN &lt;at&gt;Value&lt;openparen&gt;_idWorkspaceList&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="26"
+#!   TYPE="ParameterFetcher"
+#!   VERSION="4"
+#!   POSITION="303.414 -179"
+#!   BOUNDING_RECT="303.414 -179 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_idWorkspaceList" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="ParameterFetcher"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="_idWorkspaceList {$(idWorkspaceList)}"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="30"
+#!   TYPE="AttributeRemover"
+#!   VERSION="0"
+#!   POSITION="2232.09 -194"
+#!   BOUNDING_RECT="2232.09 -194 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="_idWorkspaceList"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="34"
+#!   TYPE="FeatureWriter"
+#!   VERSION="0"
+#!   POSITION="5107.96 -877"
+#!   BOUNDING_RECT="5107.96 -877 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="16492"
+#! >
+#!     <OUTPUT_FEAT NAME="SUMMARY"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.count" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="DATASET_ATTR" PARM_VALUE="_dataset"/>
+#!     <XFORM_PARM PARM_NAME="GML_SYSTEM_ENCODING" PARM_VALUE="utf-8"/>
+#!     <XFORM_PARM PARM_NAME="GML_DESTINATION_DATASETTYPE_VALIDATION" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="GML_STYLESHEET_RESULT" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_FEATURE_COLLECTION_NS_URI" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="WRITER_DIRECTIVES" PARM_VALUE="PREFER_POLYGON_OVER_SURFACE,no,WRITE_ALL_FEATURE_TYPE_DEFNS,no,TARGET_NS_PREFIX,gex,INDENT_SIZE,1,USE_STYLESHEET_RESULT_AS_DATASET,no,PRETTY_PRINT_SETTINGS,FME_DISCLOSURE_OPEN,PROFILE,3.1.1,FEATURE_COLLECTION_GROUP,FME_DISCLOSURE_CLOSED,TEXT_INDENT,No,GML_WRT_ADV_PARAMETERS,FME_DISCLOSURE_OPEN,SUPPRESS_XSI_SCHEMALOCATION,no,COORDINATE_SYSTEM_GRANULARITY,DATASET,VALIDATE_OUTPUT_DATASET,NO,TARGET_NS_URI,http:&lt;solidus&gt;&lt;solidus&gt;www.veremes.com&lt;solidus&gt;gtf&lt;solidus&gt;export,DESTINATION_DATASETTYPE_VALIDATION,Yes,DOCUMENTS_TO_WRITE,BOTH,SYSTEM_ENCODING,utf-8,REPLACE_TABS_WITH_SPACES,No,PRETTY_PRINT,No"/>
+#!     <XFORM_PARM PARM_NAME="GML_APPLY_STYLESHEET" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_TARGET_NS_PREFIX" PARM_VALUE="gex"/>
+#!     <XFORM_PARM PARM_NAME="FEATURE_TYPE_LIST_ATTR" PARM_VALUE="_feature_type"/>
+#!     <XFORM_PARM PARM_NAME="GML_TARGET_NS_URI" PARM_VALUE="http://www.veremes.com/gtf/export"/>
+#!     <XFORM_PARM PARM_NAME="GML_WRITE_ALL_FEATURE_TYPE_DEFNS" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="GML"/>
+#!     <XFORM_PARM PARM_NAME="WRITER_FEATURE_TYPE_PARAMS" PARM_VALUE="WRITER_METAFILE_INFO,ATTRIBUTE_CASE,ANY,ATTRIBUTE_INVALID_CHARS,&lt;openbracket&gt;&lt;closebracket&gt;=&lt;space&gt;%~!&lt;at&gt;&lt;dollar&gt;&lt;amp&gt;#&lt;openbracket&gt;&lt;openparen&gt;&lt;closeparen&gt;^?*&lt;apos&gt;+&lt;backslash&gt;&lt;backslash&gt;&lt;solidus&gt;&lt;quote&gt;:,ATTRIBUTE_LENGTH,254,ATTR_TYPE_MAP,xml_char&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_varchar&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;xml_char&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_varbinary&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;xml_char&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_char&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;xml_char&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_binary&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;xml_buffer&lt;comma&gt;fme_buffer&lt;comma&gt;xml_buffer&lt;comma&gt;fme_binarybuffer&lt;comma&gt;xml_buffer&lt;comma&gt;fme_json&lt;comma&gt;xml_xml&lt;comma&gt;fme_xml&lt;comma&gt;xml_datetime&lt;comma&gt;fme_buffer&lt;comma&gt;xml_date&lt;comma&gt;fme_buffer&lt;comma&gt;xml_time&lt;comma&gt;fme_buffer&lt;comma&gt;xml_int64&lt;comma&gt;fme_int64&lt;comma&gt;xml_uint64&lt;comma&gt;fme_uint64&lt;comma&gt;xml_int32&lt;comma&gt;fme_int32&lt;comma&gt;xml_uint32&lt;comma&gt;fme_uint32&lt;comma&gt;xml_int16&lt;comma&gt;fme_int16&lt;comma&gt;xml_uint16&lt;comma&gt;fme_uint16&lt;comma&gt;xml_byte&lt;comma&gt;fme_int8&lt;comma&gt;xml_ubyte&lt;comma&gt;fme_uint8&lt;comma&gt;xml_real32&lt;comma&gt;fme_real32&lt;comma&gt;xml_real64&lt;comma&gt;fme_real64&lt;comma&gt;&lt;quote&gt;xml_decimal&lt;openparen&gt;width&lt;comma&gt;decimal&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;&lt;quote&gt;fme_decimal&lt;openparen&gt;width&lt;comma&gt;decimal&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;xml_boolean&lt;comma&gt;fme_boolean&lt;comma&gt;xml_char&lt;openparen&gt;20&lt;closeparen&gt;&lt;comma&gt;fme_datetime&lt;comma&gt;xml_char&lt;openparen&gt;8&lt;closeparen&gt;&lt;comma&gt;fme_date&lt;comma&gt;xml_char&lt;openparen&gt;12&lt;closeparen&gt;&lt;comma&gt;fme_time&lt;comma&gt;xml_geometry&lt;comma&gt;fme_buffer,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,&lt;backslash&gt;&lt;backslash&gt;&lt;solidus&gt;&lt;quote&gt;:?*&lt;lt&gt;&lt;gt&gt;|&lt;openbracket&gt;&lt;closebracket&gt;=&lt;space&gt;%~!&lt;at&gt;&lt;dollar&gt;&lt;amp&gt;#&lt;openparen&gt;&lt;closeparen&gt;^&lt;apos&gt;+,FEATURE_TYPE_LENGTH,254,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,false,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_NAME,GML,GEOM_MAP,xml_no_geom&lt;comma&gt;fme_no_geom&lt;comma&gt;xml_point&lt;comma&gt;fme_point&lt;comma&gt;xml_line&lt;comma&gt;fme_line&lt;comma&gt;xml_area&lt;comma&gt;fme_polygon&lt;comma&gt;xml_aggregate&lt;comma&gt;fme_collection&lt;comma&gt;xml_text&lt;comma&gt;fme_text&lt;comma&gt;xml_area&lt;comma&gt;fme_ellipse&lt;comma&gt;xml_area&lt;comma&gt;fme_rectangle&lt;comma&gt;xml_area&lt;comma&gt;fme_rounded_rectangle&lt;comma&gt;xml_arc&lt;comma&gt;fme_arc&lt;comma&gt;xml_surface&lt;comma&gt;fme_surface&lt;comma&gt;xml_solid&lt;comma&gt;fme_solid&lt;comma&gt;xml_mesh&lt;comma&gt;fme_surface&lt;comma&gt;xml_area&lt;comma&gt;fme_raster&lt;comma&gt;xml_area&lt;comma&gt;fme_point_cloud&lt;comma&gt;xml_no_geom&lt;comma&gt;fme_feature_table,READER_ATTR_INDEX_TYPES,,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,GML,WRITER_ATTR_INDEX_TYPES,,WRITER_DEFLINE_PARMS,,WRITER_DEF_LINE_TEMPLATE,&lt;opencurly&gt;FME_GEN_GROUP_NAME&lt;closecurly&gt;,WRITER_FORMAT_PARAMETER,ADVANCED_PARMS&lt;comma&gt;&lt;quote&gt;GML_OUT_SYSTEM_ENCODING&lt;space&gt;GML_OUT_WRITE_ALL_FEATURE_TYPE_DEFNS&lt;space&gt;GML_OUT_DOCUMENTS_TO_WRITE&lt;space&gt;GML_OUT_SUPPRESS_XSI_SCHEMALOCATION&lt;space&gt;GML_OUT_MAXIMUM_FRACTION_DIGITS&lt;space&gt;GML_OUT_MINIMUM_FRACTION_DIGITS&lt;space&gt;GML_OUT_APPLY_STYLESHEET&lt;space&gt;GML_OUT_STYLESHEET_RESULT&lt;space&gt;GML_OUT_USE_STYLESHEET_RESULT_AS_DATASET&lt;space&gt;GML_OUT_OVERRIDE_XSD_AND_USE_NAMESPACE_DECLARATIONS&lt;space&gt;GML_OUT_TARGET_NS_PREFIX&lt;space&gt;GML_OUT_TARGET_NS_URI&lt;space&gt;GML_OUT_MAP_ALL_SUBSTITUTABLE_PROPERTIES&lt;space&gt;GML_OUT_ADD_NAMESPACE_PREFIX_TO_NAMES&lt;space&gt;GML_OUT_MAX_MULTI_LIST_LEVEL&lt;space&gt;GML_OUT_FEATURE_COLLECTION&lt;space&gt;GML_OUT_FEATURE_COLLECTION_ID&lt;space&gt;GML_OUT_FEATURE_COLLECTION_NS_URI&lt;space&gt;GML_OUT_MAP_EMBEDDED_OBJECTS_AS&lt;space&gt;GML_OUT_MAP_PREDEFINED_GML_PROPERTIES&lt;space&gt;GML_OUT_MAP_COMPLEX_PROPERTIES_AS&lt;space&gt;GML_OUT_INDENT_SIZE&lt;space&gt;GML_OUT_REPLACE_TABS_WITH_SPACES&lt;space&gt;GML_OUT_TEXT_INDENT&lt;quote&gt;&lt;comma&gt;MIME_TYPE&lt;comma&gt;application&lt;solidus&gt;xml&lt;comma&gt;NETWORK_AUTHENTICATION&lt;comma&gt;ALWAYS&lt;comma&gt;NETWORK_PROXY&lt;comma&gt;NO&lt;comma&gt;DATASET_NAME&lt;comma&gt;&lt;quote&gt;gml&lt;space&gt;file&lt;quote&gt;&lt;comma&gt;READER_DATASET_HINT&lt;comma&gt;&lt;quote&gt;Select&lt;space&gt;the&lt;space&gt;GML&lt;space&gt;file&lt;openparen&gt;s&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;WRITER_DATASET_HINT&lt;comma&gt;&lt;quote&gt;Specify&lt;space&gt;a&lt;space&gt;name&lt;space&gt;for&lt;space&gt;the&lt;space&gt;GML&lt;space&gt;file&lt;quote&gt;,WRITER_HAS_DEFLINE_ATTRS,yes;gtf_pro_workspace:gtf_pro_workspace,ftp_feature_type_name,gtf_pro_workspace,ftp_writer,GML,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,&lt;lt&gt;lt&lt;gt&gt;Unused&lt;lt&gt;gt&lt;gt&gt;,ftp_attribute_source,1,ftp_user_attributes,workspace_id&lt;comma&gt;xml_int32&lt;comma&gt;label_name&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;100&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;description&lt;comma&gt;xml_buffer&lt;comma&gt;subscription&lt;comma&gt;xml_boolean&lt;comma&gt;fmw_file&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;150&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;category_id&lt;comma&gt;xml_int16&lt;comma&gt;category_name&lt;comma&gt;xml_int32&lt;comma&gt;lb_method_id&lt;comma&gt;xml_int32&lt;comma&gt;success_action_id&lt;comma&gt;xml_int32&lt;comma&gt;failed_action_id&lt;comma&gt;xml_int32&lt;comma&gt;survey&lt;comma&gt;xml_boolean&lt;comma&gt;form_type&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;10&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;legal_terms_conditions&lt;comma&gt;xml_buffer&lt;comma&gt;usage&lt;comma&gt;xml_buffer&lt;comma&gt;requirements&lt;comma&gt;xml_buffer&lt;comma&gt;history&lt;comma&gt;xml_buffer&lt;comma&gt;last_save_date&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;20&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;last_save_build&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;80&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;file_encoding&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;80&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;title&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;80&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;key&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;80&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;email_template_id&lt;comma&gt;xml_int32&lt;comma&gt;owner&lt;comma&gt;xml_int32&lt;comma&gt;creation_date&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;8&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;locked&lt;comma&gt;xml_boolean&lt;comma&gt;tag&lt;comma&gt;xml_char&lt;lt&gt;openparen&lt;gt&gt;100&lt;lt&gt;closeparen&lt;gt&gt;,ftp_format_attributes,gml_id&lt;comma&gt;gml_parent_id&lt;comma&gt;gml_parent_property"/>
+#!     <XFORM_PARM PARM_NAME="GML_PROFILE" PARM_VALUE="3.1.1"/>
+#!     <XFORM_PARM PARM_NAME="GML_TEXT_INDENT" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="GML_FEATURE_PROPERTIES_ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_DIRECTIVES" PARM_VALUE="RUNTIME_MACROS,PREFER_POLYGON_OVER_SURFACE&lt;comma&gt;no&lt;comma&gt;SRS_AXIS_ORDER&lt;comma&gt;&lt;comma&gt;WRITE_ALL_FEATURE_TYPE_DEFNS&lt;comma&gt;no&lt;comma&gt;TARGET_NS_PREFIX&lt;comma&gt;gex&lt;comma&gt;FEATURE_COLLECTION_NS_URI&lt;comma&gt;&lt;comma&gt;INDENT_SIZE&lt;comma&gt;1&lt;comma&gt;USE_STYLESHEET_RESULT_AS_DATASET&lt;comma&gt;no&lt;comma&gt;PRETTY_PRINT_SETTINGS&lt;comma&gt;FME_DISCLOSURE_OPEN&lt;comma&gt;FEATURE_COLLECTION_ID&lt;comma&gt;&lt;comma&gt;SRS_NAME&lt;comma&gt;&lt;comma&gt;PROFILE&lt;comma&gt;3.1.1&lt;comma&gt;FEATURE_COLLECTION_GROUP&lt;comma&gt;FME_DISCLOSURE_CLOSED&lt;comma&gt;TEXT_INDENT&lt;comma&gt;No&lt;comma&gt;GML_WRT_ADV_PARAMETERS&lt;comma&gt;FME_DISCLOSURE_OPEN&lt;comma&gt;MAXIMUM_FRACTION_DIGITS&lt;comma&gt;&lt;comma&gt;SUPPRESS_XSI_SCHEMALOCATION&lt;comma&gt;no&lt;comma&gt;COORDINATE_SYSTEM_GRANULARITY&lt;comma&gt;DATASET&lt;comma&gt;FEATURE_COLLECTION&lt;comma&gt;&lt;comma&gt;FEATURE_PROPERTIES&lt;comma&gt;&lt;comma&gt;FEATURE_PROPERTIES_ATTRIBUTE_HANDLING&lt;comma&gt;&lt;comma&gt;VALIDATE_OUTPUT_DATASET&lt;comma&gt;NO&lt;comma&gt;TARGET_NS_URI&lt;comma&gt;http:&lt;solidus&gt;&lt;solidus&gt;www.veremes.com&lt;solidus&gt;gtf&lt;solidus&gt;export&lt;comma&gt;APPLY_STYLESHEET&lt;comma&gt;&lt;comma&gt;DESTINATION_DATASETTYPE_VALIDATION&lt;comma&gt;Yes&lt;comma&gt;DOCUMENTS_TO_WRITE&lt;comma&gt;BOTH&lt;comma&gt;OVERRIDE_XSD_AND_USE_NAMESPACE_DECLARATIONS&lt;comma&gt;&lt;comma&gt;STYLESHEET_RESULT&lt;comma&gt;&lt;comma&gt;MINIMUM_FRACTION_DIGITS&lt;comma&gt;&lt;comma&gt;SYSTEM_ENCODING&lt;comma&gt;utf-8&lt;comma&gt;REPLACE_TABS_WITH_SPACES&lt;comma&gt;No&lt;comma&gt;PRETTY_PRINT&lt;comma&gt;No,METAFILE,GML"/>
+#!     <XFORM_PARM PARM_NAME="SUMMARY_ATTRS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_SRS_NAME" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_PREFER_POLYGON_OVER_SURFACE" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="GML_PREFER_POLYGON_OVER_SURFACE,&quot;OPTIONAL CHOICE no%yes&quot;,GML&lt;space&gt;Prefer&lt;space&gt;Polygons&lt;space&gt;over&lt;space&gt;Surfaces:,GML_SRS_AXIS_ORDER,&quot;OPTIONAL CHOICE 1,2%2,1%1,2,3%2,1,3&quot;,GML&lt;space&gt;GML&lt;space&gt;SRS&lt;space&gt;Axis&lt;space&gt;Order:,GML_WRITE_ALL_FEATURE_TYPE_DEFNS,&quot;OPTIONAL CHOICE no%yes&quot;,GML&lt;space&gt;Write&lt;space&gt;All&lt;space&gt;Feature&lt;space&gt;Types:,GML_TARGET_NS_PREFIX,&quot;OPTIONAL TEXT&quot;,GML&lt;space&gt;Target&lt;space&gt;Namespace&lt;space&gt;Prefix:,GML_FEATURE_COLLECTION_NS_URI,&quot;OPTIONAL STRING_OR_CHOICE http://www.opengis.net/gml%http://www.opengis.net/gml/3.2%http://www.opengis.net/wfs%http://www.opengis.net/wfs/2.0&quot;,GML&lt;space&gt;Feature&lt;space&gt;Collection&lt;space&gt;NS&lt;space&gt;URI:,GML_INDENT_SIZE,&quot;OPTIONAL CHOICE 0%1%2%3%4%5%6%7%8%9&quot;,GML&lt;space&gt;Indent&lt;space&gt;Size:,GML_USE_STYLESHEET_RESULT_AS_DATASET,&quot;OPTIONAL CHOICE no%yes&quot;,GML&lt;space&gt;Dataset&lt;space&gt;as&lt;space&gt;Stylesheet&lt;space&gt;Result:,GML_PRETTY_PRINT_SETTINGS,&quot;OPTIONAL DISCLOSUREGROUP PRETTY_PRINT%INDENT_SIZE%REPLACE_TABS_WITH_SPACES%TEXT_INDENT&quot;,GML&lt;space&gt;Pretty&lt;space&gt;Printing,GML_FEATURE_COLLECTION_ID,&quot;OPTIONAL TEXT&quot;,GML&lt;space&gt;Feature&lt;space&gt;Collection&lt;space&gt;ID:,GML_SRS_NAME,&quot;OPTIONAL TEXT&quot;,GML&lt;space&gt;GML&lt;space&gt;srsName:,GML_PROFILE,&quot;OPTIONAL ACTIVECHOICE 3.1.1,XSD_DOC,FEATURE_PROPERTIES,FEATURE_PROPERTIES_ATTRIBUTE_HANDLING%3.2.1,XSD_DOC,FEATURE_PROPERTIES,FEATURE_PROPERTIES_ATTRIBUTE_HANDLING%&quot;&quot;GML Application Schema&quot;&quot;,TARGET_NS_PREFIX,TARGET_NS_URI,WRITE_ALL_FEATURE_TYPE_DEFNS,DOCUMENTS_TO_WRITE&quot;,GML&lt;space&gt;GML&lt;space&gt;Version:,GML_FEATURE_COLLECTION_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FEATURE_COLLECTION%FEATURE_COLLECTION_ID%FEATURE_COLLECTION_NS_URI&quot;,GML&lt;space&gt;Feature&lt;space&gt;Collection,GML_TEXT_INDENT,&quot;OPTIONAL CHOICE Yes%No&quot;,GML&lt;space&gt;Indent&lt;space&gt;Text:,GML_GML_WRT_ADV_PARAMETERS,&quot;OPTIONAL DISCLOSUREGROUP WRITE_ALL_FEATURE_TYPE_DEFNS%MAXIMUM_FRACTION_DIGITS%MINIMUM_FRACTION_DIGITS%SYSTEM_ENCODING%DOCUMENTS_TO_WRITE%SUPPRESS_XSI_SCHEMALOCATION%APPLY_STYLESHEET%STYLESHEET_RESULT%USE_STYLESHEET_RESULT_AS_DATASET%OVERRIDE_XSD_AND_USE_NAMESPACE_DECLARATIONS%PREFER_POLYGON_OVER_SURFACE%VALIDATE_OUTPUT_DATASET&quot;,GML&lt;space&gt;Advanced,GML_MAXIMUM_FRACTION_DIGITS,&quot;OPTIONAL INTEGER&quot;,GML&lt;space&gt;Maximum&lt;space&gt;Decimal&lt;space&gt;Places:,GML_SUPPRESS_XSI_SCHEMALOCATION,&quot;OPTIONAL CHOICE no%yes&quot;,GML&lt;space&gt;Suppress&lt;space&gt;xsi:schemaLocation&lt;space&gt;Attribute:,GML_COORDINATE_SYSTEM_GRANULARITY,&quot;IGNORE TEXT&quot;,GML&lt;space&gt;,GML_FEATURE_COLLECTION,&quot;OPTIONAL STRING_OR_CHOICE FeatureCollection%target-namespace&quot;,GML&lt;space&gt;Feature&lt;space&gt;Collection:,GML_FEATURE_PROPERTIES,&quot;OPTIONAL DISCLOSUREGROUP MAP_EMBEDDED_OBJECTS_AS%MAP_PREDEFINED_GML_PROPERTIES%MAP_ALL_SUBSTITUTABLE_PROPERTIES%ADD_NAMESPACE_PREFIX_TO_NAMES&quot;,GML&lt;space&gt;Feature&lt;space&gt;Properties,GML_FEATURE_PROPERTIES_ATTRIBUTE_HANDLING,&quot;OPTIONAL DISCLOSUREGROUP MAP_COMPLEX_PROPERTIES_AS%MAX_MULTI_LIST_LEVEL%XML_FRAGMENTS_AS_DOCUMENTS%FLATTEN_XML_FRAGMENTS&quot;,GML&lt;space&gt;Feature&lt;space&gt;Properties&lt;space&gt;-&lt;space&gt;Attribute&lt;space&gt;Handling,GML_VALIDATE_OUTPUT_DATASET,&quot;OPTIONAL CHOICE YES%NO&quot;,GML&lt;space&gt;Validate&lt;space&gt;Output&lt;space&gt;File:,GML_TARGET_NS_URI,&quot;OPTIONAL TEXT&quot;,GML&lt;space&gt;Target&lt;space&gt;Namespace&lt;space&gt;URI:,GML_APPLY_STYLESHEET,&quot;OPTIONAL FILENAME_MUSTEXIST XSLT_Stylesheet_Files(*.xslt;*.xsl)|*.xslt;*.xsl|All_Files(*)|*&quot;,GML&lt;space&gt;XSLT&lt;space&gt;Stylesheet&lt;space&gt;to&lt;space&gt;Apply:,GML_DESTINATION_DATASETTYPE_VALIDATION,&quot;IGNORE TEXT&quot;,GML&lt;space&gt;,GML_DOCUMENTS_TO_WRITE,&quot;OPTIONAL LOOKUP_CHOICE &quot;&quot;Both&quot;&quot;,BOTH%&quot;&quot;GML Only&quot;&quot;,GML_ONLY%&quot;&quot;XSD Only&quot;&quot;,XSD_ONLY&quot;,GML&lt;space&gt;Documents&lt;space&gt;To&lt;space&gt;Write:,GML_OVERRIDE_XSD_AND_USE_NAMESPACE_DECLARATIONS,&quot;OPTIONAL TEXT_EDIT_XML_ENCODED&quot;,GML&lt;space&gt;Override&lt;space&gt;XSD&lt;space&gt;And&lt;space&gt;Use&lt;space&gt;Namespace&lt;space&gt;Declarations:,GML_STYLESHEET_RESULT,&quot;OPTIONAL FILENAME All_Files(*)|*&quot;,GML&lt;space&gt;Stylesheet&lt;space&gt;Result:,GML_MINIMUM_FRACTION_DIGITS,&quot;OPTIONAL INTEGER&quot;,GML&lt;space&gt;Minimum&lt;space&gt;Decimal&lt;space&gt;Places:,GML_SYSTEM_ENCODING,&quot;OPTIONAL TEXT&quot;,GML&lt;space&gt;System&lt;space&gt;Encoding:,GML_REPLACE_TABS_WITH_SPACES,&quot;OPTIONAL CHOICE Yes%No&quot;,GML&lt;space&gt;Replace&lt;space&gt;Tabs&lt;space&gt;with&lt;space&gt;Spaces:,GML_PRETTY_PRINT,&quot;OPTIONAL CHOICE Yes%No&quot;,GML&lt;space&gt;Pretty&lt;space&gt;Print:"/>
+#!     <XFORM_PARM PARM_NAME="WRITER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureWriter"/>
+#!     <XFORM_PARM PARM_NAME="TOTAL_FEATURES_WRITTEN_ATTR" PARM_VALUE="_total_features_written"/>
+#!     <XFORM_PARM PARM_NAME="GML_PRETTY_PRINT" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="FEATURE_TYPES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_REPLACE_TABS_WITH_SPACES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="GML_COORDINATE_SYSTEM_GRANULARITY" PARM_VALUE="DATASET"/>
+#!     <XFORM_PARM PARM_NAME="GML_USE_STYLESHEET_RESULT_AS_DATASET" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="GML_DOCUMENTS_TO_WRITE" PARM_VALUE="BOTH"/>
+#!     <XFORM_PARM PARM_NAME="GML_MAXIMUM_FRACTION_DIGITS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_OVERRIDE_XSD_AND_USE_NAMESPACE_DECLARATIONS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_MINIMUM_FRACTION_DIGITS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_FEATURE_PROPERTIES" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;_tempDir&lt;closeparen&gt;&lt;solidus&gt;export.xml"/>
+#!     <XFORM_PARM PARM_NAME="GML_GML_WRT_ADV_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="GML_INDENT_SIZE" PARM_VALUE="1"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_FEATURE_COLLECTION_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
+#!     <XFORM_PARM PARM_NAME="GML_PRETTY_PRINT_SETTINGS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="GML_VALIDATE_OUTPUT_DATASET" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="GML_FEATURE_COLLECTION_ID" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_FEATURE_COLLECTION" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_SUPPRESS_XSI_SCHEMALOCATION" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="WRITER_METAFILE" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GML_SRS_AXIS_ORDER" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="37"
+#!   TYPE="PythonCaller"
+#!   VERSION="4"
+#!   POSITION="6896.08 -143.998"
+#!   BOUNDING_RECT="6896.08 -143.998 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.count" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="PYTHONSYMBOL" PARM_VALUE="FeatureProcessor"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PYTHONSOURCE" PARM_VALUE="#&lt;space&gt;-*-&lt;space&gt;coding:&lt;space&gt;utf-8&lt;space&gt;-*-&lt;lf&gt;import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;zipfile&lt;lf&gt;import&lt;space&gt;sys&lt;lf&gt;import&lt;space&gt;os&lt;lf&gt;import&lt;space&gt;shutil&lt;lf&gt;&lt;lf&gt;def&lt;space&gt;zip_folder&lt;openparen&gt;folder_path&lt;comma&gt;&lt;space&gt;output_path&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;parent_folder&lt;space&gt;=&lt;space&gt;os.path.dirname&lt;openparen&gt;folder_path&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;contents&lt;space&gt;=&lt;space&gt;os.walk&lt;openparen&gt;folder_path&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;try:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;zip_file&lt;space&gt;=&lt;space&gt;zipfile.ZipFile&lt;openparen&gt;output_path&lt;comma&gt;&lt;space&gt;&lt;apos&gt;w&lt;apos&gt;&lt;comma&gt;&lt;space&gt;zipfile.ZIP_DEFLATED&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;for&lt;space&gt;root&lt;comma&gt;&lt;space&gt;folders&lt;comma&gt;&lt;space&gt;files&lt;space&gt;in&lt;space&gt;contents:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;for&lt;space&gt;folder_name&lt;space&gt;in&lt;space&gt;folders:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;absolute_path&lt;space&gt;=&lt;space&gt;os.path.join&lt;openparen&gt;root&lt;comma&gt;&lt;space&gt;folder_name&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;relative_path&lt;space&gt;=&lt;space&gt;absolute_path.replace&lt;openparen&gt;parent_folder&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;&lt;solidus&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;zip_file.write&lt;openparen&gt;absolute_path&lt;comma&gt;&lt;space&gt;relative_path&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;for&lt;space&gt;file_name&lt;space&gt;in&lt;space&gt;files:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;absolute_path&lt;space&gt;=&lt;space&gt;os.path.join&lt;openparen&gt;root&lt;comma&gt;&lt;space&gt;file_name&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;relative_path&lt;space&gt;=&lt;space&gt;absolute_path.replace&lt;openparen&gt;parent_folder&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;&lt;solidus&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;zip_file.write&lt;openparen&gt;absolute_path&lt;comma&gt;&lt;space&gt;relative_path&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;except&lt;space&gt;IOError&lt;comma&gt;&lt;space&gt;message:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;print&lt;space&gt;message&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;sys.exit&lt;openparen&gt;1&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;except&lt;space&gt;OSError&lt;comma&gt;&lt;space&gt;message:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;print&lt;space&gt;message&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;sys.exit&lt;openparen&gt;1&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;except&lt;space&gt;zipfile.BadZipfile&lt;comma&gt;&lt;space&gt;message:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;print&lt;space&gt;message&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;sys.exit&lt;openparen&gt;1&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;finally:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;zip_file.close&lt;openparen&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;def&lt;space&gt;FeatureProcessor&lt;openparen&gt;feature&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;os.path.exists&lt;openparen&gt;feature.getAttribute&lt;openparen&gt;&lt;apos&gt;_tempDir&lt;apos&gt;&lt;closeparen&gt;&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;zip_folder&lt;openparen&gt;feature.getAttribute&lt;openparen&gt;&lt;apos&gt;_tempDir&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;&lt;solidus&gt;&lt;apos&gt;&lt;comma&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;destGexFile&lt;apos&gt;&lt;closebracket&gt;&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="PythonCaller_2"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="HIDE_ATTRIBUTES" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="48"
+#!   TYPE="FeatureMerger"
+#!   VERSION="17"
+#!   POSITION="5386.05 -6.00006"
+#!   BOUNDING_RECT="5386.05 -6.00006 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#!   INPUT_FT_ORDER="SUPPLIER%REQUESTOR"
+#! >
+#!     <OUTPUT_FEAT NAME="MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.count" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="UNMERGED_REQUESTOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.count" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <OUTPUT_FEAT NAME="USED_SUPPLIER"/>
+#!     <FEAT_COLLAPSED COLLAPSED="2"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="numReferences" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <OUTPUT_FEAT NAME="UNUSED_SUPPLIER"/>
+#!     <FEAT_COLLAPSED COLLAPSED="3"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="4"/>
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.count" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_feature_type{}.name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_MODE" PARM_VALUE="Merge Supplier"/>
+#!     <XFORM_PARM PARM_NAME="JOIN_KEYS" PARM_VALUE="1 1 AUTO"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GENERATE_LIST_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="MERGE_TYPE" PARM_VALUE="Attributes Only"/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIERS_FIRST" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="REJECT_NULL_MISSING_KEYS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE_MODE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="JOIN_ATTRIBUTES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GEOM_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureMerger"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIER_PREFIX" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MERGE_COUNT_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="IGNORE_NULLS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="CONNECT_Z_MODE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PROCESS_DUPS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_CONFLICT_RES" PARM_VALUE="Use Requestor"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="39"
+#!   TYPE="TempPathnameCreator"
+#!   VERSION="0"
+#!   POSITION="4027.35 377.503"
+#!   BOUNDING_RECT="4027.35 377.503 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TempPathnameCreator_2"/>
+#!     <XFORM_PARM PARM_NAME="EXTENSION" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="BASENAME" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PATHNAME_ATTR" PARM_VALUE="_tempDir"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="40"
+#!   TYPE="Creator"
+#!   VERSION="5"
+#!   POSITION="3290.03 263.503"
+#!   BOUNDING_RECT="3290.03 263.503 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="CREATED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="GEOM" PARM_VALUE="&lt;lt&gt;?xml&lt;space&gt;version=&lt;quote&gt;1.0&lt;quote&gt;&lt;space&gt;encoding=&lt;quote&gt;US_ASCII&lt;quote&gt;&lt;space&gt;standalone=&lt;quote&gt;no&lt;quote&gt;&lt;space&gt;?&lt;gt&gt;&lt;lt&gt;geometry&lt;space&gt;dimension=&lt;quote&gt;2&lt;quote&gt;&lt;gt&gt;&lt;lt&gt;null&lt;solidus&gt;&lt;gt&gt;&lt;lt&gt;&lt;solidus&gt;geometry&lt;gt&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATEND" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GEOMTYPE" PARM_VALUE="Geometry Object"/>
+#!     <XFORM_PARM PARM_NAME="COORDS" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="CRE_ATTR" PARM_VALUE="_creation_instance"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Creator"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NUM" PARM_VALUE="1"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="53"
+#!   TYPE="FeatureMerger"
+#!   VERSION="17"
+#!   POSITION="4584.05 166"
+#!   BOUNDING_RECT="4584.05 166 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#!   INPUT_FT_ORDER="SUPPLIER%REQUESTOR"
+#! >
+#!     <OUTPUT_FEAT NAME="MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="UNMERGED_REQUESTOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <OUTPUT_FEAT NAME="USED_SUPPLIER"/>
+#!     <FEAT_COLLAPSED COLLAPSED="2"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="numReferences" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <OUTPUT_FEAT NAME="UNUSED_SUPPLIER"/>
+#!     <FEAT_COLLAPSED COLLAPSED="3"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="4"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_tempDir" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_MODE" PARM_VALUE="Merge Supplier"/>
+#!     <XFORM_PARM PARM_NAME="JOIN_KEYS" PARM_VALUE="1 1 AUTO"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="GENERATE_LIST_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="MERGE_TYPE" PARM_VALUE="Attributes Only"/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIERS_FIRST" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="REJECT_NULL_MISSING_KEYS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE_MODE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="JOIN_ATTRIBUTES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GEOM_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureMerger_2"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIER_PREFIX" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MERGE_COUNT_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="IGNORE_NULLS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="CONNECT_Z_MODE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PROCESS_DUPS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_CONFLICT_RES" PARM_VALUE="Use Requestor"/>
+#! </TRANSFORMER>
+#! </TRANSFORMERS>
+#! <FEAT_LINKS>
+#! <FEAT_LINK
+#!   IDENTIFIER="28"
+#!   SOURCE_NODE="35"
+#!   TARGET_NODE="26"
+#!   SOURCE_PORT_DESC="-1"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="52"
+#!   SOURCE_NODE="40"
+#!   TARGET_NODE="39"
+#!   SOURCE_PORT_DESC="fo 0 CREATED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="51"
+#!   SOURCE_NODE="42"
+#!   TARGET_NODE="59"
+#!   SOURCE_PORT_DESC="-1"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="29"
+#!   SOURCE_NODE="26"
+#!   TARGET_NODE="56"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="32"
+#!   SOURCE_NODE="30"
+#!   TARGET_NODE="57"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="38"
+#!   SOURCE_NODE="34"
+#!   TARGET_NODE="48"
+#!   SOURCE_PORT_DESC="fo 0 SUMMARY"
+#!   TARGET_PORT_DESC="fi 1 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="54"
+#!   SOURCE_NODE="39"
+#!   TARGET_NODE="53"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 SUPPLIER"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="50"
+#!   SOURCE_NODE="48"
+#!   TARGET_NODE="37"
+#!   SOURCE_PORT_DESC="fo 0 MERGED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="47"
+#!   SOURCE_NODE="53"
+#!   TARGET_NODE="86"
+#!   SOURCE_PORT_DESC="fo 0 MERGED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="49"
+#!   SOURCE_NODE="53"
+#!   TARGET_NODE="48"
+#!   SOURCE_PORT_DESC="fo 0 MERGED"
+#!   TARGET_PORT_DESC="fi 0 SUPPLIER"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="1"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="85"
+#!   SOURCE_NODE="56"
+#!   TARGET_NODE="58"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="60"
+#!   SOURCE_NODE="57"
+#!   TARGET_NODE="65"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="31"
+#!   SOURCE_NODE="58"
+#!   TARGET_NODE="30"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="64"
+#!   SOURCE_NODE="59"
+#!   TARGET_NODE="63"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="66"
+#!   SOURCE_NODE="63"
+#!   TARGET_NODE="65"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 1 SUPPLIER"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="45"
+#!   SOURCE_NODE="65"
+#!   TARGET_NODE="53"
+#!   SOURCE_PORT_DESC="fo 0 MERGED"
+#!   TARGET_PORT_DESC="fi 1 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="36"
+#!   SOURCE_NODE="86"
+#!   TARGET_NODE="34"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 gtf_pro_workspace"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="44"
+#!   SOURCE_NODE="65"
+#!   TARGET_NODE="53"
+#!   SOURCE_PORT_DESC="fo 1 NOT_MERGED"
+#!   TARGET_PORT_DESC="fi 1 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! </FEAT_LINKS>
+#! <BREAKPOINTS>
+#! </BREAKPOINTS>
+#! <ATTR_LINKS>
+#! </ATTR_LINKS>
+#! <SUBDOCUMENTS>
+#! </SUBDOCUMENTS>
+#! <LOOKUP_TABLES>
+#! </LOOKUP_TABLES>
+#! </WORKSPACE>
+FME_PYTHON_VERSION 27
+GUI IGNORE SourceDataset_POSTGRES_1,POSTGRES_IN_HOST_POSTGRES_1,POSTGRES_IN_PORT_POSTGRES_1,POSTGRES_IN_USER_NAME_POSTGRES_1,POSTGRES_IN_PASSWORD_POSTGRES_1,POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1,DestDataset_GML_1,_PROFILE_GML_1,_WRITE_ALL_FEATURE_TYPE_DEFNS_GML_1,_TARGET_NS_PREFIX_GML_1,_TARGET_NS_URI_GML_1,_OUTPUT_ENCODING_GML_1,_OUT_XSD_DOC_GML_1,_TARGET_XSI_SCHEMALOCATION_URL_GML_1,_SRS_NAME_GML_1,_SRS_AXIS_ORDER_GML_1,_MAXIMUM_FRACTION_DIGITS_GML_1,_MINIMUM_FRACTION_DIGITS_GML_1,_SYSTEM_ENCODING_GML_1,_SUPPRESS_XSD_DOCUMENT_GML_1,_SUPPRESS_XSI_SCHEMALOCATION_GML_1,_FEATURE_COLLECTION_GML_1,_FEATURE_COLLECTION_ID_GML_1,_APPLY_STYLESHEET_GML_1,_STYLESHEET_RESULT_GML_1,_USE_STYLESHEET_RESULT_AS_DATASET_GML_1,_VALIDATE_OUTPUT_DATASET_GML_1
+DEFAULT_MACRO idWorkspaceList 35
+GUI TEXT idWorkspaceList id séparés par un espace :
+DEFAULT_MACRO destGexFile C:\antoine_non_sauv\2017_11_gtf_export\test.gex
+GUI FILENAME destGexFile Export_GTF|*.gex Fichier Gtf Export (.gex) :
+DEFAULT_MACRO GTF_CONNECTION_STRING 
+GUI OPTIONAL PASSWORD GTF_CONNECTION_STRING Chaîne de connexion à la base GTF :
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[0]
+value = ParamFunc()
+macroName = 'dbServer'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[1]
+value = ParamFunc()
+macroName = 'dbPort'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[2]
+value = ParamFunc()
+macroName = 'dbDatabase'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[3]
+value = ParamFunc()
+macroName = 'dbUser'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[4]
+value = ParamFunc()
+macroName = 'dbPassword'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE [ if {{$(idWorkspaceList)} == {}} { puts_real {Parameter 'idWorkspaceList' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(destGexFile)} == {}} { puts_real {Parameter 'destGexFile' must be given a value.}; exit 1; }; ]
+#! START_HEADER
+#! WORKSPACE_VERSION 1
+# ============================================================================ 
+# 
+# This mapping file was generated by FME Workbench
+# on 03/28/11 21:32:11 for translation between POSTGRES and GML
+# 
+# This workspace was generated with FME build 6508
+#
+# You may edit this mapping file to customize its operation.  Comments are 
+# placed throughout to assist you. 
+# 
+# Modification History:
+# 
+#     Name              Date     Description
+#     ================= ======== =============================================
+# 
+# 
+# ============================================================================ 
+# ============================================================================ 
+# The following line defines the title presented to the user when this
+# mapping file is run through the FME GUI.  You may modify this
+# if a more meaningful title would be appropriate.
+GUI TITLE POSTGRES to GML Translation 
+# ============================================================================ 
+# The following line names the log file to which useful statistics about
+# the translation will be written.  This line can be uncommented and
+# updated if you do wish to keep these statistics.
+# LOG_FILENAME translation.log
+# LOG_APPEND NO
+# ============================================================================ 
+# The following line instructs the FME to log any features that do not
+# match any of the source feature patterns listed further down in
+# this file.  If you are modifying this mapping file, this will be
+# useful to describe to you exactly which features you are losing
+# during translation, if the statistics indicate that features are
+# not being correlated or grouped.  Uncorrelated features do not
+# match any source specification, ungrouped features do not have
+# any corresponding _DEF line. 
+# FME_DEBUG UNGROUPED UNCORRELATED
+# ============================================================================ 
+# The following two lines define the type of reader and writer to be
+# used for this translation.  If you want to translate your data
+# back into its original format, you may make a copy of this file
+# and switch the reader and writer types.  If you rerun the FME, you
+# will get your original data back again (together with any modifications
+# you made in the meantime).  Note that several formats are NOT
+# bi-directional (for example, GIF can only be used as a WRITER)
+# so a reverse translation may not always be possible.
+#! START_WB_HEADER
+READER_TYPE POSTGRES
+READER_KEYWORD POSTGRES_1
+READER_GEN_DIRECTIVES PORT,5432,TABLELIST,s_gtf.category<space>s_gtf.workspace<space>s_gtf.workspace_group,USER_NAME,postgres,_MERGE_SCHEMAS,YES,POSTGRES_EXPOSE_FORMAT_ATTRS,,HOST,localhost,SCHEMALIST,s_gtf
+
+WRITER_TYPE MULTI_WRITER
+MULTI_WRITER_DATASET_ORDER BY_ID
+MULTI_WRITER_FIRST_WRITER_ID 0
+MULTI_WRITER_TYPE{0} GML
+MULTI_WRITER_KEYWORD{0} GML_1
+#! END_WB_HEADER
+
+#! START_WB_HEADER
+MACRO WB_KEYWORD "POSTGRES_1"
+#! END_WB_HEADER
+#! START_SOURCE_HEADER POSTGRES POSTGRES_1
+# The dataset this mapping file was generated from was:
+#! END_SOURCE_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO SourceDataset
+INCLUDE [ if {{$(SourceDataset)} != ""} {                        \
+ puts {DEFAULT_MACRO SourceDataset_POSTGRES_1 $(SourceDataset)}     \
+ } ]
+#! END_WB_HEADER
+#! START_SOURCE_HEADER POSTGRES POSTGRES_1
+DEFAULT_MACRO SourceDataset_POSTGRES_1 $(dbDatabase)
+GUI OPTIONAL TEXT SourceDataset_POSTGRES_1 Source PostgreSQL Dataset:
+DEFAULT_MACRO POSTGRES_IN_HOST_POSTGRES_1 $(dbServer)
+POSTGRES_1_HOST "$(POSTGRES_IN_HOST_POSTGRES_1)"
+GUI TEXT POSTGRES_IN_HOST_POSTGRES_1 Host:
+DEFAULT_MACRO POSTGRES_IN_PORT_POSTGRES_1 $(dbPort)
+POSTGRES_1_PORT "$(POSTGRES_IN_PORT_POSTGRES_1)"
+GUI INTEGER POSTGRES_IN_PORT_POSTGRES_1 Port:
+DEFAULT_MACRO POSTGRES_IN_USER_NAME_POSTGRES_1 $(dbUser)
+POSTGRES_1_USER_NAME "$(POSTGRES_IN_USER_NAME_POSTGRES_1)"
+GUI TEXT POSTGRES_IN_USER_NAME_POSTGRES_1 Username:
+DEFAULT_MACRO POSTGRES_IN_PASSWORD_POSTGRES_1 $(dbPassword)
+POSTGRES_1_PASSWORD "$(POSTGRES_IN_PASSWORD_POSTGRES_1)"
+GUI OPTIONAL PASSWORD POSTGRES_IN_PASSWORD_POSTGRES_1 Password:
+DEFAULT_MACRO POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 10000
+GUI FLOAT POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 Number Of Records To Fetch At A Time:
+POSTGRES_1_FEATURES_PER_FETCH $(POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1)
+POSTGRES_1_DATASET "$(SourceDataset_POSTGRES_1)"
+#! END_SOURCE_HEADER
+#! START_WB_HEADER
+MACRO WB_KEYWORD "GML_1"
+#! END_WB_HEADER
+#! START_DEST_HEADER GML GML_1
+# ============================================================================
+# The following GUI lines prompt for a GML file to be used as the
+# the destination of the data.
+# The dataset this mapping file was generated for was:
+#! END_DEST_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO DestDataset
+INCLUDE [ if {"$(DestDataset)" != ""} {                          \
+ puts {DEFAULT_MACRO DestDataset_GML_1 $(DestDataset)}         \
+ } ]
+#! END_WB_HEADER
+#! START_DEST_HEADER GML GML_1
+DEFAULT_MACRO DestDataset_GML_1 test.gml
+GUI FILENAME DestDataset_GML_1 GML_Files(*.gml;*.gz;*.xml)|*.gml;*.gz;*.xml|GML_Files(*.gml)|*.gml|Compressed_GML_Files(*.gz)|*.gz|GML_Files(*.xml)|*.xml|All_Files|*.* Destination Geography Markup Language (GML) File:
+GML_1_COORDINATE_SYSTEM_GRANULARITY DATASET
+# ============================================================================
+DEFAULT_MACRO _PROFILE_GML_1 GENERIC_3.1.1
+GUI OPTIONAL LOOKUP_CHOICE _PROFILE_GML_1 3.1.1,GENERIC_3.1.1%3.2.1,GENERIC_3.2.1 GML Version:
+GML_1_PROFILE $(_PROFILE_GML_1)
+# ============================================================================
+# When set to YES then the GML application schema document will declare and
+# define all GML feature type definitions even if it had no corresponding
+# feature instances during translation.
+DEFAULT_MACRO _WRITE_ALL_FEATURE_TYPE_DEFNS_GML_1 no
+GUI OPTIONAL CHOICE _WRITE_ALL_FEATURE_TYPE_DEFNS_GML_1 no%yes Write All Feature Types:
+GML_1_WRITE_ALL_FEATURE_TYPE_DEFNS $(_WRITE_ALL_FEATURE_TYPE_DEFNS_GML_1)
+# ============================================================================
+# The TARGET_NS_PREFIX and TARGET_NS_URI keywords declare the target namespace
+# and corresponding prefix for the GML application schema.
+# If unspecified then TARGET_NS_URI defaults to http://www.safe.com/gml/fme and
+# TARGET_NS_PREFIX defaults to fme.
+DEFAULT_MACRO _TARGET_NS_PREFIX_GML_1 gex
+GUI OPTIONAL TEXT _TARGET_NS_PREFIX_GML_1 Target Namespace Prefix:
+GML_1_TARGET_NS_PREFIX $(_TARGET_NS_PREFIX_GML_1)
+DEFAULT_MACRO _TARGET_NS_URI_GML_1 http://www.veremes.com/gtf/export
+GUI OPTIONAL TEXT _TARGET_NS_URI_GML_1 Target Namespace URI:
+GML_1_TARGET_NS_URI $(_TARGET_NS_URI_GML_1)
+# ============================================================================
+# This keyword specifies the encoding to use for the output XML documents.
+# If no value is specified then the encoding defaults to UTF-8.
+DEFAULT_MACRO _OUTPUT_ENCODING_GML_1 utf-8
+GUI OPTIONAL TEXT _OUTPUT_ENCODING_GML_1 Output Encoding:
+GML_1_OUTPUT_ENCODING $(_OUTPUT_ENCODING_GML_1)
+# ============================================================================
+# The XSD_DOC keyword is optional, when it is not specified the .xsd file will
+# be written in the same directory as the output dataset and its basename will
+# be the same as the base name of the GML output dataset. e.g., if the DATASET
+# is data.xml, then the GML schema file that is produced will be named data.xsd.
+DEFAULT_MACRO _OUT_XSD_DOC_GML_1 
+GUI OPTIONAL FILENAME _OUT_XSD_DOC_GML_1 GML_Schema_File(*.xsd)|*.xsd|All_Files(*.*)|*.* GML Schema Document:
+GML_1_XSD_DOC "$(_OUT_XSD_DOC_GML_1)"
+# ============================================================================
+# The keyword is optional. The xsi:schemaLocation attribute in an XML instance
+# is made up of a sequence of namespace uri and xsd document url pairs. This
+# keyword allows the user to specify explicitly the url for the xsd document
+# whose target namespace is settable with the TARGET_NS_URI keyword.
+DEFAULT_MACRO _TARGET_XSI_SCHEMALOCATION_URL_GML_1 
+GUI OPTIONAL TEXT _TARGET_XSI_SCHEMALOCATION_URL_GML_1 Target xsi:schemaLocation URL:
+GML_1_TARGET_XSI_SCHEMALOCATION_URL $(_TARGET_XSI_SCHEMALOCATION_URL_GML_1)
+# ============================================================================
+# Overwrites the GML srsName with the specified value. When left unspecified
+# the FME coordinate system name for the input features will be used as the
+# value for the srsName in the GML document.
+DEFAULT_MACRO _SRS_NAME_GML_1 
+GUI OPTIONAL TEXT _SRS_NAME_GML_1 GML srsName:
+GML_1_SRS_NAME $(_SRS_NAME_GML_1)
+# ============================================================================
+# This keyword specifies the axis order for a coordinate tuple for the specified
+# SRS_NAME in the GML document. This keyword only applies when used conjunction
+# with the SRS_NAME keyword. The valid values for this keyword are 1,2, 2,1,
+# 1,2,3 and 2,1,3.
+DEFAULT_MACRO _SRS_AXIS_ORDER_GML_1 
+GUI OPTIONAL CHOICE _SRS_AXIS_ORDER_GML_1 1,2%2,1%1,2,3%2,1,3 GML SRS Axis Order:
+GML_1_SRS_AXIS_ORDER $(_SRS_AXIS_ORDER_GML_1)
+# ============================================================================
+# This keyword specifies the maximum number of decimal places to output
+DEFAULT_MACRO _MAXIMUM_FRACTION_DIGITS_GML_1 
+GUI OPTIONAL INTEGER _MAXIMUM_FRACTION_DIGITS_GML_1 Maximum Decimal Places:
+GML_1_MAXIMUM_FRACTION_DIGITS $(_MAXIMUM_FRACTION_DIGITS_GML_1)
+# ============================================================================
+# This keyword specifies the minimum number of decimal places to output
+DEFAULT_MACRO _MINIMUM_FRACTION_DIGITS_GML_1 
+GUI OPTIONAL INTEGER _MINIMUM_FRACTION_DIGITS_GML_1 Minimum Decimal Places:
+GML_1_MINIMUM_FRACTION_DIGITS $(_MINIMUM_FRACTION_DIGITS_GML_1)
+# ============================================================================
+# This keyword specifies what encoding the incoming schema and data
+# features are in. The default value for this keyword is the system's encoding.
+DEFAULT_MACRO _SYSTEM_ENCODING_GML_1 utf-8
+GUI OPTIONAL TEXT _SYSTEM_ENCODING_GML_1 System Encoding:
+GML_1_SYSTEM_ENCODING $(_SYSTEM_ENCODING_GML_1)
+# ============================================================================
+# The GML application schema document will not be written when this keyword
+# is set to yes.
+DEFAULT_MACRO _SUPPRESS_XSD_DOCUMENT_GML_1 no
+GUI OPTIONAL CHOICE _SUPPRESS_XSD_DOCUMENT_GML_1 no%yes Suppress GML Schema Document:
+GML_1_SUPPRESS_XSD_DOCUMENT $(_SUPPRESS_XSD_DOCUMENT_GML_1)
+# ============================================================================
+# The xsi:schemaLocation is merely a hint to an XML processor for a set of
+# schema namespace/location pairs whose grammar would validate the XML instance
+# document, this keyword allows the suppression of the xsi:schemaLocation in
+# the output GML instance document.
+DEFAULT_MACRO _SUPPRESS_XSI_SCHEMALOCATION_GML_1 no
+GUI OPTIONAL CHOICE _SUPPRESS_XSI_SCHEMALOCATION_GML_1 no%yes Suppress xsi:schemaLocation Attribute:
+GML_1_SUPPRESS_XSI_SCHEMALOCATION $(_SUPPRESS_XSI_SCHEMALOCATION_GML_1)
+# ============================================================================
+# Specifies if the FeatureCollection object should be custom defined in the
+# in the target namespace schema, be the predefined wfs:FeatureCollection or the
+# predefined gml:FeatureCollection in GML 3.1.1.
+DEFAULT_MACRO _FEATURE_COLLECTION_GML_1 gml
+GUI OPTIONAL CHOICE _FEATURE_COLLECTION_GML_1 gml%wfs%target-namespace Feature Collection:
+GML_1_FEATURE_COLLECTION $(_FEATURE_COLLECTION_GML_1)
+# ============================================================================
+# This optional keyword specifies value for the gml:id in the featureCollection
+# container element.
+DEFAULT_MACRO _FEATURE_COLLECTION_ID_GML_1 
+GUI OPTIONAL TEXT _FEATURE_COLLECTION_ID_GML_1 Feature Collection ID:
+GML_1_FEATURE_COLLECTION_ID $(_FEATURE_COLLECTION_ID_GML_1)
+# ============================================================================
+# Specifies the XSLT stylesheet to be applied to the output document.
+DEFAULT_MACRO _APPLY_STYLESHEET_GML_1 
+GUI OPTIONAL FILENAME_MUSTEXIST _APPLY_STYLESHEET_GML_1 XSLT_Stylesheet_Files(*.xslt;*.xsl)|*.xslt;*.xsl|All_Files(*.*)|*.* XSLT Style Sheet to Apply:
+GML_1_APPLY_STYLESHEET "$(_APPLY_STYLESHEET_GML_1)"
+# ============================================================================
+# The location and name of the resulting document after XSLT stylesheet
+# transformation. This is an optional keyword.
+DEFAULT_MACRO _STYLESHEET_RESULT_GML_1 
+GUI OPTIONAL FILENAME _STYLESHEET_RESULT_GML_1 All_Files(*.*)|*.* Style Sheet Result:
+GML_1_STYLESHEET_RESULT "$(_STYLESHEET_RESULT_GML_1)"
+# ============================================================================
+# Uses the DATASET value as the resulting document of the stylesheet transformation.
+# STYLESHEET_RESULT is ignored when this value is set to yes, and a temporary file
+# is generated and then deleted as the source for the stylesheet transform.
+DEFAULT_MACRO _USE_STYLESHEET_RESULT_AS_DATASET_GML_1 no
+GUI OPTIONAL CHOICE _USE_STYLESHEET_RESULT_AS_DATASET_GML_1 no%yes Dataset as Stylesheet Result:
+GML_1_USE_STYLESHEET_RESULT_AS_DATASET $(_USE_STYLESHEET_RESULT_AS_DATASET_GML_1)
+# ============================================================================
+# Validates either the output DATASET if no stylesheet is applied or the
+# STYLESHEET_RESULT if a stylesheet is used against the schemas specified in the file.
+DEFAULT_MACRO _VALIDATE_OUTPUT_DATASET_GML_1 no
+GUI CHOICE _VALIDATE_OUTPUT_DATASET_GML_1 no%yes Validate Output File:
+GML_1_VALIDATE_OUTPUT_DATASET $(_VALIDATE_OUTPUT_DATASET_GML_1)
+GML_1_DATASET "$(DestDataset_GML_1)"
+#! END_DEST_HEADER
+#! START_WB_HEADER
+#! END_WB_HEADER
+
+#! END_HEADER
+
+LOG_FILENAME "$(FME_MF_DIR)exportv3.log"
+LOG_APPEND NO
+LOG_MAX_FEATURES 200
+LOG_MAX_RECORDED_FEATURES 200
+FME_REPROJECTION_ENGINE FME
+FME_IMPLICIT_CSMAP_REPROJECTION_MODE Datum
+FME_GEOMETRY_HANDLING Enhanced
+FME_STROKE_MAX_DEVIATION 0
+MAPPING_FILE_ID Export<space>GTF
+LOG_FILTER_MASK -1
+DEFAULT_MACRO DATASET_KEYWORD_POSTGRES_1 POSTGRES_1
+DEFAULT_MACRO DATASET_KEYWORD_GML_1 GML_1
+FME_PASSWORD_PARAMETER_LIST GTF_CONNECTION_STRING
+# -------------------------------------------------------------------------
+
+POSTGRES_1_READER_META_ATTRIBUTES fme_feature_type
+
+# -------------------------------------------------------------------------
+
+MULTI_READER_CONTINUE_ON_READER_FAILURE No
+
+# -------------------------------------------------------------------------
+
+MACRO WORKSPACE_NAME exportv3
+MACRO FME_VIEWER_APP fmedatainspector
+# -------------------------------------------------------------------------
+POSTGRES_1_DEF s_gtf.workspace   postgres_type                postgres_none   postgres_sql_where_clause    ""   postgres_sql_statement       ""   workspace_id                 int4,PRIKEY   name                         varchar(100),BTREE   description                  text   subscription                 bool   fmw_file                     varchar(150)   category_id                  int4,BTREE   success_action_id            int4   failed_action_id             int4   survey                       bool   form_type                    varchar(10)   legal_terms_conditions       text   usage                        text   requirements                 text   history                      text   last_save_date               timestamp   last_save_build              varchar(255)   file_encoding                varchar(50)   title                        varchar(255)   key                          varchar(40)   email_template_id            int4   owner                        int4   creation_date                date   locked                       bool   tag                          varchar(100)
+# -------------------------------------------------------------------------
+POSTGRES_1_DEF s_gtf.category   postgres_type                postgres_none   postgres_sql_where_clause    ""   postgres_sql_statement       ""   category_id                  int4,PRIKEY   name                         varchar(50)   description                  varchar(200)
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory   FACTORY_NAME "Router and Unexpected Input Remover"   COMMAND_PARM_EVALUATION SINGLE_PASS   MULTI_READER_KEYWORD POSTGRES_1   INPUT FEATURE_TYPE *    ROUTE POSTGRES POSTGRES_1::s_gtf.workspace TO FME_GENERIC ::s_gtf.workspace ALIAS_GEOMETRY    ROUTE POSTGRES POSTGRES_1::s_gtf.category TO FME_GENERIC ::s_gtf.category ALIAS_GEOMETRY    MERGE_INPUT Yes   OUTPUT ROUTED FEATURE_TYPE *
+POSTGRES_1_MERGE_DEF POSTGRES_1::s_gtf.workspace EXACT s_gtf.workspace
+POSTGRES_1_MERGE_DEF POSTGRES_1::s_gtf.category EXACT s_gtf.category
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME "s_gtf.workspace (POSTGRES_1) Splitter"    INPUT FEATURE_TYPE s_gtf.workspace    OUTPUT FEATURE_TYPE s_gtf.workspace_POSTGRES_1
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME "s_gtf.category (POSTGRES_1) Splitter"    INPUT FEATURE_TYPE s_gtf.category    OUTPUT FEATURE_TYPE s_gtf.category_POSTGRES_1
+DEFAULT_MACRO WB_CURRENT_CONTEXT
+# -------------------------------------------------------------------------
+
+Tcl2 proc Creator_CoordSysRemover {} {   global FME_CoordSys;   set FME_CoordSys {}; }
+MACRO Creator_XML     NOT_ACTIVATED
+MACRO Creator_CLASSIC NOT_ACTIVATED
+MACRO Creator_2D3D    2D_GEOMETRY
+MACRO Creator_COORDS  <Unused>
+INCLUDE [ if { {Geometry Object} == {Geometry Object} } {            puts {MACRO Creator_XML *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } {            puts {MACRO Creator_2D3D 2D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } {            puts {MACRO Creator_2D3D 3D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } {            set comment {                We need to turn the COORDS which are                    minX minY maxX maxY                into a full polygon list of coordinates            };            set splitCoords [split [string trim {<Unused>}]];            if { [llength $splitCoords] > 4} {               set trimmedCoords {};               foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} };               set splitCoords $trimmedCoords;            };            if { [llength $splitCoords] != 4 } {                error {Creator: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `<Unused>' is invalid};            };            set minX [lindex $splitCoords 0];            set minY [lindex $splitCoords 1];            set maxX [lindex $splitCoords 2];            set maxY [lindex $splitCoords 3];            puts "MACRO Creator_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY";            puts {MACRO Creator_2D3D 2D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+FACTORY_DEF $(Creator_XML) CreationFactory    FACTORY_NAME Creator_XML_Creator    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______        @Geometry(FROM_ENCODED_STRING,<lt>?xml<space>version=<quote>1.0<quote><space>encoding=<quote>US_ASCII<quote><space>standalone=<quote>no<quote><space>?<gt><lt>geometry<space>dimension=<quote>2<quote><gt><lt>null<solidus><gt><lt><solidus>geometry<gt>)
+FACTORY_DEF $(Creator_CLASSIC) CreationFactory    FACTORY_NAME Creator_CLASSIC_Creator    $(Creator_2D3D) $(Creator_COORDS)    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______
+FACTORY_DEF * TeeFactory    FACTORY_NAME Creator_Cloner    INPUT FEATURE_TYPE _____CREATED______    NUMBER_OF_COPIES 1    COPY_NUMBER_ATTRIBUTE "_creation_instance"    OUTPUT FEATURE_TYPE Creator_CREATED        @Tcl2(Creator_CoordSysRemover)        @CoordSys()        fme_feature_type Creator
+
+FACTORY_DEF * BranchingFactory   FACTORY_NAME "Creator_CREATED Brancher -1 52"   INPUT FEATURE_TYPE Creator_CREATED   TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   OUTPUT PASSED FEATURE_TYPE *     @RemoveAttributes("Creator_CREATED Brancher -1 52".BranchingFactory.Count)
+# -------------------------------------------------------------------------
+FACTORY_DEF * TeeFactory   FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   INPUT FEATURE_TYPE *  OUTPUT FEATURE_TYPE *
+# -------------------------------------------------------------------------
+
+# On translation startup, prep the temporary directory that this instance of the
+# xformer will populate with its temporary files.  We'll do this by asking for a
+# temporary filename, and then instead of using it as a file, we'll add our UUID to
+# it to make a super unique name, which will become the directory we'll use for all
+# the temp files we hand out.
+# And we'll set up to have the END_TCL delete that entire directory when we shut down.
+# To do that, we'll use the "environment" to hold our master subidirectory, keyed by
+# our UUID as the environment variable name.  That is the only way to pass information
+# from @Tcl2 to FME_END_TCL (via the "env" variable, because they use different Tcl
+# interpretters)
+
+Tcl2 set sampleTempFile [FME_TempFilename];      set ourTempDir {};      append ourTempDir $sampleTempFile {TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30};      file mkdir $ourTempDir;      set env(TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30_dir) $ourTempDir;      set env(TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30_file) $sampleTempFile;      set gNumTempFilesHandedOut 0;
+
+# Cleanup time. Remove the directory this transformer was using for its temp files, as well as the
+# original temp file that was created as our "seed" to get us a unique starting point.
+
+FME_END_TCL file delete -force $env(TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30_dir) $env(TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30_file) ;      unset env(TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30_dir);      unset env(TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30_file);
+# Actually create and return a well formed filename that is guaranteed not to be there.
+# We know we're working inside a directory unique to our instance of the transformer.
+# So we can just increment serially within there to be sure we're not making a previously existing file
+# We need to also provide a default for the filename base if they didn't give us one (we'll
+# use the XFORMER_NAME), and take care to handle a no-extension-desired situation as well as
+# a situation where the extension started with a .
+
+Tcl2 proc TempPathnameCreator_2_makeTemp {baseName extension} {      global env;      global gNumTempFilesHandedOut;      if { [string length $extension ] == 0 } {          set extensionSep {};      } elseif { [string index $extension 0] == {.} } {          set extensionSep {};      } else {          set extensionSep {.};      };      if { $baseName == {} } {          set baseName {TempPathnameCreator_2};      };      set curClock [clock clicks];      set last7ClockDigits [string range $curClock end-6 end];      append aGoodTempFile $env(TempPathnameCreator_2_9a9d34c9_d5e1_42c6_9948_967773672dc30_dir) [file separator] [FME_DecodeText $baseName] {_}                           $last7ClockDigits {_} $gNumTempFilesHandedOut                           $extensionSep [FME_DecodeText $extension];      incr gNumTempFilesHandedOut;      FME_SetAttribute [FME_DecodeText _tempDir] $aGoodTempFile; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME TempPathnameCreator_2    INPUT  FEATURE_TYPE Creator_CREATED    OUTPUT FEATURE_TYPE TempPathnameCreator_2_OUTPUT         @Tcl2("TempPathnameCreator_2_makeTemp {} {}")
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_2_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_2    INPUT  FEATURE_TYPE s_gtf.category_POSTGRES_1    OUTPUT FEATURE_TYPE AttributeRemover_2_OUTPUT        @RemoveAttributes(description)        @RemoveAttributes(fme_regexp_match"$(AttributeRemover_2_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer_2    INPUT  FEATURE_TYPE AttributeRemover_2_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL, name,category_name,)
+
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc ParameterFetcher_doFetch {} {    foreach {name val} {"_idWorkspaceList {$(idWorkspaceList$encode)}"} {         if { [string match {*<at>*} $val] == 1 } {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher}];         } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher}];         } else {             set val [FME_DecodeTextOrAttr $val];         };       FME_SetAttribute [FME_DecodeText $name] $val    } }
+FACTORY_DEF * TeeFactory    FACTORY_NAME ParameterFetcher    INPUT  FEATURE_TYPE s_gtf.workspace_POSTGRES_1    OUTPUT FEATURE_TYPE ParameterFetcher_OUTPUT         @Tcl2(ParameterFetcher_doFetch)
+
+# -------------------------------------------------------------------------
+
+MACRO casemac
+INCLUDE [ if { {NO} == {NO} } { puts {MACRO casemac -nocase}} ]
+Tcl2 proc StringReplacer_de32f3fa_4b24_46c3_a7e2_13ecd34ccd7c0_replacer { findText replaceText invalidValue} {     set attrs [split \"_idWorkspaceList\" {,}];     set findValue [FME_DecodeText $findText];     set replaceValue [FME_DecodeText $replaceText];     foreach attr $attrs {       set attrVal [FME_GetAttribute $attr];       set noMatch true;       if {{NO} == {YES}} {         set newAttrVal [regsub $(casemac) -all -- $findValue $attrVal $replaceValue];       } else {         set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal];       };       if { $newAttrVal ne $attrVal } {         set noMatch false;         FME_SetAttribute $attr $newAttrVal;       };       if {$noMatch} {          if { $invalidValue == {FME_NULL_VALUE} } {             FME_SetAttributeNull $attr;          } elseif { $invalidValue != {_FME_NO_OP_} }  {             FME_SetAttribute $attr [FME_DecodeText $invalidValue];          };       };     }; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME StringReplacer    INPUT  FEATURE_TYPE ParameterFetcher_OUTPUT    OUTPUT FEATURE_TYPE StringReplacer_OUTPUT         @Tcl2("StringReplacer_de32f3fa_4b24_46c3_a7e2_13ecd34ccd7c0_replacer {<space>} {<comma>} {_FME_NO_OP_}")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester    INPUT  FEATURE_TYPE StringReplacer_OUTPUT    TEST @EvaluateExpression(STRING_ENCODED,<at>Value<openparen>workspace_id<closeparen>,Tester) IN @EvaluateExpression(STRING_ENCODED,<at>Value<openparen>_idWorkspaceList<closeparen>,Tester) ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_PASSED
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover    INPUT  FEATURE_TYPE Tester_PASSED    OUTPUT FEATURE_TYPE AttributeRemover_OUTPUT        @RemoveAttributes(_idWorkspaceList)        @RemoveAttributes(fme_regexp_match"$(AttributeRemover_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer    INPUT  FEATURE_TYPE AttributeRemover_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL, name,label_name,)
+
+
+# -------------------------------------------------------------------------
+
+INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } {                puts "MACRO FeatureMerger_3_REFERENCE_INFO ATTRIBUTES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} } {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          else {}; ]
+
+FACTORY_DEF * ReferenceFactory    FACTORY_NAME FeatureMerger_3    INPUT REFERENCER FEATURE_TYPE AttributeRenamer_OUTPUT    INPUT REFERENCEE FEATURE_TYPE AttributeRenamer_2_OUTPUT    REFERENCE_INFO $(FeatureMerger_3_REFERENCE_INFO)    REFERENCE_TABLE @EvaluateExpression(STRING_ENCODED,<at>Value<openparen>category_id<closeparen>,FeatureMerger_3) @EvaluateExpression(STRING_ENCODED,<at>Value<openparen>category_id<closeparen>,FeatureMerger_3)    IGNORE_NULLS "Yes"    MERGE_ATTRIBUTES Yes    MANAGE_FME_TYPE Yes    MODE COMPLETE    PROCESS_DUPLICATE_REFERENCEES No    REFERENCEES_FIRST No    OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_3_MERGED    OUTPUT INCOMPLETE FEATURE_TYPE FeatureMerger_3_NOT_MERGED
+
+# -------------------------------------------------------------------------
+
+INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } {                puts "MACRO FeatureMerger_2_REFERENCE_INFO ATTRIBUTES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} } {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } {                puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          else {}; ]
+
+FACTORY_DEF {*} ReferenceFactory    FACTORY_NAME FeatureMerger_2    INPUT REFERENCER FEATURE_TYPE FeatureMerger_3_MERGED    INPUT REFERENCER FEATURE_TYPE FeatureMerger_3_NOT_MERGED    INPUT REFERENCEE FEATURE_TYPE TempPathnameCreator_2_OUTPUT    REFERENCE_INFO $(FeatureMerger_2_REFERENCE_INFO)    REFERENCE_TABLE 1 1 AUTO    ATTR_ACCUM_MODE "HANDLE_CONFLICT"    ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT"    IGNORE_NULLS "No"    HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No    LIST_ATTRS_TO_INCLUDE { <Unused> }    LIST_ATTRS_TO_INCLUDE_MODE <Unused>    MERGE_ATTRIBUTES Yes    MANAGE_FME_TYPE Yes    MODE COMPLETE    PROCESS_DUPLICATE_REFERENCEES No    REFERENCEES_FIRST No    REJECT_INVALID_GEOM YES    OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_2_MERGED
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "FeatureMerger_2 MERGED Splitter"   INPUT FEATURE_TYPE FeatureMerger_2_MERGED   OUTPUT FEATURE_TYPE FeatureMerger_2_MERGED_0_knF9TdE9dMM=   OUTPUT FEATURE_TYPE FeatureMerger_2_MERGED_1_vTDIdYgpypM=
+# -------------------------------------------------------------------------
+
+
+FME_PYTHON_PATH "$(FME_MF_DIR)"
+
+FACTORY_DEF * PythonFactory    FACTORY_NAME PythonCaller    INPUT  FEATURE_TYPE FeatureMerger_2_MERGED_0_knF9TdE9dMM=    SYMBOL_NAME FeatureProcessor    PYTHON_NAMESPACE FMEOBJECTS    SOURCE_CODE import<space>fmeobjects<lf>import<space>os<lf>import<space>shutil<lf><lf>def<space>FeatureProcessor<openparen>feature<closeparen>:<lf><space><space><space><space>fme_mf_dir<space>=<space>os.path.normpath<openparen>FME_MacroValues<openbracket><apos>FME_MF_DIR<apos><closebracket><closeparen><lf><space><space><space><space>workspace_id<space>=<space>feature.getAttribute<openparen><apos>workspace_id<apos><closeparen><lf><space><space><space><space>projectsourcedir<space>=<space>fme_mf_dir<space>+<space><apos><solidus><solidus>..<solidus><solidus>..<solidus><solidus><apos><space>+<space>workspace_id<lf><space><space><space><space>if<space>os.path.exists<openparen>projectsourcedir<closeparen>:<lf><space><space><space><space><space><space><space><space>try:<lf><space><space><space><space><space><space><space><space><space><space><space><space>shutil.copytree<openparen>projectsourcedir<comma><space>feature.getAttribute<openparen><apos>_tempDir<apos><closeparen><space>+<space><apos><solidus><solidus><apos><space>+<space>workspace_id<comma><space>symlinks=False<comma><space>ignore=None<closeparen><lf><space><space><space><space><space><space><space><space>except:<lf><space><space><space><space><space><space><space><space><space><space><space><space>print<space><quote>Une<space>erreur<space>PYTHON<space>est<space>survenue<space>!<quote><lf><space><space><space><space><space><space><space><space><space><space><space><space>raise    OUTPUT PYOUTPUT FEATURE_TYPE PythonCaller_OUTPUT
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * WriterFactory    FACTORY_NAME FeatureWriter    WRITER_TYPE GML    WRITER_DATASET @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_tempDir<closeparen><solidus>export.xml,FeatureWriter)    WRITER_SETTINGS RUNTIME_MACROS,PREFER_POLYGON_OVER_SURFACE<comma>no<comma>SRS_AXIS_ORDER<comma><comma>WRITE_ALL_FEATURE_TYPE_DEFNS<comma>no<comma>TARGET_NS_PREFIX<comma>gex<comma>FEATURE_COLLECTION_NS_URI<comma><comma>INDENT_SIZE<comma>1<comma>USE_STYLESHEET_RESULT_AS_DATASET<comma>no<comma>PRETTY_PRINT_SETTINGS<comma>FME_DISCLOSURE_OPEN<comma>FEATURE_COLLECTION_ID<comma><comma>SRS_NAME<comma><comma>PROFILE<comma>3.1.1<comma>FEATURE_COLLECTION_GROUP<comma>FME_DISCLOSURE_CLOSED<comma>TEXT_INDENT<comma>No<comma>GML_WRT_ADV_PARAMETERS<comma>FME_DISCLOSURE_OPEN<comma>MAXIMUM_FRACTION_DIGITS<comma><comma>SUPPRESS_XSI_SCHEMALOCATION<comma>no<comma>COORDINATE_SYSTEM_GRANULARITY<comma>DATASET<comma>FEATURE_COLLECTION<comma><comma>FEATURE_PROPERTIES<comma><comma>FEATURE_PROPERTIES_ATTRIBUTE_HANDLING<comma><comma>VALIDATE_OUTPUT_DATASET<comma>NO<comma>TARGET_NS_URI<comma>http:<solidus><solidus>www.veremes.com<solidus>gtf<solidus>export<comma>APPLY_STYLESHEET<comma><comma>DESTINATION_DATASETTYPE_VALIDATION<comma>Yes<comma>DOCUMENTS_TO_WRITE<comma>BOTH<comma>OVERRIDE_XSD_AND_USE_NAMESPACE_DECLARATIONS<comma><comma>STYLESHEET_RESULT<comma><comma>MINIMUM_FRACTION_DIGITS<comma><comma>SYSTEM_ENCODING<comma>utf-8<comma>REPLACE_TABS_WITH_SPACES<comma>No<comma>PRETTY_PRINT<comma>No,METAFILE,GML    WRITER_METAFILE    WRITER_FEATURE_TYPES WRITER_METAFILE_INFO,ATTRIBUTE_CASE,ANY,ATTRIBUTE_INVALID_CHARS,<openbracket><closebracket>=<space>%~!<at><dollar><amp>#<openbracket><openparen><closeparen>^?*<apos>+<backslash><backslash><solidus><quote>:,ATTRIBUTE_LENGTH,254,ATTR_TYPE_MAP,xml_char<openparen>width<closeparen><comma>fme_varchar<openparen>width<closeparen><comma>xml_char<openparen>width<closeparen><comma>fme_varbinary<openparen>width<closeparen><comma>xml_char<openparen>width<closeparen><comma>fme_char<openparen>width<closeparen><comma>xml_char<openparen>width<closeparen><comma>fme_binary<openparen>width<closeparen><comma>xml_buffer<comma>fme_buffer<comma>xml_buffer<comma>fme_binarybuffer<comma>xml_buffer<comma>fme_json<comma>xml_xml<comma>fme_xml<comma>xml_datetime<comma>fme_buffer<comma>xml_date<comma>fme_buffer<comma>xml_time<comma>fme_buffer<comma>xml_int64<comma>fme_int64<comma>xml_uint64<comma>fme_uint64<comma>xml_int32<comma>fme_int32<comma>xml_uint32<comma>fme_uint32<comma>xml_int16<comma>fme_int16<comma>xml_uint16<comma>fme_uint16<comma>xml_byte<comma>fme_int8<comma>xml_ubyte<comma>fme_uint8<comma>xml_real32<comma>fme_real32<comma>xml_real64<comma>fme_real64<comma><quote>xml_decimal<openparen>width<comma>decimal<closeparen><quote><comma><quote>fme_decimal<openparen>width<comma>decimal<closeparen><quote><comma>xml_boolean<comma>fme_boolean<comma>xml_char<openparen>20<closeparen><comma>fme_datetime<comma>xml_char<openparen>8<closeparen><comma>fme_date<comma>xml_char<openparen>12<closeparen><comma>fme_time<comma>xml_geometry<comma>fme_buffer,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,<backslash><backslash><solidus><quote>:?*<lt><gt>|<openbracket><closebracket>=<space>%~!<at><dollar><amp>#<openparen><closeparen>^<apos>+,FEATURE_TYPE_LENGTH,254,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,false,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_NAME,GML,GEOM_MAP,xml_no_geom<comma>fme_no_geom<comma>xml_point<comma>fme_point<comma>xml_line<comma>fme_line<comma>xml_area<comma>fme_polygon<comma>xml_aggregate<comma>fme_collection<comma>xml_text<comma>fme_text<comma>xml_area<comma>fme_ellipse<comma>xml_area<comma>fme_rectangle<comma>xml_area<comma>fme_rounded_rectangle<comma>xml_arc<comma>fme_arc<comma>xml_surface<comma>fme_surface<comma>xml_solid<comma>fme_solid<comma>xml_mesh<comma>fme_surface<comma>xml_area<comma>fme_raster<comma>xml_area<comma>fme_point_cloud<comma>xml_no_geom<comma>fme_feature_table,READER_ATTR_INDEX_TYPES,,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,GML,WRITER_ATTR_INDEX_TYPES,,WRITER_DEFLINE_PARMS,,WRITER_DEF_LINE_TEMPLATE,<opencurly>FME_GEN_GROUP_NAME<closecurly>,WRITER_FORMAT_PARAMETER,ADVANCED_PARMS<comma><quote>GML_OUT_SYSTEM_ENCODING<space>GML_OUT_WRITE_ALL_FEATURE_TYPE_DEFNS<space>GML_OUT_DOCUMENTS_TO_WRITE<space>GML_OUT_SUPPRESS_XSI_SCHEMALOCATION<space>GML_OUT_MAXIMUM_FRACTION_DIGITS<space>GML_OUT_MINIMUM_FRACTION_DIGITS<space>GML_OUT_APPLY_STYLESHEET<space>GML_OUT_STYLESHEET_RESULT<space>GML_OUT_USE_STYLESHEET_RESULT_AS_DATASET<space>GML_OUT_OVERRIDE_XSD_AND_USE_NAMESPACE_DECLARATIONS<space>GML_OUT_TARGET_NS_PREFIX<space>GML_OUT_TARGET_NS_URI<space>GML_OUT_MAP_ALL_SUBSTITUTABLE_PROPERTIES<space>GML_OUT_ADD_NAMESPACE_PREFIX_TO_NAMES<space>GML_OUT_MAX_MULTI_LIST_LEVEL<space>GML_OUT_FEATURE_COLLECTION<space>GML_OUT_FEATURE_COLLECTION_ID<space>GML_OUT_FEATURE_COLLECTION_NS_URI<space>GML_OUT_MAP_EMBEDDED_OBJECTS_AS<space>GML_OUT_MAP_PREDEFINED_GML_PROPERTIES<space>GML_OUT_MAP_COMPLEX_PROPERTIES_AS<space>GML_OUT_INDENT_SIZE<space>GML_OUT_REPLACE_TABS_WITH_SPACES<space>GML_OUT_TEXT_INDENT<quote><comma>MIME_TYPE<comma>application<solidus>xml<comma>NETWORK_AUTHENTICATION<comma>ALWAYS<comma>NETWORK_PROXY<comma>NO<comma>DATASET_NAME<comma><quote>gml<space>file<quote><comma>READER_DATASET_HINT<comma><quote>Select<space>the<space>GML<space>file<openparen>s<closeparen><quote><comma>WRITER_DATASET_HINT<comma><quote>Specify<space>a<space>name<space>for<space>the<space>GML<space>file<quote>,WRITER_HAS_DEFLINE_ATTRS,yes;gtf_pro_workspace:gtf_pro_workspace,ftp_feature_type_name,gtf_pro_workspace,ftp_writer,GML,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,<lt>lt<gt>Unused<lt>gt<gt>,ftp_attribute_source,1,ftp_user_attributes,workspace_id<comma>xml_int32<comma>label_name<comma>xml_char<lt>openparen<gt>100<lt>closeparen<gt><comma>description<comma>xml_buffer<comma>subscription<comma>xml_boolean<comma>fmw_file<comma>xml_char<lt>openparen<gt>150<lt>closeparen<gt><comma>category_id<comma>xml_int16<comma>category_name<comma>xml_int32<comma>lb_method_id<comma>xml_int32<comma>success_action_id<comma>xml_int32<comma>failed_action_id<comma>xml_int32<comma>survey<comma>xml_boolean<comma>form_type<comma>xml_char<lt>openparen<gt>10<lt>closeparen<gt><comma>legal_terms_conditions<comma>xml_buffer<comma>usage<comma>xml_buffer<comma>requirements<comma>xml_buffer<comma>history<comma>xml_buffer<comma>last_save_date<comma>xml_char<lt>openparen<gt>20<lt>closeparen<gt><comma>last_save_build<comma>xml_char<lt>openparen<gt>80<lt>closeparen<gt><comma>file_encoding<comma>xml_char<lt>openparen<gt>80<lt>closeparen<gt><comma>title<comma>xml_char<lt>openparen<gt>80<lt>closeparen<gt><comma>key<comma>xml_char<lt>openparen<gt>80<lt>closeparen<gt><comma>email_template_id<comma>xml_int32<comma>owner<comma>xml_int32<comma>creation_date<comma>xml_char<lt>openparen<gt>8<lt>closeparen<gt><comma>locked<comma>xml_boolean<comma>tag<comma>xml_char<lt>openparen<gt>100<lt>closeparen<gt>,ftp_format_attributes,gml_id<comma>gml_parent_id<comma>gml_parent_property    WRITER_PARAMS PREFER_POLYGON_OVER_SURFACE,no,WRITE_ALL_FEATURE_TYPE_DEFNS,no,TARGET_NS_PREFIX,gex,INDENT_SIZE,1,USE_STYLESHEET_RESULT_AS_DATASET,no,PRETTY_PRINT_SETTINGS,FME_DISCLOSURE_OPEN,PROFILE,3.1.1,FEATURE_COLLECTION_GROUP,FME_DISCLOSURE_CLOSED,TEXT_INDENT,No,GML_WRT_ADV_PARAMETERS,FME_DISCLOSURE_OPEN,SUPPRESS_XSI_SCHEMALOCATION,no,COORDINATE_SYSTEM_GRANULARITY,DATASET,VALIDATE_OUTPUT_DATASET,NO,TARGET_NS_URI,http:<solidus><solidus>www.veremes.com<solidus>gtf<solidus>export,DESTINATION_DATASETTYPE_VALIDATION,Yes,DOCUMENTS_TO_WRITE,BOTH,SYSTEM_ENCODING,utf-8,REPLACE_TABS_WITH_SPACES,No,PRETTY_PRINT,No    DATASET_ATTR _dataset    FEATURE_TYPE_LIST_ATTR _feature_type    TOTAL_FEATURES_WRITTEN_ATTR _total_features_written INPUT gtf_pro_workspace FEATURE_TYPE PythonCaller_OUTPUT  @FeatureType(ENCODED,gtf_pro_workspace)    OUTPUT SUMMARY FEATURE_TYPE FeatureWriter_SUMMARY
+
+# -------------------------------------------------------------------------
+
+INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } {                puts "MACRO FeatureMerger_REFERENCE_INFO ATTRIBUTES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} } {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          else {}; ]
+
+FACTORY_DEF {*} ReferenceFactory    FACTORY_NAME FeatureMerger    INPUT REFERENCER FEATURE_TYPE FeatureWriter_SUMMARY    INPUT REFERENCEE FEATURE_TYPE FeatureMerger_2_MERGED_1_vTDIdYgpypM=    REFERENCE_INFO $(FeatureMerger_REFERENCE_INFO)    REFERENCE_TABLE 1 1 AUTO    ATTR_ACCUM_MODE "HANDLE_CONFLICT"    ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT"    IGNORE_NULLS "No"    HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No    LIST_ATTRS_TO_INCLUDE { <Unused> }    LIST_ATTRS_TO_INCLUDE_MODE <Unused>    MERGE_ATTRIBUTES Yes    MANAGE_FME_TYPE Yes    MODE COMPLETE    PROCESS_DUPLICATE_REFERENCEES No    REFERENCEES_FIRST No    REJECT_INVALID_GEOM YES    OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_MERGED
+
+# -------------------------------------------------------------------------
+
+
+FME_PYTHON_PATH "$(FME_MF_DIR)"
+
+FACTORY_DEF * PythonFactory    FACTORY_NAME PythonCaller_2    INPUT  FEATURE_TYPE FeatureMerger_MERGED    SYMBOL_NAME FeatureProcessor    PYTHON_NAMESPACE FMEOBJECTS    SOURCE_CODE #<space>-*-<space>coding:<space>utf-8<space>-*-<lf>import<space>fmeobjects<lf>import<space>zipfile<lf>import<space>sys<lf>import<space>os<lf>import<space>shutil<lf><lf>def<space>zip_folder<openparen>folder_path<comma><space>output_path<closeparen>:<lf><space><space><space><space>parent_folder<space>=<space>os.path.dirname<openparen>folder_path<closeparen><lf><space><space><space><space>contents<space>=<space>os.walk<openparen>folder_path<closeparen><lf><space><space><space><space>try:<lf><space><space><space><space><space><space><space><space>zip_file<space>=<space>zipfile.ZipFile<openparen>output_path<comma><space><apos>w<apos><comma><space>zipfile.ZIP_DEFLATED<closeparen><lf><space><space><space><space><space><space><space><space>for<space>root<comma><space>folders<comma><space>files<space>in<space>contents:<lf><space><space><space><space><space><space><space><space><space><space><space><space>for<space>folder_name<space>in<space>folders:<lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>absolute_path<space>=<space>os.path.join<openparen>root<comma><space>folder_name<closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>relative_path<space>=<space>absolute_path.replace<openparen>parent_folder<space>+<space><apos><solidus><solidus><apos><comma><apos><apos><closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>zip_file.write<openparen>absolute_path<comma><space>relative_path<closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space>for<space>file_name<space>in<space>files:<lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>absolute_path<space>=<space>os.path.join<openparen>root<comma><space>file_name<closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>relative_path<space>=<space>absolute_path.replace<openparen>parent_folder<space>+<space><apos><solidus><solidus><apos><comma><apos><apos><closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>zip_file.write<openparen>absolute_path<comma><space>relative_path<closeparen><lf><space><space><space><space>except<space>IOError<comma><space>message:<lf><space><space><space><space><space><space><space><space>print<space>message<lf><space><space><space><space><space><space><space><space>sys.exit<openparen>1<closeparen><lf><space><space><space><space>except<space>OSError<comma><space>message:<lf><space><space><space><space><space><space><space><space>print<space>message<lf><space><space><space><space><space><space><space><space>sys.exit<openparen>1<closeparen><lf><space><space><space><space>except<space>zipfile.BadZipfile<comma><space>message:<lf><space><space><space><space><space><space><space><space>print<space>message<lf><space><space><space><space><space><space><space><space>sys.exit<openparen>1<closeparen><lf><space><space><space><space>finally:<lf><space><space><space><space><space><space><space><space>zip_file.close<openparen><closeparen><lf><lf>def<space>FeatureProcessor<openparen>feature<closeparen>:<lf><space><space><space><space>if<space>os.path.exists<openparen>feature.getAttribute<openparen><apos>_tempDir<apos><closeparen><closeparen>:<lf><space><space><space><space><space><space><space><space>zip_folder<openparen>feature.getAttribute<openparen><apos>_tempDir<apos><closeparen><space>+<space><apos><solidus><solidus><apos><comma>FME_MacroValues<openbracket><apos>destGexFile<apos><closebracket><closeparen>    OUTPUT PYOUTPUT FEATURE_TYPE PythonCaller_2_OUTPUT
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "PythonCaller_2 OUTPUT Output Nuker"   INPUT FEATURE_TYPE PythonCaller_2_OUTPUT
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *   FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__   OUTPUT ROUTED FEATURE_TYPE *    OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "Final Output Nuker"   INPUT FEATURE_TYPE __nuke_me__
+
+# -------------------------------------------------------------------------
+GML_1_DEF gtf_pro_workspace   workspace_id                 xml_int32   label_name                   xml_char(100)   description                  xml_buffer   subscription                 xml_boolean   fmw_file                     xml_char(150)   category_id                  xml_int16   category_name                xml_int32   lb_method_id                 xml_int32   success_action_id            xml_int32   failed_action_id             xml_int32   survey                       xml_boolean   form_type                    xml_char(10)   legal_terms_conditions       xml_buffer   usage                        xml_buffer   requirements                 xml_buffer   history                      xml_buffer   last_save_date               xml_char(20)   last_save_build              xml_char(80)   file_encoding                xml_char(80)   title                        xml_char(80)   key                          xml_char(80)   email_template_id            xml_int32   owner                        xml_int32   creation_date                xml_char(8)   locked                       xml_boolean   tag                          xml_char(100)
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/DSubform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/DSubform.json
new file mode 100755
index 0000000000000000000000000000000000000000..492b2a91a418c863924bc75c6e066e685ed1443c
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/DSubform.json
@@ -0,0 +1,167 @@
+{
+    "datasources":[
+
+    ],
+    "display":{
+        "name":"Subform",
+        "title":"Admin-Export",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+         {
+				"fields":[
+				{
+					"type":"double_select",
+					"name":"idWorkspaceList",
+					"name_from":"idWorkspaceList_not_selected",
+					"name_to":"idWorkspaceList",
+					"label":"FORM_WORKSPACES_MY_WORK_USER_ORDER",
+					"label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER",
+					"label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER",
+					"web_service":{
+						"ressource_id":"gtf/workspaces",
+						"id_key":"workspace_id",
+						"label_key":"name",
+						"parameters":{
+							"filter":{
+                                                            "relation": "AND",
+                                                            "operators": [
+                                                            {
+                                                                "column": "workspace_id",
+                                                                "compare_operator": "NOT IN",
+                                                                "value": [-1,-2]
+                                                            }]
+                                                        },
+                                                        "order_by":"name"
+						}
+					},
+					"size":"6",
+					"nb_cols":12
+				}
+            ]
+         },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"destGexFile",
+                        "label":"Fichier Gtf Export (.gex) :\n     ",
+                        "required":true,
+                        "pattern":"",
+                        "nb_cols":12,
+                        "default_value":"test.gex"
+                    }
+                ]
+            }
+        ]
+    },
+    "insert":{
+        "name":"Subform",
+        "title":"Admin-Export",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+         {
+				"fields":[
+				{
+					"type":"double_select",
+					"name":"idWorkspaceList",
+					"name_from":"idWorkspaceList_not_selected",
+					"name_to":"idWorkspaceList",
+					"label":"FORM_WORKSPACES_MY_WORK_USER_ORDER",
+					"label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER",
+					"label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER",
+					"web_service":{
+						"ressource_id":"gtf/workspaces",
+						"id_key":"workspace_id",
+						"label_key":"name",
+						"parameters":{
+							"filter":{
+                                                            "relation": "AND",
+                                                            "operators": [
+                                                            {
+                                                                "column": "workspace_id",
+                                                                "compare_operator": "NOT IN",
+                                                                "value": [-1,-2]
+                                                            }]
+                                                        },
+                                                        "order_by":"name"
+						}
+					},
+					"size":"6",
+					"nb_cols":12
+				}
+            ]
+         },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"destGexFile",
+                        "label":"Fichier Gtf Export (.gex) :\n     ",
+                        "required":true,
+                        "pattern":"",
+                        "nb_cols":12,
+                        "default_value":"test.gex"
+                    }
+                ]
+            }
+        ]
+    },
+    "update":{
+        "name":"Subform",
+        "title":"Admin-Export",
+        "input_size":"xxs",
+        "nb_cols":12,
+        "rows":[
+         {
+				"fields":[
+				{
+					"type":"double_select",
+					"name":"idWorkspaceList",
+					"name_from":"idWorkspaceList_not_selected",
+					"name_to":"idWorkspaceList",
+					"label":"FORM_WORKSPACES_MY_WORK_USER_ORDER",
+					"label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER",
+					"label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER",
+					"web_service":{
+						"ressource_id":"gtf/workspaces",
+						"id_key":"workspace_id",
+						"label_key":"name",
+						"parameters":{
+							"filter":{
+                                                            "relation": "AND",
+                                                            "operators": [
+                                                            {
+                                                                "column": "workspace_id",
+                                                                "compare_operator": "NOT IN",
+                                                                "value": [-1,-2]
+                                                            }]
+                                                        },
+                                                        "order_by":"name"
+						}
+					},
+					"size":"6",
+					"nb_cols":12
+				}
+            ]
+         },
+            {
+                "fields":[
+                    {
+                        "type":"text",
+                        "name":"destGexFile",
+                        "label":"Fichier Gtf Export (.gex) :\n     ",
+                        "required":true,
+                        "pattern":"",
+                        "nb_cols":12,
+                        "default_value":"test.gex"
+                    }
+                ]
+            }
+        ]
+    },
+    "search":[
+
+    ]
+}
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/Subform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/Subform.json
new file mode 100755
index 0000000000000000000000000000000000000000..5aa2ff07ae524716951c52e4324985c297c31eca
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/Subform.json
@@ -0,0 +1 @@
+{"datasources":{},"display":{"name":"WSubform","title":"Admin-Export","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"double_select","name":"idWorkspaceList","name_from":"idWorkspaceList_from","name_to":"idWorkspaceList","label":"FORM_WORKSPACES_MY_WORK_USER_ORDER","label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER","label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER","web_service":{"ressource_id":"gtf/workspaces","id_key":"workspace_id","label_key":"name","parameters":{"filter":{"relation": "AND", "operators": [{"column": "workspace_id", "compare_operator": "NOT IN", "value": [-1,-2]}]},"order_by":"name"}},"size":15,"nb_cols":12,"id":"idWorkspaceList_1_1","id_from":"idWorkspaceList_1_1_from"}]},{"fields":[{"type":"text","name":"destGexFile","label":"Fichier Gtf Export (.gex) :\n     ","required":true,"pattern":"","nb_cols":12,"default_value":"","id":"destGexFile_2_1"}]}]},"insert":{"name":"WSubform","title":"Admin-Export","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"double_select","name":"idWorkspaceList","name_from":"idWorkspaceList_from","name_to":"idWorkspaceList","label":"FORM_WORKSPACES_MY_WORK_USER_ORDER","label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER","label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER","web_service":{"ressource_id":"gtf/workspaces","id_key":"workspace_id","label_key":"name","parameters":{"filter":{"relation": "AND", "operators": [{"column": "workspace_id", "compare_operator": "NOT IN", "value": [-1,-2]}]},"order_by":"name"}},"size":15,"nb_cols":12,"id":"idWorkspaceList_1_1","id_from":"idWorkspaceList_1_1_from"}]},{"fields":[{"type":"text","name":"destGexFile","label":"Fichier Gtf Export (.gex) :\n     ","required":true,"pattern":"","nb_cols":12,"default_value":"","id":"destGexFile_2_1"}]}]},"update":{"name":"WSubform","title":"Admin-Export","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"double_select","name":"idWorkspaceList","name_from":"idWorkspaceList_from","name_to":"idWorkspaceList","label":"FORM_WORKSPACES_MY_WORK_USER_ORDER","label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER","label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER","web_service":{"ressource_id":"gtf/workspaces","id_key":"workspace_id","label_key":"name","parameters":{"filter":{"relation": "AND", "operators": [{"column": "workspace_id", "compare_operator": "NOT IN", "value": [-1,-2]}]},"order_by":"name"}},"size":15,"nb_cols":12,"id":"idWorkspaceList_1_1","id_from":"idWorkspaceList_1_1_from"}]},{"fields":[{"type":"text","name":"destGexFile","label":"Fichier Gtf Export (.gex) :\n     ","required":true,"pattern":"","nb_cols":12,"default_value":"","id":"destGexFile_2_1"}]}]},"search":[]}
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/WSubform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/WSubform.json
new file mode 100755
index 0000000000000000000000000000000000000000..5aa2ff07ae524716951c52e4324985c297c31eca
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/WSubform.json
@@ -0,0 +1 @@
+{"datasources":{},"display":{"name":"WSubform","title":"Admin-Export","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"double_select","name":"idWorkspaceList","name_from":"idWorkspaceList_from","name_to":"idWorkspaceList","label":"FORM_WORKSPACES_MY_WORK_USER_ORDER","label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER","label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER","web_service":{"ressource_id":"gtf/workspaces","id_key":"workspace_id","label_key":"name","parameters":{"filter":{"relation": "AND", "operators": [{"column": "workspace_id", "compare_operator": "NOT IN", "value": [-1,-2]}]},"order_by":"name"}},"size":15,"nb_cols":12,"id":"idWorkspaceList_1_1","id_from":"idWorkspaceList_1_1_from"}]},{"fields":[{"type":"text","name":"destGexFile","label":"Fichier Gtf Export (.gex) :\n     ","required":true,"pattern":"","nb_cols":12,"default_value":"","id":"destGexFile_2_1"}]}]},"insert":{"name":"WSubform","title":"Admin-Export","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"double_select","name":"idWorkspaceList","name_from":"idWorkspaceList_from","name_to":"idWorkspaceList","label":"FORM_WORKSPACES_MY_WORK_USER_ORDER","label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER","label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER","web_service":{"ressource_id":"gtf/workspaces","id_key":"workspace_id","label_key":"name","parameters":{"filter":{"relation": "AND", "operators": [{"column": "workspace_id", "compare_operator": "NOT IN", "value": [-1,-2]}]},"order_by":"name"}},"size":15,"nb_cols":12,"id":"idWorkspaceList_1_1","id_from":"idWorkspaceList_1_1_from"}]},{"fields":[{"type":"text","name":"destGexFile","label":"Fichier Gtf Export (.gex) :\n     ","required":true,"pattern":"","nb_cols":12,"default_value":"","id":"destGexFile_2_1"}]}]},"update":{"name":"WSubform","title":"Admin-Export","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"double_select","name":"idWorkspaceList","name_from":"idWorkspaceList_from","name_to":"idWorkspaceList","label":"FORM_WORKSPACES_MY_WORK_USER_ORDER","label_from":"FORM_AVAILABLE_WORKSPACES_MY_WORK_USER_ORDER","label_to":"FORM_TREATMENT_WORKSPACES_MY_WORK_USER_ORDER","web_service":{"ressource_id":"gtf/workspaces","id_key":"workspace_id","label_key":"name","parameters":{"filter":{"relation": "AND", "operators": [{"column": "workspace_id", "compare_operator": "NOT IN", "value": [-1,-2]}]},"order_by":"name"}},"size":15,"nb_cols":12,"id":"idWorkspaceList_1_1","id_from":"idWorkspaceList_1_1_from"}]},{"fields":[{"type":"text","name":"destGexFile","label":"Fichier Gtf Export (.gex) :\n     ","required":true,"pattern":"","nb_cols":12,"default_value":"","id":"destGexFile_2_1"}]}]},"search":[]}
\ No newline at end of file
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/ressources/Subform.css
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat
rename to src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/ressources/Subform.css
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat b/src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/ressources/Subform.js
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat
rename to src/module_gtf/web_service/ws_data/gtf/workspace/-1/form/ressources/Subform.js
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-2/fme/importv3.fmw b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/fme/importv3.fmw
new file mode 100755
index 0000000000000000000000000000000000000000..66c2cff23d9f2bf44bb3e1c8ad5848515ee7a537
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/fme/importv3.fmw
@@ -0,0 +1,7437 @@
+#! <?xml version="1.0" encoding="UTF-8" ?>
+#! <WORKSPACE
+#    
+#    
+#    Ligne de commande pour exécuter le projet :
+#    
+#    
+#    C:\Apps\FME_2017.0.1.1x64\fme.exe C:\vm02.veremes.net\produit_vitis\web_services\gtf\trunk\ws_data\gtf\workspace\-2\fme\importv3.fmw
+#          --sourceGexFile "C:\vm02.veremes.net\produit_vitis\web_services\gtf\trunk\ws_data\gtf\workspace\-2\fme\test_import.gex"
+#          --idWorkspaceList "*"
+#          --duplicateKey "0"
+#          --HTML ""
+#          --GTF_CONNECTION_STRING "********"
+#          --GTF_ORDER_ID "1"
+#    
+#    
+#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Datum"
+#!   SOURCE="NONE"
+#!   DESTINATION_ROUTING_FILE=""
+#!   LAST_SAVE_BUILD="FME(R) 2017.0.1.1 (20170512 - Build 17291 - WIN64)"
+#!   DOC_EXTENTS="27202.4 4082.85"
+#!   SHOW_INFO_NODES="true"
+#!   FME_DOCUMENT_GUID="222d17d9-a22e-42ea-9f73-3976f23b0fd7"
+#!   FME_SERVER_SERVICES=""
+#!   DESTINATION="NONE"
+#!   DOC_TOP_LEFT="-5073.43 -3131.7"
+#!   MARKDOWN_USAGE=""
+#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
+#!   EXPLICIT_BOOKMARK_ORDER="false"
+#!   FME_BUILD_NUM="17291"
+#!   FME_DOCUMENT_PRIORGUID="51a69217-d5bb-4f97-b5df-bdd82d58fd4f,d02acc1e-b648-4b31-bc60-5b5dab7e3aeb,9f1d7ba1-17b6-40c3-ae6b-5496f26c91aa,2a84baf2-e9bc-427a-90bc-51d0f473b038,85e5b06e-d91e-4e9c-b67f-1bf004d6d77a,1a568fb1-6a05-4b56-9c27-70fdf05dd007,51a082cd-5ef9-46f3-9df3-9c6c525affaa,5ec2cf0e-845b-410c-b27a-4618f692c1e9,4bfc6e94-1e45-48d7-bf53-95df5ca3adea,b47258a2-a882-4965-852a-f2759ea8b5c4,0d56aac6-8a6f-41dc-a958-e7e51bc82cfe,fc00ae7e-7457-474f-b0e6-c4bad42e73cc,84c1d454-b6aa-4ee6-8e36-bb5eb8707f4c,d8014eb1-9345-440d-9320-23e05280fd4d,6a0abf0c-acd8-4a2a-b888-4dc1b7f58702,f1930941-08ac-44a8-9c3a-aa322ebc7978,7b40dd72-31b9-4b13-89cf-3b2c131d8cf8,66a326ab-e95d-46c9-b9b0-e2a71e413392,7162a10e-7c0b-4cca-bef2-e565857546e3,93d168f0-20e1-4504-a4fa-6b01365bad2d,f3a2392d-9489-4054-85c3-d4f4b71b3bad,2264ca3f-6c55-4585-9521-e70a2a86195e,7f07fa75-5cd3-455d-99b3-8c7e04e47d99,d69b22df-d451-4cfd-9d5e-631d63f5065e,d5052dc5-2cc1-4614-9d72-f55004a5aeac,31015792-c56c-4ba3-9c35-f2874a80049b,ae160608-af1b-4096-914b-df3b5e1ffdf0,269aa94c-c559-11e7-9193-020000e1df2f,17a0f34c-2ee2-4a5c-820b-9b2e66e15e86"
+#!   TERMINATE_REJECTED="NO"
+#!   FME_GEOMETRY_HANDLING="Enhanced"
+#!   PASSWORD=""
+#!   DESCRIPTION="&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Import de traitements GEX dans GTF &lt;/p&gt;&#10;"
+#!   VIEW_POSITION="18343.9 950.01"
+#!   USAGE="&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;    &lt;br/&gt;&lt;/p&gt;"
+#!   MAX_LOG_FEATURES="200"
+#!   ATTR_TYPE_ENCODING="SDF"
+#!   END_PYTHON=""
+#!   WORKSPACE_VERSION="1"
+#!   TITLE="Import GTF"
+#!   IGNORE_READER_FAILURE="No"
+#!   LAST_SAVE_DATE="2018-02-04T21:33:37"
+#!   BEGIN_TCL=""
+#!   HISTORY="20140306,M.&lt;space&gt;Ambrosy,Refonte&lt;space&gt;et&lt;space&gt;gestion&lt;space&gt;des&lt;space&gt;m&lt;u00e9&gt;tadonn&lt;u00e9&gt;es,20140307,M.&lt;space&gt;Ambrosy,D&lt;u00e9&gt;sactivation&lt;space&gt;des&lt;space&gt;groupes,20150109,M.&lt;space&gt;Ambrosy,Mises&lt;space&gt;&lt;u00e0&gt;&lt;space&gt;jour&lt;space&gt;majeures,20161205,M.&lt;space&gt;Ambrosy,"
+#!   SHOW_ANNOTATIONS="true"
+#!   ZOOM_SCALE="100"
+#!   MARKDOWN_DESCRIPTION=""
+#!   END_TCL=""
+#!   LOG_MAX_RECORDED_FEATURES="200"
+#!   PYTHON_COMPATIBILITY="27"
+#!   CATEGORY="GTF"
+#!   FME_STROKE_MAX_DEVIATION="0"
+#!   SOURCE_ROUTING_FILE=""
+#!   FME_REPROJECTION_ENGINE="FME"
+#!   LOG_FILE=""
+#!   BEGIN_PYTHON=""
+#!   USE_MARKDOWN=""
+#!   REDIRECT_TERMINATORS="NONE"
+#!   WARN_INVALID_XFORM_PARAM="Yes"
+#! >
+#! <DATASETS>
+#! <DATASET
+#!   IS_SOURCE="true"
+#!   ROLE="READER"
+#!   FORMAT="POSTGRES"
+#!   DATASET="$(dbDatabase)"
+#!   KEYWORD="POSTGRES_1"
+#!   MULTI_GEOM_ALLOWED="false"
+#!   ATTR_MAX_LENGTH="60"
+#!   ATTR_CASE="ANY"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="true"
+#!   DEFLINE_TEMPLATE="postgres_type {FME_GEN_GEOMETRY} postgres_sql_where_clause &quot;&quot; postgres_sql_statement &quot;&quot;"
+#!   DEFLINE_ATTRS="true"
+#!   EXPOSABLE_ATTRS="multi_reader_full_id int4 fme_text_size float8 fme_text_string char(50) multi_reader_keyword char(50) fme_fill_color char(50) postgres_oid int4 fme_geometry fme_char(50) multi_reader_id int4 fme_basename char(50) fme_secondary_axis float8 fme_start_angle float8 fme_sweep_angle float8 fme_type char(50) fme_dataset char(50) multi_reader_type char(50) fme_color char(50) fme_feature_type char(50) postgres_type char(50) fme_rotation float8 fme_primary_axis float8"
+#!   DEFLINE_PARMS="&quot;GUI OPTIONAL TEXT postgres_sql_where_clause WHERE Clause&quot; &quot;&quot; &quot;GUI OPTIONAL TEXT postgres_sql_statement SELECT Statement&quot; &quot;&quot; "
+#!   ATTR_INDEX_TYPES="BTREE HASH PRIKEY RTREE"
+#!   ATTR_NAME_INVALID_CHARS=""
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="DATABASE"
+#!   GENERATE_FME_BUILD_NUM="13547"
+#!   MAX_FEATURES=""
+#!   COORDSYS=""
+#!   MIN_FEATURES=""
+#!   MAX_FEATURES_PER_FEATURE_TYPE=""
+#!   FEATURE_TYPES=""
+#!   START_FEATURE=""
+#! />
+#! <DATASET
+#!   IS_SOURCE="false"
+#!   ROLE="WRITER"
+#!   FORMAT="POSTGRES"
+#!   DATASET="$(dbDatabase)"
+#!   KEYWORD="POSTGRES_2"
+#!   MULTI_GEOM_ALLOWED="true"
+#!   ATTR_MAX_LENGTH="63"
+#!   ATTR_CASE="LOWER"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="true"
+#!   DEFLINE_TEMPLATE="postgres_type {FME_GEN_GEOMETRY} postgres_mode INHERIT_FROM_WRITER postgres_sql_key_columns &quot;&quot; postgres_drop_table NO postgres_truncate_table NO postgres_create_with_oids NO postgres_vacuum_analyze NO postgres_allow_serial_writing NO"
+#!   DEFLINE_ATTRS="true"
+#!   EXPOSABLE_ATTRS="fme_rotation float8 fme_text_size float8 fme_geometry fme_char(50) fme_type char(50) fme_color char(50) fme_fill_color char(50) fme_feature_type char(50) fme_basename char(50) fme_secondary_axis float8 fme_dataset char(50) fme_db_operation char(8) fme_start_angle float8 postgres_type char(50) fme_sweep_angle float8 fme_where char(254) fme_text_string char(50) fme_primary_axis float8"
+#!   DEFLINE_PARMS="&quot;GUI CHOICE postgres_drop_table YES%NO Drop Table First&quot; NO &quot;GUI CHOICE postgres_truncate_table YES%NO Truncate Table First&quot; NO &quot;GUI CHOICE postgres_mode INHERIT_FROM_WRITER%INSERT%UPDATE%DELETE Writer Mode&quot; INHERIT_FROM_WRITER &quot;GUI OPTIONAL ATTRLIST_COMMAS postgres_sql_key_columns \&quot; \&quot; SQL Key Columns&quot; &quot;&quot; &quot;GUI CHOICE postgres_create_with_oids YES%NO Create With OIDs&quot; NO &quot;GUI CHOICE postgres_vacuum_analyze YES%NO Vacuum Analyze Table&quot; NO &quot;GUI CHOICE postgres_allow_serial_writing YES%NO Allow Serial Column Writing&quot; NO "
+#!   ATTR_INDEX_TYPES="BTREE HASH PRIKEY RTREE"
+#!   ATTR_NAME_INVALID_CHARS=". %-#[]&quot;()!?*&apos;&amp;+\/"
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="DATABASE"
+#!   GENERATE_FME_BUILD_NUM="15477"
+#!   FANOUT_EXPRESSION=""
+#!   FANOUT_GROUP="NO"
+#!   COORDSYS=""
+#! >
+#! <METAFILE_PARAMETER
+#!   NAME="NETWORK_PROXY"
+#!   VALUE="NO"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="FEATURE_TYPE_DEFAULT_NAME"
+#!   VALUE="Table1"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="NETWORK_AUTHENTICATION"
+#!   VALUE="NO"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="DATASET_NAME"
+#!   VALUE="Database"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="FEATURE_TYPE_NAME"
+#!   VALUE="Table"
+#! />
+#! </DATASET>
+#! <DATASET
+#!   IS_SOURCE="false"
+#!   ROLE="WRITER"
+#!   FORMAT="POSTGRES"
+#!   DATASET="$(dbDatabase)"
+#!   KEYWORD="POSTGRES_3"
+#!   MULTI_GEOM_ALLOWED="true"
+#!   ATTR_MAX_LENGTH="63"
+#!   ATTR_CASE="LOWER"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="true"
+#!   DEFLINE_TEMPLATE="postgres_type {FME_GEN_GEOMETRY} postgres_mode INHERIT_FROM_WRITER postgres_drop_table NO postgres_truncate_table NO postgres_create_with_oids YES postgres_vacuum_analyze YES postgres_allow_serial_writing NO"
+#!   DEFLINE_ATTRS="true"
+#!   EXPOSABLE_ATTRS="fme_rotation float8 fme_text_size float8 fme_geometry fme_char(50) fme_type char(50) fme_color char(50) fme_fill_color char(50) fme_feature_type char(50) fme_basename char(50) fme_secondary_axis float8 fme_dataset char(50) fme_db_operation char(8) fme_start_angle float8 postgres_type char(50) fme_sweep_angle float8 fme_where char(254) fme_text_string char(50) fme_primary_axis float8"
+#!   DEFLINE_PARMS="&quot;GUI CHOICE postgres_mode INHERIT_FROM_WRITER%INSERT%UPDATE%DELETE Writer Mode&quot; INHERIT_FROM_WRITER &quot;GUI CHOICE postgres_drop_table YES%NO Drop Table First&quot; NO &quot;GUI CHOICE postgres_truncate_table YES%NO Truncate Table First&quot; NO &quot;GUI CHOICE postgres_create_with_oids YES%NO Create With OIDs&quot; YES &quot;GUI CHOICE postgres_vacuum_analyze YES%NO Vacuum Analyze Table&quot; YES &quot;GUI CHOICE postgres_allow_serial_writing YES%NO Allow serial Column Writing&quot; NO "
+#!   ATTR_INDEX_TYPES="BTREE HASH PRIKEY RTREE"
+#!   ATTR_NAME_INVALID_CHARS=". %-#[]&quot;()!?*&apos;&amp;+\/"
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="DATABASE"
+#!   GENERATE_FME_BUILD_NUM="6538"
+#!   FANOUT_EXPRESSION=""
+#!   FANOUT_GROUP="NO"
+#!   COORDSYS=""
+#! />
+#! <DATASET
+#!   IS_SOURCE="false"
+#!   ROLE="WRITER"
+#!   FORMAT="XML"
+#!   DATASET="$(xml)"
+#!   KEYWORD="XML_1"
+#!   MULTI_GEOM_ALLOWED="true"
+#!   ATTR_MAX_LENGTH="254"
+#!   ATTR_CASE="ANY"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="true"
+#!   DEFLINE_TEMPLATE=""
+#!   DEFLINE_ATTRS="true"
+#!   EXPOSABLE_ATTRS="fme_rotation xml_real64 fme_text_size xml_real64 fme_geometry fme_char(50) fme_type xml_char(50) fme_color xml_char(50) fme_fill_color xml_char(50) fme_feature_type xml_char(50) fme_basename xml_char(50) fme_secondary_axis xml_real64 xml_type xml_char(50) fme_dataset xml_char(50) fme_start_angle xml_real64 fme_sweep_angle xml_real64 fme_text_string xml_char(50) fme_primary_axis xml_real64"
+#!   DEFLINE_PARMS=""
+#!   ATTR_INDEX_TYPES=""
+#!   ATTR_NAME_INVALID_CHARS="[]= %~!@$&amp;#[()^?*&apos;+\\/&quot;:{}"
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="FILE_OR_URL"
+#!   GENERATE_FME_BUILD_NUM="15477"
+#!   FANOUT_EXPRESSION=""
+#!   FANOUT_GROUP="NO"
+#!   COORDSYS=""
+#! >
+#! <METAFILE_PARAMETER
+#!   NAME="NETWORK_PROXY"
+#!   VALUE="NO"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="READER_DATASET_HINT"
+#!   VALUE="Select the XML file(s)"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="NETWORK_AUTHENTICATION"
+#!   VALUE="NO"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="MIME_TYPE"
+#!   VALUE="application/XML"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="DATASET_NAME"
+#!   VALUE="xml file"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="ADVANCED_PARMS"
+#!   VALUE="XML_OUT_XSD_DOC XML_OUT_SUPPRESS_TARGET_NS XML_OUT_TABLE_WRAPPER_PREFIX XML_OUT_TABLE_WRAPPER_SUFFIX XML_OUT_ROW_ID_ATTR_NAME XML_OUT_ROW_ID_PREFIX XML_OUT_APPLY_STYLESHEET XML_OUT_STYLESHEET_RESULT XML_OUT_APPEND_XML_FRAGMENTS_AS XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH XML_OUT_XML_VALIDATION XML_OUT_XSD_VALIDATION_DOCS"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="WRITER_DATASET_HINT"
+#!   VALUE="Specify a name for the XML file"
+#! />
+#! </DATASET>
+#! </DATASETS>
+#! <DATA_TYPES>
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bool"
+#!   FME_TYPE="fme_boolean"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varchar(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="xml"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="json"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="jsonb"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_binarybuffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_varbinary(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_binary(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_int8"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_uint8"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int4"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int4"
+#!   FME_TYPE="fme_uint16"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int8"
+#!   FME_TYPE="fme_int64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="int8"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="numeric(width,decimal)"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="numeric(20,0)"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="oid"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="serial"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="float4"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="money"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="float8"
+#!   FME_TYPE="fme_real64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="date"
+#!   FME_TYPE="fme_date"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="time"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="timetz"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="timestamp"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="timestamptz"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="uuid"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bit(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varbit"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varbit(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="varchar(20)"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="float8"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(1)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="bool"
+#!   FME_TYPE="fme_boolean"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="char(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="varchar(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="json"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="jsonb"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_binarybuffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_varbinary(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_binary(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_int8"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int2"
+#!   FME_TYPE="fme_uint8"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int4"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int4"
+#!   FME_TYPE="fme_uint16"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int8"
+#!   FME_TYPE="fme_int64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int8"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="numeric(width,decimal)"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="numeric(20,0)"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="oid"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="serial"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="float4"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="money"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="float8"
+#!   FME_TYPE="fme_real64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="date"
+#!   FME_TYPE="fme_date"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="time"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="timetz"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="timestamp"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="timestamptz"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="uuid"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="bit(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="varbit"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="varbit(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="text"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="bytea"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="int8"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="oid"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="float8"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="varchar(20)"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="char(1)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="POSTGRES"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_varbinary(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_binary(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_binarybuffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_xml"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_datetime"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_date"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_time"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int64"
+#!   FME_TYPE="fme_int64"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint64"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int32"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint32"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int16"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint16"
+#!   FME_TYPE="fme_uint16"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_byte"
+#!   FME_TYPE="fme_int8"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_ubyte"
+#!   FME_TYPE="fme_uint8"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_real32"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_real64"
+#!   FME_TYPE="fme_real64"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_decimal(width,decimal)"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_boolean"
+#!   FME_TYPE="fme_boolean"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(20)"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(8)"
+#!   FME_TYPE="fme_date"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(12)"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_geometry"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_xml"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(1)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_byte"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="XML"
+#! />
+#! </DATA_TYPES>
+#! <GEOM_TYPES>
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_no_geom"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_point"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_line"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_area"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_rectangle"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_rounded_rectangle"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_text"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_ellipse"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_arc"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postrgres_none"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_raster"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_solid"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_point_cloud"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_no_geom"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_point"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_line"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_area"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_rectangle"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_rounded_rectangle"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_text"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_ellipse"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_arc"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postrgres_none"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_raster"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_solid"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_point_cloud"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="postgres_none"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="POSTGRES"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_no_geom"
+#!   FME_TYPE="fme_no_geom"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_point"
+#!   FME_TYPE="fme_point"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_line"
+#!   FME_TYPE="fme_line"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_area"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_aggregate"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_text"
+#!   FME_TYPE="fme_text"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_ellipse"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_rectangle"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_rounded_rectangle"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_arc"
+#!   FME_TYPE="fme_arc"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_surface"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_solid"
+#!   FME_TYPE="fme_solid"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_mesh"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_raster"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_point_cloud"
+#!   FORMAT="XML"
+#! />
+#! </GEOM_TYPES>
+#! <FEATURE_TYPES>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="false"
+#!   NODE_NAME="workspace"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER="s_gtf"
+#!   IS_EDITABLE="true"
+#!   IDENTIFIER="1"
+#!   FEAT_GEOMTYPE="All"
+#!   POSITION="22050 0"
+#!   BOUNDING_RECT="22050 0 0 0"
+#!   ORDER="5e+14"
+#!   COLLAPSED="false"
+#!   KEYWORD="POSTGRES_3"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   SCHEMA_ATTRIBUTE_SOURCE="1"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="workspace_id" ATTR_TYPE="int4,PRIKEY" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="name" ATTR_TYPE="varchar(100),BTREE" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="description" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="subscription" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="fmw_file" ATTR_TYPE="varchar(150)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="category_id" ATTR_TYPE="int4,BTREE" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="success_action_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="failed_action_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="lb_method_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="survey" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="form_type" ATTR_TYPE="varchar(10)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="legal_terms_conditions" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="usage" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="requirements" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="history" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_date" ATTR_TYPE="timestamp" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_build" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="file_encoding" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="title" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="key" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="email_template_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="owner" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="creation_date" ATTR_TYPE="date" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="locked" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="tag" ATTR_TYPE="varchar(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="fme_db_operation" ATTR_TYPE="char(8)"  EXPOSABLE_ATTR="true" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="fme_where" ATTR_TYPE="char(254)"  EXPOSABLE_ATTR="true" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_mode" PARM_VALUE="UPDATE"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_allow_serial_writing" PARM_VALUE="NO"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_create_with_oids" PARM_VALUE="YES"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_truncate_table" PARM_VALUE="NO"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_vacuum_analyze" PARM_VALUE="YES"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_drop_table" PARM_VALUE="NO"/>
+#! </FEATURE_TYPE>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="true"
+#!   NODE_NAME="workspace"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER="s_gtf"
+#!   IS_EDITABLE="false"
+#!   IDENTIFIER="130"
+#!   FEAT_GEOMTYPE="postgres_none"
+#!   POSITION="4002.94 -1226.37"
+#!   BOUNDING_RECT="4002.94 -1226.37 0 0"
+#!   ORDER="5e+14"
+#!   COLLAPSED="true"
+#!   KEYWORD="POSTGRES_1"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   HIDDEN_USER_ATTRS=""
+#!   MERGE_FILTER=""
+#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
+#!   MERGE_FILTER_CASE_SENSITIVE="false"
+#!   DYNAMIC_SCHEMA="false"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="workspace_id" ATTR_TYPE="int4,PRIKEY" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="name" ATTR_TYPE="varchar(100),BTREE" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="description" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="subscription" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="fmw_file" ATTR_TYPE="varchar(150)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="category_id" ATTR_TYPE="int4,BTREE" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="lb_method_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="success_action_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="failed_action_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="survey" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="form_type" ATTR_TYPE="varchar(10)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="legal_terms_conditions" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="usage" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="requirements" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="history" ATTR_TYPE="text" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_date" ATTR_TYPE="timestamp" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="last_save_build" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="file_encoding" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="title" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="key" ATTR_TYPE="varchar(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="email_template_id" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="owner" ATTR_TYPE="int4" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="creation_date" ATTR_TYPE="date" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="locked" ATTR_TYPE="bool" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="tag" ATTR_TYPE="varchar(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_sql_statement" PARM_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_sql_where_clause" PARM_VALUE=""/>
+#! </FEATURE_TYPE>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="false"
+#!   NODE_NAME="rapport"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER=""
+#!   IS_EDITABLE="true"
+#!   IDENTIFIER="258"
+#!   FEAT_GEOMTYPE="All"
+#!   POSITION="21093.4 -814.24"
+#!   BOUNDING_RECT="21093.4 -814.24 -1 -1"
+#!   ORDER="5e+14"
+#!   COLLAPSED="false"
+#!   KEYWORD="XML_1"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   SCHEMA_ATTRIBUTE_SOURCE="1"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="name" ATTR_TYPE="xml_char(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="key" ATTR_TYPE="xml_char(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="workspace_id" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="statut" ATTR_TYPE="xml_char(200)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#! </FEATURE_TYPE>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="false"
+#!   NODE_NAME="category"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER="s_gtf"
+#!   IS_EDITABLE="true"
+#!   IDENTIFIER="290"
+#!   FEAT_GEOMTYPE="All"
+#!   POSITION="5673.16 -554.588"
+#!   BOUNDING_RECT="5673.16 -554.588 -1 -1"
+#!   ORDER="5e+14"
+#!   COLLAPSED="false"
+#!   KEYWORD="POSTGRES_2"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   SCHEMA_ATTRIBUTE_SOURCE="1"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="category_id" ATTR_TYPE="int4,PRIKEY" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="name" ATTR_TYPE="varchar(50)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="description" ATTR_TYPE="varchar(200)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_mode" PARM_VALUE="INHERIT_FROM_WRITER"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_allow_serial_writing" PARM_VALUE="NO"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_sql_key_columns" PARM_VALUE=""/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_create_with_oids" PARM_VALUE="NO"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_truncate_table" PARM_VALUE="NO"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_vacuum_analyze" PARM_VALUE="NO"/>
+#!     <DEFLINE_PARM PARM_NAME="postgres_drop_table" PARM_VALUE="NO"/>
+#! </FEATURE_TYPE>
+#! </FEATURE_TYPES>
+#! <FMESERVER>
+#! </FMESERVER>
+#! <GLOBAL_PARAMETERS>
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI FILENAME_MUSTEXIST_OR_ATTR sourceGexFile fichier_Export_GTF_(.gex)|*.gex Fichier d&apos;export GTF à importer (.gex) :"
+#!   DEFAULT_VALUE="$(FME_MF_DIR)test_import.gex"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL TEXT_OR_ATTR idWorkspaceList Liste des idWorkspace à importer (* pour tous) :"
+#!   DEFAULT_VALUE="*"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI LOOKUP_CHOICE_OR_ATTR duplicateKey Importer&lt;space&gt;les&lt;space&gt;projets&lt;space&gt;avec&lt;space&gt;une&lt;space&gt;nouvelle&lt;space&gt;KEY&lt;space&gt;et&lt;space&gt;un&lt;space&gt;nouveau&lt;space&gt;nom,0%Ne&lt;space&gt;pas&lt;space&gt;mettre&lt;space&gt;&lt;u00e0&gt;&lt;space&gt;jour&lt;space&gt;les&lt;space&gt;projets&lt;space&gt;de&lt;space&gt;m&lt;u00ea&gt;me&lt;space&gt;KEY,1%Mettre&lt;space&gt;&lt;u00e0&gt;&lt;space&gt;jour&lt;space&gt;les&lt;space&gt;projets&lt;space&gt;de&lt;space&gt;m&lt;u00ea&gt;me&lt;space&gt;KEY,2 Mettre à jour les workspaces de KEY identique ?:"
+#!   DEFAULT_VALUE="0"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL FILENAME HTML All_Files(*.*)|*.* Rapport HTML :"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="false"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL PASSWORD_OR_ATTR GTF_CONNECTION_STRING Chaîne de connexion à la base GTF :"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL INTEGER_OR_ATTR GTF_ORDER_ID ID de la demande envoyée par le moteur :"
+#!   DEFAULT_VALUE="1"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbServer Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;0&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbPort Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;1&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbDatabase Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;2&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbUser Script Python:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;3&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbPassword Script Python:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;4&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM xml Python Script:"
+#!   DEFAULT_VALUE="#&lt;space&gt;G&lt;u00e9&gt;n&lt;u00e8&gt;re&lt;space&gt;un&lt;space&gt;nom&lt;space&gt;de&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;temporaire&lt;space&gt;unique&lt;lf&gt;import&lt;space&gt;uuid&lt;lf&gt;import&lt;space&gt;os&lt;lf&gt;&lt;lf&gt;temp&lt;space&gt;=&lt;space&gt;os.environ.get&lt;openparen&gt;&lt;quote&gt;TEMP&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;if&lt;space&gt;temp&lt;space&gt;is&lt;space&gt;not&lt;space&gt;None:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;temp_dir&lt;space&gt;=&lt;space&gt;temp&lt;space&gt;+&lt;space&gt;&lt;quote&gt;&lt;backslash&gt;&lt;backslash&gt;&lt;quote&gt;&lt;space&gt;+&lt;space&gt;str&lt;openparen&gt;uuid.uuid1&lt;openparen&gt;&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;else:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;temp_dir&lt;space&gt;=&lt;space&gt;&lt;quote&gt;c:&lt;backslash&gt;&lt;backslash&gt;temp&lt;backslash&gt;&lt;backslash&gt;&lt;quote&gt;&lt;space&gt;+&lt;space&gt;str&lt;openparen&gt;uuid.uuid1&lt;openparen&gt;&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;temp_dir&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;backslash&gt;&lt;backslash&gt;rapport.xml&lt;apos&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM xslt Python Script:"
+#!   DEFAULT_VALUE="return&lt;space&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;FME_MF_DIR&lt;apos&gt;&lt;closebracket&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;rapport.xslt&lt;apos&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! </GLOBAL_PARAMETERS>
+#! <COMMENTS>
+#! <COMMENT
+#!   IDENTIFIER="53"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;Dézippe le fichier gex&#13;&lt;br&gt;dans un répertoire temporaire unique&#13;&lt;br&gt;(utilise la variable d&apos;environnement TEMP,&#13;&lt;br&gt;si la variable n&apos;existe pas, utilise c:\temp)&#13;&lt;br&gt;Cf. paramètre privé Python&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-3920.97 261.622"
+#!   TOP_LEFT="-3920.97 261.622"
+#!   BOTTOM_RIGHT="-3920.97 261.622"
+#!   BOUNDING_RECT="-3920.97 261.622 0 0"
+#!   ORDER="87"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="95"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="250"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;s_gtf.workspace&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="22129 168"
+#!   TOP_LEFT="22129 168"
+#!   BOTTOM_RIGHT="22129 168"
+#!   BOUNDING_RECT="22129 168 0 0"
+#!   ORDER="151"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="1"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="51"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;Initialise le projet&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-5063.43 -325.626"
+#!   TOP_LEFT="-5063.43 -325.626"
+#!   BOTTOM_RIGHT="-5063.43 -325.626"
+#!   BOUNDING_RECT="-5063.43 -325.626 0 0"
+#!   ORDER="187"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="2"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="48"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;workspace_id issu du XML&#13;&lt;br&gt;doit être dans la liste des traitements à importer&#13;&lt;br&gt;ou alors la liste des traitements à importer = *&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="5.27641 -102.007"
+#!   TOP_LEFT="5.27641 -102.007"
+#!   BOTTOM_RIGHT="5.27641 -102.007"
+#!   BOUNDING_RECT="5.27641 -102.007 0 0"
+#!   ORDER="188"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="11"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="134"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;s_gtf.workspace&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="4038.94 -1030.37"
+#!   TOP_LEFT="4038.94 -1030.37"
+#!   BOTTOM_RIGHT="4038.94 -1030.37"
+#!   BOUNDING_RECT="4038.94 -1030.37 0 0"
+#!   ORDER="190"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="130"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="114"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11px;&quot;&gt;Vérifie si un traitement de même KEY existe déjà&lt;/span&gt;&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11px;&quot;&gt;Si oui la suite dépend du paramètre duplicateKey&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="6181.41 222.859"
+#!   TOP_LEFT="6181.41 222.859"
+#!   BOTTOM_RIGHT="6181.41 222.859"
+#!   BOUNDING_RECT="6181.41 222.859 0 0"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="227"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="119"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:11px; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Le owner est celui qui&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;fait l&apos;import&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="21237.6 349.68"
+#!   TOP_LEFT="21237.6 349.68"
+#!   BOTTOM_RIGHT="21237.6 349.68"
+#!   BOUNDING_RECT="21237.6 349.68 0 0"
+#!   ORDER="150"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="118"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="182"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3 cas selon &amp;quot;duplicateKey&amp;quot;&lt;/p&gt;&#10;&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Cas 0 : on ajoute avec un nouvel ID et un nouveau nom&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Cas 1 : on n&apos;importe pas&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Cas 2 : on met à jour en gardant mêmes KEY, ID et NAME&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="7460.78 371.381"
+#!   TOP_LEFT="7460.78 371.381"
+#!   BOTTOM_RIGHT="7459.78 372.381"
+#!   BOUNDING_RECT="7460.78 371.381 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="176"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="187"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11px;&quot;&gt;Le nom  est tronqué à &lt;br /&gt;75 pour pouvoir ajouter &lt;br /&gt;la date&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="14867 361.607"
+#!   TOP_LEFT="14867 361.607"
+#!   BOTTOM_RIGHT="14866 362.607"
+#!   BOUNDING_RECT="14867 361.607 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="202"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="113"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Mode INSERTION&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="18372.6 306.181"
+#!   TOP_LEFT="18372.6 306.181"
+#!   BOTTOM_RIGHT="18371.6 307.181"
+#!   BOUNDING_RECT="18372.6 306.181 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="112"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="206"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Mode UPDATE&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="18472.9 -861.318"
+#!   TOP_LEFT="18472.9 -861.318"
+#!   BOTTOM_RIGHT="18471.9 -860.318"
+#!   BOUNDING_RECT="18472.9 -861.318 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="284"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="205"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Prend le workspace_id du traitement&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;déjà existant en base&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="16523.7 -858.963"
+#!   TOP_LEFT="16523.7 -858.963"
+#!   BOTTOM_RIGHT="16522.7 -857.963"
+#!   BOUNDING_RECT="16523.7 -858.963 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="208"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="191"
+#!   COMMENT_VALUE="&lt;html&gt;&lt;body&gt;On modifie le nom du traitement&#13;&lt;br&gt;en y a joutant la date&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="16192.7 -2079.57"
+#!   TOP_LEFT="16192.7 -2079.57"
+#!   BOTTOM_RIGHT="16192.7 -2079.57"
+#!   BOUNDING_RECT="16192.7 -2079.57 0 0"
+#!   ORDER="158"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="170"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="192"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11px;&quot;&gt;Le nom  est tronqué à &lt;br /&gt;75 pour pouvoir ajouter &lt;br /&gt;la date&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="15641.4 -2040.57"
+#!   TOP_LEFT="15641.4 -2040.57"
+#!   BOTTOM_RIGHT="15640.4 -2039.57"
+#!   BOUNDING_RECT="15641.4 -2040.57 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="177"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="247"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Mode INSERTION&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="18394 -2488.72"
+#!   TOP_LEFT="18394 -2488.72"
+#!   BOTTOM_RIGHT="18393 -2487.72"
+#!   BOUNDING_RECT="18394 -2488.72 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="245"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="275"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Modif 26/10/16 OG :&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Augmentation de la valeur de _random_number et construction de key &lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;en mettant _random_number avant _timestamp&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Conversion en base 36&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="9525.09 1.74458"
+#!   TOP_LEFT="9525.09 1.74458"
+#!   BOTTOM_RIGHT="10275.1 -48.2554"
+#!   BOUNDING_RECT="9525.09 1.74458 750 50"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="10"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="0"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="279"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Cherche si la catégorie existe déjà et récupère son id&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="1983.97 429.473"
+#!   TOP_LEFT="1983.97 429.473"
+#!   BOTTOM_RIGHT="1982.97 430.473"
+#!   BOUNDING_RECT="1983.97 429.473 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="276"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="285"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;La catégorie existe&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="4085.94 179.881"
+#!   TOP_LEFT="4085.94 179.881"
+#!   BOTTOM_RIGHT="4084.94 180.881"
+#!   BOUNDING_RECT="4085.94 179.881 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="278"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="289"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;nouveau category_id&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="3525.38 -33.7146"
+#!   TOP_LEFT="3525.38 -33.7146"
+#!   BOTTOM_RIGHT="3524.38 -32.7146"
+#!   BOUNDING_RECT="3525.38 -33.7146 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="287"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="283"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;La catégorie a été créée&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="4608.07 -117.822"
+#!   TOP_LEFT="4608.07 -117.822"
+#!   BOTTOM_RIGHT="4607.07 -116.822"
+#!   BOUNDING_RECT="4608.07 -117.822 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="293"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="297"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;On utilise un 2eme dataset pg pour&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;écricre en premier dans cette table&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="5525.15 -326.747"
+#!   TOP_LEFT="5525.15 -326.747"
+#!   BOTTOM_RIGHT="5524.15 -325.747"
+#!   BOUNDING_RECT="5525.15 -326.747 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="290"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="282"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;La catégorie est nulle&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="4497.84 451.141"
+#!   TOP_LEFT="4497.84 451.141"
+#!   BOTTOM_RIGHT="4496.84 452.141"
+#!   BOUNDING_RECT="4497.84 451.141 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="305"
+#! />
+#! </COMMENTS>
+#! <CONSTANTS>
+#! </CONSTANTS>
+#! <BOOKMARKS>
+#! <BOOKMARK
+#!   IDENTIFIER="149"
+#!   NAME="Génère un nouveau KEY"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="9107.24 477.313"
+#!   BOTTOM_RIGHT="11853.1 -286.258"
+#!   BOUNDING_RECT="9107.24 477.313 2745.87 763.571"
+#!   STICKY="true"
+#!   COLOUR="0.0431373,0.203922,0.556863"
+#!   CONTENTS="257 142 137 139 140 275 145 141 146 144 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="110"
+#!   NAME="Valeurs par défaut si nulles dans l&apos;export"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="-2756.43 -331.626"
+#!   BOTTOM_RIGHT="-1475.43 -639.626"
+#!   BOUNDING_RECT="-2756.43 -331.626 1281 308"
+#!   STICKY="true"
+#!   COLOUR="0.709804,0.764706,0.686275"
+#!   CONTENTS="210 152 150 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="117"
+#!   NAME="Valeurs forcées"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="-1355.49 -284.619"
+#!   BOTTOM_RIGHT="-801.49 -639.626"
+#!   BOUNDING_RECT="-1355.49 -284.619 554 355.007"
+#!   STICKY="true"
+#!   COLOUR="0.854902,0.164706,0.466667"
+#!   CONTENTS="105 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="199"
+#!   NAME="Ajoute la date au nom du traitement"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="14744 520.406"
+#!   BOTTOM_RIGHT="16191.5 -237.027"
+#!   BOUNDING_RECT="14744 520.406 1447.52 757.433"
+#!   STICKY="true"
+#!   COLOUR="0.901961,0.101961,0.466667"
+#!   CONTENTS="202 313 314 315 317 187 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="151"
+#!   NAME="Crée un nouveau workspace_id (séquence GTF)"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="16272.1 520.406"
+#!   BOTTOM_RIGHT="17284.3 -216.985"
+#!   BOUNDING_RECT="16272.1 520.406 1012.16 737.391"
+#!   STICKY="true"
+#!   COLOUR="0.054902,0.439216,0.321569"
+#!   CONTENTS="109 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="147"
+#!   NAME="Copie des fichiers dans GTF"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="19089.2 305.644"
+#!   BOTTOM_RIGHT="20884.3 -97.752"
+#!   BOUNDING_RECT="19089.2 305.644 1795.06 403.396"
+#!   STICKY="true"
+#!   COLOUR="0.756863,0.811765,0.67451"
+#!   CONTENTS="256 108 168 226 230 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="214"
+#!   NAME="On conserve le nom du traitement déjà existant en base"
+#!   DESCRIPTION="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ainsi on s&apos;assure de ne pas envoyer un nom déjà existant dans un autre traitement&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="12926.9 -688.374"
+#!   BOTTOM_RIGHT="14314.9 -1202.21"
+#!   BOUNDING_RECT="12926.9 -688.374 1387.98 513.835"
+#!   STICKY="true"
+#!   COLOUR="0.121569,0.619608,0.94902"
+#!   CONTENTS="209 212 217 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="231"
+#!   NAME="Génère un KEY si celui-ci est vide"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="9108.68 -1768.24"
+#!   BOTTOM_RIGHT="12677.1 -2531.81"
+#!   BOUNDING_RECT="9108.68 -1768.24 3568.41 763.571"
+#!   STICKY="true"
+#!   COLOUR="0.0431373,0.203922,0.556863"
+#!   CONTENTS="222 219 220 224 225 233 228 221 229 223 236 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="164"
+#!   NAME="Si un traitement de même nom existe déjà, il faut renommer"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="12775.2 -1775.6"
+#!   BOTTOM_RIGHT="14648.1 -3080.26"
+#!   BOUNDING_RECT="12775.2 -1775.6 1872.93 1304.66"
+#!   STICKY="true"
+#!   COLOUR="0.976471,0.603922,0.486275"
+#!   CONTENTS="153 154 184 155 241 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="215"
+#!   NAME="Ajoute la date au nom du traitement"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="14803.2 -1881.77"
+#!   BOTTOM_RIGHT="16883.9 -2639.2"
+#!   BOUNDING_RECT="14803.2 -1881.77 2080.65 757.433"
+#!   STICKY="true"
+#!   COLOUR="0.901961,0.101961,0.466667"
+#!   CONTENTS="170 192 242 177 244 189 191 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="248"
+#!   NAME="Crée un nouveau workspace_id (séquence GTF)"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="17123.8 -2394.31"
+#!   BOTTOM_RIGHT="18136 -3131.7"
+#!   BOUNDING_RECT="17123.8 -2394.31 1012.16 737.391"
+#!   STICKY="true"
+#!   COLOUR="0.054902,0.439216,0.321569"
+#!   CONTENTS="216 "
+#! />
+#! <BOOKMARK
+#!   IDENTIFIER="298"
+#!   NAME="Gère la catégorie (récupère son ID ou la crée si nécessaire)"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="821.599 951.146"
+#!   BOTTOM_RIGHT="5614.56 -900.004"
+#!   BOUNDING_RECT="821.599 951.146 4792.96 1851.15"
+#!   STICKY="true"
+#!   COLOUR="0.109804,0.0509804,0.384314"
+#!   CONTENTS="276 285 289 291 292 286 307 279 283 300 294 304 277 287 302 303 282 295 301 299 280 297 306 "
+#! />
+#! </BOOKMARKS>
+#! <TRANSFORMERS>
+#! <TRANSFORMER
+#!   IDENTIFIER="2"
+#!   TYPE="Creator"
+#!   VERSION="5"
+#!   POSITION="-5073.43 -508.626"
+#!   BOUNDING_RECT="-5073.43 -508.626 0 0"
+#!   ORDER="88"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="CREATED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_PARM PARM_NAME="GEOM" PARM_VALUE="&lt;lt&gt;?xml&lt;space&gt;version=&lt;quote&gt;1.0&lt;quote&gt;&lt;space&gt;encoding=&lt;quote&gt;US_ASCII&lt;quote&gt;&lt;space&gt;standalone=&lt;quote&gt;no&lt;quote&gt;&lt;space&gt;?&lt;gt&gt;&lt;lt&gt;geometry&lt;space&gt;dimension=&lt;quote&gt;2&lt;quote&gt;&lt;gt&gt;&lt;lt&gt;null&lt;solidus&gt;&lt;gt&gt;&lt;lt&gt;&lt;solidus&gt;geometry&lt;gt&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATEND" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GEOMTYPE" PARM_VALUE="Geometry Object"/>
+#!     <XFORM_PARM PARM_NAME="COORDS" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="CRE_ATTR" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Creator_3"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NUM" PARM_VALUE="1"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="11"
+#!   TYPE="Tester"
+#!   VERSION="1"
+#!   POSITION="193.58 -416.619"
+#!   BOUNDING_RECT="193.58 -416.619 0 0"
+#!   ORDER="101"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE="&amp;workspace_id,IN,&amp;_idTraitementList,&amp;_idTraitementList,=,*"/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &quot;@Value(gex_workspace_id)&quot; IN &quot;$(idWorkspaceList)&quot;&#10;TEST &quot;$(idWorkspaceList)&quot; = &quot;*&quot;"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="95"
+#!   TYPE="PythonCaller"
+#!   VERSION="4"
+#!   POSITION="-3809.16 -115.081"
+#!   BOUNDING_RECT="-3809.16 -115.081 0 0"
+#!   ORDER="89"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gexFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="PYTHONSYMBOL" PARM_VALUE="myFunction"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE="tmpDIR gexFile"/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PYTHONSOURCE" PARM_VALUE="#&lt;space&gt;-*-&lt;space&gt;coding:&lt;space&gt;utf-8&lt;space&gt;-*-&lt;lf&gt;import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;os&lt;lf&gt;import&lt;space&gt;zipfile&lt;lf&gt;import&lt;space&gt;glob&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;&lt;lf&gt;def&lt;space&gt;myFunction&lt;openparen&gt;object&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;print&lt;space&gt;&lt;space&gt;object.getAttribute&lt;openparen&gt;&lt;apos&gt;_tmpDir&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;temp_dir&lt;space&gt;=&lt;space&gt;object.getAttribute&lt;openparen&gt;&lt;apos&gt;_tmpDir&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Cr&lt;u00e9&gt;e&lt;space&gt;le&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;temporaire&lt;space&gt;s&lt;apos&gt;il&lt;space&gt;n&lt;apos&gt;existe&lt;space&gt;pas&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Fichier&lt;space&gt;gex&lt;space&gt;&lt;u00e0&gt;&lt;space&gt;traiter&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;gexFile&lt;space&gt;=&lt;space&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;sourceGexFile&lt;apos&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;gexFile&lt;space&gt;!=&lt;space&gt;&lt;apos&gt;&lt;apos&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;try:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;gexFile&lt;space&gt;=&lt;space&gt;string.replace&lt;openparen&gt;gexFile&lt;comma&gt;&lt;apos&gt;**&lt;apos&gt;&lt;comma&gt;&lt;space&gt;&lt;apos&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;gexFile&lt;space&gt;=&lt;space&gt;string.replace&lt;openparen&gt;gexFile&lt;comma&gt;&lt;apos&gt;&lt;quote&gt;&lt;apos&gt;&lt;comma&gt;&lt;space&gt;&lt;apos&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;GTF&lt;space&gt;renvoie&lt;space&gt;*.gex&lt;comma&gt;&lt;space&gt;on&lt;space&gt;remplace&lt;space&gt;par&lt;space&gt;le&lt;space&gt;nom&lt;space&gt;complet&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;gexFile2&lt;space&gt;=&lt;space&gt;glob.glob&lt;openparen&gt;gexFile&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;gexFile2:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;gexFile3&lt;space&gt;=&lt;space&gt;gexFile2&lt;openbracket&gt;0&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;D&lt;u00e9&gt;zippe&lt;space&gt;le&lt;space&gt;gex&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;print&lt;space&gt;&lt;quote&gt;*PYTHON*&lt;space&gt;D&lt;u00e9&gt;zippe&lt;space&gt;le&lt;space&gt;gex&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;sourceZip&lt;space&gt;=&lt;space&gt;zipfile.ZipFile&lt;openparen&gt;gexFile3&lt;comma&gt;&lt;space&gt;&lt;apos&gt;r&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;sourceZip.extractall&lt;openparen&gt;temp_dir&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;sourceZip.close&lt;openparen&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Stocke&lt;space&gt;le&lt;space&gt;chemin&lt;space&gt;du&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;temp&lt;space&gt;dans&lt;space&gt;un&lt;space&gt;attribut&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;object.setAttribute&lt;openparen&gt;&lt;apos&gt;tmpDIR&lt;apos&gt;&lt;comma&gt;temp_dir&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Stocke&lt;space&gt;le&lt;space&gt;chemin&lt;space&gt;du&lt;space&gt;fichier&lt;space&gt;GEX&lt;space&gt;dans&lt;space&gt;un&lt;space&gt;attribut&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;object.setAttribute&lt;openparen&gt;&lt;apos&gt;gexFile&lt;apos&gt;&lt;comma&gt;temp_dir&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;backslash&gt;export.xml&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;except:&lt;space&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;print&lt;space&gt;&lt;apos&gt;PYTHON&lt;space&gt;Une&lt;space&gt;erreur&lt;space&gt;est&lt;space&gt;survenue&lt;space&gt;!&lt;apos&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;raise"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="PythonCaller_3"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="HIDE_ATTRIBUTES" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="137"
+#!   TYPE="TimeStamper"
+#!   VERSION="0"
+#!   POSITION="9178.07 169.797"
+#!   BOUNDING_RECT="9178.07 169.797 0 0"
+#!   ORDER="103"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FMT" PARM_VALUE="^s"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TimeStamper"/>
+#!     <XFORM_PARM PARM_NAME="TIME_ATTR" PARM_VALUE="_timeStamp"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="140"
+#!   TYPE="StringConcatenator"
+#!   VERSION="6"
+#!   POSITION="10274.1 164.19"
+#!   BOUNDING_RECT="10274.1 164.19 0 0"
+#!   ORDER="105"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15515"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_random_number" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="VAL_ATTR" PARM_VALUE="key"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="StringConcatenator"/>
+#!     <XFORM_PARM PARM_NAME="PARM_LINE" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;_random_number&lt;closeparen&gt;&lt;at&gt;Value&lt;openparen&gt;_timeStamp&lt;closeparen&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="142"
+#!   TYPE="BaseConverter"
+#!   VERSION="1"
+#!   POSITION="11324 164.19"
+#!   BOUNDING_RECT="11324 164.19 0 0"
+#!   ORDER="107"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15515"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="OBASE" PARM_VALUE="10"/>
+#!     <XFORM_PARM PARM_NAME="WIDTH" PARM_VALUE="0"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="VAL_ATTR" PARM_VALUE="key"/>
+#!     <XFORM_PARM PARM_NAME="DBASE" PARM_VALUE="36"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="BaseConverter"/>
+#!     <XFORM_PARM PARM_NAME="SRC" PARM_VALUE="key"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="144"
+#!   TYPE="AttributeRemover"
+#!   VERSION="0"
+#!   POSITION="10780 164.19"
+#!   BOUNDING_RECT="10780 164.19 0 0"
+#!   ORDER="106"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="_random_number,_timeStamp"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_3"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="148"
+#!   TYPE="StringCaseChanger"
+#!   VERSION="4"
+#!   POSITION="7058.92 -2584.44"
+#!   BOUNDING_RECT="7058.92 -2584.44 0 0"
+#!   ORDER="111"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="CHANGE_TYPE" PARM_VALUE="lowercase"/>
+#!     <XFORM_PARM PARM_NAME="ATTRLIST" PARM_VALUE="gtf_name"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="StringCaseChanger"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRCHOICE" PARM_VALUE="Selected Attributes"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="153"
+#!   TYPE="StringCaseChanger"
+#!   VERSION="4"
+#!   POSITION="13443.3 -2268.23"
+#!   BOUNDING_RECT="13443.3 -2268.23 0 0"
+#!   ORDER="109"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="CHANGE_TYPE" PARM_VALUE="lowercase"/>
+#!     <XFORM_PARM PARM_NAME="ATTRLIST" PARM_VALUE="gex_name"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="StringCaseChanger_2"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRCHOICE" PARM_VALUE="Selected Attributes"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="165"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="2"
+#!   POSITION="6449.19 -2584.44"
+#!   BOUNDING_RECT="6449.19 -2584.44 0 0"
+#!   ORDER="110"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer_3"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="name,gtf_name,&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="235"
+#!   TYPE="AttributeKeeper"
+#!   VERSION="2"
+#!   POSITION="5271.98 -1166.37"
+#!   BOUNDING_RECT="5271.98 -1166.37 0 0"
+#!   ORDER="166"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEEP_ATTRS" PARM_VALUE="key,name,workspace_id"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeKeeper_7"/>
+#!     <XFORM_PARM PARM_NAME="KEEP_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="226"
+#!   TYPE="TCLCaller"
+#!   VERSION="3"
+#!   POSITION="19806.6 120.68"
+#!   BOUNDING_RECT="19806.6 120.68 0 0"
+#!   ORDER="178"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15573"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_where" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_fme_mf_dir_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="DSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="Subform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="WSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="xy" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TCLPROG" PARM_VALUE="mdir2"/>
+#!     <XFORM_PARM PARM_NAME="VAL_ATTR" PARM_VALUE="xy"/>
+#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE="DSubform Subform WSubform"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TCLCaller_2"/>
+#!     <XFORM_PARM PARM_NAME="SRC" PARM_VALUE="proc&lt;space&gt;mdir2&lt;space&gt;&lt;opencurly&gt;&lt;closecurly&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Variables&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;set&lt;space&gt;fme_mf_dir_unix&lt;space&gt;&lt;openbracket&gt;FME_GetAttribute&lt;space&gt;_fme_mf_dir_unix&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;set&lt;space&gt;tmpdir&lt;space&gt;&lt;openbracket&gt;FME_GetAttribute&lt;space&gt;tmpDIR&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;regsub&lt;space&gt;-all&lt;space&gt;&lt;opencurly&gt;&lt;backslash&gt;&lt;backslash&gt;&lt;closecurly&gt;&lt;space&gt;&lt;dollar&gt;tmpdir&lt;space&gt;&lt;solidus&gt;&lt;space&gt;tmpdir&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;set&lt;space&gt;gex_workspace_id&lt;space&gt;&lt;openbracket&gt;FME_GetAttribute&lt;space&gt;gex_workspace_id&lt;closebracket&gt;&lt;lf&gt;&lt;tab&gt;set&lt;space&gt;workspace_id&lt;space&gt;&lt;openbracket&gt;FME_GetAttribute&lt;space&gt;workspace_id&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;set&lt;space&gt;projectdir&lt;space&gt;&lt;quote&gt;&lt;dollar&gt;fme_mf_dir_unix&lt;solidus&gt;..&lt;solidus&gt;..&lt;solidus&gt;&lt;dollar&gt;workspace_id&lt;solidus&gt;&lt;quote&gt;&lt;lf&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Cr&lt;u00e9&gt;ation&lt;space&gt;du&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;de&lt;space&gt;destination&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;&lt;opencurly&gt;&lt;openbracket&gt;file&lt;space&gt;exists&lt;space&gt;&lt;dollar&gt;projectdir&lt;closebracket&gt;==0&lt;space&gt;&lt;closecurly&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;puts&lt;space&gt;&lt;quote&gt;*TCL*&lt;space&gt;Cr&lt;u00e9&gt;ation&lt;space&gt;du&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;&lt;dollar&gt;projectdir&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;file&lt;space&gt;mkdir&lt;space&gt;&lt;dollar&gt;projectdir&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;space&gt;else&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;puts&lt;space&gt;&lt;quote&gt;*TCL*&lt;space&gt;Suppression&lt;space&gt;du&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;&lt;dollar&gt;projectdir&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;file&lt;space&gt;delete&lt;space&gt;-force&lt;space&gt;&lt;dollar&gt;projectdir&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;puts&lt;space&gt;&lt;quote&gt;*TCL*&lt;space&gt;Cr&lt;u00e9&gt;ation&lt;space&gt;du&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;&lt;dollar&gt;projectdir&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;file&lt;space&gt;mkdir&lt;space&gt;&lt;dollar&gt;projectdir&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Copie&lt;space&gt;des&lt;space&gt;fichiers&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;21&lt;solidus&gt;02&lt;solidus&gt;2014&lt;space&gt;v&lt;u00e9&gt;rifie&lt;space&gt;que&lt;space&gt;le&lt;space&gt;dossier&lt;space&gt;existe&lt;space&gt;sinon&lt;space&gt;TCL&lt;space&gt;plante&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;&lt;opencurly&gt;&lt;openbracket&gt;file&lt;space&gt;isdirectory&lt;space&gt;&lt;quote&gt;&lt;dollar&gt;tmpdir&lt;solidus&gt;&lt;dollar&gt;gex_workspace_id&lt;quote&gt;&lt;closebracket&gt;&lt;closecurly&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;set&lt;space&gt;projectsourcedir&lt;space&gt;&lt;openbracket&gt;glob&lt;space&gt;-nocomplain&lt;space&gt;&lt;quote&gt;&lt;dollar&gt;tmpdir&lt;solidus&gt;&lt;dollar&gt;gex_workspace_id&lt;solidus&gt;*&lt;quote&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;foreach&lt;space&gt;file&lt;space&gt;&lt;dollar&gt;projectsourcedir&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;puts&lt;space&gt;&lt;quote&gt;*TCL*&lt;space&gt;Copie&lt;space&gt;du&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;&lt;dollar&gt;file&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;file&lt;space&gt;copy&lt;space&gt;-force&lt;space&gt;&lt;dollar&gt;file&lt;space&gt;&lt;dollar&gt;projectdir&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#set&lt;space&gt;test&lt;space&gt;&lt;quote&gt;&lt;dollar&gt;tmpdir&lt;solidus&gt;&lt;dollar&gt;gex_workspace_id&lt;solidus&gt;form&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Y&lt;space&gt;a&lt;space&gt;t-il&lt;space&gt;les&lt;space&gt;formulaires&lt;space&gt;JSON&lt;space&gt;?&lt;space&gt;&lt;openparen&gt;GTF&lt;space&gt;2016&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;&lt;opencurly&gt;&lt;openbracket&gt;file&lt;space&gt;isfile&lt;space&gt;&lt;quote&gt;&lt;dollar&gt;projectdir&lt;solidus&gt;form&lt;solidus&gt;DSubform.json&lt;quote&gt;&lt;closebracket&gt;&lt;closecurly&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;FME_SetAttribute&lt;space&gt;DSubform&lt;space&gt;1&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;space&gt;else&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;FME_SetAttribute&lt;space&gt;DSubform&lt;space&gt;0&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;&lt;opencurly&gt;&lt;openbracket&gt;file&lt;space&gt;isfile&lt;space&gt;&lt;quote&gt;&lt;dollar&gt;projectdir&lt;solidus&gt;form&lt;solidus&gt;Subform.json&lt;quote&gt;&lt;closebracket&gt;&lt;closecurly&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;FME_SetAttribute&lt;space&gt;Subform&lt;space&gt;1&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;space&gt;else&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;FME_SetAttribute&lt;space&gt;Subform&lt;space&gt;0&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;&lt;opencurly&gt;&lt;openbracket&gt;file&lt;space&gt;isfile&lt;space&gt;&lt;quote&gt;&lt;dollar&gt;projectdir&lt;solidus&gt;form&lt;solidus&gt;WSubform.json&lt;quote&gt;&lt;closebracket&gt;&lt;closecurly&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;FME_SetAttribute&lt;space&gt;WSubform&lt;space&gt;1&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;space&gt;else&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;FME_SetAttribute&lt;space&gt;WSubform&lt;space&gt;0&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;lf&gt;&lt;closecurly&gt;"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SRCFILE" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="230"
+#!   TYPE="AttributeRemover"
+#!   VERSION="0"
+#!   POSITION="20404.2 120.68"
+#!   BOUNDING_RECT="20404.2 120.68 0 0"
+#!   ORDER="167"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_where" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_fme_mf_dir_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="DSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="Subform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="WSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="xy"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_8"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="284"
+#!   TYPE="AttributeCreator"
+#!   VERSION="3"
+#!   POSITION="18424.3 -1057.72"
+#!   BOUNDING_RECT="18424.3 -1057.72 0 0"
+#!   ORDER="180"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_where" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_2"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="fme_db_operation,UPDATE,fme_where,workspace_id&lt;space&gt;=&lt;space&gt;&lt;apos&gt;&lt;at&gt;Value&lt;openparen&gt;gtf_workspace_id&lt;closeparen&gt;&lt;apos&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="184"
+#!   TYPE="FeatureMerger"
+#!   VERSION="9"
+#!   POSITION="14168.2 -2473.05"
+#!   BOUNDING_RECT="14168.2 -2473.05 0 0"
+#!   ORDER="183"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="NOT_MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <OUTPUT_FEAT NAME="REFERENCED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="2"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="numReferences" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <OUTPUT_FEAT NAME="UNREFERENCED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="3"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <OUTPUT_FEAT NAME="DUPLICATE_SUPPLIER"/>
+#!     <FEAT_COLLAPSED COLLAPSED="4"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_PARM PARM_NAME="JOIN_KEYS" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;gex_name&lt;closeparen&gt; &lt;at&gt;Value&lt;openparen&gt;gtf_name&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="JOIN_ATTRIBUTES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="IGNORE_NULLS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GEOM_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureMerger"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIERS_FIRST" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="PROCESS_DUPS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="MERGE_TYPE" PARM_VALUE="Attributes Only"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="227"
+#!   TYPE="FeatureMerger"
+#!   VERSION="9"
+#!   POSITION="6350.96 -26.8808"
+#!   BOUNDING_RECT="6350.96 -26.8808 0 0"
+#!   ORDER="185"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="NOT_MERGED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <OUTPUT_FEAT NAME="REFERENCED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="2"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="numReferences" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <OUTPUT_FEAT NAME="UNREFERENCED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="3"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <OUTPUT_FEAT NAME="DUPLICATE_SUPPLIER"/>
+#!     <FEAT_COLLAPSED COLLAPSED="4"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_PARM PARM_NAME="JOIN_KEYS" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;key&lt;closeparen&gt; &lt;at&gt;Value&lt;openparen&gt;key&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="JOIN_ATTRIBUTES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="IGNORE_NULLS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="GEOM_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureMerger_3"/>
+#!     <XFORM_PARM PARM_NAME="SUPPLIERS_FIRST" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="PROCESS_DUPS" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="MERGE_TYPE" PARM_VALUE="Attributes Only"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="173"
+#!   TYPE="XMLFragmenter"
+#!   VERSION="3"
+#!   POSITION="-3845.43 -508.626"
+#!   BOUNDING_RECT="-3845.43 -508.626 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="FRAGMENTS"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gexFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="xml_fragment" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="xml_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="xml_matched_element" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="xml_parent_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="xml_parent_child_pos" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="EMBEDDED_EXPRESSIONS" PARM_VALUE="gex:gtf_pro_workspace"/>
+#!     <XFORM_PARM PARM_NAME="MERGE_ATTRS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_XML" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="EMBEDDED_EXPRESSIONS_EXCEPT" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FLATTEN_OPTIONS" PARM_VALUE="&lt;lf&gt;&lt;lt&gt;structure&lt;space&gt;separator=&lt;quote&gt;.&lt;quote&gt;&lt;space&gt;map-empty-elements=&lt;quote&gt;yes&lt;quote&gt;&lt;space&gt;matched-prefix=&lt;quote&gt;attributes&lt;quote&gt;&lt;space&gt;matched-attributes=&lt;quote&gt;yes&lt;quote&gt;&lt;space&gt;cardinality=&lt;quote&gt;+&lt;opencurly&gt;?&lt;closecurly&gt;&lt;quote&gt;&lt;space&gt;structure-prefix=&lt;quote&gt;&lt;quote&gt;&lt;space&gt;child-position-attribute=&lt;quote&gt;&lt;quote&gt;&lt;space&gt;except-expression=&lt;quote&gt;&lt;quote&gt;&lt;space&gt;ui-mode=&lt;quote&gt;basic&lt;quote&gt;&lt;space&gt;matched-ancestor-attributes=&lt;quote&gt;&lt;quote&gt;&lt;solidus&gt;&lt;gt&gt;&lt;lf&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE="workspace_id label_name description subscription fmw_file category_id category_name lb_method_id success_action_id failed_action_id survey form_type legal_terms_conditions usage requirements history last_save_date last_save_build file_encoding title key email_template_id owner creation_date locked tag"/>
+#!     <XFORM_PARM PARM_NAME="FILE_XML" PARM_VALUE="@Value(gexFile)"/>
+#!     <XFORM_PARM PARM_NAME="FEATURE_PATHS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="XMLFragmenter"/>
+#!     <XFORM_PARM PARM_NAME="XML_SOURCE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SUB_FRAGMENT_OPTIONS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FEATURE_TYPES_FORMAT_NAME" PARM_VALUE="XML"/>
+#!     <XFORM_PARM PARM_NAME="FEATURE_PATHS_STRUCTURE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XML_SOURCE_TYPE" PARM_VALUE="XML file"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_EXPOSE" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="160"
+#!   TYPE="AttributeRemover"
+#!   VERSION="0"
+#!   POSITION="-3306.43 -479.625"
+#!   BOUNDING_RECT="-3306.43 -479.625 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="gexFile,xml_fragment,xml_id,xml_matched_element,xml_parent_id,xml_parent_child_pos"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="210"
+#!   TYPE="NullAttributeMapper"
+#!   VERSION="1"
+#!   POSITION="-2600.43 -432.626"
+#!   BOUNDING_RECT="-2600.43 -432.626 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="OTHER_VALUE" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRLIST" PARM_VALUE="form_type"/>
+#!     <XFORM_PARM PARM_NAME="SOURCE_ATTR_VAL" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="NullAttributeMapper_3"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP2" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="REG_EXP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_TREATMENT" PARM_VALUE="New Value"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NEW_VALUE" PARM_VALUE="default"/>
+#!     <XFORM_PARM PARM_NAME="ATTRCHOICE" PARM_VALUE="Selected Attributes"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="150"
+#!   TYPE="NullAttributeMapper"
+#!   VERSION="1"
+#!   POSITION="-2028.43 -436.626"
+#!   BOUNDING_RECT="-2028.43 -436.626 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="OTHER_VALUE" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRLIST" PARM_VALUE="survey"/>
+#!     <XFORM_PARM PARM_NAME="SOURCE_ATTR_VAL" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="NullAttributeMapper_4"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP2" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="REG_EXP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_TREATMENT" PARM_VALUE="New Value"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NEW_VALUE" PARM_VALUE="FALSE"/>
+#!     <XFORM_PARM PARM_NAME="ATTRCHOICE" PARM_VALUE="Selected Attributes"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="109"
+#!   TYPE="SQLExecutor"
+#!   VERSION="6"
+#!   POSITION="16587.2 268.372"
+#!   BOUNDING_RECT="16587.2 268.372 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17291"
+#! >
+#!     <OUTPUT_FEAT NAME="RESULT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="INITIATOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="DB_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_USER_NAME" PARM_VALUE="$(dbUser)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_HOST" PARM_VALUE="$(dbServer)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PORT" PARM_VALUE="$(dbPort)"/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Initiator Geometry Only"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_SCHEMAS_FOR_TABLE_LISTING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SQL_STATEMENT" PARM_VALUE="select&lt;space&gt;nextval&lt;openparen&gt;&lt;apos&gt;s_gtf.seq_common&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;as&lt;space&gt;workspace_id"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PASSWORD" PARM_VALUE="$(dbPassword)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SQLExecutor"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="POSTGRES"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="EXPOSED_ATTRIBUTE_LIST" PARM_VALUE="workspace_id"/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(dbDatabase)"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;,POSTGRES_HOST,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;H&lt;u00f4&gt;te&lt;space&gt;:,POSTGRES_PASSWORD,&quot;OPTIONAL PASSWORD_ENCODED&quot;,POSTGRES&lt;space&gt;Mot&lt;space&gt;de&lt;space&gt;passe&lt;space&gt;:,POSTGRES_SCHEMAS_FOR_TABLE_LISTING,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;sch&lt;u00e9&gt;mas&lt;space&gt;pour&lt;space&gt;liste&lt;space&gt;tables&lt;space&gt;:,POSTGRES_PORT,&quot;OPTIONAL INTEGER&quot;,POSTGRES&lt;space&gt;Port&lt;space&gt;:,POSTGRES_USER_NAME,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Nom&lt;space&gt;d&lt;apos&gt;utilisateur&lt;space&gt;:"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_ATTRS" PARM_VALUE="Keep Result Attributes if Conflict"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="108"
+#!   TYPE="ParameterFetcher"
+#!   VERSION="4"
+#!   POSITION="19224.1 120.68"
+#!   BOUNDING_RECT="19224.1 120.68 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_where" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_fme_mf_dir_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="ParameterFetcher_2"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="_fme_mf_dir_unix {$(FME_MF_DIR_USERTYPED)}"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="105"
+#!   TYPE="AttributeCreator"
+#!   VERSION="4"
+#!   POSITION="-1281.49 -416.619"
+#!   BOUNDING_RECT="-1281.49 -416.619 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="label_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="email_template_id,&quot;&quot;,tag,default,lb_method_id,&quot;&quot;,success_action_id,0,failed_action_id,0"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="118"
+#!   TYPE="SQLExecutor"
+#!   VERSION="6"
+#!   POSITION="21252.6 120.68"
+#!   BOUNDING_RECT="21252.6 120.68 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17291"
+#! >
+#!     <OUTPUT_FEAT NAME="RESULT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_where" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_fme_mf_dir_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="DSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="Subform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="WSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="INITIATOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fme_where" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_fme_mf_dir_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="DSubform" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="Subform" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="WSubform" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="DB_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_USER_NAME" PARM_VALUE="$(dbUser)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_HOST" PARM_VALUE="$(dbServer)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PORT" PARM_VALUE="$(dbPort)"/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Initiator Geometry Only"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_SCHEMAS_FOR_TABLE_LISTING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SQL_STATEMENT" PARM_VALUE="select&lt;space&gt;user_id&lt;space&gt;as&lt;space&gt;owner&lt;space&gt;from&lt;space&gt;s_gtf.order&lt;space&gt;where&lt;space&gt;order_id&lt;space&gt;=&lt;space&gt;$(GTF_ORDER_ID)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PASSWORD" PARM_VALUE="$(dbPassword)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SQLExecutor_2"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="POSTGRES"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="EXPOSED_ATTRIBUTE_LIST" PARM_VALUE="owner"/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(dbDatabase)"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;,POSTGRES_HOST,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;H&lt;u00f4&gt;te&lt;space&gt;:,POSTGRES_PASSWORD,&quot;OPTIONAL PASSWORD_ENCODED&quot;,POSTGRES&lt;space&gt;Mot&lt;space&gt;de&lt;space&gt;passe&lt;space&gt;:,POSTGRES_SCHEMAS_FOR_TABLE_LISTING,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;sch&lt;u00e9&gt;mas&lt;space&gt;pour&lt;space&gt;liste&lt;space&gt;tables&lt;space&gt;:,POSTGRES_PORT,&quot;OPTIONAL INTEGER&quot;,POSTGRES&lt;space&gt;Port&lt;space&gt;:,POSTGRES_USER_NAME,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Nom&lt;space&gt;d&lt;apos&gt;utilisateur&lt;space&gt;:"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_ATTRS" PARM_VALUE="Keep Result Attributes if Conflict"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="176"
+#!   TYPE="AttributeFilter"
+#!   VERSION="4"
+#!   POSITION="7718.56 -89.2206"
+#!   BOUNDING_RECT="7718.56 -89.2206 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="&lt;EMPTY&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;MISSING&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <OUTPUT_FEAT NAME="&lt;NULL&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="2"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <OUTPUT_FEAT NAME="&lt;UNFILTERED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="3"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <OUTPUT_FEAT NAME="0"/>
+#!     <FEAT_COLLAPSED COLLAPSED="4"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <OUTPUT_FEAT NAME="1"/>
+#!     <FEAT_COLLAPSED COLLAPSED="5"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <OUTPUT_FEAT NAME="2"/>
+#!     <FEAT_COLLAPSED COLLAPSED="6"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="6" />
+#!     <XFORM_PARM PARM_NAME="ATTR_VALUES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_NAME" PARM_VALUE="_duplicateKey"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeFilter_2"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_VALUES" PARM_VALUE="&lt;lt&gt;EMPTY&lt;gt&gt;,&lt;lt&gt;MISSING&lt;gt&gt;,&lt;lt&gt;NULL&lt;gt&gt;,&lt;lt&gt;UNFILTERED&lt;gt&gt;,0,1,2"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="138"
+#!   TYPE="AttributeRemover"
+#!   VERSION="1"
+#!   POSITION="8553.09 169.797"
+#!   BOUNDING_RECT="8553.09 169.797 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="_duplicateKey,gtf_workspace_id,key,owner"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_2"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="181"
+#!   TYPE="ParameterFetcher"
+#!   VERSION="4"
+#!   POSITION="7097.96 -151.843"
+#!   BOUNDING_RECT="7097.96 -151.843 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_duplicateKey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="ParameterFetcher_3"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="_duplicateKey {$(duplicateKey)}"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="202"
+#!   TYPE="SubstringExtractor"
+#!   VERSION="2"
+#!   POSITION="14867 129.607"
+#!   BOUNDING_RECT="14867 129.607 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="END" PARM_VALUE="74"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="START" PARM_VALUE="0"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SubstringExtractor"/>
+#!     <XFORM_PARM PARM_NAME="SRC_STRING" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;name&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="RESULT_ATTR" PARM_VALUE="name"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="178"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="3"
+#!   POSITION="5834.57 -1166.37"
+#!   BOUNDING_RECT="5834.57 -1166.37 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="workspace_id,gtf_workspace_id,,name,gtf_name,"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="198"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="3"
+#!   POSITION="-500.467 -436.626"
+#!   BOUNDING_RECT="-500.467 -436.626 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer_2"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="workspace_id,gex_workspace_id,,label_name,name,"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="112"
+#!   TYPE="AttributeCreator"
+#!   VERSION="3"
+#!   POSITION="18372.6 120.68"
+#!   BOUNDING_RECT="18372.6 120.68 0 0"
+#!   ORDER="179"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_3"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="fme_db_operation,INSERT"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="115"
+#!   TYPE="AttributeRemover"
+#!   VERSION="1"
+#!   POSITION="8553.09 -878.666"
+#!   BOUNDING_RECT="8553.09 -878.666 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="_duplicateKey,owner"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_5"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="208"
+#!   TYPE="AttributeCopier"
+#!   VERSION="4"
+#!   POSITION="16624.4 -1105.02"
+#!   BOUNDING_RECT="16624.4 -1105.02 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCopier_2"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="gtf_workspace_id,workspace_id,"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="212"
+#!   TYPE="AttributeRemover"
+#!   VERSION="1"
+#!   POSITION="13170.5 -919.105"
+#!   BOUNDING_RECT="13170.5 -919.105 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="name"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_6"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="209"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="3"
+#!   POSITION="13834.9 -919.105"
+#!   BOUNDING_RECT="13834.9 -919.105 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer_4"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="gtf_name,name,"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="219"
+#!   TYPE="TimeStamper"
+#!   VERSION="0"
+#!   POSITION="10002.1 -2075.75"
+#!   BOUNDING_RECT="10002.1 -2075.75 0 0"
+#!   ORDER="103"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FMT" PARM_VALUE="^s"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TimeStamper_2"/>
+#!     <XFORM_PARM PARM_NAME="TIME_ATTR" PARM_VALUE="_timeStamp"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="220"
+#!   TYPE="RandomNumberGenerator"
+#!   VERSION="2"
+#!   POSITION="10598.2 -2081.36"
+#!   BOUNDING_RECT="10598.2 -2081.36 0 0"
+#!   ORDER="104"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_random_number" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="PLACES" PARM_VALUE="0"/>
+#!     <XFORM_PARM PARM_NAME="MIN" PARM_VALUE="1000"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="RandomNumberGenerator_2"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MAX" PARM_VALUE="9999"/>
+#!     <XFORM_PARM PARM_NAME="RESULT_ATTR" PARM_VALUE="_random_number"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="221"
+#!   TYPE="StringConcatenator"
+#!   VERSION="6"
+#!   POSITION="11098.1 -2081.36"
+#!   BOUNDING_RECT="11098.1 -2081.36 0 0"
+#!   ORDER="105"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_random_number" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="VAL_ATTR" PARM_VALUE="key"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="StringConcatenator_2"/>
+#!     <XFORM_PARM PARM_NAME="PARM_LINE" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;_timeStamp&lt;closeparen&gt;&lt;at&gt;Value&lt;openparen&gt;_random_number&lt;closeparen&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="222"
+#!   TYPE="BaseConverter"
+#!   VERSION="1"
+#!   POSITION="12148 -2081.36"
+#!   BOUNDING_RECT="12148 -2081.36 0 0"
+#!   ORDER="107"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="OBASE" PARM_VALUE="10"/>
+#!     <XFORM_PARM PARM_NAME="WIDTH" PARM_VALUE="0"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="VAL_ATTR" PARM_VALUE="key"/>
+#!     <XFORM_PARM PARM_NAME="DBASE" PARM_VALUE="32"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="BaseConverter_2"/>
+#!     <XFORM_PARM PARM_NAME="SRC" PARM_VALUE="key"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="223"
+#!   TYPE="AttributeRemover"
+#!   VERSION="0"
+#!   POSITION="11604 -2081.36"
+#!   BOUNDING_RECT="11604 -2081.36 0 0"
+#!   ORDER="106"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="_random_number,_timeStamp"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_7"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="233"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="9349.35 -2162.12"
+#!   BOUNDING_RECT="9349.35 -2162.12 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_4"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;key&lt;closeparen&gt; = &quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="232"
+#!   TYPE="AttributeRemover"
+#!   VERSION="1"
+#!   POSITION="8501.68 -2071.21"
+#!   BOUNDING_RECT="8501.68 -2071.21 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="owner"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_9"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="155"
+#!   TYPE="AttributeCopier"
+#!   VERSION="2"
+#!   POSITION="12849.2 -2268.23"
+#!   BOUNDING_RECT="12849.2 -2268.23 0 0"
+#!   ORDER="108"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCopier"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="gex_name,name"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="234"
+#!   TYPE="AttributeKeeper"
+#!   VERSION="2"
+#!   POSITION="5809.8 -2584.44"
+#!   BOUNDING_RECT="5809.8 -2584.44 0 0"
+#!   ORDER="166"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEEP_ATTRS" PARM_VALUE="name"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeKeeper_3"/>
+#!     <XFORM_PARM PARM_NAME="KEEP_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="170"
+#!   TYPE="PythonCaller"
+#!   VERSION="1"
+#!   POSITION="16240.7 -2272.57"
+#!   BOUNDING_RECT="16240.7 -2272.57 0 0"
+#!   ORDER="156"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="PYTHONSYMBOL" PARM_VALUE="myFunction2"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PYTHONSOURCE" PARM_VALUE="#&lt;space&gt;-*-&lt;space&gt;coding:&lt;space&gt;utf-8&lt;space&gt;-*-&lt;lf&gt;import&lt;space&gt;time&lt;lf&gt;import&lt;space&gt;fmeobjects&lt;lf&gt;&lt;lf&gt;def&lt;space&gt;myFunction2&lt;openparen&gt;object&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Extrait&lt;space&gt;la&lt;space&gt;date&lt;space&gt;et&lt;space&gt;l&lt;apos&gt;heure&lt;space&gt;du&lt;space&gt;jour&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;temps&lt;space&gt;=&lt;space&gt;time.strftime&lt;openparen&gt;&lt;apos&gt;%Y%m%d-%H%M%S&lt;apos&gt;&lt;comma&gt;time.localtime&lt;openparen&gt;&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;#&lt;space&gt;Modifie&lt;space&gt;la&lt;space&gt;valeur&lt;space&gt;de&lt;space&gt;name&lt;space&gt;en&lt;space&gt;suffixant&lt;space&gt;par&lt;space&gt;la&lt;space&gt;date&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;name&lt;space&gt;=&lt;space&gt;object.getAttribute&lt;openparen&gt;&lt;apos&gt;name&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;object.setAttribute&lt;openparen&gt;&lt;apos&gt;name&lt;apos&gt;&lt;comma&gt;name&lt;space&gt;+&lt;space&gt;&lt;quote&gt;&lt;space&gt;&lt;openparen&gt;import&lt;space&gt;&lt;quote&gt;&lt;space&gt;+&lt;space&gt;temps&lt;space&gt;+&lt;space&gt;&lt;quote&gt;&lt;closeparen&gt;&lt;quote&gt;&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="PythonCaller_2"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="177"
+#!   TYPE="SubstringExtractor"
+#!   VERSION="2"
+#!   POSITION="15641.4 -2272.57"
+#!   BOUNDING_RECT="15641.4 -2272.57 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="END" PARM_VALUE="74"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="START" PARM_VALUE="0"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SubstringExtractor_2"/>
+#!     <XFORM_PARM PARM_NAME="SRC_STRING" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;name&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="RESULT_ATTR" PARM_VALUE="name"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="242"
+#!   TYPE="AttributeRemover"
+#!   VERSION="1"
+#!   POSITION="15033.4 -2268.23"
+#!   BOUNDING_RECT="15033.4 -2268.23 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="gex_name,gtf_name"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_4"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="216"
+#!   TYPE="SQLExecutor"
+#!   VERSION="6"
+#!   POSITION="17438.9 -2646.35"
+#!   BOUNDING_RECT="17438.9 -2646.35 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="RESULT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="INITIATOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="DB_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_USER_NAME" PARM_VALUE="$(dbUser)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_HOST" PARM_VALUE="$(dbServer)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PORT" PARM_VALUE="$(dbPort)"/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Initiator Geometry Only"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SQL_STATEMENT" PARM_VALUE="select&lt;space&gt;nextval&lt;openparen&gt;&lt;apos&gt;s_gtf.seq_common&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;as&lt;space&gt;workspace_id"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PASSWORD" PARM_VALUE="$(dbPassword)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SQLExecutor_3"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="POSTGRES"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="EXPOSED_ATTRIBUTE_LIST" PARM_VALUE="workspace_id"/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(dbDatabase)"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="POSTGRES_PORT,&quot;OPTIONAL INTEGER&quot;,POSTGRES&lt;space&gt;Port:,POSTGRES_USER_NAME,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Username:,POSTGRES_HOST,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Host:,POSTGRES_PASSWORD,&quot;OPTIONAL PASSWORD&quot;,POSTGRES&lt;space&gt;Password:,POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_ATTRS" PARM_VALUE="Keep Result Attributes if Conflict"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="245"
+#!   TYPE="AttributeCreator"
+#!   VERSION="3"
+#!   POSITION="18394 -2674.22"
+#!   BOUNDING_RECT="18394 -2674.22 0 0"
+#!   ORDER="179"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="14235"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_4"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="fme_db_operation,INSERT"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="253"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="4733.96 -1166.37"
+#!   BOUNDING_RECT="4733.96 -1166.37 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15479"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_2"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;key&lt;closeparen&gt; != &quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="259"
+#!   TYPE="AttributeKeeper"
+#!   VERSION="3"
+#!   POSITION="8553.09 -449.221"
+#!   BOUNDING_RECT="8553.09 -449.221 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEEP_ATTRS" PARM_VALUE="key,name"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeKeeper"/>
+#!     <XFORM_PARM PARM_NAME="KEEP_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="261"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="9268.54 -449.221"
+#!   BOUNDING_RECT="9268.54 -449.221 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="statut" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_5"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="statut,Non&lt;space&gt;mis&lt;space&gt;&lt;u00e0&gt;&lt;space&gt;jour&lt;space&gt;dans&lt;space&gt;GTF"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="264"
+#!   TYPE="AttributeKeeper"
+#!   VERSION="3"
+#!   POSITION="19405 -504.172"
+#!   BOUNDING_RECT="19405 -504.172 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEEP_ATTRS" PARM_VALUE="key,name,workspace_id"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeKeeper_2"/>
+#!     <XFORM_PARM PARM_NAME="KEEP_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="265"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="19987.1 -504.172"
+#!   BOUNDING_RECT="19987.1 -504.172 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="statut" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_6"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="statut,Ins&lt;u00e9&gt;r&lt;u00e9&gt;&lt;space&gt;dans&lt;space&gt;GTF"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="269"
+#!   TYPE="AttributeKeeper"
+#!   VERSION="3"
+#!   POSITION="19459.1 -1057.72"
+#!   BOUNDING_RECT="19459.1 -1057.72 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEEP_ATTRS" PARM_VALUE="key,name,workspace_id"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeKeeper_4"/>
+#!     <XFORM_PARM PARM_NAME="KEEP_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="270"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="20041.2 -1057.72"
+#!   BOUNDING_RECT="20041.2 -1057.72 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="statut" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_7"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="statut,Mis&lt;space&gt;&lt;u00e0&gt;&lt;space&gt;jour&lt;space&gt;dans&lt;space&gt;GTF"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="257"
+#!   TYPE="RandomNumberGenerator"
+#!   VERSION="2"
+#!   POSITION="9705.17 164.19"
+#!   BOUNDING_RECT="9705.17 164.19 0 0"
+#!   ORDER="104"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15515"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_random_number" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_timeStamp" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="PLACES" PARM_VALUE="0"/>
+#!     <XFORM_PARM PARM_NAME="MIN" PARM_VALUE="1000000000"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="RandomNumberGenerator_3"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MAX" PARM_VALUE="9999999999"/>
+#!     <XFORM_PARM PARM_NAME="RESULT_ATTR" PARM_VALUE="_random_number"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="276"
+#!   TYPE="SQLExecutor"
+#!   VERSION="6"
+#!   POSITION="1757.42 277.61"
+#!   BOUNDING_RECT="1757.42 277.61 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="RESULT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="INITIATOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="DB_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_USER_NAME" PARM_VALUE="$(dbUser)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_HOST" PARM_VALUE="$(dbServer)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PORT" PARM_VALUE="$(dbPort)"/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Initiator Geometry Only"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SQL_STATEMENT" PARM_VALUE="select&lt;space&gt;category_id&lt;space&gt;as&lt;space&gt;category_id&lt;space&gt;from&lt;space&gt;s_gtf.category&lt;space&gt;where&lt;space&gt;name&lt;space&gt;=&lt;space&gt;&lt;apos&gt;&lt;at&gt;Value&lt;openparen&gt;category_name&lt;closeparen&gt;&lt;apos&gt;"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PASSWORD" PARM_VALUE="$(dbPassword)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SQLExecutor_4"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="POSTGRES"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="EXPOSED_ATTRIBUTE_LIST" PARM_VALUE="category_id"/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(dbDatabase)"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="POSTGRES_PASSWORD,&quot;OPTIONAL PASSWORD&quot;,POSTGRES&lt;space&gt;Password:,POSTGRES_HOST,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Host:,POSTGRES_USER_NAME,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Username:,POSTGRES_PORT,&quot;OPTIONAL INTEGER&quot;,POSTGRES&lt;space&gt;Port:,POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_ATTRS" PARM_VALUE="Keep Result Attributes if Conflict"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="280"
+#!   TYPE="AttributeRemover"
+#!   VERSION="1"
+#!   POSITION="948.26 -236.53"
+#!   BOUNDING_RECT="948.26 -236.53 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="category_id"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover_10"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="286"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="2539 -236.53"
+#!   BOUNDING_RECT="2539 -236.53 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_7"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;_matched_records&lt;closeparen&gt; = 0"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="287"
+#!   TYPE="SQLExecutor"
+#!   VERSION="6"
+#!   POSITION="3525.38 -208.623"
+#!   BOUNDING_RECT="3525.38 -208.623 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="RESULT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="INITIATOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="DB_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_USER_NAME" PARM_VALUE="$(dbUser)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_HOST" PARM_VALUE="$(dbServer)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PORT" PARM_VALUE="$(dbPort)"/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Initiator Geometry Only"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SQL_STATEMENT" PARM_VALUE="select&lt;space&gt;nextval&lt;openparen&gt;&lt;apos&gt;s_gtf.seq_common&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;as&lt;space&gt;category_id"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PASSWORD" PARM_VALUE="$(dbPassword)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SQLExecutor_5"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="POSTGRES"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="EXPOSED_ATTRIBUTE_LIST" PARM_VALUE="category_id"/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(dbDatabase)"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="POSTGRES_PASSWORD,&quot;OPTIONAL PASSWORD&quot;,POSTGRES&lt;space&gt;Password:,POSTGRES_HOST,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Host:,POSTGRES_USER_NAME,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Username:,POSTGRES_PORT,&quot;OPTIONAL INTEGER&quot;,POSTGRES&lt;space&gt;Port:,POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_ATTRS" PARM_VALUE="Keep Result Attributes if Conflict"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="291"
+#!   TYPE="AttributeKeeper"
+#!   VERSION="3"
+#!   POSITION="3855.79 -580.552"
+#!   BOUNDING_RECT="3855.79 -580.552 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEEP_ATTRS" PARM_VALUE="category_id,category_name"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeKeeper_5"/>
+#!     <XFORM_PARM PARM_NAME="KEEP_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="294"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="3"
+#!   POSITION="4447.84 -580.552"
+#!   BOUNDING_RECT="4447.84 -580.552 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer_5"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="category_name,name,"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="299"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="1590.49 727.28"
+#!   BOUNDING_RECT="1590.49 727.28 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_8"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;category_name&lt;closeparen&gt; = &quot;&quot;&#10;TEST category_name ATTRIBUTE_VALUE_NULL &quot;&quot;&#10;TEST category_name ATTRIBUTE_IS_EMPTY &quot;&quot;&#10;TEST category_name ATTRIBUTE_IS_MISSING &quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="303"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="2643.91 667.28"
+#!   BOUNDING_RECT="2643.91 667.28 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15477"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_8"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="category_id,&quot;&quot;,category_name,&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="302"
+#!   TYPE="DuplicateRemover"
+#!   VERSION="3"
+#!   POSITION="2972.12 -362.794"
+#!   BOUNDING_RECT="2972.12 -362.794 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15515"
+#! >
+#!     <OUTPUT_FEAT NAME="UNIQUE"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="DUPLICATE"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEYATTR" PARM_VALUE="category_name"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="DuplicateRemover"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="288"
+#!   TYPE="TempPathnameCreator"
+#!   VERSION="0"
+#!   POSITION="-4518.2 -72.6751"
+#!   BOUNDING_RECT="-4518.2 -72.6751 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TempPathnameCreator"/>
+#!     <XFORM_PARM PARM_NAME="EXTENSION" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="BASENAME" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PATHNAME_ATTR" PARM_VALUE="_tmpDir"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="310"
+#!   TYPE="AttributeEncoder"
+#!   VERSION="0"
+#!   POSITION="21321.5 -210.758"
+#!   BOUNDING_RECT="21321.5 -210.758 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="16492"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_db_operation" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fme_where" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_fme_mf_dir_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="DSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="Subform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="WSubform" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="owner" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DEST_ENCODING" PARM_VALUE="utf-8"/>
+#!     <XFORM_PARM PARM_NAME="TREAT_AS_BYTES" PARM_VALUE="Honor Encoding"/>
+#!     <XFORM_PARM PARM_NAME="ATTRLIST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeEncoder"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTRCHOICE" PARM_VALUE="All Attributes"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="313"
+#!   TYPE="TimeStamper"
+#!   VERSION="1"
+#!   POSITION="14913 -57.0006"
+#!   BOUNDING_RECT="14913 -57.0006 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FMT" PARM_VALUE="FME Date/Time (^Y^m^d^H^M^S)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TimeStamper_3"/>
+#!     <XFORM_PARM PARM_NAME="TIME_ATTR" PARM_VALUE="_timestamp"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="314"
+#!   TYPE="AttributeCreator"
+#!   VERSION="8"
+#!   POSITION="15477.6 -57.0006"
+#!   BOUNDING_RECT="15477.6 -57.0006 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="17292"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_tmpDir" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tmpDIR" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gex_workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="description" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subscription" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="fmw_file" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="lb_method_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="success_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="failed_action_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="survey" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="legal_terms_conditions" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="usage" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="requirements" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="history" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="last_save_build" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="file_encoding" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="title" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="email_template_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="creation_date" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="locked" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="tag" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="category_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="gtf_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_timestamp" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_TABLE" PARM_VALUE="&quot;&quot; name SET_TO &lt;at&gt;Value&lt;openparen&gt;name&lt;closeparen&gt;&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_timestamp&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_GRP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_9"/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! </TRANSFORMERS>
+#! <FEAT_LINKS>
+#! <FEAT_LINK
+#!   IDENTIFIER="308"
+#!   SOURCE_NODE="2"
+#!   TARGET_NODE="288"
+#!   SOURCE_PORT_DESC="fo 0 CREATED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="239"
+#!   SOURCE_NODE="130"
+#!   TARGET_NODE="234"
+#!   SOURCE_PORT_DESC="-1"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="254"
+#!   SOURCE_NODE="130"
+#!   TARGET_NODE="253"
+#!   SOURCE_PORT_DESC="-1"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="1"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="281"
+#!   SOURCE_NODE="11"
+#!   TARGET_NODE="280"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="159"
+#!   SOURCE_NODE="95"
+#!   TARGET_NODE="173"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="200"
+#!   SOURCE_NODE="105"
+#!   TARGET_NODE="198"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="168"
+#!   SOURCE_NODE="108"
+#!   TARGET_NODE="226"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="116"
+#!   SOURCE_NODE="109"
+#!   TARGET_NODE="112"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="120"
+#!   SOURCE_NODE="112"
+#!   TARGET_NODE="108"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="267"
+#!   SOURCE_NODE="112"
+#!   TARGET_NODE="264"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="1"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="213"
+#!   SOURCE_NODE="115"
+#!   TARGET_NODE="212"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="311"
+#!   SOURCE_NODE="118"
+#!   TARGET_NODE="310"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="139"
+#!   SOURCE_NODE="137"
+#!   TARGET_NODE="257"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="183"
+#!   SOURCE_NODE="138"
+#!   TARGET_NODE="137"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="145"
+#!   SOURCE_NODE="140"
+#!   TARGET_NODE="144"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="190"
+#!   SOURCE_NODE="142"
+#!   TARGET_NODE="202"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="146"
+#!   SOURCE_NODE="144"
+#!   TARGET_NODE="142"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="197"
+#!   SOURCE_NODE="148"
+#!   TARGET_NODE="184"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 1 SUPPLIER"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="107"
+#!   SOURCE_NODE="150"
+#!   TARGET_NODE="105"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="241"
+#!   SOURCE_NODE="153"
+#!   TARGET_NODE="184"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="154"
+#!   SOURCE_NODE="155"
+#!   TARGET_NODE="153"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="123"
+#!   SOURCE_NODE="160"
+#!   TARGET_NODE="210"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="167"
+#!   SOURCE_NODE="165"
+#!   TARGET_NODE="148"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="249"
+#!   SOURCE_NODE="170"
+#!   TARGET_NODE="216"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="161"
+#!   SOURCE_NODE="173"
+#!   TARGET_NODE="160"
+#!   SOURCE_PORT_DESC="fo 0 FRAGMENTS"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="189"
+#!   SOURCE_NODE="177"
+#!   TARGET_NODE="170"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="196"
+#!   SOURCE_NODE="178"
+#!   TARGET_NODE="227"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 1 SUPPLIER"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="186"
+#!   SOURCE_NODE="181"
+#!   TARGET_NODE="176"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="243"
+#!   SOURCE_NODE="184"
+#!   TARGET_NODE="242"
+#!   SOURCE_PORT_DESC="fo 0 MERGED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="201"
+#!   SOURCE_NODE="198"
+#!   TARGET_NODE="11"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="317"
+#!   SOURCE_NODE="202"
+#!   TARGET_NODE="313"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="211"
+#!   SOURCE_NODE="208"
+#!   TARGET_NODE="284"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="218"
+#!   SOURCE_NODE="209"
+#!   TARGET_NODE="208"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="152"
+#!   SOURCE_NODE="210"
+#!   TARGET_NODE="150"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="217"
+#!   SOURCE_NODE="212"
+#!   TARGET_NODE="209"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="246"
+#!   SOURCE_NODE="216"
+#!   TARGET_NODE="245"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="224"
+#!   SOURCE_NODE="219"
+#!   TARGET_NODE="220"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="225"
+#!   SOURCE_NODE="220"
+#!   TARGET_NODE="221"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="228"
+#!   SOURCE_NODE="221"
+#!   TARGET_NODE="223"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="166"
+#!   SOURCE_NODE="222"
+#!   TARGET_NODE="155"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="229"
+#!   SOURCE_NODE="223"
+#!   TARGET_NODE="222"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="256"
+#!   SOURCE_NODE="226"
+#!   TARGET_NODE="230"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="185"
+#!   SOURCE_NODE="227"
+#!   TARGET_NODE="181"
+#!   SOURCE_PORT_DESC="fo 0 MERGED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="203"
+#!   SOURCE_NODE="230"
+#!   TARGET_NODE="118"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="238"
+#!   SOURCE_NODE="232"
+#!   TARGET_NODE="233"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="236"
+#!   SOURCE_NODE="233"
+#!   TARGET_NODE="219"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="143"
+#!   SOURCE_NODE="234"
+#!   TARGET_NODE="165"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="195"
+#!   SOURCE_NODE="235"
+#!   TARGET_NODE="178"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="244"
+#!   SOURCE_NODE="242"
+#!   TARGET_NODE="177"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="252"
+#!   SOURCE_NODE="245"
+#!   TARGET_NODE="108"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="274"
+#!   SOURCE_NODE="245"
+#!   TARGET_NODE="264"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="1"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="255"
+#!   SOURCE_NODE="253"
+#!   TARGET_NODE="235"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="141"
+#!   SOURCE_NODE="257"
+#!   TARGET_NODE="140"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="262"
+#!   SOURCE_NODE="259"
+#!   TARGET_NODE="261"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="263"
+#!   SOURCE_NODE="261"
+#!   TARGET_NODE="258"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="266"
+#!   SOURCE_NODE="264"
+#!   TARGET_NODE="265"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="268"
+#!   SOURCE_NODE="265"
+#!   TARGET_NODE="258"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="271"
+#!   SOURCE_NODE="269"
+#!   TARGET_NODE="270"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="273"
+#!   SOURCE_NODE="270"
+#!   TARGET_NODE="258"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="278"
+#!   SOURCE_NODE="276"
+#!   TARGET_NODE="227"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="300"
+#!   SOURCE_NODE="280"
+#!   TARGET_NODE="299"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="207"
+#!   SOURCE_NODE="284"
+#!   TARGET_NODE="108"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="272"
+#!   SOURCE_NODE="284"
+#!   TARGET_NODE="269"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="1"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="306"
+#!   SOURCE_NODE="286"
+#!   TARGET_NODE="302"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="292"
+#!   SOURCE_NODE="287"
+#!   TARGET_NODE="291"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="293"
+#!   SOURCE_NODE="287"
+#!   TARGET_NODE="227"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="1"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="309"
+#!   SOURCE_NODE="288"
+#!   TARGET_NODE="95"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="295"
+#!   SOURCE_NODE="291"
+#!   TARGET_NODE="294"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="296"
+#!   SOURCE_NODE="294"
+#!   TARGET_NODE="290"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="304"
+#!   SOURCE_NODE="299"
+#!   TARGET_NODE="303"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="307"
+#!   SOURCE_NODE="302"
+#!   TARGET_NODE="287"
+#!   SOURCE_PORT_DESC="fo 0 UNIQUE"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="305"
+#!   SOURCE_NODE="303"
+#!   TARGET_NODE="227"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 REQUESTOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="312"
+#!   SOURCE_NODE="310"
+#!   TARGET_NODE="1"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="315"
+#!   SOURCE_NODE="313"
+#!   TARGET_NODE="314"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="316"
+#!   SOURCE_NODE="314"
+#!   TARGET_NODE="109"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="251"
+#!   SOURCE_NODE="184"
+#!   TARGET_NODE="216"
+#!   SOURCE_PORT_DESC="fo 1 NOT_MERGED"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="237"
+#!   SOURCE_NODE="227"
+#!   TARGET_NODE="232"
+#!   SOURCE_PORT_DESC="fo 1 NOT_MERGED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="240"
+#!   SOURCE_NODE="233"
+#!   TARGET_NODE="155"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="277"
+#!   SOURCE_NODE="276"
+#!   TARGET_NODE="286"
+#!   SOURCE_PORT_DESC="fo 1 INITIATOR"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="301"
+#!   SOURCE_NODE="299"
+#!   TARGET_NODE="276"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="158"
+#!   SOURCE_NODE="176"
+#!   TARGET_NODE="138"
+#!   SOURCE_PORT_DESC="fo 4 0"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="260"
+#!   SOURCE_NODE="176"
+#!   TARGET_NODE="259"
+#!   SOURCE_PORT_DESC="fo 5 1"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="204"
+#!   SOURCE_NODE="176"
+#!   TARGET_NODE="115"
+#!   SOURCE_PORT_DESC="fo 6 2"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! </FEAT_LINKS>
+#! <BREAKPOINTS>
+#! </BREAKPOINTS>
+#! <ATTR_LINKS>
+#! </ATTR_LINKS>
+#! <SUBDOCUMENTS>
+#! </SUBDOCUMENTS>
+#! <LOOKUP_TABLES>
+#! </LOOKUP_TABLES>
+#! </WORKSPACE>
+FME_PYTHON_VERSION 27
+GUI IGNORE SourceDataset_POSTGRES_1,POSTGRES_IN_HOST_POSTGRES_1,POSTGRES_IN_PORT_POSTGRES_1,POSTGRES_IN_USER_NAME_POSTGRES_1,POSTGRES_IN_PASSWORD_POSTGRES_1,POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1,DestDataset_POSTGRES_2,POSTGRES_OUT_HOST_POSTGRES_2,POSTGRES_OUT_PORT_POSTGRES_2,POSTGRES_OUT_USER_NAME_POSTGRES_2,POSTGRES_OUT_PASSWORD_POSTGRES_2,POSTGRES_OUT_WRITER_MODE_POSTGRES_2,POSTGRES_OUT_START_TRANSACTION_POSTGRES_2,POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_2,POSTGRES_OUT_BULK_COPY_POSTGRES_2,POSTGRES_OUT_BEGIN_SQL_POSTGRES_2,POSTGRES_OUT_END_SQL_POSTGRES_2,DestDataset_POSTGRES_3,POSTGRES_OUT_HOST_POSTGRES_3,POSTGRES_OUT_PORT_POSTGRES_3,POSTGRES_OUT_USER_NAME_POSTGRES_3,POSTGRES_OUT_PASSWORD_POSTGRES_3,POSTGRES_OUT_WRITER_MODE_POSTGRES_3,POSTGRES_OUT_START_TRANSACTION_POSTGRES_3,POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_3,POSTGRES_OUT_BULK_COPY_POSTGRES_3,DestDataset_XML_1,XML_OUT_PRETTY_PRINT_SETTINGS_XML_1,XML_OUT_PRETTY_PRINT_XML_1,XML_OUT_INDENT_SIZE_XML_1,XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1,XML_OUT_XML_WRT_ADV_PARM_XML_1,XML_OUT_XSD_DOC_XML_1,XML_OUT_SUPPRESS_TARGET_NS_XML_1,XML_OUT_TABLE_WRAPPER_PREFIX_XML_1,XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1,XML_OUT_ROW_ID_ATTR_NAME_XML_1,XML_OUT_ROW_ID_PREFIX_XML_1,XML_OUT_APPLY_STYLESHEET_XML_1,XML_OUT_STYLESHEET_RESULT_XML_1,XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1,XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1,XML_OUT_XML_VALIDATION_XML_1,XML_OUT_XSD_VALIDATION_DOCS_XML_1,_TARGET_NS_URI_XML_1,_TARGET_NS_PREFIX_XML_1,_TABLES_ROOT_ELEMENT_XML_1,_XML_NAMESPACE_DECLARATIONS_XML_1,_WRAP_TABLES_XML_1,_SUPPRESS_XML_DOCUMENT_XML_1,_SUPPRESS_XSD_DOCUMENT_XML_1,_GENERATE_ROW_ID_XML_1,_OUTPUT_ENCODING_XML_1
+DEFAULT_MACRO sourceGexFile $(FME_MF_DIR)test_import.gex
+GUI FILENAME_EXISTING sourceGexFile fichier_Export_GTF_(.gex)|*.gex Fichier d'export GTF à importer (.gex) :
+DEFAULT_MACRO idWorkspaceList *
+GUI OPTIONAL TEXT idWorkspaceList Liste des idWorkspace à importer (* pour tous) :
+DEFAULT_MACRO duplicateKey 0
+GUI LOOKUP_CHOICE duplicateKey Importer<space>les<space>projets<space>avec<space>une<space>nouvelle<space>KEY<space>et<space>un<space>nouveau<space>nom,0%Ne<space>pas<space>mettre<space><u00e0><space>jour<space>les<space>projets<space>de<space>m<u00ea>me<space>KEY,1%Mettre<space><u00e0><space>jour<space>les<space>projets<space>de<space>m<u00ea>me<space>KEY,2 Mettre à jour les workspaces de KEY identique ?:
+DEFAULT_MACRO HTML 
+GUI OPTIONAL FILENAME HTML All_Files(*.*)|*.* Rapport HTML :
+DEFAULT_MACRO GTF_CONNECTION_STRING 
+GUI OPTIONAL PASSWORD GTF_CONNECTION_STRING Chaîne de connexion à la base GTF :
+DEFAULT_MACRO GTF_ORDER_ID 1
+GUI OPTIONAL INTEGER GTF_ORDER_ID ID de la demande envoyée par le moteur :
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[0]
+value = ParamFunc()
+macroName = 'dbServer'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[1]
+value = ParamFunc()
+macroName = 'dbPort'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[2]
+value = ParamFunc()
+macroName = 'dbDatabase'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[3]
+value = ParamFunc()
+macroName = 'dbUser'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[4]
+value = ParamFunc()
+macroName = 'dbPassword'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  # Génère un nom de répertoire temporaire unique
+  import uuid
+  import os
+
+  temp = os.environ.get("TEMP")
+  if temp is not None:
+      temp_dir = temp + "\\" + str(uuid.uuid1())
+  else:
+      temp_dir = "c:\\temp\\" + str(uuid.uuid1())
+  return temp_dir + '\\rapport.xml'
+value = ParamFunc()
+macroName = 'xml'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  return FME_MacroValues['FME_MF_DIR'] + 'rapport.xslt'
+value = ParamFunc()
+macroName = 'xslt'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE [ if {{$(sourceGexFile)} == {}} { puts_real {Parameter 'sourceGexFile' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(duplicateKey)} == {}} { puts_real {Parameter 'duplicateKey' must be given a value.}; exit 1; }; ]
+#! START_HEADER
+#! START_WB_HEADER
+READER_TYPE POSTGRES
+READER_KEYWORD POSTGRES_1
+
+WRITER_TYPE MULTI_WRITER
+MULTI_WRITER_DATASET_ORDER BY_ID
+MULTI_WRITER_FIRST_WRITER_ID 0
+MULTI_WRITER_TYPE{0} POSTGRES
+MULTI_WRITER_KEYWORD{0} POSTGRES_2
+MULTI_WRITER_TYPE{1} POSTGRES
+MULTI_WRITER_KEYWORD{1} POSTGRES_3
+MULTI_WRITER_TYPE{2} XML
+MULTI_WRITER_KEYWORD{2} XML_1
+#! END_WB_HEADER
+
+#! START_WB_HEADER
+MACRO WB_KEYWORD "POSTGRES_1"
+#! END_WB_HEADER
+#! START_SOURCE_HEADER POSTGRES POSTGRES_1
+# The dataset this mapping file was generated from was:
+#! END_SOURCE_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO SourceDataset
+INCLUDE [ if {{$(SourceDataset)} != ""} {                        \
+ puts {DEFAULT_MACRO SourceDataset_POSTGRES_1 $(SourceDataset)}     \
+ } ]
+#! END_WB_HEADER
+#! START_SOURCE_HEADER POSTGRES POSTGRES_1
+DEFAULT_MACRO SourceDataset_POSTGRES_1 $(dbDatabase)
+GUI OPTIONAL TEXT SourceDataset_POSTGRES_1 Source PostgreSQL Dataset:
+DEFAULT_MACRO POSTGRES_IN_HOST_POSTGRES_1 $(dbServer)
+POSTGRES_1_HOST "$(POSTGRES_IN_HOST_POSTGRES_1)"
+GUI TEXT POSTGRES_IN_HOST_POSTGRES_1 Host:
+DEFAULT_MACRO POSTGRES_IN_PORT_POSTGRES_1 $(dbPort)
+POSTGRES_1_PORT "$(POSTGRES_IN_PORT_POSTGRES_1)"
+GUI INTEGER POSTGRES_IN_PORT_POSTGRES_1 Port:
+DEFAULT_MACRO POSTGRES_IN_USER_NAME_POSTGRES_1 $(dbUser)
+POSTGRES_1_USER_NAME "$(POSTGRES_IN_USER_NAME_POSTGRES_1)"
+GUI TEXT POSTGRES_IN_USER_NAME_POSTGRES_1 Username:
+DEFAULT_MACRO POSTGRES_IN_PASSWORD_POSTGRES_1 $(dbPassword)
+POSTGRES_1_PASSWORD "$(POSTGRES_IN_PASSWORD_POSTGRES_1)"
+GUI OPTIONAL PASSWORD POSTGRES_IN_PASSWORD_POSTGRES_1 Password:
+DEFAULT_MACRO POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 10000
+GUI FLOAT POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 Number Of Records To Fetch At A Time:
+POSTGRES_1_FEATURES_PER_FETCH $(POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1)
+POSTGRES_1_DATASET "$(SourceDataset_POSTGRES_1)"
+#! END_SOURCE_HEADER
+#! START_WB_HEADER
+MACRO WB_KEYWORD "POSTGRES_2"
+#! END_WB_HEADER
+#! START_DEST_HEADER POSTGRES POSTGRES_2
+#! END_DEST_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO DestDataset
+INCLUDE [ if {"$(DestDataset)" != ""} {                          \
+ puts {DEFAULT_MACRO DestDataset_POSTGRES_2 $(DestDataset)}         \
+ } ]
+#! END_WB_HEADER
+#! START_DEST_HEADER POSTGRES POSTGRES_2
+DEFAULT_MACRO DestDataset_POSTGRES_2 $(dbDatabase)
+GUI TEXT DestDataset_POSTGRES_2 Database:
+DEFAULT_MACRO POSTGRES_OUT_HOST_POSTGRES_2 $(dbServer)
+POSTGRES_2_HOST "$(POSTGRES_OUT_HOST_POSTGRES_2)"
+GUI TEXT POSTGRES_OUT_HOST_POSTGRES_2 Host:
+DEFAULT_MACRO POSTGRES_OUT_PORT_POSTGRES_2 $(dbPort)
+POSTGRES_2_PORT "$(POSTGRES_OUT_PORT_POSTGRES_2)"
+GUI INTEGER POSTGRES_OUT_PORT_POSTGRES_2 Port:
+DEFAULT_MACRO POSTGRES_OUT_USER_NAME_POSTGRES_2 $(dbUser)
+POSTGRES_2_USER_NAME "$(POSTGRES_OUT_USER_NAME_POSTGRES_2)"
+GUI TEXT POSTGRES_OUT_USER_NAME_POSTGRES_2 Username:
+DEFAULT_MACRO POSTGRES_OUT_PASSWORD_POSTGRES_2 $(dbPassword)
+POSTGRES_2_PASSWORD "$(POSTGRES_OUT_PASSWORD_POSTGRES_2)"
+GUI OPTIONAL PASSWORD POSTGRES_OUT_PASSWORD_POSTGRES_2 Password:
+# ============================================================================
+# Opt in for destination dataset type vs format type validation
+DEFAULT_MACRO POSTGRES_OUT_DESTINATION_DATASETTYPE_VALIDATION_POSTGRES_2 Yes
+POSTGRES_2_DESTINATION_DATASETTYPE_VALIDATION "$(POSTGRES_OUT_DESTINATION_DATASETTYPE_VALIDATION_POSTGRES_2)"
+DEFAULT_MACRO POSTGRES_OUT_WRITER_MODE_POSTGRES_2 INSERT
+GUI CHOICE POSTGRES_OUT_WRITER_MODE_POSTGRES_2 INSERT%UPDATE%DELETE Writer Mode:
+POSTGRES_2_WRITER_MODE $(POSTGRES_OUT_WRITER_MODE_POSTGRES_2)
+DEFAULT_MACRO POSTGRES_OUT_START_TRANSACTION_POSTGRES_2 0
+GUI TEXT POSTGRES_OUT_START_TRANSACTION_POSTGRES_2 Starting Feature:
+POSTGRES_2_START_TRANSACTION $(POSTGRES_OUT_START_TRANSACTION_POSTGRES_2)
+DEFAULT_MACRO POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_2 1000
+GUI TEXT POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_2 Features Per Transaction:
+POSTGRES_2_TRANSACTION_INTERVAL $(POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_2)
+DEFAULT_MACRO POSTGRES_OUT_BULK_COPY_POSTGRES_2 YES
+GUI CHOICE POSTGRES_OUT_BULK_COPY_POSTGRES_2 YES%NO Bulk Copy Insert:
+POSTGRES_2_BULK_COPY $(POSTGRES_OUT_BULK_COPY_POSTGRES_2)
+DEFAULT_MACRO POSTGRES_OUT_BEGIN_SQL_POSTGRES_2 
+GUI OPTIONAL TEXT_EDIT_SQL POSTGRES_OUT_BEGIN_SQL_POSTGRES_2 SQL Statement to Execute Before Translation:
+POSTGRES_2_BEGIN_SQL "$(POSTGRES_OUT_BEGIN_SQL_POSTGRES_2)"
+DEFAULT_MACRO POSTGRES_OUT_END_SQL_POSTGRES_2 
+GUI OPTIONAL TEXT_EDIT_SQL POSTGRES_OUT_END_SQL_POSTGRES_2 SQL Statement to Execute After Translation:
+POSTGRES_2_END_SQL "$(POSTGRES_OUT_END_SQL_POSTGRES_2)"
+POSTGRES_2_DATASET "$(DestDataset_POSTGRES_2)"
+#! END_DEST_HEADER
+#! START_WB_HEADER
+MACRO WB_KEYWORD "POSTGRES_3"
+#! END_WB_HEADER
+#! START_DEST_HEADER POSTGRES POSTGRES_3
+# ============================================================================
+# The following GUI line prompts for a file to be used as the
+# the destination FM0 file.
+# The user input is stored in a macro, which is then used to define
+# the dataset to be written.
+# 20050928: Added default macro for the dest dataset
+#! END_DEST_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO DestDataset
+INCLUDE [ if {"$(DestDataset)" != ""} {                          \
+ puts {DEFAULT_MACRO DestDataset_POSTGRES_3 $(DestDataset)}         \
+ } ]
+#! END_WB_HEADER
+#! START_DEST_HEADER POSTGRES POSTGRES_3
+DEFAULT_MACRO DestDataset_POSTGRES_3 $(dbDatabase)
+GUI TEXT DestDataset_POSTGRES_3 Destination PostgreSQL Dataset:
+DEFAULT_MACRO POSTGRES_OUT_HOST_POSTGRES_3 $(dbServer)
+POSTGRES_3_HOST "$(POSTGRES_OUT_HOST_POSTGRES_3)"
+GUI TEXT POSTGRES_OUT_HOST_POSTGRES_3 Host:
+DEFAULT_MACRO POSTGRES_OUT_PORT_POSTGRES_3 $(dbPort)
+POSTGRES_3_PORT "$(POSTGRES_OUT_PORT_POSTGRES_3)"
+GUI OPTIONAL INTEGER POSTGRES_OUT_PORT_POSTGRES_3 Port:
+DEFAULT_MACRO POSTGRES_OUT_USER_NAME_POSTGRES_3 $(dbUser)
+POSTGRES_3_USER_NAME "$(POSTGRES_OUT_USER_NAME_POSTGRES_3)"
+GUI TEXT POSTGRES_OUT_USER_NAME_POSTGRES_3 Username:
+DEFAULT_MACRO POSTGRES_OUT_PASSWORD_POSTGRES_3 $(dbPassword)
+POSTGRES_3_PASSWORD "$(POSTGRES_OUT_PASSWORD_POSTGRES_3)"
+GUI OPTIONAL PASSWORD POSTGRES_OUT_PASSWORD_POSTGRES_3 Password:
+DEFAULT_MACRO POSTGRES_OUT_WRITER_MODE_POSTGRES_3 INSERT
+GUI CHOICE POSTGRES_OUT_WRITER_MODE_POSTGRES_3 INSERT%UPDATE%DELETE Writer Mode:
+POSTGRES_3_WRITER_MODE $(POSTGRES_OUT_WRITER_MODE_POSTGRES_3)
+DEFAULT_MACRO POSTGRES_OUT_START_TRANSACTION_POSTGRES_3 0
+GUI TEXT POSTGRES_OUT_START_TRANSACTION_POSTGRES_3 Starting Feature:
+POSTGRES_3_START_TRANSACTION $(POSTGRES_OUT_START_TRANSACTION_POSTGRES_3)
+DEFAULT_MACRO POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_3 1000
+GUI TEXT POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_3 Features Per Transaction:
+POSTGRES_3_TRANSACTION_INTERVAL $(POSTGRES_OUT_TRANSACTION_INTERVAL_POSTGRES_3)
+DEFAULT_MACRO POSTGRES_OUT_BULK_COPY_POSTGRES_3 YES
+GUI CHOICE POSTGRES_OUT_BULK_COPY_POSTGRES_3 YES%NO Bulk COPY Insert:
+POSTGRES_3_BULK_COPY $(POSTGRES_OUT_BULK_COPY_POSTGRES_3)
+POSTGRES_3_DATASET "$(DestDataset_POSTGRES_3)"
+#! END_DEST_HEADER
+#! START_WB_HEADER
+MACRO WB_KEYWORD "XML_1"
+#! END_WB_HEADER
+#! START_DEST_HEADER XML XML_1
+#! END_DEST_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO DestDataset
+INCLUDE [ if {"$(DestDataset)" != ""} {                          \
+ puts {DEFAULT_MACRO DestDataset_XML_1 $(DestDataset)}         \
+ } ]
+#! END_WB_HEADER
+#! START_DEST_HEADER XML XML_1
+DEFAULT_MACRO DestDataset_XML_1 $(xml)
+GUI FILENAME DestDataset_XML_1 XML_Files(*)|* Destination XML (Extensible Markup Language) File:
+# ============================================================================
+# The WRITER_MODE keyword sets the XML Writer's mode. Valid values are
+# 'TABLES_ATTRIBUTES_ONLY', 'TABLES', and 'XFMAP'
+#
+# TABLES_ATTRIBUTES_ONLY: This writes out the non-geometrical
+# attributes of features into an XML dataset.
+#
+# TABLES and XFMAP: Are not implemented yet.
+DEFAULT_MACRO _WRITER_MODE_XML_1 TABLES_ATTRIBUTES_ONLY
+XML_1_WRITER_MODE $(_WRITER_MODE_XML_1)
+# ============================================================================
+GUI DISCLOSUREGROUP XML_OUT_PRETTY_PRINT_SETTINGS_XML_1 PRETTY_PRINT%INDENT_SIZE%REPLACE_TABS_WITH_SPACES Pretty Printing
+DEFAULT_MACRO XML_OUT_PRETTY_PRINT_XML_1 No
+XML_1_PRETTY_PRINT "$(XML_OUT_PRETTY_PRINT_XML_1)"
+GUI OPTIONAL CHOICE XML_OUT_PRETTY_PRINT_XML_1 Yes%No Pretty Print:
+DEFAULT_MACRO XML_OUT_INDENT_SIZE_XML_1 0
+XML_1_INDENT_SIZE "$(XML_OUT_INDENT_SIZE_XML_1)"
+GUI OPTIONAL CHOICE XML_OUT_INDENT_SIZE_XML_1 0%1%2%3%4%5%6%7%8%9 Indent Size:
+DEFAULT_MACRO XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1 No
+XML_1_REPLACE_TABS_WITH_SPACES "$(XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1)"
+GUI OPTIONAL CHOICE XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1 Yes%No Replace Tabs with Spaces:
+GUI DISCLOSUREGROUP XML_OUT_XML_WRT_ADV_PARM_XML_1 XSD_DOC%SUPPRESS_TARGET_NS%TABLE_WRAPPER_PREFIX%TABLE_WRAPPER_SUFFIX%ROW_ID_ATTR_NAME%ROW_ID_PREFIX%APPLY_STYLESHEET%STYLESHEET_RESULT%XML_ROOT_ELEMENT_APPEND_PATH%APPEND_XML_FRAGMENTS_AS%XML_VALIDATION%XSD_VALIDATION_DOCS Advanced
+DEFAULT_MACRO XML_OUT_XSD_DOC_XML_1 
+XML_1_XSD_DOC "$(XML_OUT_XSD_DOC_XML_1)"
+GUI OPTIONAL FILENAME XML_OUT_XSD_DOC_XML_1 XML_Schema_File(*.xsd)|*.xsd|All_Files(*.*)|*.* XML Schema Document:
+DEFAULT_MACRO XML_OUT_SUPPRESS_TARGET_NS_XML_1 yes
+XML_1_SUPPRESS_TARGET_NS "$(XML_OUT_SUPPRESS_TARGET_NS_XML_1)"
+GUI CHOICE XML_OUT_SUPPRESS_TARGET_NS_XML_1 yes%no Suppress Target Namespace:
+DEFAULT_MACRO XML_OUT_TABLE_WRAPPER_PREFIX_XML_1 
+XML_1_TABLE_WRAPPER_PREFIX "$(XML_OUT_TABLE_WRAPPER_PREFIX_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_TABLE_WRAPPER_PREFIX_XML_1 Table Wrap Prefix:
+DEFAULT_MACRO XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1 
+XML_1_TABLE_WRAPPER_SUFFIX "$(XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1 Table Wrap Suffix:
+DEFAULT_MACRO XML_OUT_ROW_ID_ATTR_NAME_XML_1 
+XML_1_ROW_ID_ATTR_NAME "$(XML_OUT_ROW_ID_ATTR_NAME_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_ROW_ID_ATTR_NAME_XML_1 Row ID Attribute Name:
+DEFAULT_MACRO XML_OUT_ROW_ID_PREFIX_XML_1 
+XML_1_ROW_ID_PREFIX "$(XML_OUT_ROW_ID_PREFIX_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_ROW_ID_PREFIX_XML_1 Row ID Prefix:
+DEFAULT_MACRO XML_OUT_APPLY_STYLESHEET_XML_1 $(xslt)
+XML_1_APPLY_STYLESHEET "$(XML_OUT_APPLY_STYLESHEET_XML_1)"
+GUI OPTIONAL FILENAME_MUSTEXIST XML_OUT_APPLY_STYLESHEET_XML_1 XSLT_Stylesheet_Files(*.xslt)|*.xslt|All_Files(*.*)|*.* XSLT Style Sheet to Apply:
+DEFAULT_MACRO XML_OUT_STYLESHEET_RESULT_XML_1 $(HTML)
+XML_1_STYLESHEET_RESULT "$(XML_OUT_STYLESHEET_RESULT_XML_1)"
+GUI OPTIONAL FILENAME XML_OUT_STYLESHEET_RESULT_XML_1 All_Files(*.*)|*.* Style Sheet File to Write:
+DEFAULT_MACRO XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1 
+XML_1_XML_ROOT_ELEMENT_APPEND_PATH "$(XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1)"
+GUI OPTIONAL TEXT_EDIT XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1 XML_ROOT_ELEMENT Append Path:
+DEFAULT_MACRO XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1 SUCCEEDING_CHILDREN
+XML_1_APPEND_XML_FRAGMENTS_AS "$(XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1)"
+GUI LOOKUP_CHOICE XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1 "Preceding Children",PRECEDING_CHILDREN%"Succeeding Children",SUCCEEDING_CHILDREN%"Preceding Siblings",PRECEDING_SIBLINGS%"Succeeding Siblings",SUCCEEDING_SIBLINGS Append XML_FRAGMENTs As:
+DEFAULT_MACRO XML_OUT_XML_VALIDATION_XML_1 No
+XML_1_XML_VALIDATION "$(XML_OUT_XML_VALIDATION_XML_1)"
+GUI ACTIVECHOICE XML_OUT_XML_VALIDATION_XML_1 Yes%No,XML_OUT_XSD_VALIDATION_DOCS XML Schema Validation:
+DEFAULT_MACRO XML_OUT_XSD_VALIDATION_DOCS_XML_1 <Unused>
+XML_1_XSD_VALIDATION_DOCS "$(XML_OUT_XSD_VALIDATION_DOCS_XML_1)"
+GUI OPTIONAL MULTIFILE XML_OUT_XSD_VALIDATION_DOCS_XML_1 XML_Schema_File(*.xsd)|*.xsd|All_Files(*.*)|*.* XML Schema Validation Document:
+# ============================================================================
+# Opt in for destination dataset type vs format type validation
+DEFAULT_MACRO XML_OUT_DESTINATION_DATASETTYPE_VALIDATION_XML_1 Yes
+XML_1_DESTINATION_DATASETTYPE_VALIDATION "$(XML_OUT_DESTINATION_DATASETTYPE_VALIDATION_XML_1)"
+DEFAULT_MACRO XML_OUT_COORDINATE_SYSTEM_GRANULARITY_XML_1 C:\TEMP\rapport_import.xml
+XML_1_COORDINATE_SYSTEM_GRANULARITY "$(XML_OUT_COORDINATE_SYSTEM_GRANULARITY_XML_1)"
+DEFAULT_MACRO _TARGET_NS_URI_XML_1 
+GUI OPTIONAL TEXT _TARGET_NS_URI_XML_1 Target Namespace URI:
+XML_1_TARGET_NS_URI $(_TARGET_NS_URI_XML_1)
+DEFAULT_MACRO _TARGET_NS_PREFIX_XML_1 
+GUI OPTIONAL TEXT _TARGET_NS_PREFIX_XML_1 Target Namespace Prefix:
+XML_1_TARGET_NS_PREFIX $(_TARGET_NS_PREFIX_XML_1)
+DEFAULT_MACRO _TABLES_ROOT_ELEMENT_XML_1 
+GUI OPTIONAL TEXT _TABLES_ROOT_ELEMENT_XML_1 Tables Root Element Name:
+XML_1_TABLES_ROOT_ELEMENT $(_TABLES_ROOT_ELEMENT_XML_1)
+DEFAULT_MACRO _XML_NAMESPACE_DECLARATIONS_XML_1 
+GUI OPTIONAL STRING_ENCODED _XML_NAMESPACE_DECLARATIONS_XML_1 XML Namespace Declarations:
+XML_1_XML_NAMESPACE_DECLARATIONS $(_XML_NAMESPACE_DECLARATIONS_XML_1)
+DEFAULT_MACRO _WRAP_TABLES_XML_1 yes
+GUI OPTIONAL CHOICE _WRAP_TABLES_XML_1 yes%no Wrap Table Elements:
+XML_1_WRAP_TABLES $(_WRAP_TABLES_XML_1)
+DEFAULT_MACRO _SUPPRESS_XML_DOCUMENT_XML_1 no
+GUI CHOICE _SUPPRESS_XML_DOCUMENT_XML_1 yes%no Suppress XML output:
+XML_1_SUPPRESS_XML_DOCUMENT $(_SUPPRESS_XML_DOCUMENT_XML_1)
+DEFAULT_MACRO _SUPPRESS_XSD_DOCUMENT_XML_1 no
+GUI CHOICE _SUPPRESS_XSD_DOCUMENT_XML_1 yes%no Suppress XSD output:
+XML_1_SUPPRESS_XSD_DOCUMENT $(_SUPPRESS_XSD_DOCUMENT_XML_1)
+DEFAULT_MACRO _GENERATE_ROW_ID_XML_1 no
+GUI CHOICE _GENERATE_ROW_ID_XML_1 yes%no Generate Row ID Attributes:
+XML_1_GENERATE_ROW_ID $(_GENERATE_ROW_ID_XML_1)
+DEFAULT_MACRO _OUTPUT_ENCODING_XML_1 utf-8
+GUI OPTIONAL STRING_OR_ENCODING _OUTPUT_ENCODING_XML_1 UTF-8%UTF-16LE%UTF-16BE%SYSTEM%BIG5%SJIS%CP437%CP708%CP720%CP737%CP775%CP850%CP852%CP855%CP857%CP860%CP861%CP862%CP863%CP864%CP865%CP866%CP869%CP932%CP936%CP950%CP1250%CP1251%CP1252%CP1253%CP1254%CP1255%CP1256%CP1257%CP1258%ISO8859-1%ISO8859-2%ISO8859-3%ISO8859-4%ISO8859-5%ISO8859-6%ISO8859-7%ISO8859-8%ISO8859-9%ISO8859-13%ISO8859-15 Output Dataset Encoding:
+XML_1_OUTPUT_ENCODING $(_OUTPUT_ENCODING_XML_1)
+XML_1_DATASET "$(DestDataset_XML_1)"
+#! END_DEST_HEADER
+#! START_WB_HEADER
+#! END_WB_HEADER
+
+#! END_HEADER
+
+LOG_FILENAME "$(FME_MF_DIR)importv3.log"
+LOG_APPEND NO
+LOG_MAX_FEATURES 200
+LOG_MAX_RECORDED_FEATURES 200
+FME_REPROJECTION_ENGINE FME
+FME_IMPLICIT_CSMAP_REPROJECTION_MODE Datum
+FME_GEOMETRY_HANDLING Enhanced
+FME_STROKE_MAX_DEVIATION 0
+MAPPING_FILE_ID Import<space>GTF
+LOG_FILTER_MASK -1
+DEFAULT_MACRO DATASET_KEYWORD_POSTGRES_1 POSTGRES_1
+DEFAULT_MACRO DATASET_KEYWORD_POSTGRES_2 POSTGRES_2
+DEFAULT_MACRO DATASET_KEYWORD_POSTGRES_3 POSTGRES_3
+DEFAULT_MACRO DATASET_KEYWORD_XML_1 XML_1
+FME_PASSWORD_PARAMETER_LIST GTF_CONNECTION_STRING
+# -------------------------------------------------------------------------
+
+POSTGRES_1_READER_META_ATTRIBUTES fme_feature_type
+
+# -------------------------------------------------------------------------
+
+MULTI_READER_CONTINUE_ON_READER_FAILURE No
+
+# -------------------------------------------------------------------------
+
+MACRO WORKSPACE_NAME importv3
+MACRO FME_VIEWER_APP fmedatainspector
+# -------------------------------------------------------------------------
+POSTGRES_1_DEF s_gtf.workspace   postgres_type                postgres_none   postgres_sql_where_clause    ""   postgres_sql_statement       ""   workspace_id                 int4,PRIKEY   name                         varchar(100),BTREE   description                  text   subscription                 bool   fmw_file                     varchar(150)   category_id                  int4,BTREE   lb_method_id                 int4   success_action_id            int4   failed_action_id             int4   survey                       bool   form_type                    varchar(10)   legal_terms_conditions       text   usage                        text   requirements                 text   history                      text   last_save_date               timestamp   last_save_build              varchar(80)   file_encoding                varchar(80)   title                        varchar(80)   key                          varchar(80)   email_template_id            int4   owner                        int4   creation_date                date   locked                       bool   tag                          varchar(100)
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory   FACTORY_NAME "Router and Unexpected Input Remover"   COMMAND_PARM_EVALUATION SINGLE_PASS   MULTI_READER_KEYWORD POSTGRES_1   INPUT FEATURE_TYPE *    ROUTE POSTGRES POSTGRES_1::s_gtf.workspace TO FME_GENERIC ::s_gtf.workspace ALIAS_GEOMETRY    MERGE_INPUT Yes   OUTPUT ROUTED FEATURE_TYPE *
+POSTGRES_1_MERGE_DEF POSTGRES_1::s_gtf.workspace EXACT s_gtf.workspace
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME "s_gtf.workspace (POSTGRES_1) Splitter"    INPUT FEATURE_TYPE s_gtf.workspace    OUTPUT FEATURE_TYPE s_gtf.workspace_POSTGRES_1_0_yiNk/2jyS1o=    OUTPUT FEATURE_TYPE s_gtf.workspace_POSTGRES_1_1_kQA9HcoEkYM=
+DEFAULT_MACRO WB_CURRENT_CONTEXT
+# -------------------------------------------------------------------------
+
+Tcl2 proc Creator_3_CoordSysRemover {} {   global FME_CoordSys;   set FME_CoordSys {}; }
+MACRO Creator_3_XML     NOT_ACTIVATED
+MACRO Creator_3_CLASSIC NOT_ACTIVATED
+MACRO Creator_3_2D3D    2D_GEOMETRY
+MACRO Creator_3_COORDS  <Unused>
+INCLUDE [ if { {Geometry Object} == {Geometry Object} } {            puts {MACRO Creator_3_XML *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } {            puts {MACRO Creator_3_2D3D 2D_GEOMETRY};            puts {MACRO Creator_3_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } {            puts {MACRO Creator_3_2D3D 3D_GEOMETRY};            puts {MACRO Creator_3_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } {            set comment {                We need to turn the COORDS which are                    minX minY maxX maxY                into a full polygon list of coordinates            };            set splitCoords [split [string trim {<Unused>}]];            if { [llength $splitCoords] > 4} {               set trimmedCoords {};               foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} };               set splitCoords $trimmedCoords;            };            if { [llength $splitCoords] != 4 } {                error {Creator_3: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `<Unused>' is invalid};            };            set minX [lindex $splitCoords 0];            set minY [lindex $splitCoords 1];            set maxX [lindex $splitCoords 2];            set maxY [lindex $splitCoords 3];            puts "MACRO Creator_3_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY";            puts {MACRO Creator_3_2D3D 2D_GEOMETRY};            puts {MACRO Creator_3_CLASSIC *} } ]
+FACTORY_DEF $(Creator_3_XML) CreationFactory    FACTORY_NAME Creator_3_XML_Creator    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______        @Geometry(FROM_ENCODED_STRING,<lt>?xml<space>version=<quote>1.0<quote><space>encoding=<quote>US_ASCII<quote><space>standalone=<quote>no<quote><space>?<gt><lt>geometry<space>dimension=<quote>2<quote><gt><lt>null<solidus><gt><lt><solidus>geometry<gt>)
+FACTORY_DEF $(Creator_3_CLASSIC) CreationFactory    FACTORY_NAME Creator_3_CLASSIC_Creator    $(Creator_3_2D3D) $(Creator_3_COORDS)    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______
+FACTORY_DEF * TeeFactory    FACTORY_NAME Creator_3_Cloner    INPUT FEATURE_TYPE _____CREATED______    NUMBER_OF_COPIES 1    OUTPUT FEATURE_TYPE Creator_3_CREATED        @Tcl2(Creator_3_CoordSysRemover)        @CoordSys()        fme_feature_type Creator_3
+
+FACTORY_DEF * BranchingFactory   FACTORY_NAME "Creator_3_CREATED Brancher -1 308"   INPUT FEATURE_TYPE Creator_3_CREATED   TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   OUTPUT PASSED FEATURE_TYPE *     @RemoveAttributes("Creator_3_CREATED Brancher -1 308".BranchingFactory.Count)
+# -------------------------------------------------------------------------
+FACTORY_DEF * TeeFactory   FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   INPUT FEATURE_TYPE *  OUTPUT FEATURE_TYPE *
+# -------------------------------------------------------------------------
+
+# On translation startup, prep the temporary directory that this instance of the
+# xformer will populate with its temporary files.  We'll do this by asking for a
+# temporary filename, and then instead of using it as a file, we'll add our UUID to
+# it to make a super unique name, which will become the directory we'll use for all
+# the temp files we hand out.
+# And we'll set up to have the END_TCL delete that entire directory when we shut down.
+# To do that, we'll use the "environment" to hold our master subidirectory, keyed by
+# our UUID as the environment variable name.  That is the only way to pass information
+# from @Tcl2 to FME_END_TCL (via the "env" variable, because they use different Tcl
+# interpretters)
+
+Tcl2 set sampleTempFile [FME_TempFilename];      set ourTempDir {};      append ourTempDir $sampleTempFile {TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00};      file mkdir $ourTempDir;      set env(TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00_dir) $ourTempDir;      set env(TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00_file) $sampleTempFile;      set gNumTempFilesHandedOut 0;
+
+# Cleanup time. Remove the directory this transformer was using for its temp files, as well as the
+# original temp file that was created as our "seed" to get us a unique starting point.
+
+FME_END_TCL file delete -force $env(TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00_dir) $env(TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00_file) ;      unset env(TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00_dir);      unset env(TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00_file);
+# Actually create and return a well formed filename that is guaranteed not to be there.
+# We know we're working inside a directory unique to our instance of the transformer.
+# So we can just increment serially within there to be sure we're not making a previously existing file
+# We need to also provide a default for the filename base if they didn't give us one (we'll
+# use the XFORMER_NAME), and take care to handle a no-extension-desired situation as well as
+# a situation where the extension started with a .
+
+Tcl2 proc TempPathnameCreator_makeTemp {baseName extension} {      global env;      global gNumTempFilesHandedOut;      if { [string length $extension ] == 0 } {          set extensionSep {};      } elseif { [string index $extension 0] == {.} } {          set extensionSep {};      } else {          set extensionSep {.};      };      if { $baseName == {} } {          set baseName {TempPathnameCreator};      };      set curClock [clock clicks];      set last7ClockDigits [string range $curClock end-6 end];      append aGoodTempFile $env(TempPathnameCreator_85b6110c_3873_4f51_be19_38fbb3961de00_dir) [file separator] [FME_DecodeText $baseName] {_}                           $last7ClockDigits {_} $gNumTempFilesHandedOut                           $extensionSep [FME_DecodeText $extension];      incr gNumTempFilesHandedOut;      FME_SetAttribute [FME_DecodeText _tmpDir] $aGoodTempFile; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME TempPathnameCreator    INPUT  FEATURE_TYPE Creator_3_CREATED    OUTPUT FEATURE_TYPE TempPathnameCreator_OUTPUT         @Tcl2("TempPathnameCreator_makeTemp {} {}")
+
+# -------------------------------------------------------------------------
+
+
+FME_PYTHON_PATH "$(FME_MF_DIR)"
+
+FACTORY_DEF * PythonFactory    FACTORY_NAME PythonCaller_3    INPUT  FEATURE_TYPE TempPathnameCreator_OUTPUT    SYMBOL_NAME myFunction    PYTHON_NAMESPACE FMEOBJECTS    SOURCE_CODE #<space>-*-<space>coding:<space>utf-8<space>-*-<lf>import<space>fmeobjects<lf>import<space>os<lf>import<space>zipfile<lf>import<space>glob<lf>import<space>string<lf><lf>def<space>myFunction<openparen>object<closeparen>:<lf><space><space><space><space>print<space><space>object.getAttribute<openparen><apos>_tmpDir<apos><closeparen><lf><space><space><space><space>temp_dir<space>=<space>object.getAttribute<openparen><apos>_tmpDir<apos><closeparen><lf><space><space><space><space>#<space>Cr<u00e9>e<space>le<space>r<u00e9>pertoire<space>temporaire<space>s<apos>il<space>n<apos>existe<space>pas<lf><space><space><space><space>#<space>Fichier<space>gex<space><u00e0><space>traiter<lf><space><space><space><space>gexFile<space>=<space>FME_MacroValues<openbracket><apos>sourceGexFile<apos><closebracket><lf><space><space><space><space>if<space>gexFile<space>!=<space><apos><apos>:<lf><space><space><space><space><space><space><space><space>try:<lf><space><space><space><space><space><space><space><space><space><space><space><space>gexFile<space>=<space>string.replace<openparen>gexFile<comma><apos>**<apos><comma><space><apos><apos><closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space>gexFile<space>=<space>string.replace<openparen>gexFile<comma><apos><quote><apos><comma><space><apos><apos><closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space>#<space>GTF<space>renvoie<space>*.gex<comma><space>on<space>remplace<space>par<space>le<space>nom<space>complet<lf><space><space><space><space><space><space><space><space><space><space><space><space>gexFile2<space>=<space>glob.glob<openparen>gexFile<closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space>if<space>gexFile2:<lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>gexFile3<space>=<space>gexFile2<openbracket>0<closebracket><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>#<space>D<u00e9>zippe<space>le<space>gex<lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>print<space><quote>*PYTHON*<space>D<u00e9>zippe<space>le<space>gex<quote><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>sourceZip<space>=<space>zipfile.ZipFile<openparen>gexFile3<comma><space><apos>r<apos><closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>sourceZip.extractall<openparen>temp_dir<closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>sourceZip.close<openparen><closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>#<space>Stocke<space>le<space>chemin<space>du<space>r<u00e9>pertoire<space>temp<space>dans<space>un<space>attribut<lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>object.setAttribute<openparen><apos>tmpDIR<apos><comma>temp_dir<closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>#<space>Stocke<space>le<space>chemin<space>du<space>fichier<space>GEX<space>dans<space>un<space>attribut<lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>object.setAttribute<openparen><apos>gexFile<apos><comma>temp_dir<space>+<space><apos><backslash>export.xml<apos><closeparen><lf><space><space><space><space><space><space><space><space>except:<space><lf><space><space><space><space><space><space><space><space><space><space><space><space>print<space><apos>PYTHON<space>Une<space>erreur<space>est<space>survenue<space>!<apos><lf><space><space><space><space><space><space><space><space><space><space><space><space>raise    OUTPUT PYOUTPUT FEATURE_TYPE PythonCaller_3_OUTPUT
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * XFMapFactory    FACTORY_NAME XMLFragmenter    INPUT  FEATURE_TYPE PythonCaller_3_OUTPUT    XML_FILE "@EvaluateExpression(FDIV,STRING,<at>Value<openparen>gexFile<closeparen>,XMLFragmenter)"    XFMAP_FEATURE_PATHS_EXPRESSION "gex:gtf_pro_workspace"    XFMAP_FEATURE_PATHS_STRUCTURE "<lf><lt>structure<space>separator=<quote>.<quote><space>map-empty-elements=<quote>yes<quote><space>matched-prefix=<quote>attributes<quote><space>matched-attributes=<quote>yes<quote><space>cardinality=<quote>+<opencurly>?<closecurly><quote><space>structure-prefix=<quote><quote><space>child-position-attribute=<quote><quote><space>except-expression=<quote><quote><space>ui-mode=<quote>basic<quote><space>matched-ancestor-attributes=<quote><quote><solidus><gt><lf>"    MERGE_ATTRIBUTES_FROM_INPUT Yes    OUTPUT MAPPED FEATURE_TYPE XMLFragmenter_FRAGMENTS
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover    INPUT  FEATURE_TYPE XMLFragmenter_FRAGMENTS    OUTPUT FEATURE_TYPE AttributeRemover_OUTPUT        @RemoveAttributes(gexFile,xml_fragment,xml_id,xml_matched_element,xml_parent_id,xml_parent_child_pos)        @RemoveAttributes(fme_regexp_match"$(AttributeRemover_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc NullAttributeMapper_3_779f1b88_1c74_49fa_8c9b_665f2e3a19410_null_replacer { otherValue newValue regExp } {    set attrs [split {form_type} { }];    set decode true;    if { {SELECTED} == {ALL} } {       set attrs [FME_AttributeNames];       set decode false; 	 };    set decodedVal [FME_DecodeText $otherValue];    set decodedRegExp [FME_DecodeText $regExp];    foreach attr $attrs {      set act {NOOP};      if {$decode} {        set attr [FME_DecodeText $attr];      };      if {[FME_AttributeExists $attr]} {          set attrVal [FME_GetAttribute $attr];          if {[FME_IsAttributeNull $attr] } {             if {[string first {SETNULL} {}] != -1} {                 set act {SETVALUE};             };          }          elseif { [string first {EMPTY} {}] != -1 && $attrVal == {}} {             set act {SETVALUE};          }          elseif { $otherValue != {} && [string equal $attrVal $decodedVal]} {             set act {SETVALUE};          }          elseif { $decodedRegExp != {} && [regexp $decodedRegExp $attrVal]==1 }          {             set act {SETVALUE};          };      }      elseif {[string first {MISSINGATTR} {}] != -1} {             set act {SETVALUE};      };      if {$act == {DELETEATTR} } {         FME_UnsetAttributes $attr;      } elseif { $act == {SETVALUE} } {         FME_SetAttribute $attr [FME_DecodeText $newValue];      } elseif { $act == {SETNULL} } {         FME_SetAttributeNull $attr;      } elseif { $act == {EMPTY} }      {         FME_SetAttribute $attr {};      };   }; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME NullAttributeMapper_3    INPUT  FEATURE_TYPE AttributeRemover_OUTPUT    OUTPUT FEATURE_TYPE NullAttributeMapper_3_OUTPUT         @Tcl2("NullAttributeMapper_3_779f1b88_1c74_49fa_8c9b_665f2e3a19410_null_replacer {} {default} {}")
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc NullAttributeMapper_4_21d73a36_2858_4e1f_bf5c_c5210bfd426c0_null_replacer { otherValue newValue regExp } {    set attrs [split {survey} { }];    set decode true;    if { {SELECTED} == {ALL} } {       set attrs [FME_AttributeNames];       set decode false; 	 };    set decodedVal [FME_DecodeText $otherValue];    set decodedRegExp [FME_DecodeText $regExp];    foreach attr $attrs {      set act {NOOP};      if {$decode} {        set attr [FME_DecodeText $attr];      };      if {[FME_AttributeExists $attr]} {          set attrVal [FME_GetAttribute $attr];          if {[FME_IsAttributeNull $attr] } {             if {[string first {SETNULL} {}] != -1} {                 set act {SETVALUE};             };          }          elseif { [string first {EMPTY} {}] != -1 && $attrVal == {}} {             set act {SETVALUE};          }          elseif { $otherValue != {} && [string equal $attrVal $decodedVal]} {             set act {SETVALUE};          }          elseif { $decodedRegExp != {} && [regexp $decodedRegExp $attrVal]==1 }          {             set act {SETVALUE};          };      }      elseif {[string first {MISSINGATTR} {}] != -1} {             set act {SETVALUE};      };      if {$act == {DELETEATTR} } {         FME_UnsetAttributes $attr;      } elseif { $act == {SETVALUE} } {         FME_SetAttribute $attr [FME_DecodeText $newValue];      } elseif { $act == {SETNULL} } {         FME_SetAttributeNull $attr;      } elseif { $act == {EMPTY} }      {         FME_SetAttribute $attr {};      };   }; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME NullAttributeMapper_4    INPUT  FEATURE_TYPE NullAttributeMapper_3_OUTPUT    OUTPUT FEATURE_TYPE NullAttributeMapper_4_OUTPUT         @Tcl2("NullAttributeMapper_4_21d73a36_2858_4e1f_bf5c_c5210bfd426c0_null_replacer {} {FALSE} {}")
+
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE NullAttributeMapper_4_OUTPUT ATTR email_template_id  ATTR tag default ATTR lb_method_id  ATTR success_action_id 0 ATTR failed_action_id 0    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT 
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer_2    INPUT  FEATURE_TYPE AttributeCreator_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL_ENCODED, workspace_id,gex_workspace_id,,label_name,name,)
+
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester    INPUT  FEATURE_TYPE AttributeRenamer_2_OUTPUT    TEST "@EvaluateExpression(FDIV,STRING,<at>Value<openparen>gex_workspace_id<closeparen>,Tester)" IN "@EvaluateExpression(FDIV,STRING,$(idWorkspaceList$encode),Tester)" TEST "@EvaluateExpression(FDIV,STRING,$(idWorkspaceList$encode),Tester)" = "*"    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_PASSED
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_10_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_10    INPUT  FEATURE_TYPE Tester_PASSED    OUTPUT FEATURE_TYPE AttributeRemover_10_OUTPUT        @RemoveAttributes(fme_encoded,category_id)        @RemoveAttributes(fme_pcre_match"$(AttributeRemover_10_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_8    INPUT  FEATURE_TYPE AttributeRemover_10_OUTPUT    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>category_name<closeparen>,Tester_8) = "" ENCODED TEST category_name ATTRIBUTE_VALUE_NULL "" ENCODED TEST category_name ATTRIBUTE_IS_EMPTY "" ENCODED TEST category_name ATTRIBUTE_IS_MISSING "" ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_8_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_8_FAILED
+# -------------------------------------------------------------------------
+MACRO SQLExecutor_4_DIRECTIVES PASSWORD "$(dbPassword)" HOST "$(dbServer)" USER_NAME "$(dbUser)" PORT "$(dbPort)" QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes
+
+FACTORY_DEF * QueryFactory    FACTORY_NAME SQLExecutor_4    INPUT  FEATURE_TYPE Tester_8_FAILED    QUERY_SQL            "@EvaluateExpression(FDIV,STRING_ENCODED,select<space>category_id<space>as<space>category_id<space>from<space>s_gtf.category<space>where<space>name<space>=<space><apos><at>Value<openparen>category_name<closeparen><apos>,SQLExecutor_4)"    READER_TYPE          POSTGRES    READER_DATASET       "@EvaluateExpression(FDIV,STRING_ENCODED,$(dbDatabase$encode),SQLExecutor_4)"    COMBINE_ATTRIBUTES   PREFER_RESULT    COMBINE_GEOMETRY     QUERY_ONLY    READER_PARAMS        $(SQLExecutor_4_DIRECTIVES)    OUTPUT RESULT FEATURE_TYPE SQLExecutor_4_RESULT    OUTPUT QUERY FEATURE_TYPE SQLExecutor_4_INITIATOR
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_7    INPUT  FEATURE_TYPE SQLExecutor_4_INITIATOR    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_matched_records<closeparen>,Tester_7) = 0 ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_7_PASSED
+# -------------------------------------------------------------------------
+
+Tcl2 proc DuplicateRemover_c9580f67_b1f8_410e_abb5_20c2434dc19a0_dupKeyCount { attrList } {     set attrList [string trim $attrList {()}];     set attrs [split $attrList { } ];     set attrVal {___DuplicateRemover_c9580f67_b1f8_410e_abb5_20c2434dc19a0___};     foreach {attrName} $attrs {         set attrName [FME_DecodeText $attrName];         append attrVal [FME_GetAttribute $attrName] {_fmebreak_};     };     return [expr [incr ::__DuplicateRemover_c9580f67_b1f8_410e_abb5_20c2434dc19a0__KeySeenCount($attrVal)] - 1]; };
+FACTORY_DEF * TestFactory    FACTORY_NAME DuplicateRemover    INPUT  FEATURE_TYPE Tester_7_PASSED    TEST @Tcl2("DuplicateRemover_c9580f67_b1f8_410e_abb5_20c2434dc19a0_dupKeyCount {(category_name)}") > 0    OUTPUT FAILED FEATURE_TYPE DuplicateRemover_UNIQUE
+
+# -------------------------------------------------------------------------
+MACRO SQLExecutor_5_DIRECTIVES PASSWORD "$(dbPassword)" HOST "$(dbServer)" USER_NAME "$(dbUser)" PORT "$(dbPort)" QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes
+
+FACTORY_DEF * QueryFactory    FACTORY_NAME SQLExecutor_5    INPUT  FEATURE_TYPE DuplicateRemover_UNIQUE    QUERY_SQL            "select<space>nextval<openparen><apos>s_gtf.seq_common<apos><closeparen><space>as<space>category_id"    READER_TYPE          POSTGRES    READER_DATASET       "@EvaluateExpression(FDIV,STRING_ENCODED,$(dbDatabase$encode),SQLExecutor_5)"    COMBINE_ATTRIBUTES   PREFER_RESULT    COMBINE_GEOMETRY     QUERY_ONLY    READER_PARAMS        $(SQLExecutor_5_DIRECTIVES)    OUTPUT RESULT FEATURE_TYPE SQLExecutor_5_RESULT    OUTPUT QUERY FEATURE_TYPE SQLExecutor_5_INITIATOR
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "SQLExecutor_5 RESULT Splitter"   INPUT FEATURE_TYPE SQLExecutor_5_RESULT   OUTPUT FEATURE_TYPE SQLExecutor_5_RESULT_0_U/Sc0RKvjZA=   OUTPUT FEATURE_TYPE SQLExecutor_5_RESULT_1_0mhshCfetJs=
+FACTORY_DEF * TeeFactory   FACTORY_NAME "SQLExecutor_5 INITIATOR Output Nuker"   INPUT FEATURE_TYPE SQLExecutor_5_INITIATOR
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeKeeper_5_04b50dd6_1398_45ee_a83a_56286d64ba230_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeKeeper_5    INPUT  FEATURE_TYPE SQLExecutor_5_RESULT_0_U/Sc0RKvjZA=    OUTPUT FEATURE_TYPE AttributeKeeper_5_OUTPUT        @KeepAttributes(fme_encoded,category_id,category_name,fme_pcre_match,"^fme_$(AttributeKeeper_5_04b50dd6_1398_45ee_a83a_56286d64ba230_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer_5    INPUT  FEATURE_TYPE AttributeKeeper_5_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_5_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL_ENCODED, category_name,name,)
+
+
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_8 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE Tester_8_PASSED ATTR category_id  ATTR category_name     OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_8_OUTPUT 
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_2    INPUT  FEATURE_TYPE s_gtf.workspace_POSTGRES_1_1_kQA9HcoEkYM=    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>key<closeparen>,Tester_2) != "" ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_2_PASSED
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeKeeper_7_58042a47_1021_40e1_850d_1e3c616ef0cc0_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeKeeper_7    INPUT  FEATURE_TYPE Tester_2_PASSED    OUTPUT FEATURE_TYPE AttributeKeeper_7_OUTPUT        @KeepAttributes(key,name,workspace_id,fme_regexp_match,"^fme_$(AttributeKeeper_7_58042a47_1021_40e1_850d_1e3c616ef0cc0_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer    INPUT  FEATURE_TYPE AttributeKeeper_7_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL_ENCODED, workspace_id,gtf_workspace_id,,name,gtf_name,)
+
+
+# -------------------------------------------------------------------------
+
+INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } {                puts "MACRO FeatureMerger_3_REFERENCE_INFO ATTRIBUTES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} } {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } {                puts "MACRO FeatureMerger_3_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          else {}; ]
+
+FACTORY_DEF * ReferenceFactory    FACTORY_NAME FeatureMerger_3    INPUT REFERENCER FEATURE_TYPE SQLExecutor_4_RESULT    INPUT REFERENCER FEATURE_TYPE SQLExecutor_5_RESULT_1_0mhshCfetJs=    INPUT REFERENCER FEATURE_TYPE AttributeCreator_8_OUTPUT    INPUT REFERENCEE FEATURE_TYPE AttributeRenamer_OUTPUT    REFERENCE_INFO $(FeatureMerger_3_REFERENCE_INFO)    REFERENCE_TABLE @EvaluateExpression(STRING_ENCODED,<at>Value<openparen>key<closeparen>,FeatureMerger_3) @EvaluateExpression(STRING_ENCODED,<at>Value<openparen>key<closeparen>,FeatureMerger_3)    IGNORE_NULLS "Yes"    MERGE_ATTRIBUTES Yes    MANAGE_FME_TYPE Yes    MODE COMPLETE    PROCESS_DUPLICATE_REFERENCEES No    REFERENCEES_FIRST No    OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_3_MERGED    OUTPUT INCOMPLETE FEATURE_TYPE FeatureMerger_3_NOT_MERGED
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_9_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_9    INPUT  FEATURE_TYPE FeatureMerger_3_NOT_MERGED    OUTPUT FEATURE_TYPE AttributeRemover_9_OUTPUT        @RemoveAttributes(fme_encoded,owner)        @RemoveAttributes(fme_pcre_match"$(AttributeRemover_9_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_4    INPUT  FEATURE_TYPE AttributeRemover_9_OUTPUT    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>key<closeparen>,Tester_4) = "" ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_4_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_4_FAILED
+# -------------------------------------------------------------------------
+
+Tcl2 proc TimeStamper_2_formatGetter { inVal } {    if { [string compare $inVal {FME Date/Time (^Y^m^d^H^M^S)}] == 0 } {       return {^Y^m^d^H^M^S};    } elseif { [string compare $inVal {FME Date (^Y^m^d)}] == 0} {       return {^Y^m^d};    } elseif { [string compare $inVal {FME Time (^H^M^S)}] == 0} {       return {^H^M^S};    } elseif { [string compare $inVal {XML Date (^Y-^m-^d)}] == 0} {       return {^Y-^m-^d};    } elseif { [string compare $inVal {XML DateTime (^Y-^m-^dT^H:^M:^S)}] == 0} {       return {^Y-^m-^dT^H:^M:^S};    } elseif { [string compare $inVal {XML Time (^H:^M:^S)}] == 0} {       return {^H:^M:^S};    } elseif { [string compare $inVal {Locale Date (^c)}] == 0} {       return {^c};    };    return $inVal; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME TimeStamper_2    INPUT  FEATURE_TYPE Tester_4_PASSED    OUTPUT FEATURE_TYPE TimeStamper_2_OUTPUT         @SupplyAttributes(ENCODED, _timeStamp, @Timestamp(@Tcl2("TimeStamper_2_formatGetter {^s} ")))
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc RandomNumberGenerator_2_generator {paramMin paramMax paramPlaces} {    set absoluteMax [expr abs($paramMax)];    set absoluteMin [expr abs($paramMin)];    if {$absoluteMin > $absoluteMax} {       set temp $absoluteMax;       set absoluteMax $absoluteMin;       set absoluteMin $temp;    };    set maxNumDigits 1;    if {$absoluteMax > 0} {       set maxNumDigits [expr int(log10($absoluteMax) + 1)];    };    set positiveParamPlaces [expr abs($paramPlaces)];    if {$paramMin > $paramMax} {       FME_SetAttribute {"_random_number"} NaN;    } elseif {$paramPlaces < 0 && $maxNumDigits <= $positiveParamPlaces} {       FME_SetAttribute {"_random_number"} 0;    } else {       set randomNumber [expr rand()];       set mult [expr pow(10, $paramPlaces)];       set innerMin [expr double($paramMin)];       set innerMax [expr double($paramMax)];       if {$paramPlaces > 0} {          set addValue [expr pow(10, -$paramPlaces)];          set indexDotMin [string first "." $innerMin];          set indexDotMax [string first "." $innerMax];          set countDecPlacesMin [expr [string length $innerMin] - $indexDotMin - 1];          set countDecPlacesMax [expr [string length $innerMax] - $indexDotMax - 1];          set countTruncatedDecPlaces [expr $countDecPlacesMin - $paramPlaces];          if {$countTruncatedDecPlaces > 0} {             set zeroes [string repeat "0" $countTruncatedDecPlaces];             set truncatedDecPlaces [string range $innerMin [expr $indexDotMin + 1 + $paramPlaces] [string length $innerMin]];             if {![string equal $truncatedDecPlaces $zeroes]}             {                set truncatedResult [string range $innerMin 0 [expr $indexDotMin + $paramPlaces]];                if {$innerMin > 0} {                   set truncatedResult [expr $truncatedResult + $addValue];                };                set innerMin $truncatedResult;             };          };          set countTruncatedDecPlaces [expr $countDecPlacesMax - $paramPlaces];          if {$countTruncatedDecPlaces > 0} {             set zeroes [string repeat "0" $countTruncatedDecPlaces];             set truncatedDecPlaces [string range $innerMax [expr $indexDotMax + 1 + $paramPlaces] [string length $innerMax]];             if {![string equal $truncatedDecPlaces $zeroes]}             {                set truncatedResult [string range $innerMax 0 [expr $indexDotMax + $paramPlaces]];                if {$innerMax < 0} {                   set truncatedResult [expr $truncatedResult - $addValue];                };                set innerMax $truncatedResult;             };          };       } else {          set innerMin [expr ceil($paramMin * $mult) * 1.0 / $mult];          set innerMax [expr floor($paramMax * $mult) * 1.0 / $mult];       };       set integerMin $innerMin;       set integerMax $innerMax;       set integerMin [expr wide($innerMin * $mult)];       set integerMax [expr wide($innerMax * $mult)];       set integerResult [expr $integerMin + wide($randomNumber * ($integerMax + 1 - $integerMin))];       set result [expr $integerResult * 1.0 / $mult];       set formatString "%.0f";       if {$paramPlaces > 0} {          set formatString [format "%%.%df" $paramPlaces];       };       FME_SetAttribute {"_random_number"} [format $formatString $result];    }; }
+FACTORY_DEF * TestFactory    FACTORY_NAME RandomNumberGenerator_2_MinRejecter    INPUT  FEATURE_TYPE TimeStamper_2_OUTPUT    TEST "1000" TYPE NUM ENCODED    OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_2__toMaxRejecter__
+FACTORY_DEF * TestFactory    FACTORY_NAME RandomNumberGenerator_2_MaxRejecter    INPUT FEATURE_TYPE RandomNumberGenerator_2__toMaxRejecter__    TEST "9999" TYPE NUM ENCODED    OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_2__toPlacesRejecter__
+FACTORY_DEF * TestFactory    FACTORY_NAME RandomNumberGenerator_2_PlacesRejecter    INPUT FEATURE_TYPE RandomNumberGenerator_2__toPlacesRejecter__    TEST "0" TYPE INT ENCODED    OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_2__toOutput__
+FACTORY_DEF * TeeFactory    FACTORY_NAME RandomNumberGenerator_2_RandomNumberGenerator    INPUT FEATURE_TYPE RandomNumberGenerator_2__toOutput__    OUTPUT FEATURE_TYPE RandomNumberGenerator_2_OUTPUT         @Tcl2("RandomNumberGenerator_2_generator {1000} {9999} {0} ")
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc StringConcatenator_2_d0e3d71d_0d5c_4a4a_8f0d_fcc824eeedf30_doSetAttr {attrText} {    FME_SetAttribute [FME_DecodeText {key}] [FME_DecodeText $attrText] }
+FACTORY_DEF * TeeFactory    FACTORY_NAME StringConcatenator_2    INPUT  FEATURE_TYPE RandomNumberGenerator_2_OUTPUT    OUTPUT FEATURE_TYPE StringConcatenator_2_OUTPUT        @Tcl2("StringConcatenator_2_d0e3d71d_0d5c_4a4a_8f0d_fcc824eeedf30_doSetAttr {@EvaluateExpression(STRING_ENCODED,<at>Value<openparen>_timeStamp<closeparen><at>Value<openparen>_random_number<closeparen>,StringConcatenator_2)} ")
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_7_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_7    INPUT  FEATURE_TYPE StringConcatenator_2_OUTPUT    OUTPUT FEATURE_TYPE AttributeRemover_7_OUTPUT        @RemoveAttributes(_random_number,_timeStamp)        @RemoveAttributes(fme_regexp_match"$(AttributeRemover_7_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME BaseConverter_2    INPUT  FEATURE_TYPE AttributeRemover_7_OUTPUT    OUTPUT FEATURE_TYPE BaseConverter_2_OUTPUT         "key" @ConvertBase("@Value(key)",10,32,0)
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeCopier    INPUT  FEATURE_TYPE BaseConverter_2_OUTPUT    INPUT  FEATURE_TYPE Tester_4_FAILED    OUTPUT FEATURE_TYPE AttributeCopier_OUTPUT         @CopyAttributes(gex_name,name)
+
+# -------------------------------------------------------------------------
+INCLUDE [          if { ({Selected Attributes} == {All Attributes}) } {             puts {MACRO StringCaseChanger_2_func @RenameAttributes(value,.*,lower)};          } else {             puts {MACRO StringCaseChanger_2_func @RenameAttributes(LIST_ATTR, "value", "gex_name",lower)};          }         ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME StringCaseChanger_2    INPUT  FEATURE_TYPE AttributeCopier_OUTPUT    OUTPUT FEATURE_TYPE StringCaseChanger_2_OUTPUT         $(StringCaseChanger_2_func)
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc ParameterFetcher_3_doFetch {} {    foreach {name val} {"_duplicateKey {$(duplicateKey)}"} {         if { [string match {*<at>*} $val] == 1 } {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher_3}];         } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher_3}];         } else {             set val [FME_DecodeTextOrAttr $val];         };       FME_SetAttribute [FME_DecodeText $name] $val    } }
+FACTORY_DEF * TeeFactory    FACTORY_NAME ParameterFetcher_3    INPUT  FEATURE_TYPE FeatureMerger_3_MERGED    OUTPUT FEATURE_TYPE ParameterFetcher_3_OUTPUT         @Tcl2(ParameterFetcher_3_doFetch)
+
+# -------------------------------------------------------------------------
+Lookup AttributeFilter_2_AttributeFilterLut   0 ok   1 ok   2 ok   "" notok   ENCODED
+
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter_2    INPUT  FEATURE_TYPE ParameterFetcher_3_OUTPUT    TEST @Lookup(AttributeFilter_2_AttributeFilterLut,_duplicateKey,ENCODED_ATTR) == "ok"    OUTPUT PASSED FEATURE_TYPE * @FeatureType(SET_FROM_ATTR, _duplicateKey, AttributeFilter_2)    OUTPUT FAILED FEATURE_TYPE AttributeFilter_2_<NULL>
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter_2_NullFilter    INPUT FEATURE_TYPE AttributeFilter_2_<NULL>    TEST _duplicateKey ATTRIBUTE_VALUE_NULL "" ENCODED    OUTPUT PASSED FEATURE_TYPE AttributeFilter_2_<NULL>    OUTPUT FAILED FEATURE_TYPE AttributeFilter_2_<MISSING>
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter_2_MissingFilter    INPUT FEATURE_TYPE AttributeFilter_2_<MISSING>    TEST _duplicateKey ATTRIBUTE_IS_MISSING "" ENCODED    OUTPUT PASSED FEATURE_TYPE AttributeFilter_2_<MISSING>    OUTPUT FAILED FEATURE_TYPE AttributeFilter_2_<UNFILTERED>
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter_2_BlankFilter    INPUT FEATURE_TYPE AttributeFilter_2_<UNFILTERED>    TEST _duplicateKey ATTRIBUTE_IS_EMPTY "" ENCODED    OUTPUT PASSED FEATURE_TYPE AttributeFilter_2_<EMPTY>    OUTPUT FAILED FEATURE_TYPE AttributeFilter_2_<UNFILTERED>
+
+
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter_2 <EMPTY> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_2_<EMPTY>
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter_2 <MISSING> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_2_<MISSING>
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter_2 <NULL> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_2_<NULL>
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter_2 <UNFILTERED> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_2_<UNFILTERED>
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_5_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_5    INPUT  FEATURE_TYPE AttributeFilter_2_2    OUTPUT FEATURE_TYPE AttributeRemover_5_OUTPUT        @RemoveAttributes(fme_encoded,_duplicateKey,owner)        @RemoveAttributes(fme_pcre_match"$(AttributeRemover_5_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_6_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_6    INPUT  FEATURE_TYPE AttributeRemover_5_OUTPUT    OUTPUT FEATURE_TYPE AttributeRemover_6_OUTPUT        @RemoveAttributes(fme_encoded,name)        @RemoveAttributes(fme_pcre_match"$(AttributeRemover_6_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer_4    INPUT  FEATURE_TYPE AttributeRemover_6_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_4_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL_ENCODED, gtf_name,name,)
+
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeCopier_2    INPUT  FEATURE_TYPE AttributeRenamer_4_OUTPUT    OUTPUT FEATURE_TYPE AttributeCopier_2_OUTPUT         @CopyAttributes(ENCODED,ATTR_LIST_DEF_VAL, gtf_workspace_id,workspace_id,)
+
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_2 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE AttributeCopier_2_OUTPUT ATTR fme_db_operation UPDATE ATTR fme_where workspace_id<space>=<space><apos><at>Value<openparen>gtf_workspace_id<closeparen><apos>    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT 
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeCreator_2 OUTPUT Splitter"   INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT   OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs=   OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA=
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeKeeper_4_c96356b3_a271_4d3d_a629_e1c7d2e7fdc60_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeKeeper_4    INPUT  FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA=    OUTPUT FEATURE_TYPE AttributeKeeper_4_OUTPUT        @KeepAttributes(fme_encoded,key,name,workspace_id,fme_pcre_match,"^fme_$(AttributeKeeper_4_c96356b3_a271_4d3d_a629_e1c7d2e7fdc60_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_7 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE AttributeKeeper_4_OUTPUT ATTR statut Mis<space><u00e0><space>jour<space>dans<space>GTF    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_7_OUTPUT 
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeKeeper_1d87d14d_cae0_4c37_addb_1c308b8ff9660_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeKeeper    INPUT  FEATURE_TYPE AttributeFilter_2_1    OUTPUT FEATURE_TYPE AttributeKeeper_OUTPUT        @KeepAttributes(fme_encoded,key,name,fme_pcre_match,"^fme_$(AttributeKeeper_1d87d14d_cae0_4c37_addb_1c308b8ff9660_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_5 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE AttributeKeeper_OUTPUT ATTR statut Non<space>mis<space><u00e0><space>jour<space>dans<space>GTF    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_5_OUTPUT 
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_2_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_2    INPUT  FEATURE_TYPE AttributeFilter_2_0    OUTPUT FEATURE_TYPE AttributeRemover_2_OUTPUT        @RemoveAttributes(fme_encoded,_duplicateKey,gtf_workspace_id,key,owner)        @RemoveAttributes(fme_pcre_match"$(AttributeRemover_2_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc TimeStamper_formatGetter { inVal } {    if { [string compare $inVal {FME Date/Time (^Y^m^d^H^M^S)}] == 0 } {       return {^Y^m^d^H^M^S};    } elseif { [string compare $inVal {FME Date (^Y^m^d)}] == 0} {       return {^Y^m^d};    } elseif { [string compare $inVal {FME Time (^H^M^S)}] == 0} {       return {^H^M^S};    } elseif { [string compare $inVal {XML Date (^Y-^m-^d)}] == 0} {       return {^Y-^m-^d};    } elseif { [string compare $inVal {XML DateTime (^Y-^m-^dT^H:^M:^S)}] == 0} {       return {^Y-^m-^dT^H:^M:^S};    } elseif { [string compare $inVal {XML Time (^H:^M:^S)}] == 0} {       return {^H:^M:^S};    } elseif { [string compare $inVal {Locale Date (^c)}] == 0} {       return {^c};    };    return $inVal; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME TimeStamper    INPUT  FEATURE_TYPE AttributeRemover_2_OUTPUT    OUTPUT FEATURE_TYPE TimeStamper_OUTPUT         @SupplyAttributes(ENCODED, _timeStamp, @Timestamp(@Tcl2("TimeStamper_formatGetter {^s} ")))
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc RandomNumberGenerator_3_generator {paramMin paramMax paramPlaces} {    set absoluteMax [expr abs($paramMax)];    set absoluteMin [expr abs($paramMin)];    if {$absoluteMin > $absoluteMax} {       set temp $absoluteMax;       set absoluteMax $absoluteMin;       set absoluteMin $temp;    };    set maxNumDigits 1;    if {$absoluteMax > 0} {       set maxNumDigits [expr int(log10($absoluteMax) + 1)];    };    set positiveParamPlaces [expr abs($paramPlaces)];    if {$paramMin > $paramMax} {       FME_SetAttribute {"_random_number"} NaN;    } elseif {$paramPlaces < 0 && $maxNumDigits <= $positiveParamPlaces} {       FME_SetAttribute {"_random_number"} 0;    } else {       set randomNumber [expr rand()];       set mult [expr pow(10, $paramPlaces)];       set innerMin [expr double($paramMin)];       set innerMax [expr double($paramMax)];       if {$paramPlaces > 0} {          set addValue [expr pow(10, -$paramPlaces)];          set indexDotMin [string first "." $innerMin];          set indexDotMax [string first "." $innerMax];          set countDecPlacesMin [expr [string length $innerMin] - $indexDotMin - 1];          set countDecPlacesMax [expr [string length $innerMax] - $indexDotMax - 1];          set countTruncatedDecPlaces [expr $countDecPlacesMin - $paramPlaces];          if {$countTruncatedDecPlaces > 0} {             set zeroes [string repeat "0" $countTruncatedDecPlaces];             set truncatedDecPlaces [string range $innerMin [expr $indexDotMin + 1 + $paramPlaces] [string length $innerMin]];             if {![string equal $truncatedDecPlaces $zeroes]}             {                set truncatedResult [string range $innerMin 0 [expr $indexDotMin + $paramPlaces]];                if {$innerMin > 0} {                   set truncatedResult [expr $truncatedResult + $addValue];                };                set innerMin $truncatedResult;             };          };          set countTruncatedDecPlaces [expr $countDecPlacesMax - $paramPlaces];          if {$countTruncatedDecPlaces > 0} {             set zeroes [string repeat "0" $countTruncatedDecPlaces];             set truncatedDecPlaces [string range $innerMax [expr $indexDotMax + 1 + $paramPlaces] [string length $innerMax]];             if {![string equal $truncatedDecPlaces $zeroes]}             {                set truncatedResult [string range $innerMax 0 [expr $indexDotMax + $paramPlaces]];                if {$innerMax < 0} {                   set truncatedResult [expr $truncatedResult - $addValue];                };                set innerMax $truncatedResult;             };          };       } else {          set innerMin [expr ceil($paramMin * $mult) * 1.0 / $mult];          set innerMax [expr floor($paramMax * $mult) * 1.0 / $mult];       };       set integerMin $innerMin;       set integerMax $innerMax;       set integerMin [expr wide($innerMin * $mult)];       set integerMax [expr wide($innerMax * $mult)];       set integerResult [expr $integerMin + wide($randomNumber * ($integerMax + 1 - $integerMin))];       set result [expr $integerResult * 1.0 / $mult];       set formatString "%.0f";       if {$paramPlaces > 0} {          set formatString [format "%%.%df" $paramPlaces];       };       FME_SetAttribute {"_random_number"} [format $formatString $result];    }; }
+FACTORY_DEF * TestFactory    FACTORY_NAME RandomNumberGenerator_3_MinRejecter    INPUT  FEATURE_TYPE TimeStamper_OUTPUT    TEST "1000000000" TYPE NUM ENCODED    OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_3__toMaxRejecter__
+FACTORY_DEF * TestFactory    FACTORY_NAME RandomNumberGenerator_3_MaxRejecter    INPUT FEATURE_TYPE RandomNumberGenerator_3__toMaxRejecter__    TEST "9999999999" TYPE NUM ENCODED    OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_3__toPlacesRejecter__
+FACTORY_DEF * TestFactory    FACTORY_NAME RandomNumberGenerator_3_PlacesRejecter    INPUT FEATURE_TYPE RandomNumberGenerator_3__toPlacesRejecter__    TEST "0" TYPE INT ENCODED    OUTPUT PASSED FEATURE_TYPE RandomNumberGenerator_3__toOutput__
+FACTORY_DEF * TeeFactory    FACTORY_NAME RandomNumberGenerator_3_RandomNumberGenerator    INPUT FEATURE_TYPE RandomNumberGenerator_3__toOutput__    OUTPUT FEATURE_TYPE RandomNumberGenerator_3_OUTPUT         @Tcl2("RandomNumberGenerator_3_generator {1000000000} {9999999999} {0} ")
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc StringConcatenator_24f06ce8_a177_4c80_8c25_de082ec2bf420_doSetAttr {attrText} {    FME_SetAttribute [FME_DecodeText {key}] [FME_DecodeText $attrText] }
+FACTORY_DEF * TeeFactory    FACTORY_NAME StringConcatenator    INPUT  FEATURE_TYPE RandomNumberGenerator_3_OUTPUT    OUTPUT FEATURE_TYPE StringConcatenator_OUTPUT        @Tcl2("StringConcatenator_24f06ce8_a177_4c80_8c25_de082ec2bf420_doSetAttr {@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_random_number<closeparen><at>Value<openparen>_timeStamp<closeparen>,StringConcatenator)} ")
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_3_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_3    INPUT  FEATURE_TYPE StringConcatenator_OUTPUT    OUTPUT FEATURE_TYPE AttributeRemover_3_OUTPUT        @RemoveAttributes(_random_number,_timeStamp)        @RemoveAttributes(fme_regexp_match"$(AttributeRemover_3_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME BaseConverter    INPUT  FEATURE_TYPE AttributeRemover_3_OUTPUT    OUTPUT FEATURE_TYPE BaseConverter_OUTPUT         "key" @ConvertBase("@Value(key)",10,36,0)
+
+# -------------------------------------------------------------------------
+
+# Since the Tcl "END" index specification starts at -1 for the second
+# last character, and we've defined -1 to be the last charater, we've got
+# small bit of fiddling to do
+
+Tcl2 proc SubstringExtractor_fixLastIndex {lastValue} {     if {$lastValue < -1} {         incr lastValue;         return "end$lastValue";     }     elseif {$lastValue == -1} {         return "end";     }     else {         return $lastValue;     } }
+Tcl2 proc SubstringExtractor_extract {startIdx endIdx} {     FME_SetAttribute [FME_DecodeText name]         [string range [FME_DecodeTextOrAttr @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>name<closeparen>,SubstringExtractor)]                       [SubstringExtractor_fixLastIndex $startIdx]                       [SubstringExtractor_fixLastIndex $endIdx]]     }
+FACTORY_DEF * TeeFactory    FACTORY_NAME SubstringExtractor    INPUT  FEATURE_TYPE BaseConverter_OUTPUT    OUTPUT FEATURE_TYPE SubstringExtractor_OUTPUT         @Tcl2("SubstringExtractor_extract 0 74")
+
+# -------------------------------------------------------------------------
+
+Tcl2 proc TimeStamper_3_formatGetter { inVal } {    if { [string compare $inVal {FME Date/Time (^Y^m^d^H^M^S)}] == 0 } {       return {^Y^m^d^H^M^S};    } elseif { [string compare $inVal {FME Date (^Y^m^d)}] == 0} {       return {^Y^m^d};    } elseif { [string compare $inVal {FME Time (^H^M^S)}] == 0} {       return {^H^M^S};    } elseif { [string compare $inVal {ISO Date (^Y-^m-^d)}] == 0} {       return {^Y-^m-^d};    } elseif { [string compare $inVal {ISO DateTime (^Y-^m-^dT^H:^M:^S)}] == 0} {       return {^Y-^m-^dT^H:^M:^S};    } elseif { [string compare $inVal {ISO Time (^H:^M:^S)}] == 0} {       return {^H:^M:^S};    } elseif { [string compare $inVal {Locale Date (^c)}] == 0} {       return {^c};    };    return $inVal; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME TimeStamper_3    INPUT  FEATURE_TYPE SubstringExtractor_OUTPUT    OUTPUT FEATURE_TYPE TimeStamper_3_OUTPUT         @SupplyAttributes(ENCODED, _timestamp, @Timestamp(@Tcl2("TimeStamper_3_formatGetter {FME Date/Time (^Y^m^d^H^M^S)} ")))
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * AttrSetFactory    FACTORY_NAME AttributeCreator_9    INPUT  FEATURE_TYPE TimeStamper_3_OUTPUT    MULTI_FEATURE_MODE NO 	 NULL_ATTR_MODE NO_OP 	 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV 	 ATTR_ACTION "" "name" "SET_TO" "<at>Value<openparen>name<closeparen><space><at>Value<openparen>_timestamp<closeparen>"    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_9_OUTPUT
+
+
+# -------------------------------------------------------------------------
+MACRO SQLExecutor_DIRECTIVES QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes HOST "$(dbServer)" PASSWORD "$(dbPassword)" PORT "$(dbPort)" USER_NAME "$(dbUser)"
+
+FACTORY_DEF * QueryFactory    FACTORY_NAME SQLExecutor    INPUT  FEATURE_TYPE AttributeCreator_9_OUTPUT    QUERY_SQL            "select<space>nextval<openparen><apos>s_gtf.seq_common<apos><closeparen><space>as<space>workspace_id"    READER_TYPE          POSTGRES    READER_DATASET       "@EvaluateExpression(FDIV,STRING_ENCODED,$(dbDatabase$encode),SQLExecutor)"    COMBINE_ATTRIBUTES   PREFER_RESULT    COMBINE_GEOMETRY     QUERY_ONLY    READER_PARAMS        $(SQLExecutor_DIRECTIVES)    OUTPUT RESULT FEATURE_TYPE SQLExecutor_RESULT    OUTPUT QUERY FEATURE_TYPE SQLExecutor_INITIATOR
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "SQLExecutor INITIATOR Output Nuker"   INPUT FEATURE_TYPE SQLExecutor_INITIATOR
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_3 INPUT  FEATURE_TYPE SQLExecutor_RESULT ATTR fme_db_operation INSERT    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_3_OUTPUT 
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeCreator_3 OUTPUT Splitter"   INPUT FEATURE_TYPE AttributeCreator_3_OUTPUT   OUTPUT FEATURE_TYPE AttributeCreator_3_OUTPUT_0_5wmj1QTDBCM=   OUTPUT FEATURE_TYPE AttributeCreator_3_OUTPUT_1_1sMaJ5SQWdM=
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeKeeper_3_bf77963b_cce5_4f48_b9a5_2ffbd0a250250_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeKeeper_3    INPUT  FEATURE_TYPE s_gtf.workspace_POSTGRES_1_0_yiNk/2jyS1o=    OUTPUT FEATURE_TYPE AttributeKeeper_3_OUTPUT        @KeepAttributes(name,fme_regexp_match,"^fme_$(AttributeKeeper_3_bf77963b_cce5_4f48_b9a5_2ffbd0a250250_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer_3    INPUT  FEATURE_TYPE AttributeKeeper_3_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_3_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL, name,gtf_name,)
+
+
+# -------------------------------------------------------------------------
+INCLUDE [          if { ({Selected Attributes} == {All Attributes}) } {             puts {MACRO StringCaseChanger_func @RenameAttributes(value,.*,lower)};          } else {             puts {MACRO StringCaseChanger_func @RenameAttributes(LIST_ATTR, "value", "gtf_name",lower)};          }         ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME StringCaseChanger    INPUT  FEATURE_TYPE AttributeRenamer_3_OUTPUT    OUTPUT FEATURE_TYPE StringCaseChanger_OUTPUT         $(StringCaseChanger_func)
+
+# -------------------------------------------------------------------------
+
+INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } {                puts "MACRO FeatureMerger_REFERENCE_INFO ATTRIBUTES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {POLYGONS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {AGGREGATES}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {<Unused>} == {LINESFROMPOINTS}} {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS";             }          elseif { {ATTRIBUTES} == {GEOM_BUILD} } {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES";             }          elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } {                puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES";             }          else {}; ]
+
+FACTORY_DEF * ReferenceFactory    FACTORY_NAME FeatureMerger    INPUT REFERENCER FEATURE_TYPE StringCaseChanger_2_OUTPUT    INPUT REFERENCEE FEATURE_TYPE StringCaseChanger_OUTPUT    REFERENCE_INFO $(FeatureMerger_REFERENCE_INFO)    REFERENCE_TABLE @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>gex_name<closeparen>,FeatureMerger) @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>gtf_name<closeparen>,FeatureMerger)    IGNORE_NULLS "Yes"    MERGE_ATTRIBUTES Yes    MANAGE_FME_TYPE Yes    MODE COMPLETE    PROCESS_DUPLICATE_REFERENCEES No    REFERENCEES_FIRST No    OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_MERGED    OUTPUT INCOMPLETE FEATURE_TYPE FeatureMerger_NOT_MERGED
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_4_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_4    INPUT  FEATURE_TYPE FeatureMerger_MERGED    OUTPUT FEATURE_TYPE AttributeRemover_4_OUTPUT        @RemoveAttributes(fme_encoded,gex_name,gtf_name)        @RemoveAttributes(fme_pcre_match"$(AttributeRemover_4_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+# Since the Tcl "END" index specification starts at -1 for the second
+# last character, and we've defined -1 to be the last charater, we've got
+# small bit of fiddling to do
+
+Tcl2 proc SubstringExtractor_2_fixLastIndex {lastValue} {     if {$lastValue < -1} {         incr lastValue;         return "end$lastValue";     }     elseif {$lastValue == -1} {         return "end";     }     else {         return $lastValue;     } }
+Tcl2 proc SubstringExtractor_2_extract {startIdx endIdx} {     FME_SetAttribute [FME_DecodeText name]         [string range [FME_DecodeTextOrAttr @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>name<closeparen>,SubstringExtractor_2)]                       [SubstringExtractor_2_fixLastIndex $startIdx]                       [SubstringExtractor_2_fixLastIndex $endIdx]]     }
+FACTORY_DEF * TeeFactory    FACTORY_NAME SubstringExtractor_2    INPUT  FEATURE_TYPE AttributeRemover_4_OUTPUT    OUTPUT FEATURE_TYPE SubstringExtractor_2_OUTPUT         @Tcl2("SubstringExtractor_2_extract 0 74")
+
+# -------------------------------------------------------------------------
+
+
+FME_PYTHON_PATH "$(FME_MF_DIR)"
+
+FACTORY_DEF * PythonFactory    FACTORY_NAME PythonCaller_2    INPUT  FEATURE_TYPE SubstringExtractor_2_OUTPUT    SYMBOL_NAME myFunction2    SOURCE_CODE #<space>-*-<space>coding:<space>utf-8<space>-*-<lf>import<space>time<lf>import<space>fmeobjects<lf><lf>def<space>myFunction2<openparen>object<closeparen>:<lf><space><space><space><space>#<space>Extrait<space>la<space>date<space>et<space>l<apos>heure<space>du<space>jour<lf><space><space><space><space>temps<space>=<space>time.strftime<openparen><apos>%Y%m%d-%H%M%S<apos><comma>time.localtime<openparen><closeparen><closeparen><lf><space><space><space><space>#<space>Modifie<space>la<space>valeur<space>de<space>name<space>en<space>suffixant<space>par<space>la<space>date<lf><space><space><space><space>name<space>=<space>object.getAttribute<openparen><apos>name<apos><closeparen><lf><space><space><space><space>object.setAttribute<openparen><apos>name<apos><comma>name<space>+<space><quote><space><openparen>import<space><quote><space>+<space>temps<space>+<space><quote><closeparen><quote><closeparen>    OUTPUT PYOUTPUT FEATURE_TYPE PythonCaller_2_OUTPUT
+
+# -------------------------------------------------------------------------
+MACRO SQLExecutor_3_DIRECTIVES PORT "$(dbPort)" USER_NAME "$(dbUser)" HOST "$(dbServer)" PASSWORD "$(dbPassword)" QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes
+
+FACTORY_DEF * QueryFactory    FACTORY_NAME SQLExecutor_3    INPUT  FEATURE_TYPE PythonCaller_2_OUTPUT    INPUT  FEATURE_TYPE FeatureMerger_NOT_MERGED    QUERY_SQL            "select<space>nextval<openparen><apos>s_gtf.seq_common<apos><closeparen><space>as<space>workspace_id"    READER_TYPE          POSTGRES    READER_DATASET       "@EvaluateExpression(FDIV,STRING_ENCODED,$(dbDatabase$encode),SQLExecutor_3)"    COMBINE_ATTRIBUTES   PREFER_RESULT    COMBINE_GEOMETRY     QUERY_ONLY    READER_PARAMS        $(SQLExecutor_3_DIRECTIVES)    OUTPUT RESULT FEATURE_TYPE SQLExecutor_3_RESULT    OUTPUT QUERY FEATURE_TYPE SQLExecutor_3_INITIATOR
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "SQLExecutor_3 INITIATOR Output Nuker"   INPUT FEATURE_TYPE SQLExecutor_3_INITIATOR
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_4 INPUT  FEATURE_TYPE SQLExecutor_3_RESULT ATTR fme_db_operation INSERT    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_4_OUTPUT 
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeCreator_4 OUTPUT Splitter"   INPUT FEATURE_TYPE AttributeCreator_4_OUTPUT   OUTPUT FEATURE_TYPE AttributeCreator_4_OUTPUT_0_TCAKbWChfSA=   OUTPUT FEATURE_TYPE AttributeCreator_4_OUTPUT_1_1q4Gwa/O8yk=
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeKeeper_2_272fb90d_f2e3_4300_8437_a2c352488b9f0_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeKeeper_2    INPUT  FEATURE_TYPE AttributeCreator_3_OUTPUT_1_1sMaJ5SQWdM=    INPUT  FEATURE_TYPE AttributeCreator_4_OUTPUT_1_1q4Gwa/O8yk=    OUTPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT        @KeepAttributes(fme_encoded,key,name,workspace_id,fme_pcre_match,"^fme_$(AttributeKeeper_2_272fb90d_f2e3_4300_8437_a2c352488b9f0_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_6 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE AttributeKeeper_2_OUTPUT ATTR statut Ins<u00e9>r<u00e9><space>dans<space>GTF    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_6_OUTPUT 
+# -------------------------------------------------------------------------
+
+Tcl2 proc ParameterFetcher_2_doFetch {} {    foreach {name val} {"_fme_mf_dir_unix {$(FME_MF_DIR_USERTYPED$encode)}"} {         if { [string match {*<at>*} $val] == 1 } {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher_2}];         } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher_2}];         } else {             set val [FME_DecodeTextOrAttr $val];         };       FME_SetAttribute [FME_DecodeText $name] $val    } }
+FACTORY_DEF * TeeFactory    FACTORY_NAME ParameterFetcher_2    INPUT  FEATURE_TYPE AttributeCreator_3_OUTPUT_0_5wmj1QTDBCM=    INPUT  FEATURE_TYPE AttributeCreator_4_OUTPUT_0_TCAKbWChfSA=    INPUT  FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs=    OUTPUT FEATURE_TYPE ParameterFetcher_2_OUTPUT         @Tcl2(ParameterFetcher_2_doFetch)
+
+# -------------------------------------------------------------------------
+
+
+Tcl2 FME_Decode proc<space>mdir2<space><opencurly><closecurly><space><opencurly><lf><space><space><space><space><lf><space><space><space><space>#<space>Variables<lf><space><space><space><space>set<space>fme_mf_dir_unix<space><openbracket>FME_GetAttribute<space>_fme_mf_dir_unix<closebracket><lf><space><space><space><space>set<space>tmpdir<space><openbracket>FME_GetAttribute<space>tmpDIR<closebracket><lf><space><space><space><space>regsub<space>-all<space><opencurly><backslash><backslash><closecurly><space><dollar>tmpdir<space><solidus><space>tmpdir<lf><space><space><space><space>set<space>gex_workspace_id<space><openbracket>FME_GetAttribute<space>gex_workspace_id<closebracket><lf><tab>set<space>workspace_id<space><openbracket>FME_GetAttribute<space>workspace_id<closebracket><lf><space><space><space><space>set<space>projectdir<space><quote><dollar>fme_mf_dir_unix<solidus>..<solidus>..<solidus><dollar>workspace_id<solidus><quote><lf><lf><space><space><space><space>#<space>Cr<u00e9>ation<space>du<space>r<u00e9>pertoire<space>de<space>destination<lf><space><space><space><space>if<space><opencurly><openbracket>file<space>exists<space><dollar>projectdir<closebracket>==0<space><closecurly><space><opencurly><lf><space><space><space><space><space><space><space><space>puts<space><quote>*TCL*<space>Cr<u00e9>ation<space>du<space>r<u00e9>pertoire<space><dollar>projectdir<quote><lf><space><space><space><space><space><space><space><space>file<space>mkdir<space><dollar>projectdir<lf><space><space><space><space><closecurly><space>else<space><opencurly><lf><space><space><space><space><space><space><space><space>puts<space><quote>*TCL*<space>Suppression<space>du<space>r<u00e9>pertoire<space><dollar>projectdir<quote><lf><space><space><space><space><space><space><space><space>file<space>delete<space>-force<space><dollar>projectdir<lf><space><space><space><space><space><space><space><space>puts<space><quote>*TCL*<space>Cr<u00e9>ation<space>du<space>r<u00e9>pertoire<space><dollar>projectdir<quote><lf><space><space><space><space><space><space><space><space>file<space>mkdir<space><dollar>projectdir<lf><space><space><space><space><closecurly><lf><space><space><space><lf><space><space><space><space>#<space>Copie<space>des<space>fichiers<lf><space><space><space><space>#<space>21<solidus>02<solidus>2014<space>v<u00e9>rifie<space>que<space>le<space>dossier<space>existe<space>sinon<space>TCL<space>plante<lf><space><space><space><space>if<space><opencurly><openbracket>file<space>isdirectory<space><quote><dollar>tmpdir<solidus><dollar>gex_workspace_id<quote><closebracket><closecurly><space><opencurly><lf><space><space><space><space><space><space><space><space>set<space>projectsourcedir<space><openbracket>glob<space>-nocomplain<space><quote><dollar>tmpdir<solidus><dollar>gex_workspace_id<solidus>*<quote><closebracket><lf><space><space><space><space><space><space><space><space>foreach<space>file<space><dollar>projectsourcedir<space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space>puts<space><quote>*TCL*<space>Copie<space>du<space>r<u00e9>pertoire<space><dollar>file<quote><lf><space><space><space><space><space><space><space><space><space><space><space><space>file<space>copy<space>-force<space><dollar>file<space><dollar>projectdir<lf><space><space><space><space><space><space><space><space><space><space><space><space>#set<space>test<space><quote><dollar>tmpdir<solidus><dollar>gex_workspace_id<solidus>form<quote><lf><space><space><space><space><space><space><space><space><closecurly><lf><space><space><space><space><closecurly><lf><lf><space><space><space><space>#<space>Y<space>a<space>t-il<space>les<space>formulaires<space>JSON<space>?<space><openparen>GTF<space>2016<closeparen><lf><space><space><space><space>if<space><opencurly><openbracket>file<space>isfile<space><quote><dollar>projectdir<solidus>form<solidus>DSubform.json<quote><closebracket><closecurly><space><opencurly><lf><space><space><space><space><space><space><space><space>FME_SetAttribute<space>DSubform<space>1<lf><space><space><space><space><closecurly><space>else<space><opencurly><lf><space><space><space><space><space><space><space><space>FME_SetAttribute<space>DSubform<space>0<lf><space><space><space><space><closecurly><lf><space><space><space><space>if<space><opencurly><openbracket>file<space>isfile<space><quote><dollar>projectdir<solidus>form<solidus>Subform.json<quote><closebracket><closecurly><space><opencurly><lf><space><space><space><space><space><space><space><space>FME_SetAttribute<space>Subform<space>1<lf><space><space><space><space><closecurly><space>else<space><opencurly><lf><space><space><space><space><space><space><space><space>FME_SetAttribute<space>Subform<space>0<lf><space><space><space><space><closecurly><lf><space><space><space><space>if<space><opencurly><openbracket>file<space>isfile<space><quote><dollar>projectdir<solidus>form<solidus>WSubform.json<quote><closebracket><closecurly><space><opencurly><lf><space><space><space><space><space><space><space><space>FME_SetAttribute<space>WSubform<space>1<lf><space><space><space><space><closecurly><space>else<space><opencurly><lf><space><space><space><space><space><space><space><space>FME_SetAttribute<space>WSubform<space>0<lf><space><space><space><space><closecurly><space><space><space><space><lf><space><space><space><lf><closecurly>
+FACTORY_DEF * TeeFactory    FACTORY_NAME TCLCaller_2    INPUT  FEATURE_TYPE ParameterFetcher_2_OUTPUT    OUTPUT FEATURE_TYPE TCLCaller_2_OUTPUT         "xy" @Tcl2("mdir2")
+
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeRemover_8_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "{\[0-9\]+}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRemover_8    INPUT  FEATURE_TYPE TCLCaller_2_OUTPUT    OUTPUT FEATURE_TYPE AttributeRemover_8_OUTPUT        @RemoveAttributes(xy)        @RemoveAttributes(fme_regexp_match"$(AttributeRemover_8_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+MACRO SQLExecutor_2_DIRECTIVES QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes HOST "$(dbServer)" PASSWORD "$(dbPassword)" PORT "$(dbPort)" USER_NAME "$(dbUser)"
+
+FACTORY_DEF * QueryFactory    FACTORY_NAME SQLExecutor_2    INPUT  FEATURE_TYPE AttributeRemover_8_OUTPUT    QUERY_SQL            "@EvaluateExpression(FDIV,STRING_ENCODED,select<space>user_id<space>as<space>owner<space>from<space>s_gtf.order<space>where<space>order_id<space>=<space>$(GTF_ORDER_ID$encode),SQLExecutor_2)"    READER_TYPE          POSTGRES    READER_DATASET       "@EvaluateExpression(FDIV,STRING_ENCODED,$(dbDatabase$encode),SQLExecutor_2)"    COMBINE_ATTRIBUTES   PREFER_RESULT    COMBINE_GEOMETRY     QUERY_ONLY    READER_PARAMS        $(SQLExecutor_2_DIRECTIVES)    OUTPUT RESULT FEATURE_TYPE SQLExecutor_2_RESULT    OUTPUT QUERY FEATURE_TYPE SQLExecutor_2_INITIATOR
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "SQLExecutor_2 INITIATOR Output Nuker"   INPUT FEATURE_TYPE SQLExecutor_2_INITIATOR
+# -------------------------------------------------------------------------
+
+Tcl2 proc AttributeEncoder_convert {} {    set attrs [split {<Unused>} { }];    set allAttributes false;    if { {ALL} == {ALL} } {       set attrs [FME_AttributeNames];       set allAttributes true;    };    set parmList {{EvaluateExpression} {ATTR_SET_EXPR}};    foreach attr $attrs {      if {[string first {fme_} $attr] == 0 && $allAttributes} {         continue;      };      if {$allAttributes} {        set attr [FME_EncodeText $attr];      };      set funcAttr $attr;      if { [string first "<quote>" $attr] != -1 }      {          set funcAttr [string map {"<quote>" "<backslash><quote>"} $attr];          append funcAttr "<quote>";          set funcAttr "<quote>"$funcAttr;      };      set funcCall [join [list "<at>ConvertEncoding<openparen>utf-8<comma><at>Value<openparen>" $funcAttr "<closeparen><comma>FALSE<closeparen>"] {}];      lappend parmList $attr;      lappend parmList $funcCall;    };    lappend parmList {AttributeEncoder};    eval FME_Execute $parmList; }
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeEncoder    INPUT  FEATURE_TYPE SQLExecutor_2_RESULT    OUTPUT FEATURE_TYPE AttributeEncoder_OUTPUT         @Tcl2("AttributeEncoder_convert")
+
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *    ROUTE FME_GENERIC AttributeRenamer_5_OUTPUT TO POSTGRES __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>s_gtf.category<closeparen> GEOMETRY    ROUTE FME_GENERIC AttributeCreator_5_OUTPUT TO XML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,2,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>rapport<closeparen> GEOMETRY    ROUTE FME_GENERIC AttributeCreator_6_OUTPUT TO XML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,2,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>rapport<closeparen> GEOMETRY    ROUTE FME_GENERIC AttributeCreator_7_OUTPUT TO XML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,2,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>rapport<closeparen> GEOMETRY    ROUTE FME_GENERIC AttributeEncoder_OUTPUT TO POSTGRES __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,1,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>s_gtf.workspace<closeparen> GEOMETRY   FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__   OUTPUT ROUTED FEATURE_TYPE *    OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "Final Output Nuker"   INPUT FEATURE_TYPE __nuke_me__
+
+# -------------------------------------------------------------------------
+POSTGRES_2_DEF s_gtf.category   postgres_type                All   postgres_mode                INHERIT_FROM_WRITER   postgres_sql_key_columns     ""   postgres_drop_table          NO   postgres_truncate_table      NO   postgres_create_with_oids    NO   postgres_vacuum_analyze      NO   postgres_allow_serial_writing NO   category_id                  int4,PRIKEY   name                         varchar(50)   description                  varchar(200)
+# -------------------------------------------------------------------------
+POSTGRES_3_DEF s_gtf.workspace   postgres_type                All   postgres_mode                UPDATE   postgres_drop_table          NO   postgres_truncate_table      NO   postgres_create_with_oids    YES   postgres_vacuum_analyze      YES   postgres_allow_serial_writing NO   workspace_id                 int4,PRIKEY   name                         varchar(100),BTREE   description                  text   subscription                 bool   fmw_file                     varchar(150)   category_id                  int4,BTREE   success_action_id            int4   failed_action_id             int4   lb_method_id                 int4   survey                       bool   form_type                    varchar(10)   legal_terms_conditions       text   usage                        text   requirements                 text   history                      text   last_save_date               timestamp   last_save_build              varchar(80)   file_encoding                varchar(80)   title                        varchar(80)   key                          varchar(80)   email_template_id            int4   owner                        int4   creation_date                date   locked                       bool   tag                          varchar(100)
+# -------------------------------------------------------------------------
+XML_1_DEF rapport   name                         xml_char(100)   key                          xml_char(80)   workspace_id                 xml_int32   statut                       xml_char(200)
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-2/fme/rapport.xslt b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/fme/rapport.xslt
new file mode 100755
index 0000000000000000000000000000000000000000..f0306c7b2868dc1ec47a0c0fc2166004dd7e35ce
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/fme/rapport.xslt
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+	<xsl:template match="/">
+		<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
+			<head>
+				<title>Rapport d'import de fichier GEX</title>
+				<style type="text/css">
+				  body {
+				  font-family:Helvetica;
+				  padding:5px;
+				  }
+
+				  hr {
+				  text-align: center;
+				  width:100%;
+				  color:#F1B4B4;
+				  }
+
+				  table {
+				  text-align:left;
+				  width:100%;
+				  font-size:12px;
+				  margin-bottom:35px;
+				  }
+
+				  td {
+				  text-align:left;
+
+				  background-color:#F7F7F7 ;
+				  }
+
+				  h1 {
+				  font-family:Times New Roman;
+				  color: #008393;
+				  }
+
+				  th {
+				  text-align:left;
+
+				  background-color:#eeeeee;
+				  }
+
+				  h4 {
+				  font-family:Times New Roman;
+				  color: #990000;
+				  }
+
+				  h5 {
+				  font-family:Times New Roman;
+				  }
+				</style>
+			</head>
+			<body>
+				<table cellspacing="2" cellpadding="5">
+					<tr valign="middle">
+						<td style=" text-align:center; background-color:#FFFFFF ;" width="20%">
+						</td>
+						<td align="center" width="80%">
+				<h1 align="center">
+					Rapport d'import du fichier GEX
+				</h1>
+						</td>
+					</tr></table>
+				
+				<xsl:for-each select="xml-tables/rapport-table/rapport">
+				
+				<table cellspacing="2" cellpadding="5">
+					<tr>
+						<th align="left" width="20%">
+						Nom du projet :
+						</th>
+						<td align="left" width="80%">
+								<xsl:value-of select="name"/>
+						</td>
+					</tr>
+					<tr>
+						<th align="left" width="20%">
+						KEY du projet :
+						</th>
+						<td align="left" width="80%">
+								<xsl:value-of select="key"/>
+						</td>
+					</tr>
+					<tr>
+						<th align="left" width="15%">
+						ID du projet :
+						</th>
+						<td align="left" width="85%">
+								<xsl:value-of select="workspace_id"/>
+						</td>
+					</tr>
+					<tr>
+						<th align="left" width="15%">
+						Statut de l'import :
+						</th>
+						<td align="left" width="85%">
+							<xsl:value-of select="statut"/>
+						</td>
+					</tr>
+				</table>
+				
+				</xsl:for-each>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/DSubform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/DSubform.json
new file mode 100755
index 0000000000000000000000000000000000000000..b478ff22990fa7945676b6219518a814a93f191d
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/DSubform.json
@@ -0,0 +1 @@
+{"datasources":{"datasource_0":{"type":"object","dataType":"text","name":"duplicateKey","description":"","options":["Importer les projets avec une nouvelle KEY et un nouveau nom|0","Ne pas mettre \u00e0 jour les projets de m\u00eame KEY|1","Mettre \u00e0 jour les projets de m\u00eame KEY|2"]}},"display":{"name":"Subform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF \u00e0 importer (.gex) :\n   ","nb_cols":12,"default_value":"C:\\TEMP\\result.gex"}]},{"fields":[{"type":"text","name":"idWorkspaceList","label":"Liste des idWorkspace \u00e0 importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Mettre \u00e0 jour les workspaces de KEY identique ?:\n ","required":true,"nb_cols":12,"default_value":"1","datasource":{"datasource_id":"datasource_0"}}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"C:\\TEMP\\rapport_import.html"}]}]},"insert":{"name":"Subform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF \u00e0 importer (.gex) :\n   ","nb_cols":12,"default_value":"C:\\TEMP\\result.gex"}]},{"fields":[{"type":"text","name":"idWorkspaceList","label":"Liste des idWorkspace \u00e0 importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Mettre \u00e0 jour les workspaces de KEY identique ?:\n ","required":true,"nb_cols":12,"default_value":"1","datasource":{"datasource_id":"datasource_0"}}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"C:\\TEMP\\rapport_import.html"}]}]},"update":{"name":"Subform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF \u00e0 importer (.gex) :\n   ","nb_cols":12,"default_value":"C:\\TEMP\\result.gex"}]},{"fields":[{"type":"text","name":"idWorkspaceList","label":"Liste des idWorkspace \u00e0 importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Mettre \u00e0 jour les workspaces de KEY identique ?:\n ","required":true,"nb_cols":12,"default_value":"1","datasource":{"datasource_id":"datasource_0"}}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"C:\\TEMP\\rapport_import.html"}]}]},"search":[]}
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/Subform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/Subform.json
new file mode 100755
index 0000000000000000000000000000000000000000..ff4eeadbb592968f55e6520b1b141838076d2af0
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/Subform.json
@@ -0,0 +1 @@
+{"datasources":{"datasource_0":{"type":"object","dataType":"text","name":"duplicateKey","description":"","options":["Importer le projet avec un nouvel identifiant et un nouveau nom|0","Ne pas importer|1","Remplacer les projet existants|2"]}},"display":{"name":"WSubform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF à importer (.gex) :\n   ","nb_cols":12,"default_value":"\\\\tsclient\\ARMOR\\TEMP\\RESULT\\test.gex","id":"sourceGexFile_1_1"}]},{"fields":[{"type":"hidden","name":"idWorkspaceList","label":"Liste des idWorkspace à importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*","id":"idWorkspaceList_2_1"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Que faire des projets existants déjà dans la base GTF (même Clé) ?","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"duplicateKey_3_1","id_from":"duplicateKey_3_1_from"}]},{"fields":[{"type":"hidden","name":"HTML","default_value":"import.html","id":"HTML_4_1","nb_cols":12}]}]},"insert":{"name":"WSubform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF à importer (.gex) :\n   ","nb_cols":12,"default_value":"\\\\tsclient\\ARMOR\\TEMP\\RESULT\\test.gex","id":"sourceGexFile_1_1"}]},{"fields":[{"type":"hidden","name":"idWorkspaceList","label":"Liste des idWorkspace à importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*","id":"idWorkspaceList_2_1"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Que faire des projets existants déjà dans la base GTF (même Clé) ?","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"duplicateKey_3_1","id_from":"duplicateKey_3_1_from"}]},{"fields":[{"type":"hidden","name":"HTML","default_value":"import.html","id":"HTML_4_1","nb_cols":12}]}]},"update":{"name":"WSubform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF à importer (.gex) :\n   ","nb_cols":12,"default_value":"\\\\tsclient\\ARMOR\\TEMP\\RESULT\\test.gex","id":"sourceGexFile_1_1"}]},{"fields":[{"type":"hidden","name":"idWorkspaceList","label":"Liste des idWorkspace à importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*","id":"idWorkspaceList_2_1"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Que faire des projets existants déjà dans la base GTF (même Clé) ?","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"duplicateKey_3_1","id_from":"duplicateKey_3_1_from"}]},{"fields":[{"type":"hidden","name":"HTML","default_value":"import.html","id":"HTML_4_1","nb_cols":12}]}]},"search":[]}
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/WSubform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/WSubform.json
new file mode 100755
index 0000000000000000000000000000000000000000..ff4eeadbb592968f55e6520b1b141838076d2af0
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/WSubform.json
@@ -0,0 +1 @@
+{"datasources":{"datasource_0":{"type":"object","dataType":"text","name":"duplicateKey","description":"","options":["Importer le projet avec un nouvel identifiant et un nouveau nom|0","Ne pas importer|1","Remplacer les projet existants|2"]}},"display":{"name":"WSubform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF à importer (.gex) :\n   ","nb_cols":12,"default_value":"\\\\tsclient\\ARMOR\\TEMP\\RESULT\\test.gex","id":"sourceGexFile_1_1"}]},{"fields":[{"type":"hidden","name":"idWorkspaceList","label":"Liste des idWorkspace à importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*","id":"idWorkspaceList_2_1"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Que faire des projets existants déjà dans la base GTF (même Clé) ?","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"duplicateKey_3_1","id_from":"duplicateKey_3_1_from"}]},{"fields":[{"type":"hidden","name":"HTML","default_value":"import.html","id":"HTML_4_1","nb_cols":12}]}]},"insert":{"name":"WSubform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF à importer (.gex) :\n   ","nb_cols":12,"default_value":"\\\\tsclient\\ARMOR\\TEMP\\RESULT\\test.gex","id":"sourceGexFile_1_1"}]},{"fields":[{"type":"hidden","name":"idWorkspaceList","label":"Liste des idWorkspace à importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*","id":"idWorkspaceList_2_1"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Que faire des projets existants déjà dans la base GTF (même Clé) ?","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"duplicateKey_3_1","id_from":"duplicateKey_3_1_from"}]},{"fields":[{"type":"hidden","name":"HTML","default_value":"import.html","id":"HTML_4_1","nb_cols":12}]}]},"update":{"name":"WSubform","title":"Admin-Import","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"upload","name":"sourceGexFile","label":"Fichier d'export GTF à importer (.gex) :\n   ","nb_cols":12,"default_value":"\\\\tsclient\\ARMOR\\TEMP\\RESULT\\test.gex","id":"sourceGexFile_1_1"}]},{"fields":[{"type":"hidden","name":"idWorkspaceList","label":"Liste des idWorkspace à importer (* pour tous) :\n  ","required":false,"pattern":"","nb_cols":12,"default_value":"*","id":"idWorkspaceList_2_1"}]},{"fields":[{"type":"select","name":"duplicateKey","label":"Que faire des projets existants déjà dans la base GTF (même Clé) ?","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"duplicateKey_3_1","id_from":"duplicateKey_3_1_from"}]},{"fields":[{"type":"hidden","name":"HTML","default_value":"import.html","id":"HTML_4_1","nb_cols":12}]}]},"search":[]}
\ No newline at end of file
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/ressources/Subform.css
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy
rename to src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/ressources/Subform.css
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy b/src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/ressources/Subform.js
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy
rename to src/module_gtf/web_service/ws_data/gtf/workspace/-2/form/ressources/Subform.js
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-3/fme/formChecker.fmw b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/fme/formChecker.fmw
new file mode 100755
index 0000000000000000000000000000000000000000..8428859d7b835d98d6c44e6bd784a06ba3e78be7
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/fme/formChecker.fmw
@@ -0,0 +1,2837 @@
+#! <?xml version="1.0" encoding="UTF-8" ?>
+#! <WORKSPACE
+#    
+#    
+#    Ligne de commande pour exécuter le projet :
+#    
+#    
+#    C:\Apps\FME_2017.0.1.1x64\fme.exe C:\vm02.veremes.net\produit_vitis\web_services\gtf\trunk\ws_data\gtf\workspace\-3\fme\formChecker.fmw
+#          --H_sessionId "f497f1qg5rqovsae893nra8on0"
+#          --H_url "https://palomino/rest/gtf/"
+#          --HTML "C:\TEMP\rapport_formulaires.html"
+#          --defaultFormForce "0"
+#          --GTF_CONNECTION_STRING "********"
+#    
+#    
+#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto"
+#!   SOURCE="NONE"
+#!   DESTINATION_ROUTING_FILE=""
+#!   LAST_SAVE_BUILD="FME(R) 2017.0.1.1 (20170512 - Build 17291 - WIN64)"
+#!   DOC_EXTENTS="13219.3 2739"
+#!   SHOW_INFO_NODES="true"
+#!   FME_DOCUMENT_GUID="720a8ed9-a759-4f00-bcdf-d7202c10b715"
+#!   FME_SERVER_SERVICES=""
+#!   DESTINATION="NONE"
+#!   DOC_TOP_LEFT="-5760.87 -450"
+#!   MARKDOWN_USAGE=""
+#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
+#!   EXPLICIT_BOOKMARK_ORDER="false"
+#!   FME_BUILD_NUM="17291"
+#!   FME_DOCUMENT_PRIORGUID="057ae92e-d988-4391-8168-8ce7dd73fe9a,994edc23-a6f2-45f6-99ca-5f0e1b2a9695,0acd533f-13f0-47fc-92db-d71da8a4662b"
+#!   TERMINATE_REJECTED="NO"
+#!   FME_GEOMETRY_HANDLING="Enhanced"
+#!   PASSWORD=""
+#!   DESCRIPTION="&lt;p&gt;Vérification des formulaires. &lt;br&gt;&lt;/p&gt;&lt;p&gt;Permet de définir les conditions de génération des formulaires par défaut des traitements.&amp;nbsp;&lt;/p&gt;&lt;p&gt;2 options sont possibles :&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ne pas forcer la régénération des formulaires par défaut pour tous les traitements : Ne sont traités que les traitements ne disposant pas de formulaire publié de type subform.json. Leurs formulaires sont invalides . Si le type de formulaire publié indiqué en base est de type &apos;par défaut&apos;&#10; alors les 3 formulaires sont générés. Sinon&#10; si le formulaire source indiqué en base est de type &apos;personnalisé&apos;&#10; alors un rapport indique que le traitement est invalide et que l&apos;auteur doit créer lui même le formulaire. Un Rapport liste les projets concernés et indique le statut de leur formulaire &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;Formulaires générés avec succès.&lt;/li&gt;&lt;li&gt;Formulaire personnalisé invalide.Le formulaire doit être généré par un administrateur.&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Forcer la régénération des formulaires par défaut pour tous les traitements. Un formulaire par défaut est regénéré pour tous les traitements. Les formulaires par défaut sont publiés &lt;strong&gt;SI&lt;/strong&gt; le formulaire en base de données est de type Défaut. Sinon les formulaires publiés personnalisés sont conservés. Un rapport liste les projets l&apos;intégralité des projets en indiquant le statut des formulaires :&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;Formulaire personnalisé invalide.Le formulaire doit être généré par un administrateur.&lt;/li&gt;&lt;li&gt;Formulaire par défaut regénéré avec succès.&lt;/li&gt;&lt;li&gt;Formulaire par défaut regénéré et publié avec succès.&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&#10;"
+#!   VIEW_POSITION="2291.69 2287.35"
+#!   USAGE="&lt;p&gt;&lt;br data-mce-bogus=&quot;1&quot;&gt;&lt;/p&gt;"
+#!   MAX_LOG_FEATURES="200"
+#!   ATTR_TYPE_ENCODING="SDF"
+#!   END_PYTHON=""
+#!   WORKSPACE_VERSION="1"
+#!   TITLE=""
+#!   IGNORE_READER_FAILURE="No"
+#!   LAST_SAVE_DATE="2018-02-04T21:36:43"
+#!   BEGIN_TCL=""
+#!   HISTORY=""
+#!   SHOW_ANNOTATIONS="true"
+#!   ZOOM_SCALE="72"
+#!   MARKDOWN_DESCRIPTION=""
+#!   END_TCL=""
+#!   LOG_MAX_RECORDED_FEATURES="200"
+#!   PYTHON_COMPATIBILITY="27"
+#!   CATEGORY="Administration"
+#!   FME_STROKE_MAX_DEVIATION="0"
+#!   SOURCE_ROUTING_FILE=""
+#!   FME_REPROJECTION_ENGINE="FME"
+#!   LOG_FILE=""
+#!   BEGIN_PYTHON=""
+#!   USE_MARKDOWN=""
+#!   REDIRECT_TERMINATORS="NONE"
+#!   WARN_INVALID_XFORM_PARAM="Yes"
+#! >
+#! <DATASETS>
+#! <DATASET
+#!   IS_SOURCE="true"
+#!   ROLE="READER"
+#!   FORMAT="PATH"
+#!   DATASET="$(workspacesDir)"
+#!   KEYWORD="PATH_1"
+#!   MULTI_GEOM_ALLOWED="false"
+#!   ATTR_MAX_LENGTH="60"
+#!   ATTR_CASE="ANY"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="false"
+#!   DEFLINE_TEMPLATE=""
+#!   DEFLINE_ATTRS="false"
+#!   EXPOSABLE_ATTRS="multi_reader_full_id number(11,0) fme_text_size number(31,15) fme_text_string char(50) multi_reader_keyword char(50) fme_fill_color char(50) fme_geometry fme_char(50) multi_reader_id number(11,0) fme_basename char(50) fme_secondary_axis number(31,15) fme_start_angle number(31,15) fme_sweep_angle number(31,15) fme_type char(50) fme_dataset char(50) multi_reader_type char(50) fme_color char(50) fme_feature_type char(50) fme_rotation number(31,15) path_geom char(13) fme_primary_axis number(31,15)"
+#!   DEFLINE_PARMS=""
+#!   ATTR_INDEX_TYPES=""
+#!   ATTR_NAME_INVALID_CHARS=""
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="DIRONLY"
+#!   GENERATE_FME_BUILD_NUM="15575"
+#!   MAX_FEATURES=""
+#!   COORDSYS=""
+#!   MIN_FEATURES=""
+#!   MAX_FEATURES_PER_FEATURE_TYPE=""
+#!   FEATURE_TYPES=""
+#!   START_FEATURE=""
+#! >
+#! <METAFILE_PARAMETER
+#!   NAME="READER_DATASET_HINT"
+#!   VALUE="Specify the Folder or Files pathnames"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="FEATURE_TYPE_NAME"
+#!   VALUE="PATH"
+#! />
+#! </DATASET>
+#! <DATASET
+#!   IS_SOURCE="false"
+#!   ROLE="WRITER"
+#!   FORMAT="XML"
+#!   DATASET="$(xml)"
+#!   KEYWORD="XML_1"
+#!   MULTI_GEOM_ALLOWED="true"
+#!   ATTR_MAX_LENGTH="254"
+#!   ATTR_CASE="ANY"
+#!   ALLOWED_FEAT_TYPES=""
+#!   WRITE_DEFS="true"
+#!   DEFLINE_TEMPLATE=""
+#!   DEFLINE_ATTRS="true"
+#!   EXPOSABLE_ATTRS="fme_rotation xml_real64 fme_text_size xml_real64 fme_geometry fme_char(50) fme_type xml_char(50) fme_color xml_char(50) fme_fill_color xml_char(50) fme_feature_type xml_char(50) fme_basename xml_char(50) fme_secondary_axis xml_real64 xml_type xml_char(50) fme_dataset xml_char(50) fme_start_angle xml_real64 fme_sweep_angle xml_real64 fme_text_string xml_char(50) fme_primary_axis xml_real64"
+#!   DEFLINE_PARMS=""
+#!   ATTR_INDEX_TYPES=""
+#!   ATTR_NAME_INVALID_CHARS="[]= %~!@$&amp;#[()^?*&apos;+\\/&quot;:{}"
+#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
+#!   ENABLED="true"
+#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
+#!   DATASET_TYPE="FILE_OR_URL"
+#!   GENERATE_FME_BUILD_NUM="15477"
+#!   FANOUT_EXPRESSION=""
+#!   FANOUT_GROUP="NO"
+#!   COORDSYS=""
+#! >
+#! <METAFILE_PARAMETER
+#!   NAME="NETWORK_PROXY"
+#!   VALUE="NO"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="READER_DATASET_HINT"
+#!   VALUE="Select the XML file(s)"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="NETWORK_AUTHENTICATION"
+#!   VALUE="NO"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="MIME_TYPE"
+#!   VALUE="application/XML"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="DATASET_NAME"
+#!   VALUE="xml file"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="ADVANCED_PARMS"
+#!   VALUE="XML_OUT_XSD_DOC XML_OUT_SUPPRESS_TARGET_NS XML_OUT_TABLE_WRAPPER_PREFIX XML_OUT_TABLE_WRAPPER_SUFFIX XML_OUT_ROW_ID_ATTR_NAME XML_OUT_ROW_ID_PREFIX XML_OUT_APPLY_STYLESHEET XML_OUT_STYLESHEET_RESULT XML_OUT_APPEND_XML_FRAGMENTS_AS XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH XML_OUT_XML_VALIDATION XML_OUT_XSD_VALIDATION_DOCS"
+#! />
+#! <METAFILE_PARAMETER
+#!   NAME="WRITER_DATASET_HINT"
+#!   VALUE="Specify a name for the XML file"
+#! />
+#! </DATASET>
+#! </DATASETS>
+#! <DATA_TYPES>
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(width)"
+#!   FME_TYPE="fme_varbinary(width)"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(width)"
+#!   FME_TYPE="fme_binary(width)"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="buffer"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="buffer"
+#!   FME_TYPE="fme_binarybuffer"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="buffer"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="buffer"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(20)"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(12)"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="date"
+#!   FME_TYPE="fme_date"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(31,15)"
+#!   FME_TYPE="fme_real64"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(15,7)"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(11,0)"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(11,0)"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(20,0)"
+#!   FME_TYPE="fme_int64"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(20,0)"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="logical"
+#!   FME_TYPE="fme_boolean"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(6,0)"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(6,0)"
+#!   FME_TYPE="fme_uint16"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(4,0)"
+#!   FME_TYPE="fme_int8"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(4,0)"
+#!   FME_TYPE="fme_uint8"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="number(width,decimal)"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="char(1)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="PATH"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_varchar(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_varbinary(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(width)"
+#!   FME_TYPE="fme_binary(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_binarybuffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_buffer"
+#!   FME_TYPE="fme_json"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_xml"
+#!   FME_TYPE="fme_xml"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_datetime"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_date"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_time"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int64"
+#!   FME_TYPE="fme_int64"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint64"
+#!   FME_TYPE="fme_uint64"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int32"
+#!   FME_TYPE="fme_int32"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint32"
+#!   FME_TYPE="fme_uint32"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_int16"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_uint16"
+#!   FME_TYPE="fme_uint16"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_byte"
+#!   FME_TYPE="fme_int8"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_ubyte"
+#!   FME_TYPE="fme_uint8"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_real32"
+#!   FME_TYPE="fme_real32"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_real64"
+#!   FME_TYPE="fme_real64"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_decimal(width,decimal)"
+#!   FME_TYPE="fme_decimal(width,decimal)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_boolean"
+#!   FME_TYPE="fme_boolean"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(20)"
+#!   FME_TYPE="fme_datetime"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(8)"
+#!   FME_TYPE="fme_date"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(12)"
+#!   FME_TYPE="fme_time"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_geometry"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_xml"
+#!   FME_TYPE="fme_buffer"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_char(1)"
+#!   FME_TYPE="fme_char(width)"
+#!   FORMAT="XML"
+#! />
+#! <DATA_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_byte"
+#!   FME_TYPE="fme_int16"
+#!   FORMAT="XML"
+#! />
+#! </DATA_TYPES>
+#! <GEOM_TYPES>
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_no_geom"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_point"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_line"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_area"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_text"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_ellipse"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_arc"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_rectangle"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_rounded_rectangle"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_raster"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_solid"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="true"
+#!   FORMAT_TYPE="path_none"
+#!   FME_TYPE="fme_point_cloud"
+#!   FORMAT="PATH"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_no_geom"
+#!   FME_TYPE="fme_no_geom"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_point"
+#!   FME_TYPE="fme_point"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_line"
+#!   FME_TYPE="fme_line"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_area"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_aggregate"
+#!   FME_TYPE="fme_collection"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_text"
+#!   FME_TYPE="fme_text"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_ellipse"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_rectangle"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_rounded_rectangle"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_arc"
+#!   FME_TYPE="fme_arc"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_surface"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_solid"
+#!   FME_TYPE="fme_solid"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_mesh"
+#!   FME_TYPE="fme_surface"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_raster"
+#!   FORMAT="XML"
+#! />
+#! <GEOM_TYPE
+#!   IS_SOURCE="false"
+#!   FORMAT_TYPE="xml_area"
+#!   FME_TYPE="fme_point_cloud"
+#!   FORMAT="XML"
+#! />
+#! </GEOM_TYPES>
+#! <FEATURE_TYPES>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="true"
+#!   NODE_NAME="PATH"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER=""
+#!   IS_EDITABLE="false"
+#!   IDENTIFIER="31"
+#!   FEAT_GEOMTYPE="path_none"
+#!   POSITION="-5760.87 750"
+#!   BOUNDING_RECT="-5760.87 750 -1 -1"
+#!   ORDER="5e+14"
+#!   COLLAPSED="true"
+#!   KEYWORD="PATH_1"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   HIDDEN_USER_ATTRS=""
+#!   MERGE_FILTER=""
+#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
+#!   MERGE_FILTER_CASE_SENSITIVE="true"
+#!   DYNAMIC_SCHEMA="false"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_unix" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_windows" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_rootname" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_filename" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_extension" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_filesize" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_ownername" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_readonly" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_modified_date" ATTR_TYPE="date" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_created_date" ATTR_TYPE="date" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_accessed_date" ATTR_TYPE="date" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_directory_unix" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_directory_windows" ATTR_TYPE="buffer" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="path_type" ATTR_TYPE="char(10)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#! </FEATURE_TYPE>
+#! <FEATURE_TYPE
+#!   IS_SOURCE="false"
+#!   NODE_NAME="rapport"
+#!   FEATURE_TYPE_NAME=""
+#!   FEATURE_TYPE_NAME_QUALIFIER=""
+#!   IS_EDITABLE="true"
+#!   IDENTIFIER="59"
+#!   FEAT_GEOMTYPE="All"
+#!   POSITION="6750 -450"
+#!   BOUNDING_RECT="6750 -450 -1 -1"
+#!   ORDER="5e+14"
+#!   COLLAPSED="false"
+#!   KEYWORD="XML_1"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   SCHEMA_ATTRIBUTE_SOURCE="1"
+#! >
+#!     <FEAT_ATTRIBUTE ATTR_NAME="name" ATTR_TYPE="xml_char(100)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="key" ATTR_TYPE="xml_char(80)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="workspace_id" ATTR_TYPE="xml_int32" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#!     <FEAT_ATTRIBUTE ATTR_NAME="statut" ATTR_TYPE="xml_char(200)" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
+#! </FEATURE_TYPE>
+#! </FEATURE_TYPES>
+#! <FMESERVER>
+#! </FMESERVER>
+#! <GLOBAL_PARAMETERS>
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL TEXT_OR_ATTR H_sessionId ID de session :"
+#!   DEFAULT_VALUE="f497f1qg5rqovsae893nra8on0"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL TEXT_OR_ATTR H_url URL de l&apos;API du serveur GTF :"
+#!   DEFAULT_VALUE="https://palomino/rest/gtf/"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL FILENAME HTML All_Files(*.*)|*.* Rapport HTML :"
+#!   DEFAULT_VALUE="C:\TEMP\rapport_formulaires.html"
+#!   IS_STAND_ALONE="false"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI LOOKUP_CHOICE_OR_ATTR defaultFormForce Oui,1%Non,0 Forcer la regénération du formulaire par défaut pour tous les traitements :"
+#!   DEFAULT_VALUE="0"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI OPTIONAL PASSWORD_OR_ATTR GTF_CONNECTION_STRING Chaîne de connexion à la base GTF :"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM workspacesDir Script Python:"
+#!   DEFAULT_VALUE="return&lt;space&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;FME_MF_DIR&lt;apos&gt;&lt;closebracket&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;..&lt;solidus&gt;..&lt;apos&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbServer Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;0&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbPort Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;1&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbDatabase Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;2&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbUser Python Script:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;3&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM xml Python Script:"
+#!   DEFAULT_VALUE="#&lt;space&gt;G&lt;u00e9&gt;n&lt;u00e8&gt;re&lt;space&gt;un&lt;space&gt;nom&lt;space&gt;de&lt;space&gt;r&lt;u00e9&gt;pertoire&lt;space&gt;temporaire&lt;space&gt;unique&lt;lf&gt;import&lt;space&gt;uuid&lt;lf&gt;import&lt;space&gt;os&lt;lf&gt;&lt;lf&gt;temp&lt;space&gt;=&lt;space&gt;os.environ.get&lt;openparen&gt;&lt;quote&gt;TEMP&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;if&lt;space&gt;temp&lt;space&gt;is&lt;space&gt;not&lt;space&gt;None:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;temp_dir&lt;space&gt;=&lt;space&gt;temp&lt;space&gt;+&lt;space&gt;&lt;quote&gt;&lt;backslash&gt;&lt;backslash&gt;&lt;quote&gt;&lt;space&gt;+&lt;space&gt;str&lt;openparen&gt;uuid.uuid1&lt;openparen&gt;&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;else:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;temp_dir&lt;space&gt;=&lt;space&gt;&lt;quote&gt;c:&lt;backslash&gt;&lt;backslash&gt;temp&lt;backslash&gt;&lt;backslash&gt;&lt;quote&gt;&lt;space&gt;+&lt;space&gt;str&lt;openparen&gt;uuid.uuid1&lt;openparen&gt;&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;temp_dir&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;backslash&gt;&lt;backslash&gt;rapport.xml&lt;apos&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM xslt Python Script:"
+#!   DEFAULT_VALUE="return&lt;space&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;FME_MF_DIR&lt;apos&gt;&lt;closebracket&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;formCheckerRapport.xslt&lt;apos&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI IGNORE OPTIONAL TEXT_EDIT_PYTHON_PARM dbPassword Script Python:"
+#!   DEFAULT_VALUE="import&lt;space&gt;fmeobjects&lt;lf&gt;import&lt;space&gt;string&lt;lf&gt;connection_string&lt;space&gt;=&lt;space&gt;string.split&lt;openparen&gt;FME_MacroValues&lt;openbracket&gt;&lt;apos&gt;GTF_CONNECTION_STRING&lt;apos&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;return&lt;space&gt;connection_string&lt;openbracket&gt;4&lt;closebracket&gt;"
+#!   IS_STAND_ALONE="true"
+#! />
+#! </GLOBAL_PARAMETERS>
+#! <COMMENTS>
+#! <COMMENT
+#!   IDENTIFIER="36"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ne garde que les répertoires constitués d&apos;un entier&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;(élimine donc les -n)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-4020.32 1050"
+#!   TOP_LEFT="-4020.32 1050"
+#!   BOTTOM_RIGHT="-4021.32 1051"
+#!   BOUNDING_RECT="-4020.32 1050 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="32"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="44"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Est-ce que Subform.json existe ?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-1646.82 962.02"
+#!   TOP_LEFT="-1646.82 962.02"
+#!   BOTTOM_RIGHT="-1647.82 963.02"
+#!   BOUNDING_RECT="-1646.82 962.02 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="40"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="47"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Quel est le type de formulaire ?&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;(custom ou default)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-150 995.609"
+#!   TOP_LEFT="-150 995.609"
+#!   BOTTOM_RIGHT="-151 996.609"
+#!   BOUNDING_RECT="-150 995.609 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="45"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="55"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Si Subform.json n&apos;existe pas,&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;on continue&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-852.173 1050"
+#!   TOP_LEFT="-852.173 1050"
+#!   BOTTOM_RIGHT="-853.173 1051"
+#!   BOUNDING_RECT="-852.173 1050 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="0,1,0,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="48"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="57"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Si le type de formulaire&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;est default, on continue&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="600 1050"
+#!   TOP_LEFT="600 1050"
+#!   BOTTOM_RIGHT="599 1051"
+#!   BOUNDING_RECT="600 1050 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="0,1,0,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="46"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="68"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Génération forcée ou pas ?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-2463.04 954.347"
+#!   TOP_LEFT="-2463.04 954.347"
+#!   BOTTOM_RIGHT="-2464.04 955.347"
+#!   BOUNDING_RECT="-2463.04 954.347 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="0,1,0,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="69"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="78"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Quel est le type de formulaire ?&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;(custom ou default)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="5743.48 2289"
+#!   TOP_LEFT="5743.48 2289"
+#!   BOTTOM_RIGHT="5742.48 2290"
+#!   BOUNDING_RECT="5743.48 2289 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="75"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="79"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Si le type de formulaire&lt;/p&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;est default, on continue&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="6500.91 2250"
+#!   TOP_LEFT="6500.91 2250"
+#!   BOTTOM_RIGHT="6499.91 2251"
+#!   BOUNDING_RECT="6500.91 2250 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="0,1,0,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="76"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="83"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Génére DSubform&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="-1104.92 2100"
+#!   TOP_LEFT="-1104.92 2100"
+#!   BOTTOM_RIGHT="-1105.92 2101"
+#!   BOUNDING_RECT="-1104.92 2100 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="67"
+#! />
+#! <COMMENT
+#!   IDENTIFIER="85"
+#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Copie DSubform vers Subform&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   POSITION="7109 2161.17"
+#!   TOP_LEFT="7109 2161.17"
+#!   BOTTOM_RIGHT="7108 2162.17"
+#!   BOUNDING_RECT="7109 2161.17 -1 -1"
+#!   ORDER="5e+14"
+#!   FOLLOW_ANCHOR="true"
+#!   INFO_NODE="false"
+#!   COLOUR="1,1,0.784314,0.192157"
+#!   SIZE_POLICY="8"
+#!   COMMENT_TYPE="REGULAR"
+#!   ANCHORED_NODE="84"
+#! />
+#! </COMMENTS>
+#! <CONSTANTS>
+#! </CONSTANTS>
+#! <BOOKMARKS>
+#! <BOOKMARK
+#!   IDENTIFIER="30"
+#!   NAME="Génère les JSON via l&apos;API s&apos;ils n&apos;existent pas"
+#!   DESCRIPTION="&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"
+#!   TOP_LEFT="1200 1008.34"
+#!   BOTTOM_RIGHT="5726.14 363.158"
+#!   BOUNDING_RECT="1200 1008.34 4526.14 645.182"
+#!   STICKY="true"
+#!   COLOUR="0.866667,0.576471,0.247059"
+#!   CONTENTS="7 21 10 18 58 16 8 4 56 6 5 "
+#! />
+#! </BOOKMARKS>
+#! <TRANSFORMERS>
+#! <TRANSFORMER
+#!   IDENTIFIER="4"
+#!   TYPE="HTTPCaller"
+#!   VERSION="0"
+#!   POSITION="1449.15 767.391"
+#!   BOUNDING_RECT="1449.15 767.391 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="Output"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;Rejected&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="_response_body"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="$(H_url)&lt;solidus&gt;workspaces&lt;solidus&gt;&lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt;?token=$(H_sessionId)"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="auto-detect"/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_URL_PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="HTTPCaller"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="cmd StringUpload SOURCE_EXPRESSION;Default_Reset;MIME_TYPE;text&lt;solidus&gt;plain;FME_CONTROLLER_QUERY_FILE;transformers&lt;backslash&gt;dependencies&lt;backslash&gt;http&lt;backslash&gt;StringUpload.fme"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="Multipart / Form Data"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="PUT"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_MULTI" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_RESPONSE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="_headers"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="90"/>
+#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_RESPONSE_PARAMETERS" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="60"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_FILE" PARM_VALUE="Attribute"/>
+#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="5"
+#!   TYPE="HTTPCaller"
+#!   VERSION="0"
+#!   POSITION="2784.78 750"
+#!   BOUNDING_RECT="2784.78 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="Output"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;Rejected&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="_response_body"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="$(H_url)&lt;solidus&gt;workspaces&lt;solidus&gt;&lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt;?token=$(H_sessionId)"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="auto-detect"/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_URL_PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="HTTPCaller_4"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="cmd StringUpload SOURCE_EXPRESSION;Default_Published;MIME_TYPE;text&lt;solidus&gt;plain;FME_CONTROLLER_QUERY_FILE;transformers&lt;backslash&gt;dependencies&lt;backslash&gt;http&lt;backslash&gt;StringUpload.fme"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="Multipart / Form Data"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="PUT"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_MULTI" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_RESPONSE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="_headers"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="90"/>
+#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_RESPONSE_PARAMETERS" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="60"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_FILE" PARM_VALUE="Attribute"/>
+#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="6"
+#!   TYPE="HTTPCaller"
+#!   VERSION="0"
+#!   POSITION="4050 750"
+#!   BOUNDING_RECT="4050 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="Output"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;Rejected&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="_response_body"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="$(H_url)&lt;solidus&gt;workspaces&lt;solidus&gt;&lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt;?token=$(H_sessionId)"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="auto-detect"/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_URL_PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="HTTPCaller_2"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="cmd StringUpload SOURCE_EXPRESSION;Perso_Reset;MIME_TYPE;text&lt;solidus&gt;plain;FME_CONTROLLER_QUERY_FILE;transformers&lt;backslash&gt;dependencies&lt;backslash&gt;http&lt;backslash&gt;StringUpload.fme"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="Multipart / Form Data"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="PUT"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_MULTI" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_RESPONSE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="_headers"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="90"/>
+#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_RESPONSE_PARAMETERS" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="60"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_FILE" PARM_VALUE="Attribute"/>
+#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="7"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="2100 750"
+#!   BOUNDING_RECT="2100 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_9"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;_http_status_code&lt;closeparen&gt; = 200"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="8"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="4721.44 750"
+#!   BOUNDING_RECT="4721.44 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_10"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;_http_status_code&lt;closeparen&gt; = 200"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="9"
+#!   TYPE="Terminator"
+#!   VERSION="2"
+#!   POSITION="5162.45 1650"
+#!   BOUNDING_RECT="5162.45 1650 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Terminator"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MESSAGE" PARM_VALUE="Erreur&lt;space&gt;avec&lt;space&gt;l&lt;apos&gt;API&lt;space&gt;GTF"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="10"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="3382.83 750"
+#!   BOUNDING_RECT="3382.83 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_11"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;_http_status_code&lt;closeparen&gt; = 200"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="32"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="-3750 750"
+#!   BOUNDING_RECT="-3750 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt; MATCHES_REGEX &lt;openbracket&gt;0-9&lt;closebracket&gt;+"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="37"
+#!   TYPE="AttributeKeeper"
+#!   VERSION="3"
+#!   POSITION="-5100 750"
+#!   BOUNDING_RECT="-5100 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="path_rootname" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="KEEP_ATTRS" PARM_VALUE="path_rootname,path_unix"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeKeeper"/>
+#!     <XFORM_PARM PARM_NAME="KEEP_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="40"
+#!   TYPE="PythonCaller"
+#!   VERSION="4"
+#!   POSITION="-1500 750"
+#!   BOUNDING_RECT="-1500 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="PYTHONSYMBOL" PARM_VALUE="subformExists"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE="subformExists"/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PYTHONSOURCE" PARM_VALUE="import&lt;space&gt;os.path&lt;lf&gt;import&lt;space&gt;fmeobjects&lt;lf&gt;&lt;lf&gt;def&lt;space&gt;subformExists&lt;openparen&gt;feature&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;subformFile&lt;space&gt;=&lt;space&gt;feature.getAttribute&lt;openparen&gt;&lt;apos&gt;path_unix&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;form&lt;solidus&gt;Subform.json&lt;apos&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;if&lt;space&gt;os.path.isfile&lt;openparen&gt;subformFile&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;feature.setAttribute&lt;openparen&gt;&lt;quote&gt;subformExists&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;apos&gt;1&lt;apos&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;else:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;feature.setAttribute&lt;openparen&gt;&lt;quote&gt;subformExists&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;apos&gt;0&lt;apos&gt;&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="PythonCaller"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="HIDE_ATTRIBUTES" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="45"
+#!   TYPE="SQLExecutor"
+#!   VERSION="6"
+#!   POSITION="-43.4847 750"
+#!   BOUNDING_RECT="-43.4847 750 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="RESULT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="INITIATOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="DB_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_USER_NAME" PARM_VALUE="$(dbUser)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_HOST" PARM_VALUE="$(dbServer)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PORT" PARM_VALUE="$(dbPort)"/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Initiator Geometry Only"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SQL_STATEMENT" PARM_VALUE="select&lt;space&gt;form_type&lt;space&gt;as&lt;space&gt;form_type&lt;comma&gt;&lt;space&gt;name&lt;space&gt;as&lt;space&gt;name&lt;comma&gt;&lt;space&gt;key&lt;space&gt;as&lt;space&gt;key&lt;space&gt;from&lt;space&gt;s_gtf.workspace&lt;space&gt;where&lt;space&gt;workspace_id&lt;space&gt;=&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PASSWORD" PARM_VALUE="$(dbPassword)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SQLExecutor_4"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="POSTGRES"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="EXPOSED_ATTRIBUTE_LIST" PARM_VALUE="form_type,name,key"/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(dbDatabase)"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="POSTGRES_HOST,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;H&lt;u00f4&gt;te&lt;space&gt;:,POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;,POSTGRES_PASSWORD,&quot;OPTIONAL PASSWORD&quot;,POSTGRES&lt;space&gt;Mot&lt;space&gt;de&lt;space&gt;passe&lt;space&gt;:,POSTGRES_USER_NAME,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Nom&lt;space&gt;d&lt;apos&gt;utilisateur&lt;space&gt;:,POSTGRES_PORT,&quot;OPTIONAL INTEGER&quot;,POSTGRES&lt;space&gt;Port&lt;space&gt;:"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_ATTRS" PARM_VALUE="Keep Result Attributes if Conflict"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="48"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="-793.485 750"
+#!   BOUNDING_RECT="-793.485 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_2"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;subformExists&lt;closeparen&gt; = 0"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="46"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="600 750"
+#!   BOUNDING_RECT="600 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_4"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;form_type&lt;closeparen&gt; = default"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="52"
+#!   TYPE="AttributeRenamer"
+#!   VERSION="3"
+#!   POSITION="-4500 750"
+#!   BOUNDING_RECT="-4500 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRenamer"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="path_rootname,workspace_id,"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="42"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="5930.49 750"
+#!   BOUNDING_RECT="5930.49 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="statut" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_6"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="statut,Formulaires&lt;space&gt;g&lt;u00e9&gt;n&lt;u00e9&gt;r&lt;u00e9&gt;s&lt;space&gt;avec&lt;space&gt;succ&lt;u00e8&gt;s."/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="62"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="847.834 -421.74"
+#!   BOUNDING_RECT="847.834 -421.74 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="subformExists" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="statut" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_2"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="statut,Formulaire&lt;space&gt;personnalis&lt;u00e9&gt;&lt;space&gt;invalide.&lt;lf&gt;Le&lt;space&gt;formulaire&lt;space&gt;doit&lt;space&gt;&lt;u00ea&gt;tre&lt;space&gt;g&lt;u00e9&gt;n&lt;u00e9&gt;r&lt;u00e9&gt;&lt;space&gt;par&lt;space&gt;un&lt;space&gt;administrateur."/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="69"
+#!   TYPE="AttributeFilter"
+#!   VERSION="4"
+#!   POSITION="-2400 750"
+#!   BOUNDING_RECT="-2400 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="&lt;EMPTY&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;MISSING&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <OUTPUT_FEAT NAME="&lt;NULL&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="2"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="2" />
+#!     <OUTPUT_FEAT NAME="&lt;UNFILTERED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="3"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="3" />
+#!     <OUTPUT_FEAT NAME="1"/>
+#!     <FEAT_COLLAPSED COLLAPSED="4"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="4" />
+#!     <OUTPUT_FEAT NAME="0"/>
+#!     <FEAT_COLLAPSED COLLAPSED="5"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="5" />
+#!     <XFORM_PARM PARM_NAME="ATTR_VALUES_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_NAME" PARM_VALUE="_defaultFormForce"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeFilter"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_VALUES" PARM_VALUE="&lt;lt&gt;EMPTY&lt;gt&gt;,&lt;lt&gt;MISSING&lt;gt&gt;,&lt;lt&gt;NULL&lt;gt&gt;,&lt;lt&gt;UNFILTERED&lt;gt&gt;,1,0"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="65"
+#!   TYPE="ParameterFetcher"
+#!   VERSION="4"
+#!   POSITION="-3051 750"
+#!   BOUNDING_RECT="-3051 750 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="ParameterFetcher"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="_defaultFormForce {$(defaultFormForce)}"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="67"
+#!   TYPE="HTTPCaller"
+#!   VERSION="0"
+#!   POSITION="-1117.92 1890.57"
+#!   BOUNDING_RECT="-1117.92 1890.57 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="Output"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;Rejected&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="_response_body"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="$(H_url)&lt;solidus&gt;workspaces&lt;solidus&gt;&lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt;?token=$(H_sessionId)"/>
+#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="auto-detect"/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_URL_PARAMETERS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="HTTPCaller_3"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="cmd StringUpload SOURCE_EXPRESSION;Default_Reset;MIME_TYPE;text&lt;solidus&gt;plain;FME_CONTROLLER_QUERY_FILE;transformers&lt;backslash&gt;dependencies&lt;backslash&gt;http&lt;backslash&gt;StringUpload.fme"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="Multipart / Form Data"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="PUT"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_MULTI" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="HTTP_RESPONSE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ADDITIONAL_PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="_headers"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="90"/>
+#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_RESPONSE_PARAMETERS" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
+#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="60"/>
+#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
+#!     <XFORM_PARM PARM_NAME="SAVE_FILE" PARM_VALUE="Attribute"/>
+#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="72"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="-506.601 2049.06"
+#!   BOUNDING_RECT="-506.601 2049.06 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_3"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;_http_status_code&lt;closeparen&gt; = 200"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="75"
+#!   TYPE="SQLExecutor"
+#!   VERSION="6"
+#!   POSITION="5850 2043.4"
+#!   BOUNDING_RECT="5850 2043.4 0 0"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="RESULT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="INITIATOR"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="DB_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_USER_NAME" PARM_VALUE="$(dbUser)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_HOST" PARM_VALUE="$(dbServer)"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PORT" PARM_VALUE="$(dbPort)"/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Initiator Geometry Only"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="SQL_STATEMENT" PARM_VALUE="select&lt;space&gt;form_type&lt;space&gt;as&lt;space&gt;form_type&lt;comma&gt;&lt;space&gt;name&lt;space&gt;as&lt;space&gt;name&lt;comma&gt;&lt;space&gt;key&lt;space&gt;as&lt;space&gt;key&lt;space&gt;from&lt;space&gt;s_gtf.workspace&lt;space&gt;where&lt;space&gt;workspace_id&lt;space&gt;=&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;workspace_id&lt;closeparen&gt;"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_PASSWORD" PARM_VALUE="$(dbPassword)"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SQLExecutor_2"/>
+#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="POSTGRES"/>
+#!     <XFORM_PARM PARM_NAME="POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
+#!     <XFORM_PARM PARM_NAME="EXPOSED_ATTRIBUTE_LIST" PARM_VALUE="form_type,name,key"/>
+#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(dbDatabase)"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="POSTGRES_HOST,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;H&lt;u00f4&gt;te&lt;space&gt;:,POSTGRES_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,POSTGRES&lt;space&gt;,POSTGRES_PASSWORD,&quot;OPTIONAL PASSWORD&quot;,POSTGRES&lt;space&gt;Mot&lt;space&gt;de&lt;space&gt;passe&lt;space&gt;:,POSTGRES_USER_NAME,&quot;OPTIONAL TEXT&quot;,POSTGRES&lt;space&gt;Nom&lt;space&gt;d&lt;apos&gt;utilisateur&lt;space&gt;:,POSTGRES_PORT,&quot;OPTIONAL INTEGER&quot;,POSTGRES&lt;space&gt;Port&lt;space&gt;:"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COMBINE_ATTRS" PARM_VALUE="Keep Result Attributes if Conflict"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="76"
+#!   TYPE="Tester"
+#!   VERSION="2"
+#!   POSITION="6521.74 1989.05"
+#!   BOUNDING_RECT="6521.74 1989.05 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="PASSED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="FAILED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
+#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TEST_DESCRIPTION" PARM_VALUE="&quot;&quot;"/>
+#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_5"/>
+#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;form_type&lt;closeparen&gt; = default"/>
+#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="Automatic"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="84"
+#!   TYPE="PythonCaller"
+#!   VERSION="4"
+#!   POSITION="7200 1950"
+#!   BOUNDING_RECT="7200 1950 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="PYTHONSYMBOL" PARM_VALUE="copyForm"/>
+#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="PYTHONSOURCE" PARM_VALUE="from&lt;space&gt;shutil&lt;space&gt;import&lt;space&gt;copyfile&lt;lf&gt;import&lt;space&gt;fmeobjects&lt;lf&gt;&lt;lf&gt;def&lt;space&gt;copyForm&lt;openparen&gt;feature&lt;closeparen&gt;:&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;dsubformFile&lt;space&gt;=&lt;space&gt;feature.getAttribute&lt;openparen&gt;&lt;apos&gt;path_unix&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;form&lt;solidus&gt;DSubform.json&lt;apos&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;subformFile&lt;space&gt;=&lt;space&gt;feature.getAttribute&lt;openparen&gt;&lt;apos&gt;path_unix&lt;apos&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;&lt;apos&gt;&lt;solidus&gt;form&lt;solidus&gt;Subform.json&lt;apos&gt;&lt;space&gt;&lt;space&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;copyfile&lt;openparen&gt;dsubformFile&lt;comma&gt;subformFile&lt;closeparen&gt;&lt;lf&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="PythonCaller_2"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="HIDE_ATTRIBUTES" PARM_VALUE=""/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="89"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="6550 1500"
+#!   BOUNDING_RECT="6550 1500 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="statut" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_3"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="statut,Formulaire&lt;space&gt;par&lt;space&gt;d&lt;u00e9&gt;faut&lt;space&gt;reg&lt;u00e9&gt;n&lt;u00e9&gt;r&lt;u00e9&gt;&lt;space&gt;avec&lt;space&gt;succ&lt;u00e8&gt;s."/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="92"
+#!   TYPE="AttributeCreator"
+#!   VERSION="7"
+#!   POSITION="7458.41 1516.68"
+#!   BOUNDING_RECT="7458.41 1516.68 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="15575"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="path_unix" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="workspace_id" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_defaultFormForce" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_headers{}.value" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="form_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="name" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="key" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="statut" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeCreator_4"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
+#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="statut,Formulaire&lt;space&gt;par&lt;space&gt;d&lt;u00e9&gt;faut&lt;space&gt;reg&lt;u00e9&gt;n&lt;u00e9&gt;r&lt;u00e9&gt;&lt;space&gt;et&lt;space&gt;publi&lt;u00e9&gt;&lt;space&gt;avec&lt;space&gt;succ&lt;u00e8&gt;s."/>
+#!     <XFORM_PARM PARM_NAME="ATTR_LIST_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_VALUE="No Substitution"/>
+#! </TRANSFORMER>
+#! </TRANSFORMERS>
+#! <FEAT_LINKS>
+#! <FEAT_LINK
+#!   IDENTIFIER="38"
+#!   SOURCE_NODE="31"
+#!   TARGET_NODE="37"
+#!   SOURCE_PORT_DESC="-1"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="16"
+#!   SOURCE_NODE="4"
+#!   TARGET_NODE="7"
+#!   SOURCE_PORT_DESC="fo 0 Output"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="21"
+#!   SOURCE_NODE="5"
+#!   TARGET_NODE="10"
+#!   SOURCE_PORT_DESC="fo 0 Output"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="18"
+#!   SOURCE_NODE="6"
+#!   TARGET_NODE="8"
+#!   SOURCE_PORT_DESC="fo 0 Output"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="56"
+#!   SOURCE_NODE="7"
+#!   TARGET_NODE="5"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="61"
+#!   SOURCE_NODE="8"
+#!   TARGET_NODE="42"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="58"
+#!   SOURCE_NODE="10"
+#!   TARGET_NODE="6"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="66"
+#!   SOURCE_NODE="32"
+#!   TARGET_NODE="65"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="53"
+#!   SOURCE_NODE="37"
+#!   TARGET_NODE="52"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="49"
+#!   SOURCE_NODE="40"
+#!   TARGET_NODE="48"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="60"
+#!   SOURCE_NODE="42"
+#!   TARGET_NODE="59"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="51"
+#!   SOURCE_NODE="45"
+#!   TARGET_NODE="46"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="43"
+#!   SOURCE_NODE="46"
+#!   TARGET_NODE="4"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="50"
+#!   SOURCE_NODE="48"
+#!   TARGET_NODE="45"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="54"
+#!   SOURCE_NODE="52"
+#!   TARGET_NODE="32"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="64"
+#!   SOURCE_NODE="62"
+#!   TARGET_NODE="59"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="70"
+#!   SOURCE_NODE="65"
+#!   TARGET_NODE="69"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="73"
+#!   SOURCE_NODE="67"
+#!   TARGET_NODE="72"
+#!   SOURCE_PORT_DESC="fo 0 Output"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="80"
+#!   SOURCE_NODE="72"
+#!   TARGET_NODE="75"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 INITIATOR"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS="3975 1961"
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="77"
+#!   SOURCE_NODE="75"
+#!   TARGET_NODE="76"
+#!   SOURCE_PORT_DESC="fo 0 RESULT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="86"
+#!   SOURCE_NODE="76"
+#!   TARGET_NODE="84"
+#!   SOURCE_PORT_DESC="fo 0 PASSED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="87"
+#!   SOURCE_NODE="84"
+#!   TARGET_NODE="92"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="91"
+#!   SOURCE_NODE="89"
+#!   TARGET_NODE="59"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="88"
+#!   SOURCE_NODE="92"
+#!   TARGET_NODE="59"
+#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
+#!   TARGET_PORT_DESC="-1"
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="19"
+#!   SOURCE_NODE="4"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;Rejected&lt;gt&gt;"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="23"
+#!   SOURCE_NODE="5"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;Rejected&lt;gt&gt;"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="25"
+#!   SOURCE_NODE="6"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;Rejected&lt;gt&gt;"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="20"
+#!   SOURCE_NODE="7"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="26"
+#!   SOURCE_NODE="8"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="24"
+#!   SOURCE_NODE="10"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="63"
+#!   SOURCE_NODE="46"
+#!   TARGET_NODE="62"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="82"
+#!   SOURCE_NODE="67"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;Rejected&lt;gt&gt;"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="81"
+#!   SOURCE_NODE="72"
+#!   TARGET_NODE="9"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="90"
+#!   SOURCE_NODE="76"
+#!   TARGET_NODE="89"
+#!   SOURCE_PORT_DESC="fo 1 FAILED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="74"
+#!   SOURCE_NODE="69"
+#!   TARGET_NODE="67"
+#!   SOURCE_PORT_DESC="fo 4 1"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! <FEAT_LINK
+#!   IDENTIFIER="71"
+#!   SOURCE_NODE="69"
+#!   TARGET_NODE="40"
+#!   SOURCE_PORT_DESC="fo 5 0"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! </FEAT_LINKS>
+#! <BREAKPOINTS>
+#! </BREAKPOINTS>
+#! <ATTR_LINKS>
+#! </ATTR_LINKS>
+#! <SUBDOCUMENTS>
+#! </SUBDOCUMENTS>
+#! <LOOKUP_TABLES>
+#! </LOOKUP_TABLES>
+#! </WORKSPACE>
+FME_PYTHON_VERSION 27
+GUI IGNORE PATH_IN_GLOB_PATTERN_PATH_1,PATH_IN_TYPE_PATH_1,PATH_IN_RETRIEVE_FILE_PROPERTIES_PATH_1,SourceDataset_PATH_1,PATH_IN_NETWORK_AUTHENTICATION_PATH_1,DestDataset_XML_1,XML_OUT_PRETTY_PRINT_SETTINGS_XML_1,XML_OUT_PRETTY_PRINT_XML_1,XML_OUT_INDENT_SIZE_XML_1,XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1,XML_OUT_XML_WRT_ADV_PARM_XML_1,XML_OUT_XSD_DOC_XML_1,XML_OUT_SUPPRESS_TARGET_NS_XML_1,XML_OUT_TABLE_WRAPPER_PREFIX_XML_1,XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1,XML_OUT_ROW_ID_ATTR_NAME_XML_1,XML_OUT_ROW_ID_PREFIX_XML_1,XML_OUT_APPLY_STYLESHEET_XML_1,XML_OUT_STYLESHEET_RESULT_XML_1,XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1,XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1,XML_OUT_XML_VALIDATION_XML_1,XML_OUT_XSD_VALIDATION_DOCS_XML_1,_TARGET_NS_URI_XML_1,_TARGET_NS_PREFIX_XML_1,_TABLES_ROOT_ELEMENT_XML_1,_XML_NAMESPACE_DECLARATIONS_XML_1,_WRAP_TABLES_XML_1,_SUPPRESS_XML_DOCUMENT_XML_1,_SUPPRESS_XSD_DOCUMENT_XML_1,_GENERATE_ROW_ID_XML_1,_OUTPUT_ENCODING_XML_1
+DEFAULT_MACRO H_sessionId f497f1qg5rqovsae893nra8on0
+GUI OPTIONAL TEXT H_sessionId ID de session :
+DEFAULT_MACRO H_url https://palomino/rest/gtf/
+GUI OPTIONAL TEXT H_url URL de l'API du serveur GTF :
+DEFAULT_MACRO HTML C:\TEMP\rapport_formulaires.html
+GUI OPTIONAL FILENAME HTML All_Files(*.*)|*.* Rapport HTML :
+DEFAULT_MACRO defaultFormForce 0
+GUI LOOKUP_CHOICE defaultFormForce Oui,1%Non,0 Forcer la regénération du formulaire par défaut pour tous les traitements :
+DEFAULT_MACRO GTF_CONNECTION_STRING 
+GUI OPTIONAL PASSWORD GTF_CONNECTION_STRING Chaîne de connexion à la base GTF :
+INCLUDE PYTHON
+def ParamFunc():
+  return FME_MacroValues['FME_MF_DIR'] + '../..'
+value = ParamFunc()
+macroName = 'workspacesDir'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[0]
+value = ParamFunc()
+macroName = 'dbServer'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[1]
+value = ParamFunc()
+macroName = 'dbPort'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[2]
+value = ParamFunc()
+macroName = 'dbDatabase'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[3]
+value = ParamFunc()
+macroName = 'dbUser'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  # Génère un nom de répertoire temporaire unique
+  import uuid
+  import os
+
+  temp = os.environ.get("TEMP")
+  if temp is not None:
+      temp_dir = temp + "\\" + str(uuid.uuid1())
+  else:
+      temp_dir = "c:\\temp\\" + str(uuid.uuid1())
+  return temp_dir + '\\rapport.xml'
+value = ParamFunc()
+macroName = 'xml'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  return FME_MacroValues['FME_MF_DIR'] + 'formCheckerRapport.xslt'
+value = ParamFunc()
+macroName = 'xslt'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE PYTHON
+def ParamFunc():
+  import fmeobjects
+  import string
+  connection_string = string.split(FME_MacroValues['GTF_CONNECTION_STRING'],',')
+  return connection_string[4]
+value = ParamFunc()
+macroName = 'dbPassword'
+if value == None:
+  return { macroName : '' }
+else:
+  return { macroName : str(value) }
+END_INCLUDE
+INCLUDE [ if {{$(defaultFormForce)} == {}} { puts_real {Parameter 'defaultFormForce' must be given a value.}; exit 1; }; ]
+#! START_HEADER
+#! START_WB_HEADER
+READER_TYPE PATH
+READER_KEYWORD PATH_1
+READER_GEN_DIRECTIVES TYPE,DIRECTORY,RETRIEVE_FILE_PROPERTIES,NO,GLOB_PATTERN,*,_MERGE_SCHEMAS,YES
+
+WRITER_TYPE MULTI_WRITER
+MULTI_WRITER_DATASET_ORDER BY_ID
+MULTI_WRITER_FIRST_WRITER_ID 0
+MULTI_WRITER_TYPE{0} XML
+MULTI_WRITER_KEYWORD{0} XML_1
+#! END_WB_HEADER
+
+#! START_WB_HEADER
+MACRO WB_KEYWORD "PATH_1"
+#! END_WB_HEADER
+#! START_SOURCE_HEADER PATH PATH_1
+# =============================================================================
+DEFAULT_MACRO PATH_IN_GLOB_PATTERN_PATH_1 *
+PATH_1_GLOB_PATTERN "$(PATH_IN_GLOB_PATTERN_PATH_1)"
+GUI OPTIONAL TEXT_ENCODED PATH_IN_GLOB_PATTERN_PATH_1 Path Filter:
+# =============================================================================
+DEFAULT_MACRO PATH_IN_TYPE_PATH_1 DIRECTORY
+PATH_1_TYPE "$(PATH_IN_TYPE_PATH_1)"
+GUI CHOICE PATH_IN_TYPE_PATH_1 ANY%DIRECTORY%FILE Allowed Path Type:
+# =============================================================================
+DEFAULT_MACRO PATH_IN_RETRIEVE_FILE_PROPERTIES_PATH_1 NO
+PATH_1_RETRIEVE_FILE_PROPERTIES "$(PATH_IN_RETRIEVE_FILE_PROPERTIES_PATH_1)"
+GUI CHOICE PATH_IN_RETRIEVE_FILE_PROPERTIES_PATH_1 YES%NO Retrieve file properties:
+# =====================================================================
+# The following GUI line prompts for the folder from which to
+# read
+# The dataset this mapping file was generated from was:
+#! END_SOURCE_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO SourceDataset
+INCLUDE [ if {{$(SourceDataset)} != ""} {                        \
+ puts {DEFAULT_MACRO SourceDataset_PATH_1 $(SourceDataset)}     \
+ } ]
+#! END_WB_HEADER
+#! START_SOURCE_HEADER PATH PATH_1
+DEFAULT_MACRO SourceDataset_PATH_1 $(workspacesDir)
+GUI MULTIDIR SourceDataset_PATH_1 Source Folder and File Pathnames Folder:
+# ===========================================================================
+DEFAULT_MACRO PATH_IN_NETWORK_AUTHENTICATION_PATH_1 
+PATH_1_NETWORK_AUTHENTICATION "$(PATH_IN_NETWORK_AUTHENTICATION_PATH_1)"
+GUI OPTIONAL AUTHENTICATOR PATH_IN_NETWORK_AUTHENTICATION_PATH_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication
+PATH_1_DATASET "$(SourceDataset_PATH_1)"
+#! END_SOURCE_HEADER
+#! START_WB_HEADER
+MACRO WB_KEYWORD "XML_1"
+#! END_WB_HEADER
+#! START_DEST_HEADER XML XML_1
+#! END_DEST_HEADER
+#! START_WB_HEADER
+DEFAULT_MACRO DestDataset
+INCLUDE [ if {"$(DestDataset)" != ""} {                          \
+ puts {DEFAULT_MACRO DestDataset_XML_1 $(DestDataset)}         \
+ } ]
+#! END_WB_HEADER
+#! START_DEST_HEADER XML XML_1
+DEFAULT_MACRO DestDataset_XML_1 $(xml)
+GUI FILENAME DestDataset_XML_1 XML_Files(*)|* Destination XML (Extensible Markup Language) File:
+# ============================================================================
+# The WRITER_MODE keyword sets the XML Writer's mode. Valid values are
+# 'TABLES_ATTRIBUTES_ONLY', 'TABLES', and 'XFMAP'
+#
+# TABLES_ATTRIBUTES_ONLY: This writes out the non-geometrical
+# attributes of features into an XML dataset.
+#
+# TABLES and XFMAP: Are not implemented yet.
+DEFAULT_MACRO _WRITER_MODE_XML_1 TABLES_ATTRIBUTES_ONLY
+XML_1_WRITER_MODE $(_WRITER_MODE_XML_1)
+# ============================================================================
+GUI DISCLOSUREGROUP XML_OUT_PRETTY_PRINT_SETTINGS_XML_1 PRETTY_PRINT%INDENT_SIZE%REPLACE_TABS_WITH_SPACES Pretty Printing
+DEFAULT_MACRO XML_OUT_PRETTY_PRINT_XML_1 No
+XML_1_PRETTY_PRINT "$(XML_OUT_PRETTY_PRINT_XML_1)"
+GUI OPTIONAL CHOICE XML_OUT_PRETTY_PRINT_XML_1 Yes%No Pretty Print:
+DEFAULT_MACRO XML_OUT_INDENT_SIZE_XML_1 0
+XML_1_INDENT_SIZE "$(XML_OUT_INDENT_SIZE_XML_1)"
+GUI OPTIONAL CHOICE XML_OUT_INDENT_SIZE_XML_1 0%1%2%3%4%5%6%7%8%9 Indent Size:
+DEFAULT_MACRO XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1 No
+XML_1_REPLACE_TABS_WITH_SPACES "$(XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1)"
+GUI OPTIONAL CHOICE XML_OUT_REPLACE_TABS_WITH_SPACES_XML_1 Yes%No Replace Tabs with Spaces:
+GUI DISCLOSUREGROUP XML_OUT_XML_WRT_ADV_PARM_XML_1 XSD_DOC%SUPPRESS_TARGET_NS%TABLE_WRAPPER_PREFIX%TABLE_WRAPPER_SUFFIX%ROW_ID_ATTR_NAME%ROW_ID_PREFIX%APPLY_STYLESHEET%STYLESHEET_RESULT%XML_ROOT_ELEMENT_APPEND_PATH%APPEND_XML_FRAGMENTS_AS%XML_VALIDATION%XSD_VALIDATION_DOCS Advanced
+DEFAULT_MACRO XML_OUT_XSD_DOC_XML_1 
+XML_1_XSD_DOC "$(XML_OUT_XSD_DOC_XML_1)"
+GUI OPTIONAL FILENAME XML_OUT_XSD_DOC_XML_1 XML_Schema_File(*.xsd)|*.xsd|All_Files(*.*)|*.* XML Schema Document:
+DEFAULT_MACRO XML_OUT_SUPPRESS_TARGET_NS_XML_1 yes
+XML_1_SUPPRESS_TARGET_NS "$(XML_OUT_SUPPRESS_TARGET_NS_XML_1)"
+GUI CHOICE XML_OUT_SUPPRESS_TARGET_NS_XML_1 yes%no Suppress Target Namespace:
+DEFAULT_MACRO XML_OUT_TABLE_WRAPPER_PREFIX_XML_1 
+XML_1_TABLE_WRAPPER_PREFIX "$(XML_OUT_TABLE_WRAPPER_PREFIX_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_TABLE_WRAPPER_PREFIX_XML_1 Table Wrap Prefix:
+DEFAULT_MACRO XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1 
+XML_1_TABLE_WRAPPER_SUFFIX "$(XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_TABLE_WRAPPER_SUFFIX_XML_1 Table Wrap Suffix:
+DEFAULT_MACRO XML_OUT_ROW_ID_ATTR_NAME_XML_1 
+XML_1_ROW_ID_ATTR_NAME "$(XML_OUT_ROW_ID_ATTR_NAME_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_ROW_ID_ATTR_NAME_XML_1 Row ID Attribute Name:
+DEFAULT_MACRO XML_OUT_ROW_ID_PREFIX_XML_1 
+XML_1_ROW_ID_PREFIX "$(XML_OUT_ROW_ID_PREFIX_XML_1)"
+GUI OPTIONAL TEXT XML_OUT_ROW_ID_PREFIX_XML_1 Row ID Prefix:
+DEFAULT_MACRO XML_OUT_APPLY_STYLESHEET_XML_1 $(xslt)
+XML_1_APPLY_STYLESHEET "$(XML_OUT_APPLY_STYLESHEET_XML_1)"
+GUI OPTIONAL FILENAME_MUSTEXIST XML_OUT_APPLY_STYLESHEET_XML_1 XSLT_Stylesheet_Files(*.xslt)|*.xslt|All_Files(*.*)|*.* XSLT Style Sheet to Apply:
+DEFAULT_MACRO XML_OUT_STYLESHEET_RESULT_XML_1 $(HTML)
+XML_1_STYLESHEET_RESULT "$(XML_OUT_STYLESHEET_RESULT_XML_1)"
+GUI OPTIONAL FILENAME XML_OUT_STYLESHEET_RESULT_XML_1 All_Files(*.*)|*.* Style Sheet File to Write:
+DEFAULT_MACRO XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1 
+XML_1_XML_ROOT_ELEMENT_APPEND_PATH "$(XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1)"
+GUI OPTIONAL TEXT_EDIT XML_OUT_XML_ROOT_ELEMENT_APPEND_PATH_XML_1 XML_ROOT_ELEMENT Append Path:
+DEFAULT_MACRO XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1 SUCCEEDING_CHILDREN
+XML_1_APPEND_XML_FRAGMENTS_AS "$(XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1)"
+GUI LOOKUP_CHOICE XML_OUT_APPEND_XML_FRAGMENTS_AS_XML_1 "Preceding Children",PRECEDING_CHILDREN%"Succeeding Children",SUCCEEDING_CHILDREN%"Preceding Siblings",PRECEDING_SIBLINGS%"Succeeding Siblings",SUCCEEDING_SIBLINGS Append XML_FRAGMENTs As:
+DEFAULT_MACRO XML_OUT_XML_VALIDATION_XML_1 No
+XML_1_XML_VALIDATION "$(XML_OUT_XML_VALIDATION_XML_1)"
+GUI ACTIVECHOICE XML_OUT_XML_VALIDATION_XML_1 Yes%No,XML_OUT_XSD_VALIDATION_DOCS XML Schema Validation:
+DEFAULT_MACRO XML_OUT_XSD_VALIDATION_DOCS_XML_1 <Unused>
+XML_1_XSD_VALIDATION_DOCS "$(XML_OUT_XSD_VALIDATION_DOCS_XML_1)"
+GUI OPTIONAL MULTIFILE XML_OUT_XSD_VALIDATION_DOCS_XML_1 XML_Schema_File(*.xsd)|*.xsd|All_Files(*.*)|*.* XML Schema Validation Document:
+# ============================================================================
+# Opt in for destination dataset type vs format type validation
+DEFAULT_MACRO XML_OUT_DESTINATION_DATASETTYPE_VALIDATION_XML_1 Yes
+XML_1_DESTINATION_DATASETTYPE_VALIDATION "$(XML_OUT_DESTINATION_DATASETTYPE_VALIDATION_XML_1)"
+DEFAULT_MACRO XML_OUT_COORDINATE_SYSTEM_GRANULARITY_XML_1 C:\TEMP\rapport_import.xml
+XML_1_COORDINATE_SYSTEM_GRANULARITY "$(XML_OUT_COORDINATE_SYSTEM_GRANULARITY_XML_1)"
+DEFAULT_MACRO _TARGET_NS_URI_XML_1 
+GUI OPTIONAL TEXT _TARGET_NS_URI_XML_1 Target Namespace URI:
+XML_1_TARGET_NS_URI $(_TARGET_NS_URI_XML_1)
+DEFAULT_MACRO _TARGET_NS_PREFIX_XML_1 
+GUI OPTIONAL TEXT _TARGET_NS_PREFIX_XML_1 Target Namespace Prefix:
+XML_1_TARGET_NS_PREFIX $(_TARGET_NS_PREFIX_XML_1)
+DEFAULT_MACRO _TABLES_ROOT_ELEMENT_XML_1 
+GUI OPTIONAL TEXT _TABLES_ROOT_ELEMENT_XML_1 Tables Root Element Name:
+XML_1_TABLES_ROOT_ELEMENT $(_TABLES_ROOT_ELEMENT_XML_1)
+DEFAULT_MACRO _XML_NAMESPACE_DECLARATIONS_XML_1 
+GUI OPTIONAL STRING_ENCODED _XML_NAMESPACE_DECLARATIONS_XML_1 XML Namespace Declarations:
+XML_1_XML_NAMESPACE_DECLARATIONS $(_XML_NAMESPACE_DECLARATIONS_XML_1)
+DEFAULT_MACRO _WRAP_TABLES_XML_1 yes
+GUI OPTIONAL CHOICE _WRAP_TABLES_XML_1 yes%no Wrap Table Elements:
+XML_1_WRAP_TABLES $(_WRAP_TABLES_XML_1)
+DEFAULT_MACRO _SUPPRESS_XML_DOCUMENT_XML_1 no
+GUI CHOICE _SUPPRESS_XML_DOCUMENT_XML_1 yes%no Suppress XML output:
+XML_1_SUPPRESS_XML_DOCUMENT $(_SUPPRESS_XML_DOCUMENT_XML_1)
+DEFAULT_MACRO _SUPPRESS_XSD_DOCUMENT_XML_1 no
+GUI CHOICE _SUPPRESS_XSD_DOCUMENT_XML_1 yes%no Suppress XSD output:
+XML_1_SUPPRESS_XSD_DOCUMENT $(_SUPPRESS_XSD_DOCUMENT_XML_1)
+DEFAULT_MACRO _GENERATE_ROW_ID_XML_1 no
+GUI CHOICE _GENERATE_ROW_ID_XML_1 yes%no Generate Row ID Attributes:
+XML_1_GENERATE_ROW_ID $(_GENERATE_ROW_ID_XML_1)
+DEFAULT_MACRO _OUTPUT_ENCODING_XML_1 
+GUI OPTIONAL STRING_OR_ENCODING _OUTPUT_ENCODING_XML_1 UTF-8%UTF-16LE%UTF-16BE%SYSTEM%BIG5%SJIS%CP437%CP708%CP720%CP737%CP775%CP850%CP852%CP855%CP857%CP860%CP861%CP862%CP863%CP864%CP865%CP866%CP869%CP932%CP936%CP950%CP1250%CP1251%CP1252%CP1253%CP1254%CP1255%CP1256%CP1257%CP1258%ISO8859-1%ISO8859-2%ISO8859-3%ISO8859-4%ISO8859-5%ISO8859-6%ISO8859-7%ISO8859-8%ISO8859-9%ISO8859-13%ISO8859-15 Output Dataset Encoding:
+XML_1_OUTPUT_ENCODING $(_OUTPUT_ENCODING_XML_1)
+XML_1_DATASET "$(DestDataset_XML_1)"
+#! END_DEST_HEADER
+#! START_WB_HEADER
+#! END_WB_HEADER
+
+#! END_HEADER
+
+LOG_FILENAME "$(FME_MF_DIR)formChecker.log"
+LOG_APPEND NO
+LOG_MAX_FEATURES 200
+LOG_MAX_RECORDED_FEATURES 200
+FME_REPROJECTION_ENGINE FME
+FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto
+FME_GEOMETRY_HANDLING Enhanced
+FME_STROKE_MAX_DEVIATION 0
+LOG_FILTER_MASK -1
+DEFAULT_MACRO DATASET_KEYWORD_PATH_1 PATH_1
+DEFAULT_MACRO DATASET_KEYWORD_XML_1 XML_1
+FME_PASSWORD_PARAMETER_LIST GTF_CONNECTION_STRING
+# -------------------------------------------------------------------------
+
+PATH_1_READER_META_ATTRIBUTES fme_feature_type
+
+# -------------------------------------------------------------------------
+
+MULTI_READER_CONTINUE_ON_READER_FAILURE No
+
+# -------------------------------------------------------------------------
+
+MACRO WORKSPACE_NAME formChecker
+MACRO FME_VIEWER_APP fmedatainspector
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory   FACTORY_NAME "Router and Unexpected Input Remover"   COMMAND_PARM_EVALUATION SINGLE_PASS   MULTI_READER_KEYWORD PATH_1   INPUT FEATURE_TYPE *    ROUTE PATH PATH_1::PATH TO FME_GENERIC ::PATH ALIAS_GEOMETRY    MERGE_INPUT Yes   OUTPUT ROUTED FEATURE_TYPE *
+PATH_1_MERGE_DEF PATH_1::PATH EXACT PATH
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME "PATH (PATH_1) Splitter"    INPUT FEATURE_TYPE PATH    OUTPUT FEATURE_TYPE PATH_PATH_1
+DEFAULT_MACRO WB_CURRENT_CONTEXT
+# -------------------------------------------------------------------------
+
+INCLUDE [    set macroLine "MACRO AttributeKeeper_dfc18292_ab3c_45b3_ba91_e7d775fbcb6e0_LIST_EXP ";    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append macroLine ",^$attr$";    };    puts $macroLine; ]
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeKeeper    INPUT  FEATURE_TYPE PATH_PATH_1    OUTPUT FEATURE_TYPE AttributeKeeper_OUTPUT        @KeepAttributes(fme_encoded,path_rootname,path_unix,fme_pcre_match,"^fme_$(AttributeKeeper_dfc18292_ab3c_45b3_ba91_e7d775fbcb6e0_LIST_EXP)")
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory    FACTORY_NAME AttributeRenamer    INPUT  FEATURE_TYPE AttributeKeeper_OUTPUT    OUTPUT FEATURE_TYPE AttributeRenamer_OUTPUT         @RenameAttributes(ATTR_LIST_DEF_VAL_ENCODED, path_rootname,workspace_id,)
+
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester    INPUT  FEATURE_TYPE AttributeRenamer_OUTPUT    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>workspace_id<closeparen>,Tester) MATCHES_REGEX <openbracket>0-9<closebracket>+ ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_PASSED
+# -------------------------------------------------------------------------
+
+Tcl2 proc ParameterFetcher_doFetch {} {    foreach {name val} {"_defaultFormForce {$(defaultFormForce)}"} {         if { [string match {*<at>*} $val] == 1 } {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher}];         } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} {             set val [FME_Execute EvaluateExpression {STRING} $val {ParameterFetcher}];         } else {             set val [FME_DecodeTextOrAttr $val];         };       FME_SetAttribute [FME_DecodeText $name] $val    } }
+FACTORY_DEF * TeeFactory    FACTORY_NAME ParameterFetcher    INPUT  FEATURE_TYPE Tester_PASSED    OUTPUT FEATURE_TYPE ParameterFetcher_OUTPUT         @Tcl2(ParameterFetcher_doFetch)
+
+# -------------------------------------------------------------------------
+Lookup AttributeFilter_AttributeFilterLut   1 ok   0 ok   "" notok   ENCODED
+
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter    INPUT  FEATURE_TYPE ParameterFetcher_OUTPUT    TEST @Lookup(AttributeFilter_AttributeFilterLut,_defaultFormForce,ENCODED_ATTR) == "ok"    OUTPUT PASSED FEATURE_TYPE * @FeatureType(SET_FROM_ATTR, _defaultFormForce, AttributeFilter)    OUTPUT FAILED FEATURE_TYPE AttributeFilter_<NULL>
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter_NullFilter    INPUT FEATURE_TYPE AttributeFilter_<NULL>    TEST _defaultFormForce ATTRIBUTE_VALUE_NULL "" ENCODED    OUTPUT PASSED FEATURE_TYPE AttributeFilter_<NULL>    OUTPUT FAILED FEATURE_TYPE AttributeFilter_<MISSING>
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter_MissingFilter    INPUT FEATURE_TYPE AttributeFilter_<MISSING>    TEST _defaultFormForce ATTRIBUTE_IS_MISSING "" ENCODED    OUTPUT PASSED FEATURE_TYPE AttributeFilter_<MISSING>    OUTPUT FAILED FEATURE_TYPE AttributeFilter_<UNFILTERED>
+FACTORY_DEF * TestFactory    FACTORY_NAME AttributeFilter_BlankFilter    INPUT FEATURE_TYPE AttributeFilter_<UNFILTERED>    TEST _defaultFormForce ATTRIBUTE_IS_EMPTY "" ENCODED    OUTPUT PASSED FEATURE_TYPE AttributeFilter_<EMPTY>    OUTPUT FAILED FEATURE_TYPE AttributeFilter_<UNFILTERED>
+
+
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter <EMPTY> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_<EMPTY>
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter <MISSING> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_<MISSING>
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter <NULL> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_<NULL>
+FACTORY_DEF * TeeFactory   FACTORY_NAME "AttributeFilter <UNFILTERED> Output Nuker"   INPUT FEATURE_TYPE AttributeFilter_<UNFILTERED>
+# -------------------------------------------------------------------------
+
+
+FME_PYTHON_PATH "$(FME_MF_DIR)"
+
+FACTORY_DEF * PythonFactory    FACTORY_NAME PythonCaller    INPUT  FEATURE_TYPE AttributeFilter_0    SYMBOL_NAME subformExists    PYTHON_NAMESPACE FMEOBJECTS    SOURCE_CODE import<space>os.path<lf>import<space>fmeobjects<lf><lf>def<space>subformExists<openparen>feature<closeparen>:<lf><space><space><space><space>subformFile<space>=<space>feature.getAttribute<openparen><apos>path_unix<apos><closeparen><space>+<space><apos><solidus>form<solidus>Subform.json<apos><lf><space><space><space><space>if<space>os.path.isfile<openparen>subformFile<closeparen>:<lf><space><space><space><space><space><space><space><space>feature.setAttribute<openparen><quote>subformExists<quote><comma><space><apos>1<apos><closeparen><lf><space><space><space><space>else:<lf><space><space><space><space><space><space><space><space>feature.setAttribute<openparen><quote>subformExists<quote><comma><space><apos>0<apos><closeparen>    OUTPUT PYOUTPUT FEATURE_TYPE PythonCaller_OUTPUT
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_2    INPUT  FEATURE_TYPE PythonCaller_OUTPUT    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>subformExists<closeparen>,Tester_2) = 0 ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_2_PASSED
+# -------------------------------------------------------------------------
+MACRO SQLExecutor_4_DIRECTIVES HOST "$(dbServer)" QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes PASSWORD "$(dbPassword)" USER_NAME "$(dbUser)" PORT "$(dbPort)"
+
+FACTORY_DEF * QueryFactory    FACTORY_NAME SQLExecutor_4    INPUT  FEATURE_TYPE Tester_2_PASSED    QUERY_SQL            "@EvaluateExpression(FDIV,STRING_ENCODED,select<space>form_type<space>as<space>form_type<comma><space>name<space>as<space>name<comma><space>key<space>as<space>key<space>from<space>s_gtf.workspace<space>where<space>workspace_id<space>=<space><at>Value<openparen>workspace_id<closeparen>,SQLExecutor_4)"    READER_TYPE          POSTGRES    READER_DATASET       "@EvaluateExpression(FDIV,STRING_ENCODED,$(dbDatabase$encode),SQLExecutor_4)"    COMBINE_ATTRIBUTES   PREFER_RESULT    COMBINE_GEOMETRY     QUERY_ONLY    READER_PARAMS        $(SQLExecutor_4_DIRECTIVES)    OUTPUT RESULT FEATURE_TYPE SQLExecutor_4_RESULT    OUTPUT QUERY FEATURE_TYPE SQLExecutor_4_INITIATOR
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "SQLExecutor_4 INITIATOR Output Nuker"   INPUT FEATURE_TYPE SQLExecutor_4_INITIATOR
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_4    INPUT  FEATURE_TYPE SQLExecutor_4_RESULT    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>form_type<closeparen>,Tester_4) = default ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_4_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_4_FAILED
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_2 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE Tester_4_FAILED ATTR statut Formulaire<space>personnalis<u00e9><space>invalide.<lf>Le<space>formulaire<space>doit<space><u00ea>tre<space>g<u00e9>n<u00e9>r<u00e9><space>par<space>un<space>administrateur.    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT 
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * HTTPFactory    FACTORY_NAME HTTPCaller       INPUT  FEATURE_TYPE Tester_4_PASSED    TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(H_url$encode)<solidus>workspaces<solidus><at>Value<openparen>workspace_id<closeparen>?token=$(H_sessionId$encode),HTTPCaller)"    HTTP_METHOD PUT    SAVE_FILE NO    OUTPUT_FILENAME "<Unused>"    OUTPUT_DIRECTORY "<Unused>"    TARGET_ATTR "_response_body"    FILE_PATH_ATTR "<Unused>"    UPLOAD_FILE "<Unused>"    UPLOAD_BODY "<Unused>"    MULTIPART_UPLOAD YES    UPLOAD_CONTENT_TYPE "<Unused>"    COMBINED_MULTIPART_TABLE cmd StringUpload SOURCE_EXPRESSION;Default_Reset;MIME_TYPE;text<solidus>plain    REQUEST_HEADER_TABLE    ADDITIONAL_URL_PARAMETERS    AUTH_USERNAME "<Unused>"    AUTH_PASSWORD "<Unused>"    AUTH_METHOD "<Unused>"    TARGET_ATTRIBUTE_ENCODING auto-detect    RESPONSE_HEADER_LIST_ATTR "_headers"    STATUS_CODE_ATTR "_http_status_code"    ERROR_ATTR "_error"    CONNECTION_TIMEOUT_LENGTH 60    TRANSFER_TIMEOUT_LENGTH 90    FOLLOW_REDIRECTS Yes    VERIFY_SSL_CERTIFICATES No    NAMED_CONNECTION "<Unused>"    USE_COOKIES No    OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_Output    OUTPUT REJECTED FEATURE_TYPE HTTPCaller_<Rejected>
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_9    INPUT  FEATURE_TYPE HTTPCaller_Output    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_http_status_code<closeparen>,Tester_9) = 200 ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_9_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_9_FAILED
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * HTTPFactory    FACTORY_NAME HTTPCaller_4       INPUT  FEATURE_TYPE Tester_9_PASSED    TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(H_url$encode)<solidus>workspaces<solidus><at>Value<openparen>workspace_id<closeparen>?token=$(H_sessionId$encode),HTTPCaller_4)"    HTTP_METHOD PUT    SAVE_FILE NO    OUTPUT_FILENAME "<Unused>"    OUTPUT_DIRECTORY "<Unused>"    TARGET_ATTR "_response_body"    FILE_PATH_ATTR "<Unused>"    UPLOAD_FILE "<Unused>"    UPLOAD_BODY "<Unused>"    MULTIPART_UPLOAD YES    UPLOAD_CONTENT_TYPE "<Unused>"    COMBINED_MULTIPART_TABLE cmd StringUpload SOURCE_EXPRESSION;Default_Published;MIME_TYPE;text<solidus>plain    REQUEST_HEADER_TABLE    ADDITIONAL_URL_PARAMETERS    AUTH_USERNAME "<Unused>"    AUTH_PASSWORD "<Unused>"    AUTH_METHOD "<Unused>"    TARGET_ATTRIBUTE_ENCODING auto-detect    RESPONSE_HEADER_LIST_ATTR "_headers"    STATUS_CODE_ATTR "_http_status_code"    ERROR_ATTR "_error"    CONNECTION_TIMEOUT_LENGTH 60    TRANSFER_TIMEOUT_LENGTH 90    FOLLOW_REDIRECTS Yes    VERIFY_SSL_CERTIFICATES No    NAMED_CONNECTION "<Unused>"    USE_COOKIES No    OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_4_Output    OUTPUT REJECTED FEATURE_TYPE HTTPCaller_4_<Rejected>
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_11    INPUT  FEATURE_TYPE HTTPCaller_4_Output    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_http_status_code<closeparen>,Tester_11) = 200 ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_11_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_11_FAILED
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * HTTPFactory    FACTORY_NAME HTTPCaller_2       INPUT  FEATURE_TYPE Tester_11_PASSED    TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(H_url$encode)<solidus>workspaces<solidus><at>Value<openparen>workspace_id<closeparen>?token=$(H_sessionId$encode),HTTPCaller_2)"    HTTP_METHOD PUT    SAVE_FILE NO    OUTPUT_FILENAME "<Unused>"    OUTPUT_DIRECTORY "<Unused>"    TARGET_ATTR "_response_body"    FILE_PATH_ATTR "<Unused>"    UPLOAD_FILE "<Unused>"    UPLOAD_BODY "<Unused>"    MULTIPART_UPLOAD YES    UPLOAD_CONTENT_TYPE "<Unused>"    COMBINED_MULTIPART_TABLE cmd StringUpload SOURCE_EXPRESSION;Perso_Reset;MIME_TYPE;text<solidus>plain    REQUEST_HEADER_TABLE    ADDITIONAL_URL_PARAMETERS    AUTH_USERNAME "<Unused>"    AUTH_PASSWORD "<Unused>"    AUTH_METHOD "<Unused>"    TARGET_ATTRIBUTE_ENCODING auto-detect    RESPONSE_HEADER_LIST_ATTR "_headers"    STATUS_CODE_ATTR "_http_status_code"    ERROR_ATTR "_error"    CONNECTION_TIMEOUT_LENGTH 60    TRANSFER_TIMEOUT_LENGTH 90    FOLLOW_REDIRECTS Yes    VERIFY_SSL_CERTIFICATES No    NAMED_CONNECTION "<Unused>"    USE_COOKIES No    OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_2_Output    OUTPUT REJECTED FEATURE_TYPE HTTPCaller_2_<Rejected>
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_10    INPUT  FEATURE_TYPE HTTPCaller_2_Output    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_http_status_code<closeparen>,Tester_10) = 200 ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_10_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_10_FAILED
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_6 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE Tester_10_PASSED ATTR statut Formulaires<space>g<u00e9>n<u00e9>r<u00e9>s<space>avec<space>succ<u00e8>s.    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_6_OUTPUT 
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * HTTPFactory    FACTORY_NAME HTTPCaller_3       INPUT  FEATURE_TYPE AttributeFilter_1    TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(H_url$encode)<solidus>workspaces<solidus><at>Value<openparen>workspace_id<closeparen>?token=$(H_sessionId$encode),HTTPCaller_3)"    HTTP_METHOD PUT    SAVE_FILE NO    OUTPUT_FILENAME "<Unused>"    OUTPUT_DIRECTORY "<Unused>"    TARGET_ATTR "_response_body"    FILE_PATH_ATTR "<Unused>"    UPLOAD_FILE "<Unused>"    UPLOAD_BODY "<Unused>"    MULTIPART_UPLOAD YES    UPLOAD_CONTENT_TYPE "<Unused>"    COMBINED_MULTIPART_TABLE cmd StringUpload SOURCE_EXPRESSION;Default_Reset;MIME_TYPE;text<solidus>plain    REQUEST_HEADER_TABLE    ADDITIONAL_URL_PARAMETERS    AUTH_USERNAME "<Unused>"    AUTH_PASSWORD "<Unused>"    AUTH_METHOD "<Unused>"    TARGET_ATTRIBUTE_ENCODING auto-detect    RESPONSE_HEADER_LIST_ATTR "_headers"    STATUS_CODE_ATTR "_http_status_code"    ERROR_ATTR "_error"    CONNECTION_TIMEOUT_LENGTH 60    TRANSFER_TIMEOUT_LENGTH 90    FOLLOW_REDIRECTS Yes    VERIFY_SSL_CERTIFICATES No    NAMED_CONNECTION "<Unused>"    USE_COOKIES No    OUTPUT OUTPUT FEATURE_TYPE HTTPCaller_3_Output    OUTPUT REJECTED FEATURE_TYPE HTTPCaller_3_<Rejected>
+
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_3    INPUT  FEATURE_TYPE HTTPCaller_3_Output    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_http_status_code<closeparen>,Tester_3) = 200 ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_3_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_3_FAILED
+# -------------------------------------------------------------------------
+
+# The default behaviour is to abort on any feature entering the transformer.
+# If Workbench has set the _WB_BYPASS_TERMINATION macro to a value of "Yes",
+# then the features will instead be passed through with a feature type of
+# __WB_BYPASS_TERMINATOR__, which Workbench will send to a visualizer or
+# somesuch.
+
+DEFAULT_MACRO _WB_BYPASS_TERMINATION No
+FACTORY_DEF * TestFactory    FACTORY_NAME Terminator    INPUT  FEATURE_TYPE HTTPCaller_<Rejected>    INPUT  FEATURE_TYPE HTTPCaller_4_<Rejected>    INPUT  FEATURE_TYPE HTTPCaller_2_<Rejected>    INPUT  FEATURE_TYPE Tester_9_FAILED    INPUT  FEATURE_TYPE Tester_10_FAILED    INPUT  FEATURE_TYPE Tester_11_FAILED    INPUT  FEATURE_TYPE HTTPCaller_3_<Rejected>    INPUT  FEATURE_TYPE Tester_3_FAILED    TEST "$(_WB_BYPASS_TERMINATION)" == Yes    OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__       @SupplyAttributes(_wb_termination_feature_type,@FeatureType())       @SupplyAttributes(ENCODED,_wb_termination_message,"Erreur<space>avec<space>l<apos>API<space>GTF")       @SupplyAttributes(_wb_termination_xformer,"Terminator")       @SupplyAttributes(_wb_termination_feature,Yes)    OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,"Erreur<space>avec<space>l<apos>API<space>GTF")
+
+# -------------------------------------------------------------------------
+MACRO SQLExecutor_2_DIRECTIVES HOST "$(dbServer)" QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes PASSWORD "$(dbPassword)" USER_NAME "$(dbUser)" PORT "$(dbPort)"
+
+FACTORY_DEF * QueryFactory    FACTORY_NAME SQLExecutor_2    INPUT  FEATURE_TYPE Tester_3_PASSED    QUERY_SQL            "@EvaluateExpression(FDIV,STRING_ENCODED,select<space>form_type<space>as<space>form_type<comma><space>name<space>as<space>name<comma><space>key<space>as<space>key<space>from<space>s_gtf.workspace<space>where<space>workspace_id<space>=<space><at>Value<openparen>workspace_id<closeparen>,SQLExecutor_2)"    READER_TYPE          POSTGRES    READER_DATASET       "@EvaluateExpression(FDIV,STRING_ENCODED,$(dbDatabase$encode),SQLExecutor_2)"    COMBINE_ATTRIBUTES   PREFER_RESULT    COMBINE_GEOMETRY     QUERY_ONLY    READER_PARAMS        $(SQLExecutor_2_DIRECTIVES)    OUTPUT RESULT FEATURE_TYPE SQLExecutor_2_RESULT    OUTPUT QUERY FEATURE_TYPE SQLExecutor_2_INITIATOR
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "SQLExecutor_2 INITIATOR Output Nuker"   INPUT FEATURE_TYPE SQLExecutor_2_INITIATOR
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TestFactory    FACTORY_NAME Tester_5    INPUT  FEATURE_TYPE SQLExecutor_2_RESULT    TEST @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>form_type<closeparen>,Tester_5) = default ENCODED    BOOLEAN_OPERATOR OR    OUTPUT PASSED FEATURE_TYPE Tester_5_PASSED    OUTPUT FAILED FEATURE_TYPE Tester_5_FAILED
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_3 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE Tester_5_FAILED ATTR statut Formulaire<space>par<space>d<u00e9>faut<space>reg<u00e9>n<u00e9>r<u00e9><space>avec<space>succ<u00e8>s.    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_3_OUTPUT 
+# -------------------------------------------------------------------------
+
+
+FME_PYTHON_PATH "$(FME_MF_DIR)"
+
+FACTORY_DEF * PythonFactory    FACTORY_NAME PythonCaller_2    INPUT  FEATURE_TYPE Tester_5_PASSED    SYMBOL_NAME copyForm    PYTHON_NAMESPACE FMEOBJECTS    SOURCE_CODE from<space>shutil<space>import<space>copyfile<lf>import<space>fmeobjects<lf><lf>def<space>copyForm<openparen>feature<closeparen>:<lf><space><space><space><space>dsubformFile<space>=<space>feature.getAttribute<openparen><apos>path_unix<apos><closeparen><space>+<space><apos><solidus>form<solidus>DSubform.json<apos><lf><space><space><space><space>subformFile<space>=<space>feature.getAttribute<openparen><apos>path_unix<apos><closeparen><space>+<space><apos><solidus>form<solidus>Subform.json<apos><space><space><lf><space><space><space><space>copyfile<openparen>dsubformFile<comma>subformFile<closeparen><lf>    OUTPUT PYOUTPUT FEATURE_TYPE PythonCaller_2_OUTPUT
+
+# -------------------------------------------------------------------------
+FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_4 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT  FEATURE_TYPE PythonCaller_2_OUTPUT ATTR statut Formulaire<space>par<space>d<u00e9>faut<space>reg<u00e9>n<u00e9>r<u00e9><space>et<space>publi<u00e9><space>avec<space>succ<u00e8>s.    OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_4_OUTPUT 
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *    ROUTE FME_GENERIC AttributeCreator_6_OUTPUT TO XML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>rapport<closeparen> GEOMETRY    ROUTE FME_GENERIC AttributeCreator_2_OUTPUT TO XML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>rapport<closeparen> GEOMETRY    ROUTE FME_GENERIC AttributeCreator_3_OUTPUT TO XML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>rapport<closeparen> GEOMETRY    ROUTE FME_GENERIC AttributeCreator_4_OUTPUT TO XML __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,<at>SupplyAttributes<openparen>ENCODED<comma>__wb_out_feat_type__<comma>rapport<closeparen> GEOMETRY    ROUTE FME_GENERIC __WB_BYPASS_TERMINATOR__ <at>Tcl2<openparen>FME_StatMessage<space>818062<space><opencurly><at>Value<openparen>_wb_termination_message<closeparen><space><openparen><at>Value<openparen>_wb_termination_xformer<closeparen><closeparen><closecurly><space>818063<closeparen> TO FME_GENERIC __WB_BYPASS_TERMINATOR__ __wb_out_feat_type__,__WB_BYPASS_TERMINATOR__ GEOMETRY   FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__   OUTPUT ROUTED FEATURE_TYPE *    OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "Final Output Nuker"   INPUT FEATURE_TYPE __nuke_me__
+
+# -------------------------------------------------------------------------
+XML_1_DEF rapport   name                         xml_char(100)   key                          xml_char(80)   workspace_id                 xml_int32   statut                       xml_char(200)
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-3/fme/formCheckerRapport.xslt b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/fme/formCheckerRapport.xslt
new file mode 100755
index 0000000000000000000000000000000000000000..4a9a7b64e191915b11f315ca731540e07b92963a
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/fme/formCheckerRapport.xslt
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+	<xsl:template match="/">
+		<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
+			<head>
+				<title>Rapport de génération des formulaires</title>
+				<style type="text/css">
+				  body {
+				  font-family:Helvetica;
+				  padding:5px;
+				  }
+
+				  hr {
+				  text-align: center;
+				  width:100%;
+				  color:#F1B4B4;
+				  }
+
+				  table {
+				  text-align:left;
+				  width:100%;
+				  font-size:12px;
+				  margin-bottom:35px;
+				  }
+
+				  td {
+				  text-align:left;
+
+				  background-color:#F7F7F7 ;
+				  }
+
+				  h1 {
+				  font-family:Times New Roman;
+				  color: #008393;
+				  }
+
+				  th {
+				  text-align:left;
+
+				  background-color:#eeeeee;
+				  }
+
+				  h4 {
+				  font-family:Times New Roman;
+				  color: #990000;
+				  }
+
+				  h5 {
+				  font-family:Times New Roman;
+				  }
+				</style>
+			</head>
+			<body>
+				<table cellspacing="2" cellpadding="5">
+					<tr valign="middle">
+						<td style=" text-align:center; background-color:#FFFFFF ;" width="20%">
+						</td>
+						<td align="center" width="80%">
+				<h1 align="center">
+					Rapport de génération des formulaires
+				</h1>
+						</td>
+					</tr></table>
+				
+				<xsl:for-each select="xml-tables/rapport-table/rapport">
+				
+				<table cellspacing="2" cellpadding="5">
+					<tr>
+						<th align="left" width="20%">
+						Nom du projet :
+						</th>
+						<td align="left" width="80%">
+								<xsl:value-of select="name"/>
+						</td>
+					</tr>
+					<tr>
+						<th align="left" width="20%">
+						KEY du projet :
+						</th>
+						<td align="left" width="80%">
+								<xsl:value-of select="key"/>
+						</td>
+					</tr>
+					<tr>
+						<th align="left" width="15%">
+						ID du projet :
+						</th>
+						<td align="left" width="85%">
+								<xsl:value-of select="workspace_id"/>
+						</td>
+					</tr>
+					<tr>
+						<th align="left" width="15%">
+						Statut :
+						</th>
+						<td align="left" width="85%">
+							<xsl:value-of select="statut"/>
+						</td>
+					</tr>
+				</table>
+				
+				</xsl:for-each>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/DSubform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/DSubform.json
new file mode 100755
index 0000000000000000000000000000000000000000..5b9430167914a4185719c062be450c06f6aef514
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/DSubform.json
@@ -0,0 +1 @@
+{"datasources":{"datasource_0":{"type":"object","dataType":"text","name":"defaultFormForce","description":"","options":["Oui|1","Non|0"]}},"display":{"name":"Subform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la reg\u00e9n\u00e9ration du formulaire par d\u00e9faut pour tous les","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0"}}]}]},"insert":{"name":"Subform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la reg\u00e9n\u00e9ration du formulaire par d\u00e9faut pour tous les","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0"}}]}]},"update":{"name":"Subform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la reg\u00e9n\u00e9ration du formulaire par d\u00e9faut pour tous les","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0"}}]}]},"search":[]}
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/Subform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/Subform.json
new file mode 100755
index 0000000000000000000000000000000000000000..c7fc1b470cc3ecea4151752707e742f07a762f6c
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/Subform.json
@@ -0,0 +1 @@
+{"datasources":{"datasource_0":{"type":"object","dataType":"text","name":"defaultFormForce","description":"","options":["Oui|1","Non|0"]}},"display":{"name":"WSubform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12,"id":"H_sessionId_1_1"}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12,"id":"H_url_2_1"}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html","id":"HTML_3_1"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la regénération du formulaire par défaut pour tous les projets :","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"defaultFormForce_4_1","id_from":"defaultFormForce_4_1_from"}]}]},"insert":{"name":"WSubform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12,"id":"H_sessionId_1_1"}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12,"id":"H_url_2_1"}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html","id":"HTML_3_1"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la regénération du formulaire par défaut pour tous les projets :","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"defaultFormForce_4_1","id_from":"defaultFormForce_4_1_from"}]}]},"update":{"name":"WSubform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12,"id":"H_sessionId_1_1"}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12,"id":"H_url_2_1"}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html","id":"HTML_3_1"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la regénération du formulaire par défaut pour tous les projets :","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"defaultFormForce_4_1","id_from":"defaultFormForce_4_1_from"}]}]},"search":[]}
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/WSubform.json b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/WSubform.json
new file mode 100755
index 0000000000000000000000000000000000000000..c7fc1b470cc3ecea4151752707e742f07a762f6c
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/WSubform.json
@@ -0,0 +1 @@
+{"datasources":{"datasource_0":{"type":"object","dataType":"text","name":"defaultFormForce","description":"","options":["Oui|1","Non|0"]}},"display":{"name":"WSubform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12,"id":"H_sessionId_1_1"}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12,"id":"H_url_2_1"}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html","id":"HTML_3_1"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la regénération du formulaire par défaut pour tous les projets :","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"defaultFormForce_4_1","id_from":"defaultFormForce_4_1_from"}]}]},"insert":{"name":"WSubform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12,"id":"H_sessionId_1_1"}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12,"id":"H_url_2_1"}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html","id":"HTML_3_1"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la regénération du formulaire par défaut pour tous les projets :","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"defaultFormForce_4_1","id_from":"defaultFormForce_4_1_from"}]}]},"update":{"name":"WSubform","title":"formChecker","input_size":"xxs","nb_cols":12,"rows":[{"fields":[{"type":"hidden","name":"H_sessionId","default_value":"getPropertie('session_token')","nb_cols":12,"id":"H_sessionId_1_1"}]},{"fields":[{"type":"hidden","name":"H_url","default_value":"getHurl()","nb_cols":12,"id":"H_url_2_1"}]},{"fields":[{"type":"text","name":"HTML","label":"Rapport HTML :\n       ","required":false,"pattern":"","nb_cols":12,"default_value":"rapport_formulaires.html","id":"HTML_3_1"}]},{"fields":[{"type":"select","name":"defaultFormForce","label":"Forcer la regénération du formulaire par défaut pour tous les projets :","required":true,"nb_cols":12,"default_value":"0","datasource":{"datasource_id":"datasource_0","sort_order":"ASC","distinct":"true"},"id":"defaultFormForce_4_1","id_from":"defaultFormForce_4_1_from"}]}]},"search":[]}
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/ressources/Subform.css b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/ressources/Subform.css
new file mode 100755
index 0000000000000000000000000000000000000000..4c1b6da81a196aa531f8f26a8e0dbe2b80625f9d
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/ressources/Subform.css
@@ -0,0 +1 @@
+https://vm03.veremes.net/ws_data/gtf/workspace/-3/form/ressources/Subform.css
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/ressources/Subform.js b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/ressources/Subform.js
new file mode 100755
index 0000000000000000000000000000000000000000..1111f9d5540c7953d2782d53a6169b4c9221e27f
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/-3/form/ressources/Subform.js
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<html><head>
+<title>404 Not Found</title>
+</head><body>
+<h1>Not Found</h1>
+<p>The requested URL /ws_data/gtf/workspace/-3/form/ressources/Subform.js was not found on this server.</p>
+</body></html>
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/.htaccess b/src/module_gtf/web_service/ws_data/gtf/workspace/.htaccess
new file mode 100755
index 0000000000000000000000000000000000000000..bb70c7d582968d3890ff52fd23c52582b3e7f99b
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/.htaccess
@@ -0,0 +1,3 @@
+<Files ~ "\.fmw">
+	Require all denied
+</Files>
\ No newline at end of file
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/S3Downloader.fmw b/src/module_gtf/web_service/ws_data/gtf/workspace/S3Downloader.fmw
new file mode 100755
index 0000000000000000000000000000000000000000..66a5a4763fcaf5f3ccedbfc479ecbdab61dfee9a
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/S3Downloader.fmw
@@ -0,0 +1,265 @@
+#! <?xml version="1.0" encoding="UTF-8" ?>
+#! <WORKSPACE
+#    
+#    
+#    Command-line to run this workspace:
+#    
+#    
+#    "C:\Program Files\FME_2016\fme.exe" "E:\_Docs\GTF moteur serveur\S3Downloader.fmw"
+#          --access_key_id ""
+#          --secret_access_key ""
+#          --bucket_name ""
+#          --object_key ""
+#          --target_file ""
+#    
+#    
+#!   WARN_INVALID_XFORM_PARAM="Yes"
+#!   FME_STROKE_MAX_DEVIATION="0"
+#!   PYTHON_COMPATIBILITY="27"
+#!   DESTINATION_ROUTING_FILE=""
+#!   DOC_TOP_LEFT="326.779 -965.635"
+#!   USAGE=""
+#!   DOC_EXTENTS="613.376 1e-05"
+#!   LOG_FILE=""
+#!   DESTINATION="NONE"
+#!   LOG_MAX_RECORDED_FEATURES="200"
+#!   ZOOM_SCALE="100"
+#!   REQUIREMENTS=""
+#!   SOURCE="NONE"
+#!   LAST_SAVE_DATE="2018-01-12T15:26:20"
+#!   FME_SERVER_SERVICES=""
+#!   FME_GEOMETRY_HANDLING="Enhanced"
+#!   FME_DOCUMENT_PRIORGUID=""
+#!   FME_DOCUMENT_GUID="644dd7ca-a79d-48e7-ad7d-33a0a3cac007"
+#!   FME_REPROJECTION_ENGINE="FME"
+#!   END_TCL=""
+#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
+#!   VIEW_POSITION="-100.001 0"
+#!   TITLE=""
+#!   REQUIREMENTS_KEYWORD=""
+#!   MAX_LOG_FEATURES="200"
+#!   LEGAL_TERMS_CONDITIONS=""
+#!   EXPLICIT_BOOKMARK_ORDER="false"
+#!   DESCRIPTION=""
+#!   WORKSPACE_VERSION="1"
+#!   END_PYTHON=""
+#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto"
+#!   SOURCE_ROUTING_FILE=""
+#!   ATTR_TYPE_ENCODING="SDF"
+#!   REDIRECT_TERMINATORS="NONE"
+#!   BEGIN_PYTHON=""
+#!   FME_BUILD_NUM="16485"
+#!   IGNORE_READER_FAILURE="No"
+#!   HISTORY=""
+#!   PASSWORD=""
+#!   SHOW_ANNOTATIONS="true"
+#!   BEGIN_TCL=""
+#!   CATEGORY=""
+#!   SHOW_INFO_NODES="true"
+#!   LAST_SAVE_BUILD="FME(R) 2016.1.0.0 (20160404 - Build 16485 - WIN64)"
+#! >
+#! <DATASETS>
+#! </DATASETS>
+#! <DATA_TYPES>
+#! </DATA_TYPES>
+#! <GEOM_TYPES>
+#! </GEOM_TYPES>
+#! <FEATURE_TYPES>
+#! </FEATURE_TYPES>
+#! <FMESERVER>
+#! </FMESERVER>
+#! <GLOBAL_PARAMETERS>
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR access_key_id Access key ID:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR secret_access_key Secret access key:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR bucket_name Bucket name:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR object_key Object key:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR target_file Target file:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! </GLOBAL_PARAMETERS>
+#! <COMMENTS>
+#! </COMMENTS>
+#! <CONSTANTS>
+#! </CONSTANTS>
+#! <BOOKMARKS>
+#! </BOOKMARKS>
+#! <TRANSFORMERS>
+#! <TRANSFORMER
+#!   IDENTIFIER="1"
+#!   TYPE="S3Downloader"
+#!   VERSION="1"
+#!   POSITION="940.155 -965.635"
+#!   BOUNDING_RECT="940.155 -965.635 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="16485"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="download_s3_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="S3Downloader"/>
+#!     <XFORM_PARM PARM_NAME="S3_ERROR_ATTRIBUTE" PARM_VALUE="download_s3_error"/>
+#!     <XFORM_PARM PARM_NAME="S3_BUCKET_NAME" PARM_VALUE="$(bucket_name)"/>
+#!     <XFORM_PARM PARM_NAME="S3_FILE_OR_ATTRIBUTE" PARM_VALUE="File"/>
+#!     <XFORM_PARM PARM_NAME="S3_OBJECT_KEY" PARM_VALUE="$(object_key)"/>
+#!     <XFORM_PARM PARM_NAME="S3_TARGET_FILE" PARM_VALUE="$(target_file)"/>
+#!     <XFORM_PARM PARM_NAME="S3_AWS_CREDENTIALS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="OUTPUT_OPTIONS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_DOWNLOAD_OPTIONS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_SECRET_ACCESS_KEY" PARM_VALUE="$(secret_access_key)"/>
+#!     <XFORM_PARM PARM_NAME="S3_ACCESS_KEY_ID" PARM_VALUE="$(access_key_id)"/>
+#!     <XFORM_PARM PARM_NAME="S3_TARGET_ATTRIBUTE" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="2"
+#!   TYPE="Creator"
+#!   VERSION="5"
+#!   POSITION="326.779 -965.635"
+#!   BOUNDING_RECT="326.779 -965.635 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="false"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="16485"
+#! >
+#!     <OUTPUT_FEAT NAME="CREATED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="GEOM" PARM_VALUE="&lt;lt&gt;?xml&lt;space&gt;version=&lt;quote&gt;1.0&lt;quote&gt;&lt;space&gt;encoding=&lt;quote&gt;US_ASCII&lt;quote&gt;&lt;space&gt;standalone=&lt;quote&gt;no&lt;quote&gt;&lt;space&gt;?&lt;gt&gt;&lt;lt&gt;geometry&lt;space&gt;dimension=&lt;quote&gt;2&lt;quote&gt;&lt;gt&gt;&lt;lt&gt;null&lt;solidus&gt;&lt;gt&gt;&lt;lt&gt;&lt;solidus&gt;geometry&lt;gt&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Creator"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COORDS" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="ATEND" PARM_VALUE="no"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="CRE_ATTR" PARM_VALUE="_creation_instance"/>
+#!     <XFORM_PARM PARM_NAME="GEOMTYPE" PARM_VALUE="Geometry Object"/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NUM" PARM_VALUE="1"/>
+#! </TRANSFORMER>
+#! </TRANSFORMERS>
+#! <FEAT_LINKS>
+#! <FEAT_LINK
+#!   IDENTIFIER="3"
+#!   SOURCE_NODE="2"
+#!   TARGET_NODE="1"
+#!   SOURCE_PORT_DESC="fo 0 CREATED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! </FEAT_LINKS>
+#! <BREAKPOINTS>
+#! </BREAKPOINTS>
+#! <ATTR_LINKS>
+#! </ATTR_LINKS>
+#! <SUBDOCUMENTS>
+#! </SUBDOCUMENTS>
+#! <LOOKUP_TABLES>
+#! </LOOKUP_TABLES>
+#! </WORKSPACE>
+FME_PYTHON_VERSION 27
+DEFAULT_MACRO access_key_id 
+GUI TEXT access_key_id Access key ID:
+DEFAULT_MACRO secret_access_key 
+GUI TEXT secret_access_key Secret access key:
+DEFAULT_MACRO bucket_name 
+GUI TEXT bucket_name Bucket name:
+DEFAULT_MACRO object_key 
+GUI TEXT object_key Object key:
+DEFAULT_MACRO target_file 
+GUI TEXT target_file Target file:
+INCLUDE [ if {{$(access_key_id)} == {}} { puts_real {Parameter 'access_key_id' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(secret_access_key)} == {}} { puts_real {Parameter 'secret_access_key' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(bucket_name)} == {}} { puts_real {Parameter 'bucket_name' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(object_key)} == {}} { puts_real {Parameter 'object_key' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(target_file)} == {}} { puts_real {Parameter 'target_file' must be given a value.}; exit 1; }; ]
+#! START_HEADER
+#! START_WB_HEADER
+READER_TYPE NULL
+READER_KEYWORD NULL_SOURCE
+NULL_SOURCE_DATASET null
+
+WRITER_TYPE NULL
+WRITER_KEYWORD NULL_DEST
+NULL_DEST_DATASET null
+#! END_WB_HEADER
+
+#! START_WB_HEADER
+#! END_WB_HEADER
+
+#! END_HEADER
+
+LOG_FILENAME "$(FME_MF_DIR)S3Downloader.log"
+LOG_APPEND NO
+LOG_MAX_FEATURES 200
+LOG_MAX_RECORDED_FEATURES 200
+FME_REPROJECTION_ENGINE FME
+FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto
+FME_GEOMETRY_HANDLING Enhanced
+FME_STROKE_MAX_DEVIATION 0
+LOG_FILTER_MASK -1
+# -------------------------------------------------------------------------
+
+MULTI_READER_CONTINUE_ON_READER_FAILURE No
+
+# -------------------------------------------------------------------------
+
+MACRO WORKSPACE_NAME S3Downloader
+MACRO FME_VIEWER_APP fmedatainspector
+DEFAULT_MACRO WB_CURRENT_CONTEXT
+# -------------------------------------------------------------------------
+
+Tcl2 proc Creator_CoordSysRemover {} {   global FME_CoordSys;   set FME_CoordSys {}; }
+MACRO Creator_XML     NOT_ACTIVATED
+MACRO Creator_CLASSIC NOT_ACTIVATED
+MACRO Creator_2D3D    2D_GEOMETRY
+MACRO Creator_COORDS  <Unused>
+INCLUDE [ if { {Geometry Object} == {Geometry Object} } {            puts {MACRO Creator_XML *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } {            puts {MACRO Creator_2D3D 2D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } {            puts {MACRO Creator_2D3D 3D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } {            set comment {                We need to turn the COORDS which are                    minX minY maxX maxY                into a full polygon list of coordinates            };            set splitCoords [split [string trim {<Unused>}]];            if { [llength $splitCoords] > 4} {               set trimmedCoords {};               foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} };               set splitCoords $trimmedCoords;            };            if { [llength $splitCoords] != 4 } {                error {Creator: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `<Unused>' is invalid};            };            set minX [lindex $splitCoords 0];            set minY [lindex $splitCoords 1];            set maxX [lindex $splitCoords 2];            set maxY [lindex $splitCoords 3];            puts "MACRO Creator_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY";            puts {MACRO Creator_2D3D 2D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+FACTORY_DEF $(Creator_XML) CreationFactory    FACTORY_NAME Creator_XML_Creator    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______        @Geometry(FROM_ENCODED_STRING,<lt>?xml<space>version=<quote>1.0<quote><space>encoding=<quote>US_ASCII<quote><space>standalone=<quote>no<quote><space>?<gt><lt>geometry<space>dimension=<quote>2<quote><gt><lt>null<solidus><gt><lt><solidus>geometry<gt>)
+FACTORY_DEF $(Creator_CLASSIC) CreationFactory    FACTORY_NAME Creator_CLASSIC_Creator    $(Creator_2D3D) $(Creator_COORDS)    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______
+FACTORY_DEF * TeeFactory    FACTORY_NAME Creator_Cloner    INPUT FEATURE_TYPE _____CREATED______    NUMBER_OF_COPIES 1    COPY_NUMBER_ATTRIBUTE "_creation_instance"    OUTPUT FEATURE_TYPE Creator_CREATED        @Tcl2(Creator_CoordSysRemover)        @CoordSys()        fme_feature_type Creator
+
+FACTORY_DEF * BranchingFactory   FACTORY_NAME "Creator_CREATED Brancher -1 3"   INPUT FEATURE_TYPE Creator_CREATED   TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   OUTPUT PASSED FEATURE_TYPE *     @RemoveAttributes("Creator_CREATED Brancher -1 3".BranchingFactory.Count)
+# -------------------------------------------------------------------------
+FACTORY_DEF * TeeFactory   FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   INPUT FEATURE_TYPE *  OUTPUT FEATURE_TYPE *
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * COM.safe.fme.factory.S3Factory    FACTORY_NAME S3Downloader       INPUT  FEATURE_TYPE Creator_CREATED    S3_MODE S3_GET    S3_ACCESS_KEY_ID "@EvaluateExpression(FDIV,STRING,$(access_key_id$encode),S3Downloader)"    S3_SECRET_ACCESS_KEY "@EvaluateExpression(FDIV,STRING,$(secret_access_key$encode),S3Downloader)"    S3_BUCKET_NAME "@EvaluateExpression(FDIV,STRING,$(bucket_name$encode),S3Downloader)"    S3_OBJECT_KEY "@EvaluateExpression(FDIV,STRING,$(object_key$encode),S3Downloader)"    S3_TARGET_FILE "@EvaluateExpression(FDIV,STRING,$(target_file$encode),S3Downloader)"    S3_ERROR_ATTRIBUTE "download_s3_error"    OUTPUT OUTPUT FEATURE_TYPE S3Downloader_OUTPUT    OUTPUT REJECTED FEATURE_TYPE S3Downloader_<REJECTED>
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "S3Downloader OUTPUT Output Nuker"   INPUT FEATURE_TYPE S3Downloader_OUTPUT
+FACTORY_DEF * TeeFactory   FACTORY_NAME "S3Downloader <REJECTED> Output Nuker"   INPUT FEATURE_TYPE S3Downloader_<REJECTED>
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *   FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__   OUTPUT ROUTED FEATURE_TYPE *    OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "Final Output Nuker"   INPUT FEATURE_TYPE __nuke_me__
+
diff --git a/src/module_gtf/web_service/ws_data/gtf/workspace/S3Uploader.fmw b/src/module_gtf/web_service/ws_data/gtf/workspace/S3Uploader.fmw
new file mode 100755
index 0000000000000000000000000000000000000000..b548676cbb5d8c229f7a822b3ea096a7e2449af8
--- /dev/null
+++ b/src/module_gtf/web_service/ws_data/gtf/workspace/S3Uploader.fmw
@@ -0,0 +1,274 @@
+#! <?xml version="1.0" encoding="UTF-8" ?>
+#! <WORKSPACE
+#    
+#    
+#    Command-line to run this workspace:
+#    
+#    
+#    "C:\Program Files\FME_2016\fme.exe" "E:\_Docs\GTF moteur serveur\S3Uploader.fmw"
+#          --access_key_id ""
+#          --secret_access_key ""
+#          --source_file ""
+#          --bucket_name ""
+#          --object_key ""
+#    
+#    
+#!   MAX_LOG_FEATURES="200"
+#!   DOC_EXTENTS="682.126 1e-05"
+#!   IGNORE_READER_FAILURE="No"
+#!   LOG_FILE=""
+#!   DOC_TOP_LEFT="689.283 -1018.76"
+#!   HISTORY=""
+#!   WARN_INVALID_XFORM_PARAM="Yes"
+#!   END_TCL=""
+#!   FME_STROKE_MAX_DEVIATION="0"
+#!   LAST_SAVE_DATE="2018-01-12T16:55:32"
+#!   FME_DOCUMENT_GUID="4cc242b9-d06a-47c4-b931-eebc2cdb107d"
+#!   BEGIN_TCL=""
+#!   CATEGORY=""
+#!   USAGE=""
+#!   FME_SERVER_SERVICES=""
+#!   SOURCE="NONE"
+#!   SHOW_ANNOTATIONS="true"
+#!   DESCRIPTION=""
+#!   REQUIREMENTS=""
+#!   FME_GEOMETRY_HANDLING="Enhanced"
+#!   REDIRECT_TERMINATORS="NONE"
+#!   WORKSPACE_VERSION="1"
+#!   BEGIN_PYTHON=""
+#!   FME_REPROJECTION_ENGINE="FME"
+#!   SOURCE_ROUTING_FILE=""
+#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto"
+#!   LEGAL_TERMS_CONDITIONS=""
+#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
+#!   ZOOM_SCALE="100"
+#!   VIEW_POSITION="-59.3756 0"
+#!   END_PYTHON=""
+#!   FME_BUILD_NUM="16485"
+#!   PASSWORD=""
+#!   ATTR_TYPE_ENCODING="SDF"
+#!   TITLE=""
+#!   SHOW_INFO_NODES="true"
+#!   DESTINATION="NONE"
+#!   REQUIREMENTS_KEYWORD=""
+#!   EXPLICIT_BOOKMARK_ORDER="false"
+#!   LAST_SAVE_BUILD="FME(R) 2016.1.0.0 (20160404 - Build 16485 - WIN64)"
+#!   DESTINATION_ROUTING_FILE=""
+#!   PYTHON_COMPATIBILITY="27"
+#!   FME_DOCUMENT_PRIORGUID=""
+#!   LOG_MAX_RECORDED_FEATURES="200"
+#! >
+#! <DATASETS>
+#! </DATASETS>
+#! <DATA_TYPES>
+#! </DATA_TYPES>
+#! <GEOM_TYPES>
+#! </GEOM_TYPES>
+#! <FEATURE_TYPES>
+#! </FEATURE_TYPES>
+#! <FMESERVER>
+#! </FMESERVER>
+#! <GLOBAL_PARAMETERS>
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR access_key_id Access key ID:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR secret_access_key Secret access key:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI MULTIFILE_OR_ATTR source_file All_Files(*)|* Source filename:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR bucket_name Bucket name:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! <GLOBAL_PARAMETER
+#!   GUI_LINE="GUI TEXT_OR_ATTR object_key Object key:"
+#!   DEFAULT_VALUE=""
+#!   IS_STAND_ALONE="true"
+#! />
+#! </GLOBAL_PARAMETERS>
+#! <COMMENTS>
+#! </COMMENTS>
+#! <CONSTANTS>
+#! </CONSTANTS>
+#! <BOOKMARKS>
+#! </BOOKMARKS>
+#! <TRANSFORMERS>
+#! <TRANSFORMER
+#!   IDENTIFIER="1"
+#!   TYPE="S3Uploader"
+#!   VERSION="3"
+#!   POSITION="1371.41 -1018.76"
+#!   BOUNDING_RECT="1371.41 -1018.76 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="true"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="16485"
+#! >
+#!     <OUTPUT_FEAT NAME="OUTPUT"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_ATTR ATTR_NAME="_s3_object_uri" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
+#!     <FEAT_COLLAPSED COLLAPSED="1"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_ATTR ATTR_NAME="_s3_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
+#!     <XFORM_PARM PARM_NAME="S3_OUTPUT_OPTIONS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_URI_ATTRIBUTE" PARM_VALUE="_s3_object_uri"/>
+#!     <XFORM_PARM PARM_NAME="S3_FILE_DATA_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_CANNED_ACL" PARM_VALUE="Private"/>
+#!     <XFORM_PARM PARM_NAME="S3_FOLDER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_FILE_OR_DATA" PARM_VALUE="File"/>
+#!     <XFORM_PARM PARM_NAME="S3_ERROR_ATTRIBUTE" PARM_VALUE="_s3_error"/>
+#!     <XFORM_PARM PARM_NAME="S3_DATA_FILE" PARM_VALUE="$(source_file)"/>
+#!     <XFORM_PARM PARM_NAME="S3_BUCKET_NAME" PARM_VALUE="$(bucket_name)"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_ACCESS_KEY_ID" PARM_VALUE="$(access_key_id)"/>
+#!     <XFORM_PARM PARM_NAME="S3_OBJECT_KEY" PARM_VALUE="$(object_key)"/>
+#!     <XFORM_PARM PARM_NAME="S3_UPLOAD_OPTIONS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_DATA_SOURCE" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_SECRET_ACCESS_KEY" PARM_VALUE="$(secret_access_key)"/>
+#!     <XFORM_PARM PARM_NAME="S3_AWS_CREDENTIALS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_DATA" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="S3Uploader"/>
+#!     <XFORM_PARM PARM_NAME="S3_UPLOAD_CONTENT_TYPE" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="S3_INCLUDE_SUBFOLDERS" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="S3_DATA_FOLDER" PARM_VALUE="&lt;Unused&gt;"/>
+#! </TRANSFORMER>
+#! <TRANSFORMER
+#!   IDENTIFIER="2"
+#!   TYPE="Creator"
+#!   VERSION="5"
+#!   POSITION="689.283 -1018.76"
+#!   BOUNDING_RECT="689.283 -1018.76 -1 -1"
+#!   ORDER="5e+14"
+#!   PARMS_EDITED="false"
+#!   ENABLED="true"
+#!   LAST_PARM_EDIT="16485"
+#! >
+#!     <OUTPUT_FEAT NAME="CREATED"/>
+#!     <FEAT_COLLAPSED COLLAPSED="0"/>
+#!     <XFORM_ATTR ATTR_NAME="_creation_instance" IS_USER_CREATED="false" FEAT_INDEX="0" />
+#!     <XFORM_PARM PARM_NAME="GEOMTYPE" PARM_VALUE="Geometry Object"/>
+#!     <XFORM_PARM PARM_NAME="COORDS" PARM_VALUE="&lt;Unused&gt;"/>
+#!     <XFORM_PARM PARM_NAME="CRE_ATTR" PARM_VALUE="_creation_instance"/>
+#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="NUM" PARM_VALUE="1"/>
+#!     <XFORM_PARM PARM_NAME="GEOM" PARM_VALUE="&lt;lt&gt;?xml&lt;space&gt;version=&lt;quote&gt;1.0&lt;quote&gt;&lt;space&gt;encoding=&lt;quote&gt;US_ASCII&lt;quote&gt;&lt;space&gt;standalone=&lt;quote&gt;no&lt;quote&gt;&lt;space&gt;?&lt;gt&gt;&lt;lt&gt;geometry&lt;space&gt;dimension=&lt;quote&gt;2&lt;quote&gt;&lt;gt&gt;&lt;lt&gt;null&lt;solidus&gt;&lt;gt&gt;&lt;lt&gt;&lt;solidus&gt;geometry&lt;gt&gt;"/>
+#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Creator"/>
+#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
+#!     <XFORM_PARM PARM_NAME="ATEND" PARM_VALUE="no"/>
+#! </TRANSFORMER>
+#! </TRANSFORMERS>
+#! <FEAT_LINKS>
+#! <FEAT_LINK
+#!   IDENTIFIER="3"
+#!   SOURCE_NODE="2"
+#!   TARGET_NODE="1"
+#!   SOURCE_PORT_DESC="fo 0 CREATED"
+#!   TARGET_PORT_DESC="fi 0 "
+#!   ENABLED="true"
+#!   EXECUTION_IDX="0"
+#!   HIDDEN="false"
+#!   EXTRA_POINTS=""
+#! />
+#! </FEAT_LINKS>
+#! <BREAKPOINTS>
+#! </BREAKPOINTS>
+#! <ATTR_LINKS>
+#! </ATTR_LINKS>
+#! <SUBDOCUMENTS>
+#! </SUBDOCUMENTS>
+#! <LOOKUP_TABLES>
+#! </LOOKUP_TABLES>
+#! </WORKSPACE>
+FME_PYTHON_VERSION 27
+DEFAULT_MACRO access_key_id 
+GUI TEXT access_key_id Access key ID:
+DEFAULT_MACRO secret_access_key 
+GUI TEXT secret_access_key Secret access key:
+DEFAULT_MACRO source_file 
+GUI MULTIFILE source_file All_Files(*)|* Source filename:
+DEFAULT_MACRO bucket_name 
+GUI TEXT bucket_name Bucket name:
+DEFAULT_MACRO object_key 
+GUI TEXT object_key Object key:
+INCLUDE [ if {{$(access_key_id)} == {}} { puts_real {Parameter 'access_key_id' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(secret_access_key)} == {}} { puts_real {Parameter 'secret_access_key' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(source_file)} == {}} { puts_real {Parameter 'source_file' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(bucket_name)} == {}} { puts_real {Parameter 'bucket_name' must be given a value.}; exit 1; }; ]
+INCLUDE [ if {{$(object_key)} == {}} { puts_real {Parameter 'object_key' must be given a value.}; exit 1; }; ]
+#! START_HEADER
+#! START_WB_HEADER
+READER_TYPE NULL
+READER_KEYWORD NULL_SOURCE
+NULL_SOURCE_DATASET null
+
+WRITER_TYPE NULL
+WRITER_KEYWORD NULL_DEST
+NULL_DEST_DATASET null
+#! END_WB_HEADER
+
+#! START_WB_HEADER
+#! END_WB_HEADER
+
+#! END_HEADER
+
+LOG_FILENAME "$(FME_MF_DIR)S3Uploader.log"
+LOG_APPEND NO
+LOG_MAX_FEATURES 200
+LOG_MAX_RECORDED_FEATURES 200
+FME_REPROJECTION_ENGINE FME
+FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto
+FME_GEOMETRY_HANDLING Enhanced
+FME_STROKE_MAX_DEVIATION 0
+LOG_FILTER_MASK -1
+# -------------------------------------------------------------------------
+
+MULTI_READER_CONTINUE_ON_READER_FAILURE No
+
+# -------------------------------------------------------------------------
+
+MACRO WORKSPACE_NAME S3Uploader
+MACRO FME_VIEWER_APP fmedatainspector
+DEFAULT_MACRO WB_CURRENT_CONTEXT
+# -------------------------------------------------------------------------
+
+Tcl2 proc Creator_CoordSysRemover {} {   global FME_CoordSys;   set FME_CoordSys {}; }
+MACRO Creator_XML     NOT_ACTIVATED
+MACRO Creator_CLASSIC NOT_ACTIVATED
+MACRO Creator_2D3D    2D_GEOMETRY
+MACRO Creator_COORDS  <Unused>
+INCLUDE [ if { {Geometry Object} == {Geometry Object} } {            puts {MACRO Creator_XML *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } {            puts {MACRO Creator_2D3D 2D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } {            puts {MACRO Creator_2D3D 3D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+INCLUDE [ if { {Geometry Object} == {2D Min/Max Box} } {            set comment {                We need to turn the COORDS which are                    minX minY maxX maxY                into a full polygon list of coordinates            };            set splitCoords [split [string trim {<Unused>}]];            if { [llength $splitCoords] > 4} {               set trimmedCoords {};               foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} };               set splitCoords $trimmedCoords;            };            if { [llength $splitCoords] != 4 } {                error {Creator: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `<Unused>' is invalid};            };            set minX [lindex $splitCoords 0];            set minY [lindex $splitCoords 1];            set maxX [lindex $splitCoords 2];            set maxY [lindex $splitCoords 3];            puts "MACRO Creator_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY";            puts {MACRO Creator_2D3D 2D_GEOMETRY};            puts {MACRO Creator_CLASSIC *} } ]
+FACTORY_DEF $(Creator_XML) CreationFactory    FACTORY_NAME Creator_XML_Creator    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______        @Geometry(FROM_ENCODED_STRING,<lt>?xml<space>version=<quote>1.0<quote><space>encoding=<quote>US_ASCII<quote><space>standalone=<quote>no<quote><space>?<gt><lt>geometry<space>dimension=<quote>2<quote><gt><lt>null<solidus><gt><lt><solidus>geometry<gt>)
+FACTORY_DEF $(Creator_CLASSIC) CreationFactory    FACTORY_NAME Creator_CLASSIC_Creator    $(Creator_2D3D) $(Creator_COORDS)    CREATE_AT_END no    OUTPUT FEATURE_TYPE _____CREATED______
+FACTORY_DEF * TeeFactory    FACTORY_NAME Creator_Cloner    INPUT FEATURE_TYPE _____CREATED______    NUMBER_OF_COPIES 1    COPY_NUMBER_ATTRIBUTE "_creation_instance"    OUTPUT FEATURE_TYPE Creator_CREATED        @Tcl2(Creator_CoordSysRemover)        @CoordSys()        fme_feature_type Creator
+
+FACTORY_DEF * BranchingFactory   FACTORY_NAME "Creator_CREATED Brancher -1 3"   INPUT FEATURE_TYPE Creator_CREATED   TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   OUTPUT PASSED FEATURE_TYPE *     @RemoveAttributes("Creator_CREATED Brancher -1 3".BranchingFactory.Count)
+# -------------------------------------------------------------------------
+FACTORY_DEF * TeeFactory   FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET"   INPUT FEATURE_TYPE *  OUTPUT FEATURE_TYPE *
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * COM.safe.fme.factory.S3Factory    FACTORY_NAME S3Uploader       INPUT  FEATURE_TYPE Creator_CREATED    S3_MODE S3_PUT    S3_ACCESS_KEY_ID "@EvaluateExpression(FDIV,STRING,$(access_key_id$encode),S3Uploader)"    S3_SECRET_ACCESS_KEY "@EvaluateExpression(FDIV,STRING,$(secret_access_key$encode),S3Uploader)"    S3_BUCKET_NAME "@EvaluateExpression(FDIV,STRING,$(bucket_name$encode),S3Uploader)"    S3_OBJECT_KEY "@EvaluateExpression(FDIV,STRING,$(object_key$encode),S3Uploader)"    S3_DATA_FILE "@EvaluateExpression(FDIV,STRING,$(source_file$encode),S3Uploader)"    S3_CANNED_ACL "Private"    S3_URI_ATTRIBUTE "_s3_object_uri"    S3_ERROR_ATTRIBUTE "_s3_error"    OUTPUT OUTPUT FEATURE_TYPE S3Uploader_OUTPUT    OUTPUT REJECTED FEATURE_TYPE S3Uploader_<REJECTED>
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "S3Uploader OUTPUT Output Nuker"   INPUT FEATURE_TYPE S3Uploader_OUTPUT
+FACTORY_DEF * TeeFactory   FACTORY_NAME "S3Uploader <REJECTED> Output Nuker"   INPUT FEATURE_TYPE S3Uploader_<REJECTED>
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *   FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__   OUTPUT ROUTED FEATURE_TYPE *    OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")
+# -------------------------------------------------------------------------
+
+FACTORY_DEF * TeeFactory   FACTORY_NAME "Final Output Nuker"   INPUT FEATURE_TYPE __nuke_me__
+
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy b/src/vitis/.gitignore
old mode 100755
new mode 100644
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy
rename to src/vitis/.gitignore
diff --git a/src/vitis/README.md b/src/vitis/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..73a21c98f1cea1876231e24ce68d0dc5b7bca937
--- /dev/null
+++ b/src/vitis/README.md
@@ -0,0 +1 @@
+Vitis framework
\ No newline at end of file
diff --git a/_install/client/fileToDelete.txt b/src/vitis/_install/client/fileToDelete.txt
similarity index 100%
rename from _install/client/fileToDelete.txt
rename to src/vitis/_install/client/fileToDelete.txt
diff --git a/_install/client/folderToDelete.txt b/src/vitis/_install/client/folderToDelete.txt
similarity index 100%
rename from _install/client/folderToDelete.txt
rename to src/vitis/_install/client/folderToDelete.txt
diff --git a/_install/client/listModuleApache.txt b/src/vitis/_install/client/listModuleApache.txt
similarity index 100%
rename from _install/client/listModuleApache.txt
rename to src/vitis/_install/client/listModuleApache.txt
diff --git a/_install/dependencies/mapserver/.htaccess b/src/vitis/_install/dependencies/mapserver/.htaccess
similarity index 100%
rename from _install/dependencies/mapserver/.htaccess
rename to src/vitis/_install/dependencies/mapserver/.htaccess
diff --git a/_install/dependencies/mapserver/linux/apache.conf b/src/vitis/_install/dependencies/mapserver/linux/apache.conf
similarity index 100%
rename from _install/dependencies/mapserver/linux/apache.conf
rename to src/vitis/_install/dependencies/mapserver/linux/apache.conf
diff --git a/_install/dependencies/mapserver/windows/apache.conf b/src/vitis/_install/dependencies/mapserver/windows/apache.conf
similarity index 100%
rename from _install/dependencies/mapserver/windows/apache.conf
rename to src/vitis/_install/dependencies/mapserver/windows/apache.conf
diff --git a/_install/dependencies/php/linux/apache.conf b/src/vitis/_install/dependencies/php/linux/apache.conf
similarity index 100%
rename from _install/dependencies/php/linux/apache.conf
rename to src/vitis/_install/dependencies/php/linux/apache.conf
diff --git a/_install/dependencies/php/php.ini b/src/vitis/_install/dependencies/php/php.ini
similarity index 100%
rename from _install/dependencies/php/php.ini
rename to src/vitis/_install/dependencies/php/php.ini
diff --git a/_install/dependencies/php/windows/apache.conf b/src/vitis/_install/dependencies/php/windows/apache.conf
similarity index 100%
rename from _install/dependencies/php/windows/apache.conf
rename to src/vitis/_install/dependencies/php/windows/apache.conf
diff --git a/_install/dependencies/pycron/crontab.txt b/src/vitis/_install/dependencies/pycron/crontab.txt
similarity index 100%
rename from _install/dependencies/pycron/crontab.txt
rename to src/vitis/_install/dependencies/pycron/crontab.txt
diff --git a/_install/dependencies/websocket/apache.conf b/src/vitis/_install/dependencies/websocket/apache.conf
similarity index 100%
rename from _install/dependencies/websocket/apache.conf
rename to src/vitis/_install/dependencies/websocket/apache.conf
diff --git a/_install/dependencies/websocket/linux/websocket_vitis b/src/vitis/_install/dependencies/websocket/linux/websocket_vitis
similarity index 100%
rename from _install/dependencies/websocket/linux/websocket_vitis
rename to src/vitis/_install/dependencies/websocket/linux/websocket_vitis
diff --git a/_install/dependencies/websocket/websocket.cfg b/src/vitis/_install/dependencies/websocket/websocket.cfg
similarity index 100%
rename from _install/dependencies/websocket/websocket.cfg
rename to src/vitis/_install/dependencies/websocket/websocket.cfg
diff --git a/_install/dependency.xml b/src/vitis/_install/dependency.xml
similarity index 100%
rename from _install/dependency.xml
rename to src/vitis/_install/dependency.xml
diff --git a/_install/vas/apache.conf b/src/vitis/_install/vas/apache.conf
similarity index 100%
rename from _install/vas/apache.conf
rename to src/vitis/_install/vas/apache.conf
diff --git a/_install/vas/listModuleApache.txt b/src/vitis/_install/vas/listModuleApache.txt
similarity index 100%
rename from _install/vas/listModuleApache.txt
rename to src/vitis/_install/vas/listModuleApache.txt
diff --git a/client/.htaccess b/src/vitis/client/.htaccess
similarity index 100%
rename from client/.htaccess
rename to src/vitis/client/.htaccess
diff --git a/client/css/icons/fonts/veremes.eot b/src/vitis/client/css/icons/fonts/veremes.eot
similarity index 100%
rename from client/css/icons/fonts/veremes.eot
rename to src/vitis/client/css/icons/fonts/veremes.eot
diff --git a/client/css/icons/fonts/veremes.svg b/src/vitis/client/css/icons/fonts/veremes.svg
similarity index 100%
rename from client/css/icons/fonts/veremes.svg
rename to src/vitis/client/css/icons/fonts/veremes.svg
diff --git a/client/css/icons/fonts/veremes.ttf b/src/vitis/client/css/icons/fonts/veremes.ttf
similarity index 100%
rename from client/css/icons/fonts/veremes.ttf
rename to src/vitis/client/css/icons/fonts/veremes.ttf
diff --git a/client/css/icons/fonts/veremes.woff b/src/vitis/client/css/icons/fonts/veremes.woff
similarity index 100%
rename from client/css/icons/fonts/veremes.woff
rename to src/vitis/client/css/icons/fonts/veremes.woff
diff --git a/client/css/icons/selection.json b/src/vitis/client/css/icons/selection.json
similarity index 100%
rename from client/css/icons/selection.json
rename to src/vitis/client/css/icons/selection.json
diff --git a/client/css/icons/style.css b/src/vitis/client/css/icons/style.css
similarity index 100%
rename from client/css/icons/style.css
rename to src/vitis/client/css/icons/style.css
diff --git a/client/css/lib/awesome-bootstrap-checkbox.css b/src/vitis/client/css/lib/awesome-bootstrap-checkbox.css
similarity index 100%
rename from client/css/lib/awesome-bootstrap-checkbox.css
rename to src/vitis/client/css/lib/awesome-bootstrap-checkbox.css
diff --git a/client/css/lib/bootstrap-checkbox/build.css b/src/vitis/client/css/lib/bootstrap-checkbox/build.css
similarity index 100%
rename from client/css/lib/bootstrap-checkbox/build.css
rename to src/vitis/client/css/lib/bootstrap-checkbox/build.css
diff --git a/client/css/lib/bootstrap-checkbox/font-awesome.css b/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css
similarity index 100%
rename from client/css/lib/bootstrap-checkbox/font-awesome.css
rename to src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css
diff --git a/client/css/lib/bootstrap-checkbox/font-awesome.min.css b/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css
similarity index 100%
rename from client/css/lib/bootstrap-checkbox/font-awesome.min.css
rename to src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css
diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap-theme.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css
diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.css.map b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap-theme.css.map
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map
diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.min.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap-theme.min.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css
diff --git a/client/css/lib/bootstrap/css/bootstrap.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.css
diff --git a/client/css/lib/bootstrap/css/bootstrap.css.map b/src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap.css.map
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map
diff --git a/client/css/lib/bootstrap/css/bootstrap.min.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css
similarity index 100%
rename from client/css/lib/bootstrap/css/bootstrap.min.css
rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
diff --git a/client/css/lib/codemirror/codemirror.css b/src/vitis/client/css/lib/codemirror/codemirror.css
similarity index 100%
rename from client/css/lib/codemirror/codemirror.css
rename to src/vitis/client/css/lib/codemirror/codemirror.css
diff --git a/client/css/lib/codemirror/codemirror_foldgutter.css b/src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css
similarity index 100%
rename from client/css/lib/codemirror/codemirror_foldgutter.css
rename to src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css
diff --git a/client/css/lib/codemirror/dialog.css b/src/vitis/client/css/lib/codemirror/dialog.css
similarity index 100%
rename from client/css/lib/codemirror/dialog.css
rename to src/vitis/client/css/lib/codemirror/dialog.css
diff --git a/client/css/lib/codemirror/docs.css b/src/vitis/client/css/lib/codemirror/docs.css
similarity index 100%
rename from client/css/lib/codemirror/docs.css
rename to src/vitis/client/css/lib/codemirror/docs.css
diff --git a/client/css/lib/codemirror/map.css b/src/vitis/client/css/lib/codemirror/map.css
similarity index 100%
rename from client/css/lib/codemirror/map.css
rename to src/vitis/client/css/lib/codemirror/map.css
diff --git a/client/css/lib/codemirror/show-hint.css b/src/vitis/client/css/lib/codemirror/show-hint.css
similarity index 100%
rename from client/css/lib/codemirror/show-hint.css
rename to src/vitis/client/css/lib/codemirror/show-hint.css
diff --git a/client/css/lib/codemirror/theme/3024-day.css b/src/vitis/client/css/lib/codemirror/theme/3024-day.css
similarity index 100%
rename from client/css/lib/codemirror/theme/3024-day.css
rename to src/vitis/client/css/lib/codemirror/theme/3024-day.css
diff --git a/client/css/lib/codemirror/theme/3024-night.css b/src/vitis/client/css/lib/codemirror/theme/3024-night.css
similarity index 100%
rename from client/css/lib/codemirror/theme/3024-night.css
rename to src/vitis/client/css/lib/codemirror/theme/3024-night.css
diff --git a/client/css/lib/codemirror/theme/Veremes.css b/src/vitis/client/css/lib/codemirror/theme/Veremes.css
similarity index 100%
rename from client/css/lib/codemirror/theme/Veremes.css
rename to src/vitis/client/css/lib/codemirror/theme/Veremes.css
diff --git a/client/css/lib/codemirror/theme/abcdef.css b/src/vitis/client/css/lib/codemirror/theme/abcdef.css
similarity index 100%
rename from client/css/lib/codemirror/theme/abcdef.css
rename to src/vitis/client/css/lib/codemirror/theme/abcdef.css
diff --git a/client/css/lib/codemirror/theme/ambiance-mobile.css b/src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css
similarity index 100%
rename from client/css/lib/codemirror/theme/ambiance-mobile.css
rename to src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css
diff --git a/client/css/lib/codemirror/theme/ambiance.css b/src/vitis/client/css/lib/codemirror/theme/ambiance.css
similarity index 100%
rename from client/css/lib/codemirror/theme/ambiance.css
rename to src/vitis/client/css/lib/codemirror/theme/ambiance.css
diff --git a/client/css/lib/codemirror/theme/base16-dark.css b/src/vitis/client/css/lib/codemirror/theme/base16-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/base16-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/base16-dark.css
diff --git a/client/css/lib/codemirror/theme/base16-light.css b/src/vitis/client/css/lib/codemirror/theme/base16-light.css
similarity index 100%
rename from client/css/lib/codemirror/theme/base16-light.css
rename to src/vitis/client/css/lib/codemirror/theme/base16-light.css
diff --git a/client/css/lib/codemirror/theme/bespin.css b/src/vitis/client/css/lib/codemirror/theme/bespin.css
similarity index 100%
rename from client/css/lib/codemirror/theme/bespin.css
rename to src/vitis/client/css/lib/codemirror/theme/bespin.css
diff --git a/client/css/lib/codemirror/theme/blackboard.css b/src/vitis/client/css/lib/codemirror/theme/blackboard.css
similarity index 100%
rename from client/css/lib/codemirror/theme/blackboard.css
rename to src/vitis/client/css/lib/codemirror/theme/blackboard.css
diff --git a/client/css/lib/codemirror/theme/cobalt.css b/src/vitis/client/css/lib/codemirror/theme/cobalt.css
similarity index 100%
rename from client/css/lib/codemirror/theme/cobalt.css
rename to src/vitis/client/css/lib/codemirror/theme/cobalt.css
diff --git a/client/css/lib/codemirror/theme/colorforth.css b/src/vitis/client/css/lib/codemirror/theme/colorforth.css
similarity index 100%
rename from client/css/lib/codemirror/theme/colorforth.css
rename to src/vitis/client/css/lib/codemirror/theme/colorforth.css
diff --git a/client/css/lib/codemirror/theme/dracula.css b/src/vitis/client/css/lib/codemirror/theme/dracula.css
similarity index 100%
rename from client/css/lib/codemirror/theme/dracula.css
rename to src/vitis/client/css/lib/codemirror/theme/dracula.css
diff --git a/client/css/lib/codemirror/theme/eclipse.css b/src/vitis/client/css/lib/codemirror/theme/eclipse.css
similarity index 100%
rename from client/css/lib/codemirror/theme/eclipse.css
rename to src/vitis/client/css/lib/codemirror/theme/eclipse.css
diff --git a/client/css/lib/codemirror/theme/elegant.css b/src/vitis/client/css/lib/codemirror/theme/elegant.css
similarity index 100%
rename from client/css/lib/codemirror/theme/elegant.css
rename to src/vitis/client/css/lib/codemirror/theme/elegant.css
diff --git a/client/css/lib/codemirror/theme/erlang-dark.css b/src/vitis/client/css/lib/codemirror/theme/erlang-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/erlang-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/erlang-dark.css
diff --git a/client/css/lib/codemirror/theme/hopscotch.css b/src/vitis/client/css/lib/codemirror/theme/hopscotch.css
similarity index 100%
rename from client/css/lib/codemirror/theme/hopscotch.css
rename to src/vitis/client/css/lib/codemirror/theme/hopscotch.css
diff --git a/client/css/lib/codemirror/theme/icecoder.css b/src/vitis/client/css/lib/codemirror/theme/icecoder.css
similarity index 100%
rename from client/css/lib/codemirror/theme/icecoder.css
rename to src/vitis/client/css/lib/codemirror/theme/icecoder.css
diff --git a/client/css/lib/codemirror/theme/isotope.css b/src/vitis/client/css/lib/codemirror/theme/isotope.css
similarity index 100%
rename from client/css/lib/codemirror/theme/isotope.css
rename to src/vitis/client/css/lib/codemirror/theme/isotope.css
diff --git a/client/css/lib/codemirror/theme/lesser-dark.css b/src/vitis/client/css/lib/codemirror/theme/lesser-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/lesser-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/lesser-dark.css
diff --git a/client/css/lib/codemirror/theme/liquibyte.css b/src/vitis/client/css/lib/codemirror/theme/liquibyte.css
similarity index 100%
rename from client/css/lib/codemirror/theme/liquibyte.css
rename to src/vitis/client/css/lib/codemirror/theme/liquibyte.css
diff --git a/client/css/lib/codemirror/theme/material.css b/src/vitis/client/css/lib/codemirror/theme/material.css
similarity index 100%
rename from client/css/lib/codemirror/theme/material.css
rename to src/vitis/client/css/lib/codemirror/theme/material.css
diff --git a/client/css/lib/codemirror/theme/mbo.css b/src/vitis/client/css/lib/codemirror/theme/mbo.css
similarity index 100%
rename from client/css/lib/codemirror/theme/mbo.css
rename to src/vitis/client/css/lib/codemirror/theme/mbo.css
diff --git a/client/css/lib/codemirror/theme/mdn-like.css b/src/vitis/client/css/lib/codemirror/theme/mdn-like.css
similarity index 100%
rename from client/css/lib/codemirror/theme/mdn-like.css
rename to src/vitis/client/css/lib/codemirror/theme/mdn-like.css
diff --git a/client/css/lib/codemirror/theme/midnight.css b/src/vitis/client/css/lib/codemirror/theme/midnight.css
similarity index 100%
rename from client/css/lib/codemirror/theme/midnight.css
rename to src/vitis/client/css/lib/codemirror/theme/midnight.css
diff --git a/client/css/lib/codemirror/theme/monokai.css b/src/vitis/client/css/lib/codemirror/theme/monokai.css
similarity index 100%
rename from client/css/lib/codemirror/theme/monokai.css
rename to src/vitis/client/css/lib/codemirror/theme/monokai.css
diff --git a/client/css/lib/codemirror/theme/neat.css b/src/vitis/client/css/lib/codemirror/theme/neat.css
similarity index 100%
rename from client/css/lib/codemirror/theme/neat.css
rename to src/vitis/client/css/lib/codemirror/theme/neat.css
diff --git a/client/css/lib/codemirror/theme/neo.css b/src/vitis/client/css/lib/codemirror/theme/neo.css
similarity index 100%
rename from client/css/lib/codemirror/theme/neo.css
rename to src/vitis/client/css/lib/codemirror/theme/neo.css
diff --git a/client/css/lib/codemirror/theme/night.css b/src/vitis/client/css/lib/codemirror/theme/night.css
similarity index 100%
rename from client/css/lib/codemirror/theme/night.css
rename to src/vitis/client/css/lib/codemirror/theme/night.css
diff --git a/client/css/lib/codemirror/theme/paraiso-dark.css b/src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/paraiso-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css
diff --git a/client/css/lib/codemirror/theme/paraiso-light.css b/src/vitis/client/css/lib/codemirror/theme/paraiso-light.css
similarity index 100%
rename from client/css/lib/codemirror/theme/paraiso-light.css
rename to src/vitis/client/css/lib/codemirror/theme/paraiso-light.css
diff --git a/client/css/lib/codemirror/theme/pastel-on-dark.css b/src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/pastel-on-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css
diff --git a/client/css/lib/codemirror/theme/railscasts.css b/src/vitis/client/css/lib/codemirror/theme/railscasts.css
similarity index 100%
rename from client/css/lib/codemirror/theme/railscasts.css
rename to src/vitis/client/css/lib/codemirror/theme/railscasts.css
diff --git a/client/css/lib/codemirror/theme/rubyblue.css b/src/vitis/client/css/lib/codemirror/theme/rubyblue.css
similarity index 100%
rename from client/css/lib/codemirror/theme/rubyblue.css
rename to src/vitis/client/css/lib/codemirror/theme/rubyblue.css
diff --git a/client/css/lib/codemirror/theme/seti.css b/src/vitis/client/css/lib/codemirror/theme/seti.css
similarity index 100%
rename from client/css/lib/codemirror/theme/seti.css
rename to src/vitis/client/css/lib/codemirror/theme/seti.css
diff --git a/client/css/lib/codemirror/theme/solarized.css b/src/vitis/client/css/lib/codemirror/theme/solarized.css
similarity index 100%
rename from client/css/lib/codemirror/theme/solarized.css
rename to src/vitis/client/css/lib/codemirror/theme/solarized.css
diff --git a/client/css/lib/codemirror/theme/the-matrix.css b/src/vitis/client/css/lib/codemirror/theme/the-matrix.css
similarity index 100%
rename from client/css/lib/codemirror/theme/the-matrix.css
rename to src/vitis/client/css/lib/codemirror/theme/the-matrix.css
diff --git a/client/css/lib/codemirror/theme/tomorrow-night-bright.css b/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css
similarity index 100%
rename from client/css/lib/codemirror/theme/tomorrow-night-bright.css
rename to src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css
diff --git a/client/css/lib/codemirror/theme/tomorrow-night-eighties.css b/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css
similarity index 100%
rename from client/css/lib/codemirror/theme/tomorrow-night-eighties.css
rename to src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css
diff --git a/client/css/lib/codemirror/theme/ttcn.css b/src/vitis/client/css/lib/codemirror/theme/ttcn.css
similarity index 100%
rename from client/css/lib/codemirror/theme/ttcn.css
rename to src/vitis/client/css/lib/codemirror/theme/ttcn.css
diff --git a/client/css/lib/codemirror/theme/twilight.css b/src/vitis/client/css/lib/codemirror/theme/twilight.css
similarity index 100%
rename from client/css/lib/codemirror/theme/twilight.css
rename to src/vitis/client/css/lib/codemirror/theme/twilight.css
diff --git a/client/css/lib/codemirror/theme/vibrant-ink.css b/src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css
similarity index 100%
rename from client/css/lib/codemirror/theme/vibrant-ink.css
rename to src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css
diff --git a/client/css/lib/codemirror/theme/xq-dark.css b/src/vitis/client/css/lib/codemirror/theme/xq-dark.css
similarity index 100%
rename from client/css/lib/codemirror/theme/xq-dark.css
rename to src/vitis/client/css/lib/codemirror/theme/xq-dark.css
diff --git a/client/css/lib/codemirror/theme/xq-light.css b/src/vitis/client/css/lib/codemirror/theme/xq-light.css
similarity index 100%
rename from client/css/lib/codemirror/theme/xq-light.css
rename to src/vitis/client/css/lib/codemirror/theme/xq-light.css
diff --git a/client/css/lib/codemirror/theme/yeti.css b/src/vitis/client/css/lib/codemirror/theme/yeti.css
similarity index 100%
rename from client/css/lib/codemirror/theme/yeti.css
rename to src/vitis/client/css/lib/codemirror/theme/yeti.css
diff --git a/client/css/lib/codemirror/theme/zenburn.css b/src/vitis/client/css/lib/codemirror/theme/zenburn.css
similarity index 100%
rename from client/css/lib/codemirror/theme/zenburn.css
rename to src/vitis/client/css/lib/codemirror/theme/zenburn.css
diff --git a/client/css/lib/font-awesome/HELP-US-OUT.txt b/src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt
similarity index 100%
rename from client/css/lib/font-awesome/HELP-US-OUT.txt
rename to src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt
diff --git a/client/css/lib/font-awesome/css/font-awesome.css b/src/vitis/client/css/lib/font-awesome/css/font-awesome.css
similarity index 100%
rename from client/css/lib/font-awesome/css/font-awesome.css
rename to src/vitis/client/css/lib/font-awesome/css/font-awesome.css
diff --git a/client/css/lib/font-awesome/css/font-awesome.min.css b/src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css
similarity index 100%
rename from client/css/lib/font-awesome/css/font-awesome.min.css
rename to src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css
diff --git a/client/css/lib/font-awesome/fonts/FontAwesome.otf b/src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf
similarity index 100%
rename from client/css/lib/font-awesome/fonts/FontAwesome.otf
rename to src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.eot
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.svg
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.woff
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff
diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2
rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2
diff --git a/client/css/lib/font-awesome/less/animated.less b/src/vitis/client/css/lib/font-awesome/less/animated.less
similarity index 100%
rename from client/css/lib/font-awesome/less/animated.less
rename to src/vitis/client/css/lib/font-awesome/less/animated.less
diff --git a/client/css/lib/font-awesome/less/bordered-pulled.less b/src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less
similarity index 100%
rename from client/css/lib/font-awesome/less/bordered-pulled.less
rename to src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less
diff --git a/client/css/lib/font-awesome/less/core.less b/src/vitis/client/css/lib/font-awesome/less/core.less
similarity index 100%
rename from client/css/lib/font-awesome/less/core.less
rename to src/vitis/client/css/lib/font-awesome/less/core.less
diff --git a/client/css/lib/font-awesome/less/fixed-width.less b/src/vitis/client/css/lib/font-awesome/less/fixed-width.less
similarity index 100%
rename from client/css/lib/font-awesome/less/fixed-width.less
rename to src/vitis/client/css/lib/font-awesome/less/fixed-width.less
diff --git a/client/css/lib/font-awesome/less/font-awesome.less b/src/vitis/client/css/lib/font-awesome/less/font-awesome.less
similarity index 100%
rename from client/css/lib/font-awesome/less/font-awesome.less
rename to src/vitis/client/css/lib/font-awesome/less/font-awesome.less
diff --git a/client/css/lib/font-awesome/less/icons.less b/src/vitis/client/css/lib/font-awesome/less/icons.less
similarity index 100%
rename from client/css/lib/font-awesome/less/icons.less
rename to src/vitis/client/css/lib/font-awesome/less/icons.less
diff --git a/client/css/lib/font-awesome/less/larger.less b/src/vitis/client/css/lib/font-awesome/less/larger.less
similarity index 100%
rename from client/css/lib/font-awesome/less/larger.less
rename to src/vitis/client/css/lib/font-awesome/less/larger.less
diff --git a/client/css/lib/font-awesome/less/list.less b/src/vitis/client/css/lib/font-awesome/less/list.less
similarity index 100%
rename from client/css/lib/font-awesome/less/list.less
rename to src/vitis/client/css/lib/font-awesome/less/list.less
diff --git a/client/css/lib/font-awesome/less/mixins.less b/src/vitis/client/css/lib/font-awesome/less/mixins.less
similarity index 100%
rename from client/css/lib/font-awesome/less/mixins.less
rename to src/vitis/client/css/lib/font-awesome/less/mixins.less
diff --git a/client/css/lib/font-awesome/less/path.less b/src/vitis/client/css/lib/font-awesome/less/path.less
similarity index 100%
rename from client/css/lib/font-awesome/less/path.less
rename to src/vitis/client/css/lib/font-awesome/less/path.less
diff --git a/client/css/lib/font-awesome/less/rotated-flipped.less b/src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less
similarity index 100%
rename from client/css/lib/font-awesome/less/rotated-flipped.less
rename to src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less
diff --git a/client/css/lib/font-awesome/less/stacked.less b/src/vitis/client/css/lib/font-awesome/less/stacked.less
similarity index 100%
rename from client/css/lib/font-awesome/less/stacked.less
rename to src/vitis/client/css/lib/font-awesome/less/stacked.less
diff --git a/client/css/lib/font-awesome/less/variables.less b/src/vitis/client/css/lib/font-awesome/less/variables.less
similarity index 100%
rename from client/css/lib/font-awesome/less/variables.less
rename to src/vitis/client/css/lib/font-awesome/less/variables.less
diff --git a/client/css/lib/font-awesome/scss/_animated.scss b/src/vitis/client/css/lib/font-awesome/scss/_animated.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_animated.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_animated.scss
diff --git a/client/css/lib/font-awesome/scss/_bordered-pulled.scss b/src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_bordered-pulled.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss
diff --git a/client/css/lib/font-awesome/scss/_core.scss b/src/vitis/client/css/lib/font-awesome/scss/_core.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_core.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_core.scss
diff --git a/client/css/lib/font-awesome/scss/_fixed-width.scss b/src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_fixed-width.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss
diff --git a/client/css/lib/font-awesome/scss/_icons.scss b/src/vitis/client/css/lib/font-awesome/scss/_icons.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_icons.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_icons.scss
diff --git a/client/css/lib/font-awesome/scss/_larger.scss b/src/vitis/client/css/lib/font-awesome/scss/_larger.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_larger.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_larger.scss
diff --git a/client/css/lib/font-awesome/scss/_list.scss b/src/vitis/client/css/lib/font-awesome/scss/_list.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_list.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_list.scss
diff --git a/client/css/lib/font-awesome/scss/_mixins.scss b/src/vitis/client/css/lib/font-awesome/scss/_mixins.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_mixins.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_mixins.scss
diff --git a/client/css/lib/font-awesome/scss/_path.scss b/src/vitis/client/css/lib/font-awesome/scss/_path.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_path.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_path.scss
diff --git a/client/css/lib/font-awesome/scss/_rotated-flipped.scss b/src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_rotated-flipped.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss
diff --git a/client/css/lib/font-awesome/scss/_stacked.scss b/src/vitis/client/css/lib/font-awesome/scss/_stacked.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_stacked.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_stacked.scss
diff --git a/client/css/lib/font-awesome/scss/_variables.scss b/src/vitis/client/css/lib/font-awesome/scss/_variables.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/_variables.scss
rename to src/vitis/client/css/lib/font-awesome/scss/_variables.scss
diff --git a/client/css/lib/font-awesome/scss/font-awesome.scss b/src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss
similarity index 100%
rename from client/css/lib/font-awesome/scss/font-awesome.scss
rename to src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss
diff --git a/client/css/lib/fonts/FontAwesome.otf b/src/vitis/client/css/lib/fonts/FontAwesome.otf
similarity index 100%
rename from client/css/lib/fonts/FontAwesome.otf
rename to src/vitis/client/css/lib/fonts/FontAwesome.otf
diff --git a/client/css/lib/fonts/fontawesome-webfont.eot b/src/vitis/client/css/lib/fonts/fontawesome-webfont.eot
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.eot
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.eot
diff --git a/client/css/lib/fonts/fontawesome-webfont.svg b/src/vitis/client/css/lib/fonts/fontawesome-webfont.svg
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.svg
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.svg
diff --git a/client/css/lib/fonts/fontawesome-webfont.ttf b/src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.ttf
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf
diff --git a/client/css/lib/fonts/fontawesome-webfont.woff b/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.woff
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.woff
diff --git a/client/css/lib/fonts/fontawesome-webfont.woff2 b/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from client/css/lib/fonts/fontawesome-webfont.woff2
rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.eot b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.eot
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.svg b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.svg
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.ttf b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.ttf
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.woff b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.woff
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff
diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from client/css/lib/fonts/glyphicons-halflings-regular.woff2
rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png
diff --git a/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif
diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif
diff --git a/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css
diff --git a/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css
rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css
diff --git a/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css b/src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css
similarity index 100%
rename from client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css
rename to src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css
diff --git a/client/css/lib/materialize/materialize.css b/src/vitis/client/css/lib/materialize/materialize.css
similarity index 100%
rename from client/css/lib/materialize/materialize.css
rename to src/vitis/client/css/lib/materialize/materialize.css
diff --git a/client/css/lib/materialize/materialize.min.css b/src/vitis/client/css/lib/materialize/materialize.min.css
similarity index 100%
rename from client/css/lib/materialize/materialize.min.css
rename to src/vitis/client/css/lib/materialize/materialize.min.css
diff --git a/client/css/lib/openlayers/ol.css b/src/vitis/client/css/lib/openlayers/ol.css
similarity index 100%
rename from client/css/lib/openlayers/ol.css
rename to src/vitis/client/css/lib/openlayers/ol.css
diff --git a/client/css/lib/ui-grid/plugins/draggable-rows.less b/src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less
similarity index 100%
rename from client/css/lib/ui-grid/plugins/draggable-rows.less
rename to src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less
diff --git a/client/css/lib/ui-grid/ui-grid.css b/src/vitis/client/css/lib/ui-grid/ui-grid.css
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.css
rename to src/vitis/client/css/lib/ui-grid/ui-grid.css
diff --git a/client/css/lib/ui-grid/ui-grid.eot b/src/vitis/client/css/lib/ui-grid/ui-grid.eot
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.eot
rename to src/vitis/client/css/lib/ui-grid/ui-grid.eot
diff --git a/client/css/lib/ui-grid/ui-grid.min.css b/src/vitis/client/css/lib/ui-grid/ui-grid.min.css
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.min.css
rename to src/vitis/client/css/lib/ui-grid/ui-grid.min.css
diff --git a/client/css/lib/ui-grid/ui-grid.svg b/src/vitis/client/css/lib/ui-grid/ui-grid.svg
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.svg
rename to src/vitis/client/css/lib/ui-grid/ui-grid.svg
diff --git a/client/css/lib/ui-grid/ui-grid.ttf b/src/vitis/client/css/lib/ui-grid/ui-grid.ttf
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.ttf
rename to src/vitis/client/css/lib/ui-grid/ui-grid.ttf
diff --git a/client/css/lib/ui-grid/ui-grid.woff b/src/vitis/client/css/lib/ui-grid/ui-grid.woff
similarity index 100%
rename from client/css/lib/ui-grid/ui-grid.woff
rename to src/vitis/client/css/lib/ui-grid/ui-grid.woff
diff --git a/client/css/lib/viewer/viewer.min.css b/src/vitis/client/css/lib/viewer/viewer.min.css
similarity index 100%
rename from client/css/lib/viewer/viewer.min.css
rename to src/vitis/client/css/lib/viewer/viewer.min.css
diff --git a/client/forms/forgotten_password.json b/src/vitis/client/forms/forgotten_password.json
similarity index 100%
rename from client/forms/forgotten_password.json
rename to src/vitis/client/forms/forgotten_password.json
diff --git a/client/forms/login.js b/src/vitis/client/forms/login.js
similarity index 100%
rename from client/forms/login.js
rename to src/vitis/client/forms/login.js
diff --git a/client/forms/login.json b/src/vitis/client/forms/login.json
similarity index 100%
rename from client/forms/login.json
rename to src/vitis/client/forms/login.json
diff --git a/client/forms/sign_up.json b/src/vitis/client/forms/sign_up.json
similarity index 100%
rename from client/forms/sign_up.json
rename to src/vitis/client/forms/sign_up.json
diff --git a/client/images/ajax-big-loader.GIF b/src/vitis/client/images/ajax-big-loader.GIF
similarity index 100%
rename from client/images/ajax-big-loader.GIF
rename to src/vitis/client/images/ajax-big-loader.GIF
diff --git a/client/images/ajax-load-big.gif b/src/vitis/client/images/ajax-load-big.gif
similarity index 100%
rename from client/images/ajax-load-big.gif
rename to src/vitis/client/images/ajax-load-big.gif
diff --git a/client/images/ajax-load.gif b/src/vitis/client/images/ajax-load.gif
similarity index 100%
rename from client/images/ajax-load.gif
rename to src/vitis/client/images/ajax-load.gif
diff --git a/client/images/bandeau.png b/src/vitis/client/images/bandeau.png
similarity index 100%
rename from client/images/bandeau.png
rename to src/vitis/client/images/bandeau.png
diff --git a/client/images/custom.png b/src/vitis/client/images/custom.png
similarity index 100%
rename from client/images/custom.png
rename to src/vitis/client/images/custom.png
diff --git a/client/images/disconnect_button.png b/src/vitis/client/images/disconnect_button.png
similarity index 100%
rename from client/images/disconnect_button.png
rename to src/vitis/client/images/disconnect_button.png
diff --git a/client/images/download.png b/src/vitis/client/images/download.png
similarity index 100%
rename from client/images/download.png
rename to src/vitis/client/images/download.png
diff --git a/client/images/editer.png b/src/vitis/client/images/editer.png
similarity index 100%
rename from client/images/editer.png
rename to src/vitis/client/images/editer.png
diff --git a/client/images/enveloppe.png b/src/vitis/client/images/enveloppe.png
similarity index 100%
rename from client/images/enveloppe.png
rename to src/vitis/client/images/enveloppe.png
diff --git a/client/images/false.png b/src/vitis/client/images/false.png
similarity index 100%
rename from client/images/false.png
rename to src/vitis/client/images/false.png
diff --git a/client/images/favicon.ico b/src/vitis/client/images/favicon.ico
similarity index 100%
rename from client/images/favicon.ico
rename to src/vitis/client/images/favicon.ico
diff --git a/client/images/i.png b/src/vitis/client/images/i.png
similarity index 100%
rename from client/images/i.png
rename to src/vitis/client/images/i.png
diff --git a/client/images/icons/geolocation_marker.png b/src/vitis/client/images/icons/geolocation_marker.png
similarity index 100%
rename from client/images/icons/geolocation_marker.png
rename to src/vitis/client/images/icons/geolocation_marker.png
diff --git a/client/images/icons/geolocation_marker_heading.png b/src/vitis/client/images/icons/geolocation_marker_heading.png
similarity index 100%
rename from client/images/icons/geolocation_marker_heading.png
rename to src/vitis/client/images/icons/geolocation_marker_heading.png
diff --git a/client/images/icons/icon-arrow-FME.png b/src/vitis/client/images/icons/icon-arrow-FME.png
similarity index 100%
rename from client/images/icons/icon-arrow-FME.png
rename to src/vitis/client/images/icons/icon-arrow-FME.png
diff --git a/client/images/icons/icon-arrow-FME2.png b/src/vitis/client/images/icons/icon-arrow-FME2.png
similarity index 100%
rename from client/images/icons/icon-arrow-FME2.png
rename to src/vitis/client/images/icons/icon-arrow-FME2.png
diff --git a/client/images/icons/icon-filtrage.png b/src/vitis/client/images/icons/icon-filtrage.png
similarity index 100%
rename from client/images/icons/icon-filtrage.png
rename to src/vitis/client/images/icons/icon-filtrage.png
diff --git a/client/images/icons/icons-down-search-arrow.png b/src/vitis/client/images/icons/icons-down-search-arrow.png
similarity index 100%
rename from client/images/icons/icons-down-search-arrow.png
rename to src/vitis/client/images/icons/icons-down-search-arrow.png
diff --git a/client/images/icons/icons-right-search-arrow.png b/src/vitis/client/images/icons/icons-right-search-arrow.png
similarity index 100%
rename from client/images/icons/icons-right-search-arrow.png
rename to src/vitis/client/images/icons/icons-right-search-arrow.png
diff --git a/client/images/logo-veremes.jpg b/src/vitis/client/images/logo-veremes.jpg
similarity index 100%
rename from client/images/logo-veremes.jpg
rename to src/vitis/client/images/logo-veremes.jpg
diff --git a/client/images/logo-veremes.png b/src/vitis/client/images/logo-veremes.png
similarity index 100%
rename from client/images/logo-veremes.png
rename to src/vitis/client/images/logo-veremes.png
diff --git a/client/images/mode/configuration.png b/src/vitis/client/images/mode/configuration.png
similarity index 100%
rename from client/images/mode/configuration.png
rename to src/vitis/client/images/mode/configuration.png
diff --git a/client/images/mode/development.png b/src/vitis/client/images/mode/development.png
similarity index 100%
rename from client/images/mode/development.png
rename to src/vitis/client/images/mode/development.png
diff --git a/client/images/mode/engine.png b/src/vitis/client/images/mode/engine.png
similarity index 100%
rename from client/images/mode/engine.png
rename to src/vitis/client/images/mode/engine.png
diff --git a/client/images/mode/help.png b/src/vitis/client/images/mode/help.png
similarity index 100%
rename from client/images/mode/help.png
rename to src/vitis/client/images/mode/help.png
diff --git a/client/images/mode/logs.png b/src/vitis/client/images/mode/logs.png
similarity index 100%
rename from client/images/mode/logs.png
rename to src/vitis/client/images/mode/logs.png
diff --git a/client/images/mode/my_work.png b/src/vitis/client/images/mode/my_work.png
similarity index 100%
rename from client/images/mode/my_work.png
rename to src/vitis/client/images/mode/my_work.png
diff --git a/client/images/mode/publication.png b/src/vitis/client/images/mode/publication.png
similarity index 100%
rename from client/images/mode/publication.png
rename to src/vitis/client/images/mode/publication.png
diff --git a/client/images/mode/statistics.png b/src/vitis/client/images/mode/statistics.png
similarity index 100%
rename from client/images/mode/statistics.png
rename to src/vitis/client/images/mode/statistics.png
diff --git a/client/images/mode/supervision.png b/src/vitis/client/images/mode/supervision.png
similarity index 100%
rename from client/images/mode/supervision.png
rename to src/vitis/client/images/mode/supervision.png
diff --git a/client/images/mode/user.png b/src/vitis/client/images/mode/user.png
similarity index 100%
rename from client/images/mode/user.png
rename to src/vitis/client/images/mode/user.png
diff --git a/client/images/mode/users.png b/src/vitis/client/images/mode/users.png
similarity index 100%
rename from client/images/mode/users.png
rename to src/vitis/client/images/mode/users.png
diff --git a/client/images/mode/vmap.png b/src/vitis/client/images/mode/vmap.png
similarity index 100%
rename from client/images/mode/vmap.png
rename to src/vitis/client/images/mode/vmap.png
diff --git a/client/images/page.png b/src/vitis/client/images/page.png
similarity index 100%
rename from client/images/page.png
rename to src/vitis/client/images/page.png
diff --git a/client/images/sql_list/st1.gif b/src/vitis/client/images/sql_list/st1.gif
similarity index 100%
rename from client/images/sql_list/st1.gif
rename to src/vitis/client/images/sql_list/st1.gif
diff --git a/client/images/sql_list/st1.png b/src/vitis/client/images/sql_list/st1.png
similarity index 100%
rename from client/images/sql_list/st1.png
rename to src/vitis/client/images/sql_list/st1.png
diff --git a/client/images/sql_list/st2.png b/src/vitis/client/images/sql_list/st2.png
similarity index 100%
rename from client/images/sql_list/st2.png
rename to src/vitis/client/images/sql_list/st2.png
diff --git a/client/images/sql_list/st3.png b/src/vitis/client/images/sql_list/st3.png
similarity index 100%
rename from client/images/sql_list/st3.png
rename to src/vitis/client/images/sql_list/st3.png
diff --git a/client/images/sql_list/st4.png b/src/vitis/client/images/sql_list/st4.png
similarity index 100%
rename from client/images/sql_list/st4.png
rename to src/vitis/client/images/sql_list/st4.png
diff --git a/client/images/sql_list/st5.gif b/src/vitis/client/images/sql_list/st5.gif
similarity index 100%
rename from client/images/sql_list/st5.gif
rename to src/vitis/client/images/sql_list/st5.gif
diff --git a/client/images/sql_list/st6.png b/src/vitis/client/images/sql_list/st6.png
similarity index 100%
rename from client/images/sql_list/st6.png
rename to src/vitis/client/images/sql_list/st6.png
diff --git a/client/images/true.png b/src/vitis/client/images/true.png
similarity index 100%
rename from client/images/true.png
rename to src/vitis/client/images/true.png
diff --git a/client/images/ui-grid/wbg.gif b/src/vitis/client/images/ui-grid/wbg.gif
similarity index 100%
rename from client/images/ui-grid/wbg.gif
rename to src/vitis/client/images/ui-grid/wbg.gif
diff --git a/client/images/visualiser.png b/src/vitis/client/images/visualiser.png
similarity index 100%
rename from client/images/visualiser.png
rename to src/vitis/client/images/visualiser.png
diff --git a/client/images/wk_params.png b/src/vitis/client/images/wk_params.png
similarity index 100%
rename from client/images/wk_params.png
rename to src/vitis/client/images/wk_params.png
diff --git a/client/index.html b/src/vitis/client/index.html
similarity index 100%
rename from client/index.html
rename to src/vitis/client/index.html
diff --git a/client/javascript/app/app.js b/src/vitis/client/javascript/app/app.js
similarity index 100%
rename from client/javascript/app/app.js
rename to src/vitis/client/javascript/app/app.js
diff --git a/client/javascript/app/config.js b/src/vitis/client/javascript/app/config.js
similarity index 100%
rename from client/javascript/app/config.js
rename to src/vitis/client/javascript/app/config.js
diff --git a/client/javascript/app/controllers/doubleFormCtrl.js b/src/vitis/client/javascript/app/controllers/doubleFormCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/doubleFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/doubleFormCtrl.js
diff --git a/client/javascript/app/controllers/htmlFormCtrl.js b/src/vitis/client/javascript/app/controllers/htmlFormCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/htmlFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/htmlFormCtrl.js
diff --git a/client/javascript/app/controllers/initCtrl.js b/src/vitis/client/javascript/app/controllers/initCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/initCtrl.js
rename to src/vitis/client/javascript/app/controllers/initCtrl.js
diff --git a/client/javascript/app/controllers/loginCtrl.js b/src/vitis/client/javascript/app/controllers/loginCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/loginCtrl.js
rename to src/vitis/client/javascript/app/controllers/loginCtrl.js
diff --git a/client/javascript/app/controllers/mainCtrl.js b/src/vitis/client/javascript/app/controllers/mainCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/mainCtrl.js
rename to src/vitis/client/javascript/app/controllers/mainCtrl.js
diff --git a/client/javascript/app/controllers/sectionFormCtrl.js b/src/vitis/client/javascript/app/controllers/sectionFormCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/sectionFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/sectionFormCtrl.js
diff --git a/client/javascript/app/controllers/simpleFormCtrl.js b/src/vitis/client/javascript/app/controllers/simpleFormCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/simpleFormCtrl.js
rename to src/vitis/client/javascript/app/controllers/simpleFormCtrl.js
diff --git a/client/javascript/app/controllers/workspaceListCtrl.js b/src/vitis/client/javascript/app/controllers/workspaceListCtrl.js
similarity index 100%
rename from client/javascript/app/controllers/workspaceListCtrl.js
rename to src/vitis/client/javascript/app/controllers/workspaceListCtrl.js
diff --git a/client/javascript/app/directives/doubleFormDrtv.js b/src/vitis/client/javascript/app/directives/doubleFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/doubleFormDrtv.js
rename to src/vitis/client/javascript/app/directives/doubleFormDrtv.js
diff --git a/client/javascript/app/directives/htmlFormDrtv.js b/src/vitis/client/javascript/app/directives/htmlFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/htmlFormDrtv.js
rename to src/vitis/client/javascript/app/directives/htmlFormDrtv.js
diff --git a/client/javascript/app/directives/initDrtv.js b/src/vitis/client/javascript/app/directives/initDrtv.js
similarity index 100%
rename from client/javascript/app/directives/initDrtv.js
rename to src/vitis/client/javascript/app/directives/initDrtv.js
diff --git a/client/javascript/app/directives/loginDrtv.js b/src/vitis/client/javascript/app/directives/loginDrtv.js
similarity index 100%
rename from client/javascript/app/directives/loginDrtv.js
rename to src/vitis/client/javascript/app/directives/loginDrtv.js
diff --git a/client/javascript/app/directives/mainDrtv.js b/src/vitis/client/javascript/app/directives/mainDrtv.js
similarity index 100%
rename from client/javascript/app/directives/mainDrtv.js
rename to src/vitis/client/javascript/app/directives/mainDrtv.js
diff --git a/client/javascript/app/directives/sectionFormDrtv.js b/src/vitis/client/javascript/app/directives/sectionFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/sectionFormDrtv.js
rename to src/vitis/client/javascript/app/directives/sectionFormDrtv.js
diff --git a/client/javascript/app/directives/simpleFormDrtv.js b/src/vitis/client/javascript/app/directives/simpleFormDrtv.js
similarity index 100%
rename from client/javascript/app/directives/simpleFormDrtv.js
rename to src/vitis/client/javascript/app/directives/simpleFormDrtv.js
diff --git a/client/javascript/app/directives/workspaceListDrtv.js b/src/vitis/client/javascript/app/directives/workspaceListDrtv.js
similarity index 100%
rename from client/javascript/app/directives/workspaceListDrtv.js
rename to src/vitis/client/javascript/app/directives/workspaceListDrtv.js
diff --git a/client/javascript/app/loadApp.js b/src/vitis/client/javascript/app/loadApp.js
similarity index 100%
rename from client/javascript/app/loadApp.js
rename to src/vitis/client/javascript/app/loadApp.js
diff --git a/client/javascript/app/loadExternalFiles.js b/src/vitis/client/javascript/app/loadExternalFiles.js
similarity index 100%
rename from client/javascript/app/loadExternalFiles.js
rename to src/vitis/client/javascript/app/loadExternalFiles.js
diff --git a/client/javascript/app/modules/mainMod.js b/src/vitis/client/javascript/app/modules/mainMod.js
similarity index 100%
rename from client/javascript/app/modules/mainMod.js
rename to src/vitis/client/javascript/app/modules/mainMod.js
diff --git a/client/javascript/app/script_client.js b/src/vitis/client/javascript/app/script_client.js
similarity index 100%
rename from client/javascript/app/script_client.js
rename to src/vitis/client/javascript/app/script_client.js
diff --git a/client/javascript/app/services/formSrvc.js b/src/vitis/client/javascript/app/services/formSrvc.js
similarity index 100%
rename from client/javascript/app/services/formSrvc.js
rename to src/vitis/client/javascript/app/services/formSrvc.js
diff --git a/client/javascript/app/services/mainSrvc.js b/src/vitis/client/javascript/app/services/mainSrvc.js
similarity index 100%
rename from client/javascript/app/services/mainSrvc.js
rename to src/vitis/client/javascript/app/services/mainSrvc.js
diff --git a/client/javascript/app/vitiswebsocket.js b/src/vitis/client/javascript/app/vitiswebsocket.js
similarity index 100%
rename from client/javascript/app/vitiswebsocket.js
rename to src/vitis/client/javascript/app/vitiswebsocket.js
diff --git a/client/javascript/externs/LICENSE b/src/vitis/client/javascript/externs/LICENSE
similarity index 100%
rename from client/javascript/externs/LICENSE
rename to src/vitis/client/javascript/externs/LICENSE
diff --git a/client/javascript/externs/alasql/alasql.min.js b/src/vitis/client/javascript/externs/alasql/alasql.min.js
similarity index 100%
rename from client/javascript/externs/alasql/alasql.min.js
rename to src/vitis/client/javascript/externs/alasql/alasql.min.js
diff --git a/client/javascript/externs/alasql/xlsx.core.min.js b/src/vitis/client/javascript/externs/alasql/xlsx.core.min.js
similarity index 100%
rename from client/javascript/externs/alasql/xlsx.core.min.js
rename to src/vitis/client/javascript/externs/alasql/xlsx.core.min.js
diff --git a/client/javascript/externs/angular-bind-notifier/LICENSE b/src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE
similarity index 100%
rename from client/javascript/externs/angular-bind-notifier/LICENSE
rename to src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE
diff --git a/client/javascript/externs/angular-bind-notifier/bindNotifier.js b/src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js
similarity index 100%
rename from client/javascript/externs/angular-bind-notifier/bindNotifier.js
rename to src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js
diff --git a/client/javascript/externs/angular-ui-codemirror/LICENSE b/src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE
similarity index 100%
rename from client/javascript/externs/angular-ui-codemirror/LICENSE
rename to src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE
diff --git a/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js b/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js
similarity index 100%
rename from client/javascript/externs/angular-ui-codemirror/ui-codemirror.js
rename to src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js
diff --git a/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js b/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js
similarity index 100%
rename from client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js
rename to src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js
diff --git a/client/javascript/externs/angular/LICENSE b/src/vitis/client/javascript/externs/angular/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/LICENSE
rename to src/vitis/client/javascript/externs/angular/LICENSE
diff --git a/client/javascript/externs/angular/angular.js b/src/vitis/client/javascript/externs/angular/angular.js
similarity index 100%
rename from client/javascript/externs/angular/angular.js
rename to src/vitis/client/javascript/externs/angular/angular.js
diff --git a/client/javascript/externs/angular/angular.min.js b/src/vitis/client/javascript/externs/angular/angular.min.js
similarity index 100%
rename from client/javascript/externs/angular/angular.min.js
rename to src/vitis/client/javascript/externs/angular/angular.min.js
diff --git a/client/javascript/externs/angular/angular.min.js.map b/src/vitis/client/javascript/externs/angular/angular.min.js.map
similarity index 100%
rename from client/javascript/externs/angular/angular.min.js.map
rename to src/vitis/client/javascript/externs/angular/angular.min.js.map
diff --git a/client/javascript/externs/angular/modules/angular-translate/LICENSE b/src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/LICENSE
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js
diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js
rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js
diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js
similarity index 100%
rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.js
rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js
diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js
rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js
diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map
similarity index 100%
rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map
rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map
diff --git a/client/javascript/externs/angular/modules/ui-codemirror/LICENSE b/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-codemirror/LICENSE
rename to src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE
diff --git a/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js b/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js
diff --git a/client/javascript/externs/angular/modules/ui-grid/LICENSE.md b/src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/LICENSE.md
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md
diff --git a/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js
diff --git a/client/javascript/externs/angular/modules/ui-grid/ui-grid.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/ui-grid.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js
diff --git a/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js
diff --git a/client/javascript/externs/angular/modules/ui-tinymce/LICENSE b/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-tinymce/LICENSE
rename to src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE
diff --git a/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js b/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js
similarity index 100%
rename from client/javascript/externs/angular/modules/ui-tinymce/tinymce.js
rename to src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js
diff --git a/client/javascript/externs/bootbox/LICENSE.md b/src/vitis/client/javascript/externs/bootbox/LICENSE.md
similarity index 100%
rename from client/javascript/externs/bootbox/LICENSE.md
rename to src/vitis/client/javascript/externs/bootbox/LICENSE.md
diff --git a/client/javascript/externs/bootbox/bootbox.min.js b/src/vitis/client/javascript/externs/bootbox/bootbox.min.js
similarity index 100%
rename from client/javascript/externs/bootbox/bootbox.min.js
rename to src/vitis/client/javascript/externs/bootbox/bootbox.min.js
diff --git a/client/javascript/externs/bootstrap/LICENSE b/src/vitis/client/javascript/externs/bootstrap/LICENSE
similarity index 100%
rename from client/javascript/externs/bootstrap/LICENSE
rename to src/vitis/client/javascript/externs/bootstrap/LICENSE
diff --git a/client/javascript/externs/bootstrap/bootstrap.js b/src/vitis/client/javascript/externs/bootstrap/bootstrap.js
similarity index 100%
rename from client/javascript/externs/bootstrap/bootstrap.js
rename to src/vitis/client/javascript/externs/bootstrap/bootstrap.js
diff --git a/client/javascript/externs/bootstrap/bootstrap.min.js b/src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js
similarity index 100%
rename from client/javascript/externs/bootstrap/bootstrap.min.js
rename to src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js
diff --git a/client/javascript/externs/codemirror/LICENSE b/src/vitis/client/javascript/externs/codemirror/LICENSE
similarity index 100%
rename from client/javascript/externs/codemirror/LICENSE
rename to src/vitis/client/javascript/externs/codemirror/LICENSE
diff --git a/client/javascript/externs/codemirror/addon/comment/comment.js b/src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/comment/comment.js
rename to src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js
diff --git a/client/javascript/externs/codemirror/addon/comment/continuecomment.js b/src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/comment/continuecomment.js
rename to src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js
diff --git a/client/javascript/externs/codemirror/addon/dialog/dialog.css b/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/dialog/dialog.css
rename to src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css
diff --git a/client/javascript/externs/codemirror/addon/dialog/dialog.js b/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/dialog/dialog.js
rename to src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js
diff --git a/client/javascript/externs/codemirror/addon/display/autorefresh.js b/src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/autorefresh.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js
diff --git a/client/javascript/externs/codemirror/addon/display/fullscreen.css b/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/fullscreen.css
rename to src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css
diff --git a/client/javascript/externs/codemirror/addon/display/fullscreen.js b/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/fullscreen.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js
diff --git a/client/javascript/externs/codemirror/addon/display/panel.js b/src/vitis/client/javascript/externs/codemirror/addon/display/panel.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/panel.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/panel.js
diff --git a/client/javascript/externs/codemirror/addon/display/placeholder.js b/src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/placeholder.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js
diff --git a/client/javascript/externs/codemirror/addon/display/rulers.js b/src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/display/rulers.js
rename to src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js
diff --git a/client/javascript/externs/codemirror/addon/edit/closebrackets.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/closebrackets.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js
diff --git a/client/javascript/externs/codemirror/addon/edit/closetag.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/closetag.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js
diff --git a/client/javascript/externs/codemirror/addon/edit/continuelist.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/continuelist.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js
diff --git a/client/javascript/externs/codemirror/addon/edit/matchbrackets.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/matchbrackets.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js
diff --git a/client/javascript/externs/codemirror/addon/edit/matchtags.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/matchtags.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js
diff --git a/client/javascript/externs/codemirror/addon/edit/trailingspace.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/edit/trailingspace.js
rename to src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js
diff --git a/client/javascript/externs/codemirror/addon/fold/brace-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/brace-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/comment-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/comment-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/foldcode.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/foldcode.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js
diff --git a/client/javascript/externs/codemirror/addon/fold/foldgutter.css b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/foldgutter.css
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css
diff --git a/client/javascript/externs/codemirror/addon/fold/foldgutter.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/foldgutter.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js
diff --git a/client/javascript/externs/codemirror/addon/fold/indent-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/indent-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/markdown-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/markdown-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js
diff --git a/client/javascript/externs/codemirror/addon/fold/xml-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/fold/xml-fold.js
rename to src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js
diff --git a/client/javascript/externs/codemirror/addon/hint/anyword-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/anyword-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/css-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/css-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/html-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/html-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/javascript-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/javascript-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/show-hint.css b/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/show-hint.css
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css
diff --git a/client/javascript/externs/codemirror/addon/hint/show-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/show-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/sql-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/sql-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js
diff --git a/client/javascript/externs/codemirror/addon/hint/xml-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/hint/xml-hint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js
diff --git a/client/javascript/externs/codemirror/addon/keymap/sublime.js b/src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/keymap/sublime.js
rename to src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js
diff --git a/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/css-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/css-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/html-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/html-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/javascript-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/javascript-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/json-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/json-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/lint.css b/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/lint.css
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css
diff --git a/client/javascript/externs/codemirror/addon/lint/lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js
diff --git a/client/javascript/externs/codemirror/addon/lint/yaml-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/lint/yaml-lint.js
rename to src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js
diff --git a/client/javascript/externs/codemirror/addon/merge/merge.css b/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/merge/merge.css
rename to src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css
diff --git a/client/javascript/externs/codemirror/addon/merge/merge.js b/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/merge/merge.js
rename to src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js
diff --git a/client/javascript/externs/codemirror/addon/mode/loadmode.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/loadmode.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js
diff --git a/client/javascript/externs/codemirror/addon/mode/multiplex.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/multiplex.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js
diff --git a/client/javascript/externs/codemirror/addon/mode/multiplex_test.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/multiplex_test.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js
diff --git a/client/javascript/externs/codemirror/addon/mode/overlay.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/overlay.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js
diff --git a/client/javascript/externs/codemirror/addon/mode/simple.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/mode/simple.js
rename to src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/colorize.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/colorize.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/runmode.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js
diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode.node.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/runmode/runmode.node.js
rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js
diff --git a/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js
diff --git a/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/scrollpastend.js
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js
diff --git a/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css b/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css
diff --git a/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js
rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js
diff --git a/client/javascript/externs/codemirror/addon/search/jump-to-line.js b/src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/jump-to-line.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js
diff --git a/client/javascript/externs/codemirror/addon/search/match-highlighter.js b/src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/match-highlighter.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js
diff --git a/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css b/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css
rename to src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css
diff --git a/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js b/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js
diff --git a/client/javascript/externs/codemirror/addon/search/search.js b/src/vitis/client/javascript/externs/codemirror/addon/search/search.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/search.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/search.js
diff --git a/client/javascript/externs/codemirror/addon/search/searchcursor.js b/src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/search/searchcursor.js
rename to src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js
diff --git a/client/javascript/externs/codemirror/addon/selection/active-line.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/selection/active-line.js
rename to src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js
diff --git a/client/javascript/externs/codemirror/addon/selection/mark-selection.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/selection/mark-selection.js
rename to src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js
diff --git a/client/javascript/externs/codemirror/addon/selection/selection-pointer.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/selection/selection-pointer.js
rename to src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js
diff --git a/client/javascript/externs/codemirror/addon/tern/tern.css b/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css
similarity index 100%
rename from client/javascript/externs/codemirror/addon/tern/tern.css
rename to src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css
diff --git a/client/javascript/externs/codemirror/addon/tern/tern.js b/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/tern/tern.js
rename to src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js
diff --git a/client/javascript/externs/codemirror/addon/tern/worker.js b/src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/tern/worker.js
rename to src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js
diff --git a/client/javascript/externs/codemirror/addon/wrap/hardwrap.js b/src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js
similarity index 100%
rename from client/javascript/externs/codemirror/addon/wrap/hardwrap.js
rename to src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js
diff --git a/client/javascript/externs/codemirror/clike.js b/src/vitis/client/javascript/externs/codemirror/clike.js
similarity index 100%
rename from client/javascript/externs/codemirror/clike.js
rename to src/vitis/client/javascript/externs/codemirror/clike.js
diff --git a/client/javascript/externs/codemirror/codemirror.js b/src/vitis/client/javascript/externs/codemirror/codemirror.js
similarity index 100%
rename from client/javascript/externs/codemirror/codemirror.js
rename to src/vitis/client/javascript/externs/codemirror/codemirror.js
diff --git a/client/javascript/externs/codemirror/codemirror.min.js b/src/vitis/client/javascript/externs/codemirror/codemirror.min.js
similarity index 100%
rename from client/javascript/externs/codemirror/codemirror.min.js
rename to src/vitis/client/javascript/externs/codemirror/codemirror.min.js
diff --git a/client/javascript/externs/codemirror/css.js b/src/vitis/client/javascript/externs/codemirror/css.js
similarity index 100%
rename from client/javascript/externs/codemirror/css.js
rename to src/vitis/client/javascript/externs/codemirror/css.js
diff --git a/client/javascript/externs/codemirror/htmlmixed.js b/src/vitis/client/javascript/externs/codemirror/htmlmixed.js
similarity index 100%
rename from client/javascript/externs/codemirror/htmlmixed.js
rename to src/vitis/client/javascript/externs/codemirror/htmlmixed.js
diff --git a/client/javascript/externs/codemirror/javascript.js b/src/vitis/client/javascript/externs/codemirror/javascript.js
similarity index 100%
rename from client/javascript/externs/codemirror/javascript.js
rename to src/vitis/client/javascript/externs/codemirror/javascript.js
diff --git a/client/javascript/externs/codemirror/map.js b/src/vitis/client/javascript/externs/codemirror/map.js
similarity index 100%
rename from client/javascript/externs/codemirror/map.js
rename to src/vitis/client/javascript/externs/codemirror/map.js
diff --git a/client/javascript/externs/codemirror/php.js b/src/vitis/client/javascript/externs/codemirror/php.js
similarity index 100%
rename from client/javascript/externs/codemirror/php.js
rename to src/vitis/client/javascript/externs/codemirror/php.js
diff --git a/client/javascript/externs/codemirror/show-hint.js b/src/vitis/client/javascript/externs/codemirror/show-hint.js
similarity index 100%
rename from client/javascript/externs/codemirror/show-hint.js
rename to src/vitis/client/javascript/externs/codemirror/show-hint.js
diff --git a/client/javascript/externs/codemirror/sql.js b/src/vitis/client/javascript/externs/codemirror/sql.js
similarity index 100%
rename from client/javascript/externs/codemirror/sql.js
rename to src/vitis/client/javascript/externs/codemirror/sql.js
diff --git a/client/javascript/externs/codemirror/xml.js b/src/vitis/client/javascript/externs/codemirror/xml.js
similarity index 100%
rename from client/javascript/externs/codemirror/xml.js
rename to src/vitis/client/javascript/externs/codemirror/xml.js
diff --git a/client/javascript/externs/formReader/component/component.js b/src/vitis/client/javascript/externs/formReader/component/component.js
similarity index 100%
rename from client/javascript/externs/formReader/component/component.js
rename to src/vitis/client/javascript/externs/formReader/component/component.js
diff --git a/client/javascript/externs/formReader/component/map.js b/src/vitis/client/javascript/externs/formReader/component/map.js
similarity index 100%
rename from client/javascript/externs/formReader/component/map.js
rename to src/vitis/client/javascript/externs/formReader/component/map.js
diff --git a/client/javascript/externs/formReader/component/map_workbench/map_workbench.html b/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html
similarity index 100%
rename from client/javascript/externs/formReader/component/map_workbench/map_workbench.html
rename to src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html
diff --git a/client/javascript/externs/formReader/component/map_workbench/map_workbench.js b/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js
similarity index 100%
rename from client/javascript/externs/formReader/component/map_workbench/map_workbench.js
rename to src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js
diff --git a/client/javascript/externs/formReader/formReader.html b/src/vitis/client/javascript/externs/formReader/formReader.html
similarity index 100%
rename from client/javascript/externs/formReader/formReader.html
rename to src/vitis/client/javascript/externs/formReader/formReader.html
diff --git a/client/javascript/externs/formReader/formReader.js b/src/vitis/client/javascript/externs/formReader/formReader.js
similarity index 100%
rename from client/javascript/externs/formReader/formReader.js
rename to src/vitis/client/javascript/externs/formReader/formReader.js
diff --git a/client/javascript/externs/formReader/formReaderCtrl.js b/src/vitis/client/javascript/externs/formReader/formReaderCtrl.js
similarity index 100%
rename from client/javascript/externs/formReader/formReaderCtrl.js
rename to src/vitis/client/javascript/externs/formReader/formReaderCtrl.js
diff --git a/client/javascript/externs/formReader/formReaderDrtv.js b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
similarity index 100%
rename from client/javascript/externs/formReader/formReaderDrtv.js
rename to src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
diff --git a/client/javascript/externs/formReader/formReaderSrvc.js b/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js
similarity index 100%
rename from client/javascript/externs/formReader/formReaderSrvc.js
rename to src/vitis/client/javascript/externs/formReader/formReaderSrvc.js
diff --git a/client/javascript/externs/jquery/LICENSE.txt b/src/vitis/client/javascript/externs/jquery/LICENSE.txt
similarity index 100%
rename from client/javascript/externs/jquery/LICENSE.txt
rename to src/vitis/client/javascript/externs/jquery/LICENSE.txt
diff --git a/client/javascript/externs/jquery/jquery-1.11.3.js b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js
similarity index 100%
rename from client/javascript/externs/jquery/jquery-1.11.3.js
rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js
diff --git a/client/javascript/externs/jquery/jquery-1.11.3.min.js b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js
similarity index 100%
rename from client/javascript/externs/jquery/jquery-1.11.3.min.js
rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js
diff --git a/client/javascript/externs/jquery/jquery-1.11.3.min.map b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map
similarity index 100%
rename from client/javascript/externs/jquery/jquery-1.11.3.min.map
rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map
diff --git a/client/javascript/externs/jquery/plugins/bootbox/bootbox.js b/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootbox/bootbox.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js
diff --git a/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js
diff --git a/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js
diff --git a/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js b/src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js
diff --git a/client/javascript/externs/jquery/plugins/notify/notify.js b/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/notify/notify.js
rename to src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js
diff --git a/client/javascript/externs/jquery/plugins/notify/notify.min.js b/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js
similarity index 100%
rename from client/javascript/externs/jquery/plugins/notify/notify.min.js
rename to src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js
diff --git a/client/javascript/externs/less/LICENSE b/src/vitis/client/javascript/externs/less/LICENSE
similarity index 100%
rename from client/javascript/externs/less/LICENSE
rename to src/vitis/client/javascript/externs/less/LICENSE
diff --git a/client/javascript/externs/less/less.min.js b/src/vitis/client/javascript/externs/less/less.min.js
similarity index 100%
rename from client/javascript/externs/less/less.min.js
rename to src/vitis/client/javascript/externs/less/less.min.js
diff --git a/client/javascript/externs/letter-avatar/ngletteravatar.js b/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js
similarity index 100%
rename from client/javascript/externs/letter-avatar/ngletteravatar.js
rename to src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js
diff --git a/client/javascript/externs/letter-avatar/ngletteravatar.min.js b/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js
similarity index 100%
rename from client/javascript/externs/letter-avatar/ngletteravatar.min.js
rename to src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js
diff --git a/client/javascript/externs/mapJSON/MapJSON.js b/src/vitis/client/javascript/externs/mapJSON/MapJSON.js
similarity index 100%
rename from client/javascript/externs/mapJSON/MapJSON.js
rename to src/vitis/client/javascript/externs/mapJSON/MapJSON.js
diff --git a/client/javascript/externs/materialize/materialize.js b/src/vitis/client/javascript/externs/materialize/materialize.js
similarity index 100%
rename from client/javascript/externs/materialize/materialize.js
rename to src/vitis/client/javascript/externs/materialize/materialize.js
diff --git a/client/javascript/externs/materialize/materialize.min.js b/src/vitis/client/javascript/externs/materialize/materialize.min.js
similarity index 100%
rename from client/javascript/externs/materialize/materialize.min.js
rename to src/vitis/client/javascript/externs/materialize/materialize.min.js
diff --git a/client/javascript/externs/mobile-detect/LICENSE b/src/vitis/client/javascript/externs/mobile-detect/LICENSE
similarity index 100%
rename from client/javascript/externs/mobile-detect/LICENSE
rename to src/vitis/client/javascript/externs/mobile-detect/LICENSE
diff --git a/client/javascript/externs/mobile-detect/mobile-detect.js b/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js
similarity index 100%
rename from client/javascript/externs/mobile-detect/mobile-detect.js
rename to src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js
diff --git a/client/javascript/externs/mobile-detect/mobile-detect.min.js b/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js
similarity index 100%
rename from client/javascript/externs/mobile-detect/mobile-detect.min.js
rename to src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js
diff --git a/client/javascript/externs/moment/LICENSE b/src/vitis/client/javascript/externs/moment/LICENSE
similarity index 100%
rename from client/javascript/externs/moment/LICENSE
rename to src/vitis/client/javascript/externs/moment/LICENSE
diff --git a/client/javascript/externs/moment/locale/af.js b/src/vitis/client/javascript/externs/moment/locale/af.js
similarity index 100%
rename from client/javascript/externs/moment/locale/af.js
rename to src/vitis/client/javascript/externs/moment/locale/af.js
diff --git a/client/javascript/externs/moment/locale/ar-ma.js b/src/vitis/client/javascript/externs/moment/locale/ar-ma.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar-ma.js
rename to src/vitis/client/javascript/externs/moment/locale/ar-ma.js
diff --git a/client/javascript/externs/moment/locale/ar-sa.js b/src/vitis/client/javascript/externs/moment/locale/ar-sa.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar-sa.js
rename to src/vitis/client/javascript/externs/moment/locale/ar-sa.js
diff --git a/client/javascript/externs/moment/locale/ar-tn.js b/src/vitis/client/javascript/externs/moment/locale/ar-tn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar-tn.js
rename to src/vitis/client/javascript/externs/moment/locale/ar-tn.js
diff --git a/client/javascript/externs/moment/locale/ar.js b/src/vitis/client/javascript/externs/moment/locale/ar.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ar.js
rename to src/vitis/client/javascript/externs/moment/locale/ar.js
diff --git a/client/javascript/externs/moment/locale/az.js b/src/vitis/client/javascript/externs/moment/locale/az.js
similarity index 100%
rename from client/javascript/externs/moment/locale/az.js
rename to src/vitis/client/javascript/externs/moment/locale/az.js
diff --git a/client/javascript/externs/moment/locale/be.js b/src/vitis/client/javascript/externs/moment/locale/be.js
similarity index 100%
rename from client/javascript/externs/moment/locale/be.js
rename to src/vitis/client/javascript/externs/moment/locale/be.js
diff --git a/client/javascript/externs/moment/locale/bg.js b/src/vitis/client/javascript/externs/moment/locale/bg.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bg.js
rename to src/vitis/client/javascript/externs/moment/locale/bg.js
diff --git a/client/javascript/externs/moment/locale/bn.js b/src/vitis/client/javascript/externs/moment/locale/bn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bn.js
rename to src/vitis/client/javascript/externs/moment/locale/bn.js
diff --git a/client/javascript/externs/moment/locale/bo.js b/src/vitis/client/javascript/externs/moment/locale/bo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bo.js
rename to src/vitis/client/javascript/externs/moment/locale/bo.js
diff --git a/client/javascript/externs/moment/locale/br.js b/src/vitis/client/javascript/externs/moment/locale/br.js
similarity index 100%
rename from client/javascript/externs/moment/locale/br.js
rename to src/vitis/client/javascript/externs/moment/locale/br.js
diff --git a/client/javascript/externs/moment/locale/bs.js b/src/vitis/client/javascript/externs/moment/locale/bs.js
similarity index 100%
rename from client/javascript/externs/moment/locale/bs.js
rename to src/vitis/client/javascript/externs/moment/locale/bs.js
diff --git a/client/javascript/externs/moment/locale/ca.js b/src/vitis/client/javascript/externs/moment/locale/ca.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ca.js
rename to src/vitis/client/javascript/externs/moment/locale/ca.js
diff --git a/client/javascript/externs/moment/locale/cs.js b/src/vitis/client/javascript/externs/moment/locale/cs.js
similarity index 100%
rename from client/javascript/externs/moment/locale/cs.js
rename to src/vitis/client/javascript/externs/moment/locale/cs.js
diff --git a/client/javascript/externs/moment/locale/cv.js b/src/vitis/client/javascript/externs/moment/locale/cv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/cv.js
rename to src/vitis/client/javascript/externs/moment/locale/cv.js
diff --git a/client/javascript/externs/moment/locale/cy.js b/src/vitis/client/javascript/externs/moment/locale/cy.js
similarity index 100%
rename from client/javascript/externs/moment/locale/cy.js
rename to src/vitis/client/javascript/externs/moment/locale/cy.js
diff --git a/client/javascript/externs/moment/locale/da.js b/src/vitis/client/javascript/externs/moment/locale/da.js
similarity index 100%
rename from client/javascript/externs/moment/locale/da.js
rename to src/vitis/client/javascript/externs/moment/locale/da.js
diff --git a/client/javascript/externs/moment/locale/de-at.js b/src/vitis/client/javascript/externs/moment/locale/de-at.js
similarity index 100%
rename from client/javascript/externs/moment/locale/de-at.js
rename to src/vitis/client/javascript/externs/moment/locale/de-at.js
diff --git a/client/javascript/externs/moment/locale/de.js b/src/vitis/client/javascript/externs/moment/locale/de.js
similarity index 100%
rename from client/javascript/externs/moment/locale/de.js
rename to src/vitis/client/javascript/externs/moment/locale/de.js
diff --git a/client/javascript/externs/moment/locale/dv.js b/src/vitis/client/javascript/externs/moment/locale/dv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/dv.js
rename to src/vitis/client/javascript/externs/moment/locale/dv.js
diff --git a/client/javascript/externs/moment/locale/el.js b/src/vitis/client/javascript/externs/moment/locale/el.js
similarity index 100%
rename from client/javascript/externs/moment/locale/el.js
rename to src/vitis/client/javascript/externs/moment/locale/el.js
diff --git a/client/javascript/externs/moment/locale/en-au.js b/src/vitis/client/javascript/externs/moment/locale/en-au.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-au.js
rename to src/vitis/client/javascript/externs/moment/locale/en-au.js
diff --git a/client/javascript/externs/moment/locale/en-ca.js b/src/vitis/client/javascript/externs/moment/locale/en-ca.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-ca.js
rename to src/vitis/client/javascript/externs/moment/locale/en-ca.js
diff --git a/client/javascript/externs/moment/locale/en-gb.js b/src/vitis/client/javascript/externs/moment/locale/en-gb.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-gb.js
rename to src/vitis/client/javascript/externs/moment/locale/en-gb.js
diff --git a/client/javascript/externs/moment/locale/en-ie.js b/src/vitis/client/javascript/externs/moment/locale/en-ie.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-ie.js
rename to src/vitis/client/javascript/externs/moment/locale/en-ie.js
diff --git a/client/javascript/externs/moment/locale/en-nz.js b/src/vitis/client/javascript/externs/moment/locale/en-nz.js
similarity index 100%
rename from client/javascript/externs/moment/locale/en-nz.js
rename to src/vitis/client/javascript/externs/moment/locale/en-nz.js
diff --git a/client/javascript/externs/moment/locale/eo.js b/src/vitis/client/javascript/externs/moment/locale/eo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/eo.js
rename to src/vitis/client/javascript/externs/moment/locale/eo.js
diff --git a/client/javascript/externs/moment/locale/es.js b/src/vitis/client/javascript/externs/moment/locale/es.js
similarity index 100%
rename from client/javascript/externs/moment/locale/es.js
rename to src/vitis/client/javascript/externs/moment/locale/es.js
diff --git a/client/javascript/externs/moment/locale/et.js b/src/vitis/client/javascript/externs/moment/locale/et.js
similarity index 100%
rename from client/javascript/externs/moment/locale/et.js
rename to src/vitis/client/javascript/externs/moment/locale/et.js
diff --git a/client/javascript/externs/moment/locale/eu.js b/src/vitis/client/javascript/externs/moment/locale/eu.js
similarity index 100%
rename from client/javascript/externs/moment/locale/eu.js
rename to src/vitis/client/javascript/externs/moment/locale/eu.js
diff --git a/client/javascript/externs/moment/locale/fa.js b/src/vitis/client/javascript/externs/moment/locale/fa.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fa.js
rename to src/vitis/client/javascript/externs/moment/locale/fa.js
diff --git a/client/javascript/externs/moment/locale/fi.js b/src/vitis/client/javascript/externs/moment/locale/fi.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fi.js
rename to src/vitis/client/javascript/externs/moment/locale/fi.js
diff --git a/client/javascript/externs/moment/locale/fo.js b/src/vitis/client/javascript/externs/moment/locale/fo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fo.js
rename to src/vitis/client/javascript/externs/moment/locale/fo.js
diff --git a/client/javascript/externs/moment/locale/fr-ca.js b/src/vitis/client/javascript/externs/moment/locale/fr-ca.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fr-ca.js
rename to src/vitis/client/javascript/externs/moment/locale/fr-ca.js
diff --git a/client/javascript/externs/moment/locale/fr-ch.js b/src/vitis/client/javascript/externs/moment/locale/fr-ch.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fr-ch.js
rename to src/vitis/client/javascript/externs/moment/locale/fr-ch.js
diff --git a/client/javascript/externs/moment/locale/fr.js b/src/vitis/client/javascript/externs/moment/locale/fr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fr.js
rename to src/vitis/client/javascript/externs/moment/locale/fr.js
diff --git a/client/javascript/externs/moment/locale/fy.js b/src/vitis/client/javascript/externs/moment/locale/fy.js
similarity index 100%
rename from client/javascript/externs/moment/locale/fy.js
rename to src/vitis/client/javascript/externs/moment/locale/fy.js
diff --git a/client/javascript/externs/moment/locale/gd.js b/src/vitis/client/javascript/externs/moment/locale/gd.js
similarity index 100%
rename from client/javascript/externs/moment/locale/gd.js
rename to src/vitis/client/javascript/externs/moment/locale/gd.js
diff --git a/client/javascript/externs/moment/locale/gl.js b/src/vitis/client/javascript/externs/moment/locale/gl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/gl.js
rename to src/vitis/client/javascript/externs/moment/locale/gl.js
diff --git a/client/javascript/externs/moment/locale/he.js b/src/vitis/client/javascript/externs/moment/locale/he.js
similarity index 100%
rename from client/javascript/externs/moment/locale/he.js
rename to src/vitis/client/javascript/externs/moment/locale/he.js
diff --git a/client/javascript/externs/moment/locale/hi.js b/src/vitis/client/javascript/externs/moment/locale/hi.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hi.js
rename to src/vitis/client/javascript/externs/moment/locale/hi.js
diff --git a/client/javascript/externs/moment/locale/hr.js b/src/vitis/client/javascript/externs/moment/locale/hr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hr.js
rename to src/vitis/client/javascript/externs/moment/locale/hr.js
diff --git a/client/javascript/externs/moment/locale/hu.js b/src/vitis/client/javascript/externs/moment/locale/hu.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hu.js
rename to src/vitis/client/javascript/externs/moment/locale/hu.js
diff --git a/client/javascript/externs/moment/locale/hy-am.js b/src/vitis/client/javascript/externs/moment/locale/hy-am.js
similarity index 100%
rename from client/javascript/externs/moment/locale/hy-am.js
rename to src/vitis/client/javascript/externs/moment/locale/hy-am.js
diff --git a/client/javascript/externs/moment/locale/id.js b/src/vitis/client/javascript/externs/moment/locale/id.js
similarity index 100%
rename from client/javascript/externs/moment/locale/id.js
rename to src/vitis/client/javascript/externs/moment/locale/id.js
diff --git a/client/javascript/externs/moment/locale/is.js b/src/vitis/client/javascript/externs/moment/locale/is.js
similarity index 100%
rename from client/javascript/externs/moment/locale/is.js
rename to src/vitis/client/javascript/externs/moment/locale/is.js
diff --git a/client/javascript/externs/moment/locale/it.js b/src/vitis/client/javascript/externs/moment/locale/it.js
similarity index 100%
rename from client/javascript/externs/moment/locale/it.js
rename to src/vitis/client/javascript/externs/moment/locale/it.js
diff --git a/client/javascript/externs/moment/locale/ja.js b/src/vitis/client/javascript/externs/moment/locale/ja.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ja.js
rename to src/vitis/client/javascript/externs/moment/locale/ja.js
diff --git a/client/javascript/externs/moment/locale/jv.js b/src/vitis/client/javascript/externs/moment/locale/jv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/jv.js
rename to src/vitis/client/javascript/externs/moment/locale/jv.js
diff --git a/client/javascript/externs/moment/locale/ka.js b/src/vitis/client/javascript/externs/moment/locale/ka.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ka.js
rename to src/vitis/client/javascript/externs/moment/locale/ka.js
diff --git a/client/javascript/externs/moment/locale/kk.js b/src/vitis/client/javascript/externs/moment/locale/kk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/kk.js
rename to src/vitis/client/javascript/externs/moment/locale/kk.js
diff --git a/client/javascript/externs/moment/locale/km.js b/src/vitis/client/javascript/externs/moment/locale/km.js
similarity index 100%
rename from client/javascript/externs/moment/locale/km.js
rename to src/vitis/client/javascript/externs/moment/locale/km.js
diff --git a/client/javascript/externs/moment/locale/ko.js b/src/vitis/client/javascript/externs/moment/locale/ko.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ko.js
rename to src/vitis/client/javascript/externs/moment/locale/ko.js
diff --git a/client/javascript/externs/moment/locale/lb.js b/src/vitis/client/javascript/externs/moment/locale/lb.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lb.js
rename to src/vitis/client/javascript/externs/moment/locale/lb.js
diff --git a/client/javascript/externs/moment/locale/lo.js b/src/vitis/client/javascript/externs/moment/locale/lo.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lo.js
rename to src/vitis/client/javascript/externs/moment/locale/lo.js
diff --git a/client/javascript/externs/moment/locale/lt.js b/src/vitis/client/javascript/externs/moment/locale/lt.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lt.js
rename to src/vitis/client/javascript/externs/moment/locale/lt.js
diff --git a/client/javascript/externs/moment/locale/lv.js b/src/vitis/client/javascript/externs/moment/locale/lv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/lv.js
rename to src/vitis/client/javascript/externs/moment/locale/lv.js
diff --git a/client/javascript/externs/moment/locale/me.js b/src/vitis/client/javascript/externs/moment/locale/me.js
similarity index 100%
rename from client/javascript/externs/moment/locale/me.js
rename to src/vitis/client/javascript/externs/moment/locale/me.js
diff --git a/client/javascript/externs/moment/locale/mk.js b/src/vitis/client/javascript/externs/moment/locale/mk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/mk.js
rename to src/vitis/client/javascript/externs/moment/locale/mk.js
diff --git a/client/javascript/externs/moment/locale/ml.js b/src/vitis/client/javascript/externs/moment/locale/ml.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ml.js
rename to src/vitis/client/javascript/externs/moment/locale/ml.js
diff --git a/client/javascript/externs/moment/locale/mr.js b/src/vitis/client/javascript/externs/moment/locale/mr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/mr.js
rename to src/vitis/client/javascript/externs/moment/locale/mr.js
diff --git a/client/javascript/externs/moment/locale/ms-my.js b/src/vitis/client/javascript/externs/moment/locale/ms-my.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ms-my.js
rename to src/vitis/client/javascript/externs/moment/locale/ms-my.js
diff --git a/client/javascript/externs/moment/locale/ms.js b/src/vitis/client/javascript/externs/moment/locale/ms.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ms.js
rename to src/vitis/client/javascript/externs/moment/locale/ms.js
diff --git a/client/javascript/externs/moment/locale/my.js b/src/vitis/client/javascript/externs/moment/locale/my.js
similarity index 100%
rename from client/javascript/externs/moment/locale/my.js
rename to src/vitis/client/javascript/externs/moment/locale/my.js
diff --git a/client/javascript/externs/moment/locale/nb.js b/src/vitis/client/javascript/externs/moment/locale/nb.js
similarity index 100%
rename from client/javascript/externs/moment/locale/nb.js
rename to src/vitis/client/javascript/externs/moment/locale/nb.js
diff --git a/client/javascript/externs/moment/locale/ne.js b/src/vitis/client/javascript/externs/moment/locale/ne.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ne.js
rename to src/vitis/client/javascript/externs/moment/locale/ne.js
diff --git a/client/javascript/externs/moment/locale/nl.js b/src/vitis/client/javascript/externs/moment/locale/nl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/nl.js
rename to src/vitis/client/javascript/externs/moment/locale/nl.js
diff --git a/client/javascript/externs/moment/locale/nn.js b/src/vitis/client/javascript/externs/moment/locale/nn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/nn.js
rename to src/vitis/client/javascript/externs/moment/locale/nn.js
diff --git a/client/javascript/externs/moment/locale/pl.js b/src/vitis/client/javascript/externs/moment/locale/pl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/pl.js
rename to src/vitis/client/javascript/externs/moment/locale/pl.js
diff --git a/client/javascript/externs/moment/locale/pt-br.js b/src/vitis/client/javascript/externs/moment/locale/pt-br.js
similarity index 100%
rename from client/javascript/externs/moment/locale/pt-br.js
rename to src/vitis/client/javascript/externs/moment/locale/pt-br.js
diff --git a/client/javascript/externs/moment/locale/pt.js b/src/vitis/client/javascript/externs/moment/locale/pt.js
similarity index 100%
rename from client/javascript/externs/moment/locale/pt.js
rename to src/vitis/client/javascript/externs/moment/locale/pt.js
diff --git a/client/javascript/externs/moment/locale/ro.js b/src/vitis/client/javascript/externs/moment/locale/ro.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ro.js
rename to src/vitis/client/javascript/externs/moment/locale/ro.js
diff --git a/client/javascript/externs/moment/locale/ru.js b/src/vitis/client/javascript/externs/moment/locale/ru.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ru.js
rename to src/vitis/client/javascript/externs/moment/locale/ru.js
diff --git a/client/javascript/externs/moment/locale/se.js b/src/vitis/client/javascript/externs/moment/locale/se.js
similarity index 100%
rename from client/javascript/externs/moment/locale/se.js
rename to src/vitis/client/javascript/externs/moment/locale/se.js
diff --git a/client/javascript/externs/moment/locale/si.js b/src/vitis/client/javascript/externs/moment/locale/si.js
similarity index 100%
rename from client/javascript/externs/moment/locale/si.js
rename to src/vitis/client/javascript/externs/moment/locale/si.js
diff --git a/client/javascript/externs/moment/locale/sk.js b/src/vitis/client/javascript/externs/moment/locale/sk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sk.js
rename to src/vitis/client/javascript/externs/moment/locale/sk.js
diff --git a/client/javascript/externs/moment/locale/sl.js b/src/vitis/client/javascript/externs/moment/locale/sl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sl.js
rename to src/vitis/client/javascript/externs/moment/locale/sl.js
diff --git a/client/javascript/externs/moment/locale/sq.js b/src/vitis/client/javascript/externs/moment/locale/sq.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sq.js
rename to src/vitis/client/javascript/externs/moment/locale/sq.js
diff --git a/client/javascript/externs/moment/locale/sr-cyrl.js b/src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sr-cyrl.js
rename to src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js
diff --git a/client/javascript/externs/moment/locale/sr.js b/src/vitis/client/javascript/externs/moment/locale/sr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sr.js
rename to src/vitis/client/javascript/externs/moment/locale/sr.js
diff --git a/client/javascript/externs/moment/locale/sv.js b/src/vitis/client/javascript/externs/moment/locale/sv.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sv.js
rename to src/vitis/client/javascript/externs/moment/locale/sv.js
diff --git a/client/javascript/externs/moment/locale/sw.js b/src/vitis/client/javascript/externs/moment/locale/sw.js
similarity index 100%
rename from client/javascript/externs/moment/locale/sw.js
rename to src/vitis/client/javascript/externs/moment/locale/sw.js
diff --git a/client/javascript/externs/moment/locale/ta.js b/src/vitis/client/javascript/externs/moment/locale/ta.js
similarity index 100%
rename from client/javascript/externs/moment/locale/ta.js
rename to src/vitis/client/javascript/externs/moment/locale/ta.js
diff --git a/client/javascript/externs/moment/locale/te.js b/src/vitis/client/javascript/externs/moment/locale/te.js
similarity index 100%
rename from client/javascript/externs/moment/locale/te.js
rename to src/vitis/client/javascript/externs/moment/locale/te.js
diff --git a/client/javascript/externs/moment/locale/th.js b/src/vitis/client/javascript/externs/moment/locale/th.js
similarity index 100%
rename from client/javascript/externs/moment/locale/th.js
rename to src/vitis/client/javascript/externs/moment/locale/th.js
diff --git a/client/javascript/externs/moment/locale/tl-ph.js b/src/vitis/client/javascript/externs/moment/locale/tl-ph.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tl-ph.js
rename to src/vitis/client/javascript/externs/moment/locale/tl-ph.js
diff --git a/client/javascript/externs/moment/locale/tlh.js b/src/vitis/client/javascript/externs/moment/locale/tlh.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tlh.js
rename to src/vitis/client/javascript/externs/moment/locale/tlh.js
diff --git a/client/javascript/externs/moment/locale/tr.js b/src/vitis/client/javascript/externs/moment/locale/tr.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tr.js
rename to src/vitis/client/javascript/externs/moment/locale/tr.js
diff --git a/client/javascript/externs/moment/locale/tzl.js b/src/vitis/client/javascript/externs/moment/locale/tzl.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tzl.js
rename to src/vitis/client/javascript/externs/moment/locale/tzl.js
diff --git a/client/javascript/externs/moment/locale/tzm-latn.js b/src/vitis/client/javascript/externs/moment/locale/tzm-latn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tzm-latn.js
rename to src/vitis/client/javascript/externs/moment/locale/tzm-latn.js
diff --git a/client/javascript/externs/moment/locale/tzm.js b/src/vitis/client/javascript/externs/moment/locale/tzm.js
similarity index 100%
rename from client/javascript/externs/moment/locale/tzm.js
rename to src/vitis/client/javascript/externs/moment/locale/tzm.js
diff --git a/client/javascript/externs/moment/locale/uk.js b/src/vitis/client/javascript/externs/moment/locale/uk.js
similarity index 100%
rename from client/javascript/externs/moment/locale/uk.js
rename to src/vitis/client/javascript/externs/moment/locale/uk.js
diff --git a/client/javascript/externs/moment/locale/uz.js b/src/vitis/client/javascript/externs/moment/locale/uz.js
similarity index 100%
rename from client/javascript/externs/moment/locale/uz.js
rename to src/vitis/client/javascript/externs/moment/locale/uz.js
diff --git a/client/javascript/externs/moment/locale/vi.js b/src/vitis/client/javascript/externs/moment/locale/vi.js
similarity index 100%
rename from client/javascript/externs/moment/locale/vi.js
rename to src/vitis/client/javascript/externs/moment/locale/vi.js
diff --git a/client/javascript/externs/moment/locale/zh-cn.js b/src/vitis/client/javascript/externs/moment/locale/zh-cn.js
similarity index 100%
rename from client/javascript/externs/moment/locale/zh-cn.js
rename to src/vitis/client/javascript/externs/moment/locale/zh-cn.js
diff --git a/client/javascript/externs/moment/locale/zh-tw.js b/src/vitis/client/javascript/externs/moment/locale/zh-tw.js
similarity index 100%
rename from client/javascript/externs/moment/locale/zh-tw.js
rename to src/vitis/client/javascript/externs/moment/locale/zh-tw.js
diff --git a/client/javascript/externs/moment/min/locales.js b/src/vitis/client/javascript/externs/moment/min/locales.js
similarity index 100%
rename from client/javascript/externs/moment/min/locales.js
rename to src/vitis/client/javascript/externs/moment/min/locales.js
diff --git a/client/javascript/externs/moment/min/locales.min.js b/src/vitis/client/javascript/externs/moment/min/locales.min.js
similarity index 100%
rename from client/javascript/externs/moment/min/locales.min.js
rename to src/vitis/client/javascript/externs/moment/min/locales.min.js
diff --git a/client/javascript/externs/moment/min/moment-with-locales.js b/src/vitis/client/javascript/externs/moment/min/moment-with-locales.js
similarity index 100%
rename from client/javascript/externs/moment/min/moment-with-locales.js
rename to src/vitis/client/javascript/externs/moment/min/moment-with-locales.js
diff --git a/client/javascript/externs/moment/min/moment-with-locales.min.js b/src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js
similarity index 100%
rename from client/javascript/externs/moment/min/moment-with-locales.min.js
rename to src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js
diff --git a/client/javascript/externs/moment/min/moment.min.js b/src/vitis/client/javascript/externs/moment/min/moment.min.js
similarity index 100%
rename from client/javascript/externs/moment/min/moment.min.js
rename to src/vitis/client/javascript/externs/moment/min/moment.min.js
diff --git a/client/javascript/externs/moment/min/tests.js b/src/vitis/client/javascript/externs/moment/min/tests.js
similarity index 100%
rename from client/javascript/externs/moment/min/tests.js
rename to src/vitis/client/javascript/externs/moment/min/tests.js
diff --git a/client/javascript/externs/moment/moment.min.js b/src/vitis/client/javascript/externs/moment/moment.min.js
similarity index 100%
rename from client/javascript/externs/moment/moment.min.js
rename to src/vitis/client/javascript/externs/moment/moment.min.js
diff --git a/client/javascript/externs/moment/src/lib/create/check-overflow.js b/src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/check-overflow.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js
diff --git a/client/javascript/externs/moment/src/lib/create/date-from-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/date-from-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-anything.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-anything.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-object.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-object.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-string-and-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-string-and-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-string-and-format.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-string-and-format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js
diff --git a/client/javascript/externs/moment/src/lib/create/from-string.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/from-string.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js
diff --git a/client/javascript/externs/moment/src/lib/create/local.js b/src/vitis/client/javascript/externs/moment/src/lib/create/local.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/local.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/local.js
diff --git a/client/javascript/externs/moment/src/lib/create/parsing-flags.js b/src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/parsing-flags.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js
diff --git a/client/javascript/externs/moment/src/lib/create/utc.js b/src/vitis/client/javascript/externs/moment/src/lib/create/utc.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/utc.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/utc.js
diff --git a/client/javascript/externs/moment/src/lib/create/valid.js b/src/vitis/client/javascript/externs/moment/src/lib/create/valid.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/create/valid.js
rename to src/vitis/client/javascript/externs/moment/src/lib/create/valid.js
diff --git a/client/javascript/externs/moment/src/lib/duration/abs.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/abs.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js
diff --git a/client/javascript/externs/moment/src/lib/duration/add-subtract.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/add-subtract.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js
diff --git a/client/javascript/externs/moment/src/lib/duration/as.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/as.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/as.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/as.js
diff --git a/client/javascript/externs/moment/src/lib/duration/bubble.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/bubble.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js
diff --git a/client/javascript/externs/moment/src/lib/duration/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/constructor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js
diff --git a/client/javascript/externs/moment/src/lib/duration/create.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/create.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/create.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/create.js
diff --git a/client/javascript/externs/moment/src/lib/duration/duration.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/duration.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js
diff --git a/client/javascript/externs/moment/src/lib/duration/get.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/get.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/get.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/get.js
diff --git a/client/javascript/externs/moment/src/lib/duration/humanize.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/humanize.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js
diff --git a/client/javascript/externs/moment/src/lib/duration/iso-string.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/iso-string.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js
diff --git a/client/javascript/externs/moment/src/lib/duration/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/duration/prototype.js
rename to src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js
diff --git a/client/javascript/externs/moment/src/lib/format/format.js b/src/vitis/client/javascript/externs/moment/src/lib/format/format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/format/format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/format/format.js
diff --git a/client/javascript/externs/moment/src/lib/locale/calendar.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/calendar.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js
diff --git a/client/javascript/externs/moment/src/lib/locale/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/constructor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js
diff --git a/client/javascript/externs/moment/src/lib/locale/en.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/en.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/en.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/en.js
diff --git a/client/javascript/externs/moment/src/lib/locale/formats.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/formats.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js
diff --git a/client/javascript/externs/moment/src/lib/locale/invalid.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/invalid.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js
diff --git a/client/javascript/externs/moment/src/lib/locale/lists.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/lists.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js
diff --git a/client/javascript/externs/moment/src/lib/locale/locale.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/locale.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js
diff --git a/client/javascript/externs/moment/src/lib/locale/locales.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/locales.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js
diff --git a/client/javascript/externs/moment/src/lib/locale/ordinal.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/ordinal.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js
diff --git a/client/javascript/externs/moment/src/lib/locale/pre-post-format.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/pre-post-format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js
diff --git a/client/javascript/externs/moment/src/lib/locale/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/prototype.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js
diff --git a/client/javascript/externs/moment/src/lib/locale/relative.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/relative.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js
diff --git a/client/javascript/externs/moment/src/lib/locale/set.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/set.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/locale/set.js
rename to src/vitis/client/javascript/externs/moment/src/lib/locale/set.js
diff --git a/client/javascript/externs/moment/src/lib/moment/add-subtract.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/add-subtract.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js
diff --git a/client/javascript/externs/moment/src/lib/moment/calendar.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/calendar.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js
diff --git a/client/javascript/externs/moment/src/lib/moment/clone.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/clone.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js
diff --git a/client/javascript/externs/moment/src/lib/moment/compare.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/compare.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js
diff --git a/client/javascript/externs/moment/src/lib/moment/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/constructor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js
diff --git a/client/javascript/externs/moment/src/lib/moment/creation-data.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/creation-data.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js
diff --git a/client/javascript/externs/moment/src/lib/moment/diff.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/diff.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js
diff --git a/client/javascript/externs/moment/src/lib/moment/format.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/format.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/format.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/format.js
diff --git a/client/javascript/externs/moment/src/lib/moment/from.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/from.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/from.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/from.js
diff --git a/client/javascript/externs/moment/src/lib/moment/get-set.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/get-set.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js
diff --git a/client/javascript/externs/moment/src/lib/moment/locale.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/locale.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js
diff --git a/client/javascript/externs/moment/src/lib/moment/min-max.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/min-max.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js
diff --git a/client/javascript/externs/moment/src/lib/moment/moment.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/moment.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js
diff --git a/client/javascript/externs/moment/src/lib/moment/now.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/now.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/now.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/now.js
diff --git a/client/javascript/externs/moment/src/lib/moment/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/prototype.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js
diff --git a/client/javascript/externs/moment/src/lib/moment/start-end-of.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/start-end-of.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js
diff --git a/client/javascript/externs/moment/src/lib/moment/to-type.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/to-type.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js
diff --git a/client/javascript/externs/moment/src/lib/moment/to.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/to.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/to.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/to.js
diff --git a/client/javascript/externs/moment/src/lib/moment/valid.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/moment/valid.js
rename to src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js
diff --git a/client/javascript/externs/moment/src/lib/parse/regex.js b/src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/parse/regex.js
rename to src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js
diff --git a/client/javascript/externs/moment/src/lib/parse/token.js b/src/vitis/client/javascript/externs/moment/src/lib/parse/token.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/parse/token.js
rename to src/vitis/client/javascript/externs/moment/src/lib/parse/token.js
diff --git a/client/javascript/externs/moment/src/lib/units/aliases.js b/src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/aliases.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js
diff --git a/client/javascript/externs/moment/src/lib/units/constants.js b/src/vitis/client/javascript/externs/moment/src/lib/units/constants.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/constants.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/constants.js
diff --git a/client/javascript/externs/moment/src/lib/units/day-of-month.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/day-of-month.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js
diff --git a/client/javascript/externs/moment/src/lib/units/day-of-week.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/day-of-week.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js
diff --git a/client/javascript/externs/moment/src/lib/units/day-of-year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/day-of-year.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js
diff --git a/client/javascript/externs/moment/src/lib/units/hour.js b/src/vitis/client/javascript/externs/moment/src/lib/units/hour.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/hour.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/hour.js
diff --git a/client/javascript/externs/moment/src/lib/units/millisecond.js b/src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/millisecond.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js
diff --git a/client/javascript/externs/moment/src/lib/units/minute.js b/src/vitis/client/javascript/externs/moment/src/lib/units/minute.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/minute.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/minute.js
diff --git a/client/javascript/externs/moment/src/lib/units/month.js b/src/vitis/client/javascript/externs/moment/src/lib/units/month.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/month.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/month.js
diff --git a/client/javascript/externs/moment/src/lib/units/offset.js b/src/vitis/client/javascript/externs/moment/src/lib/units/offset.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/offset.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/offset.js
diff --git a/client/javascript/externs/moment/src/lib/units/quarter.js b/src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/quarter.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js
diff --git a/client/javascript/externs/moment/src/lib/units/second.js b/src/vitis/client/javascript/externs/moment/src/lib/units/second.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/second.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/second.js
diff --git a/client/javascript/externs/moment/src/lib/units/timestamp.js b/src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/timestamp.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js
diff --git a/client/javascript/externs/moment/src/lib/units/timezone.js b/src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/timezone.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js
diff --git a/client/javascript/externs/moment/src/lib/units/units.js b/src/vitis/client/javascript/externs/moment/src/lib/units/units.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/units.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/units.js
diff --git a/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/week-calendar-utils.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js
diff --git a/client/javascript/externs/moment/src/lib/units/week-year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/week-year.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js
diff --git a/client/javascript/externs/moment/src/lib/units/week.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/week.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/week.js
diff --git a/client/javascript/externs/moment/src/lib/units/year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/year.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/units/year.js
rename to src/vitis/client/javascript/externs/moment/src/lib/units/year.js
diff --git a/client/javascript/externs/moment/src/lib/utils/abs-ceil.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/abs-ceil.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js
diff --git a/client/javascript/externs/moment/src/lib/utils/abs-floor.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/abs-floor.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js
diff --git a/client/javascript/externs/moment/src/lib/utils/compare-arrays.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/compare-arrays.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js
diff --git a/client/javascript/externs/moment/src/lib/utils/defaults.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/defaults.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js
diff --git a/client/javascript/externs/moment/src/lib/utils/deprecate.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/deprecate.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js
diff --git a/client/javascript/externs/moment/src/lib/utils/extend.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/extend.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js
diff --git a/client/javascript/externs/moment/src/lib/utils/has-own-prop.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/has-own-prop.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js
diff --git a/client/javascript/externs/moment/src/lib/utils/hooks.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/hooks.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-array.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-array.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-date.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-date.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-function.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-function.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js
diff --git a/client/javascript/externs/moment/src/lib/utils/is-undefined.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/is-undefined.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js
diff --git a/client/javascript/externs/moment/src/lib/utils/map.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/map.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/map.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/map.js
diff --git a/client/javascript/externs/moment/src/lib/utils/to-int.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/to-int.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js
diff --git a/client/javascript/externs/moment/src/lib/utils/zero-fill.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js
similarity index 100%
rename from client/javascript/externs/moment/src/lib/utils/zero-fill.js
rename to src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js
diff --git a/client/javascript/externs/moment/src/locale/af.js b/src/vitis/client/javascript/externs/moment/src/locale/af.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/af.js
rename to src/vitis/client/javascript/externs/moment/src/locale/af.js
diff --git a/client/javascript/externs/moment/src/locale/ar-ma.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar-ma.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js
diff --git a/client/javascript/externs/moment/src/locale/ar-sa.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar-sa.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js
diff --git a/client/javascript/externs/moment/src/locale/ar-tn.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar-tn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js
diff --git a/client/javascript/externs/moment/src/locale/ar.js b/src/vitis/client/javascript/externs/moment/src/locale/ar.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ar.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ar.js
diff --git a/client/javascript/externs/moment/src/locale/az.js b/src/vitis/client/javascript/externs/moment/src/locale/az.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/az.js
rename to src/vitis/client/javascript/externs/moment/src/locale/az.js
diff --git a/client/javascript/externs/moment/src/locale/be.js b/src/vitis/client/javascript/externs/moment/src/locale/be.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/be.js
rename to src/vitis/client/javascript/externs/moment/src/locale/be.js
diff --git a/client/javascript/externs/moment/src/locale/bg.js b/src/vitis/client/javascript/externs/moment/src/locale/bg.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bg.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bg.js
diff --git a/client/javascript/externs/moment/src/locale/bn.js b/src/vitis/client/javascript/externs/moment/src/locale/bn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bn.js
diff --git a/client/javascript/externs/moment/src/locale/bo.js b/src/vitis/client/javascript/externs/moment/src/locale/bo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bo.js
diff --git a/client/javascript/externs/moment/src/locale/br.js b/src/vitis/client/javascript/externs/moment/src/locale/br.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/br.js
rename to src/vitis/client/javascript/externs/moment/src/locale/br.js
diff --git a/client/javascript/externs/moment/src/locale/bs.js b/src/vitis/client/javascript/externs/moment/src/locale/bs.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/bs.js
rename to src/vitis/client/javascript/externs/moment/src/locale/bs.js
diff --git a/client/javascript/externs/moment/src/locale/ca.js b/src/vitis/client/javascript/externs/moment/src/locale/ca.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ca.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ca.js
diff --git a/client/javascript/externs/moment/src/locale/cs.js b/src/vitis/client/javascript/externs/moment/src/locale/cs.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/cs.js
rename to src/vitis/client/javascript/externs/moment/src/locale/cs.js
diff --git a/client/javascript/externs/moment/src/locale/cv.js b/src/vitis/client/javascript/externs/moment/src/locale/cv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/cv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/cv.js
diff --git a/client/javascript/externs/moment/src/locale/cy.js b/src/vitis/client/javascript/externs/moment/src/locale/cy.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/cy.js
rename to src/vitis/client/javascript/externs/moment/src/locale/cy.js
diff --git a/client/javascript/externs/moment/src/locale/da.js b/src/vitis/client/javascript/externs/moment/src/locale/da.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/da.js
rename to src/vitis/client/javascript/externs/moment/src/locale/da.js
diff --git a/client/javascript/externs/moment/src/locale/de-at.js b/src/vitis/client/javascript/externs/moment/src/locale/de-at.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/de-at.js
rename to src/vitis/client/javascript/externs/moment/src/locale/de-at.js
diff --git a/client/javascript/externs/moment/src/locale/de.js b/src/vitis/client/javascript/externs/moment/src/locale/de.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/de.js
rename to src/vitis/client/javascript/externs/moment/src/locale/de.js
diff --git a/client/javascript/externs/moment/src/locale/dv.js b/src/vitis/client/javascript/externs/moment/src/locale/dv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/dv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/dv.js
diff --git a/client/javascript/externs/moment/src/locale/el.js b/src/vitis/client/javascript/externs/moment/src/locale/el.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/el.js
rename to src/vitis/client/javascript/externs/moment/src/locale/el.js
diff --git a/client/javascript/externs/moment/src/locale/en-au.js b/src/vitis/client/javascript/externs/moment/src/locale/en-au.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-au.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-au.js
diff --git a/client/javascript/externs/moment/src/locale/en-ca.js b/src/vitis/client/javascript/externs/moment/src/locale/en-ca.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-ca.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-ca.js
diff --git a/client/javascript/externs/moment/src/locale/en-gb.js b/src/vitis/client/javascript/externs/moment/src/locale/en-gb.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-gb.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-gb.js
diff --git a/client/javascript/externs/moment/src/locale/en-ie.js b/src/vitis/client/javascript/externs/moment/src/locale/en-ie.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-ie.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-ie.js
diff --git a/client/javascript/externs/moment/src/locale/en-nz.js b/src/vitis/client/javascript/externs/moment/src/locale/en-nz.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/en-nz.js
rename to src/vitis/client/javascript/externs/moment/src/locale/en-nz.js
diff --git a/client/javascript/externs/moment/src/locale/eo.js b/src/vitis/client/javascript/externs/moment/src/locale/eo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/eo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/eo.js
diff --git a/client/javascript/externs/moment/src/locale/es.js b/src/vitis/client/javascript/externs/moment/src/locale/es.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/es.js
rename to src/vitis/client/javascript/externs/moment/src/locale/es.js
diff --git a/client/javascript/externs/moment/src/locale/et.js b/src/vitis/client/javascript/externs/moment/src/locale/et.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/et.js
rename to src/vitis/client/javascript/externs/moment/src/locale/et.js
diff --git a/client/javascript/externs/moment/src/locale/eu.js b/src/vitis/client/javascript/externs/moment/src/locale/eu.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/eu.js
rename to src/vitis/client/javascript/externs/moment/src/locale/eu.js
diff --git a/client/javascript/externs/moment/src/locale/fa.js b/src/vitis/client/javascript/externs/moment/src/locale/fa.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fa.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fa.js
diff --git a/client/javascript/externs/moment/src/locale/fi.js b/src/vitis/client/javascript/externs/moment/src/locale/fi.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fi.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fi.js
diff --git a/client/javascript/externs/moment/src/locale/fo.js b/src/vitis/client/javascript/externs/moment/src/locale/fo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fo.js
diff --git a/client/javascript/externs/moment/src/locale/fr-ca.js b/src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fr-ca.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js
diff --git a/client/javascript/externs/moment/src/locale/fr-ch.js b/src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fr-ch.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js
diff --git a/client/javascript/externs/moment/src/locale/fr.js b/src/vitis/client/javascript/externs/moment/src/locale/fr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fr.js
diff --git a/client/javascript/externs/moment/src/locale/fy.js b/src/vitis/client/javascript/externs/moment/src/locale/fy.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/fy.js
rename to src/vitis/client/javascript/externs/moment/src/locale/fy.js
diff --git a/client/javascript/externs/moment/src/locale/gd.js b/src/vitis/client/javascript/externs/moment/src/locale/gd.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/gd.js
rename to src/vitis/client/javascript/externs/moment/src/locale/gd.js
diff --git a/client/javascript/externs/moment/src/locale/gl.js b/src/vitis/client/javascript/externs/moment/src/locale/gl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/gl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/gl.js
diff --git a/client/javascript/externs/moment/src/locale/he.js b/src/vitis/client/javascript/externs/moment/src/locale/he.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/he.js
rename to src/vitis/client/javascript/externs/moment/src/locale/he.js
diff --git a/client/javascript/externs/moment/src/locale/hi.js b/src/vitis/client/javascript/externs/moment/src/locale/hi.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hi.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hi.js
diff --git a/client/javascript/externs/moment/src/locale/hr.js b/src/vitis/client/javascript/externs/moment/src/locale/hr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hr.js
diff --git a/client/javascript/externs/moment/src/locale/hu.js b/src/vitis/client/javascript/externs/moment/src/locale/hu.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hu.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hu.js
diff --git a/client/javascript/externs/moment/src/locale/hy-am.js b/src/vitis/client/javascript/externs/moment/src/locale/hy-am.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/hy-am.js
rename to src/vitis/client/javascript/externs/moment/src/locale/hy-am.js
diff --git a/client/javascript/externs/moment/src/locale/id.js b/src/vitis/client/javascript/externs/moment/src/locale/id.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/id.js
rename to src/vitis/client/javascript/externs/moment/src/locale/id.js
diff --git a/client/javascript/externs/moment/src/locale/is.js b/src/vitis/client/javascript/externs/moment/src/locale/is.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/is.js
rename to src/vitis/client/javascript/externs/moment/src/locale/is.js
diff --git a/client/javascript/externs/moment/src/locale/it.js b/src/vitis/client/javascript/externs/moment/src/locale/it.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/it.js
rename to src/vitis/client/javascript/externs/moment/src/locale/it.js
diff --git a/client/javascript/externs/moment/src/locale/ja.js b/src/vitis/client/javascript/externs/moment/src/locale/ja.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ja.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ja.js
diff --git a/client/javascript/externs/moment/src/locale/jv.js b/src/vitis/client/javascript/externs/moment/src/locale/jv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/jv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/jv.js
diff --git a/client/javascript/externs/moment/src/locale/ka.js b/src/vitis/client/javascript/externs/moment/src/locale/ka.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ka.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ka.js
diff --git a/client/javascript/externs/moment/src/locale/kk.js b/src/vitis/client/javascript/externs/moment/src/locale/kk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/kk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/kk.js
diff --git a/client/javascript/externs/moment/src/locale/km.js b/src/vitis/client/javascript/externs/moment/src/locale/km.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/km.js
rename to src/vitis/client/javascript/externs/moment/src/locale/km.js
diff --git a/client/javascript/externs/moment/src/locale/ko.js b/src/vitis/client/javascript/externs/moment/src/locale/ko.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ko.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ko.js
diff --git a/client/javascript/externs/moment/src/locale/lb.js b/src/vitis/client/javascript/externs/moment/src/locale/lb.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lb.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lb.js
diff --git a/client/javascript/externs/moment/src/locale/lo.js b/src/vitis/client/javascript/externs/moment/src/locale/lo.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lo.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lo.js
diff --git a/client/javascript/externs/moment/src/locale/lt.js b/src/vitis/client/javascript/externs/moment/src/locale/lt.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lt.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lt.js
diff --git a/client/javascript/externs/moment/src/locale/lv.js b/src/vitis/client/javascript/externs/moment/src/locale/lv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/lv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/lv.js
diff --git a/client/javascript/externs/moment/src/locale/me.js b/src/vitis/client/javascript/externs/moment/src/locale/me.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/me.js
rename to src/vitis/client/javascript/externs/moment/src/locale/me.js
diff --git a/client/javascript/externs/moment/src/locale/mk.js b/src/vitis/client/javascript/externs/moment/src/locale/mk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/mk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/mk.js
diff --git a/client/javascript/externs/moment/src/locale/ml.js b/src/vitis/client/javascript/externs/moment/src/locale/ml.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ml.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ml.js
diff --git a/client/javascript/externs/moment/src/locale/mr.js b/src/vitis/client/javascript/externs/moment/src/locale/mr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/mr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/mr.js
diff --git a/client/javascript/externs/moment/src/locale/ms-my.js b/src/vitis/client/javascript/externs/moment/src/locale/ms-my.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ms-my.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ms-my.js
diff --git a/client/javascript/externs/moment/src/locale/ms.js b/src/vitis/client/javascript/externs/moment/src/locale/ms.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ms.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ms.js
diff --git a/client/javascript/externs/moment/src/locale/my.js b/src/vitis/client/javascript/externs/moment/src/locale/my.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/my.js
rename to src/vitis/client/javascript/externs/moment/src/locale/my.js
diff --git a/client/javascript/externs/moment/src/locale/nb.js b/src/vitis/client/javascript/externs/moment/src/locale/nb.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/nb.js
rename to src/vitis/client/javascript/externs/moment/src/locale/nb.js
diff --git a/client/javascript/externs/moment/src/locale/ne.js b/src/vitis/client/javascript/externs/moment/src/locale/ne.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ne.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ne.js
diff --git a/client/javascript/externs/moment/src/locale/nl.js b/src/vitis/client/javascript/externs/moment/src/locale/nl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/nl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/nl.js
diff --git a/client/javascript/externs/moment/src/locale/nn.js b/src/vitis/client/javascript/externs/moment/src/locale/nn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/nn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/nn.js
diff --git a/client/javascript/externs/moment/src/locale/pl.js b/src/vitis/client/javascript/externs/moment/src/locale/pl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/pl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/pl.js
diff --git a/client/javascript/externs/moment/src/locale/pt-br.js b/src/vitis/client/javascript/externs/moment/src/locale/pt-br.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/pt-br.js
rename to src/vitis/client/javascript/externs/moment/src/locale/pt-br.js
diff --git a/client/javascript/externs/moment/src/locale/pt.js b/src/vitis/client/javascript/externs/moment/src/locale/pt.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/pt.js
rename to src/vitis/client/javascript/externs/moment/src/locale/pt.js
diff --git a/client/javascript/externs/moment/src/locale/ro.js b/src/vitis/client/javascript/externs/moment/src/locale/ro.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ro.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ro.js
diff --git a/client/javascript/externs/moment/src/locale/ru.js b/src/vitis/client/javascript/externs/moment/src/locale/ru.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ru.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ru.js
diff --git a/client/javascript/externs/moment/src/locale/se.js b/src/vitis/client/javascript/externs/moment/src/locale/se.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/se.js
rename to src/vitis/client/javascript/externs/moment/src/locale/se.js
diff --git a/client/javascript/externs/moment/src/locale/si.js b/src/vitis/client/javascript/externs/moment/src/locale/si.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/si.js
rename to src/vitis/client/javascript/externs/moment/src/locale/si.js
diff --git a/client/javascript/externs/moment/src/locale/sk.js b/src/vitis/client/javascript/externs/moment/src/locale/sk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sk.js
diff --git a/client/javascript/externs/moment/src/locale/sl.js b/src/vitis/client/javascript/externs/moment/src/locale/sl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sl.js
diff --git a/client/javascript/externs/moment/src/locale/sq.js b/src/vitis/client/javascript/externs/moment/src/locale/sq.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sq.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sq.js
diff --git a/client/javascript/externs/moment/src/locale/sr-cyrl.js b/src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sr-cyrl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js
diff --git a/client/javascript/externs/moment/src/locale/sr.js b/src/vitis/client/javascript/externs/moment/src/locale/sr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sr.js
diff --git a/client/javascript/externs/moment/src/locale/sv.js b/src/vitis/client/javascript/externs/moment/src/locale/sv.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sv.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sv.js
diff --git a/client/javascript/externs/moment/src/locale/sw.js b/src/vitis/client/javascript/externs/moment/src/locale/sw.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/sw.js
rename to src/vitis/client/javascript/externs/moment/src/locale/sw.js
diff --git a/client/javascript/externs/moment/src/locale/ta.js b/src/vitis/client/javascript/externs/moment/src/locale/ta.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/ta.js
rename to src/vitis/client/javascript/externs/moment/src/locale/ta.js
diff --git a/client/javascript/externs/moment/src/locale/te.js b/src/vitis/client/javascript/externs/moment/src/locale/te.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/te.js
rename to src/vitis/client/javascript/externs/moment/src/locale/te.js
diff --git a/client/javascript/externs/moment/src/locale/th.js b/src/vitis/client/javascript/externs/moment/src/locale/th.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/th.js
rename to src/vitis/client/javascript/externs/moment/src/locale/th.js
diff --git a/client/javascript/externs/moment/src/locale/tl-ph.js b/src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tl-ph.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js
diff --git a/client/javascript/externs/moment/src/locale/tlh.js b/src/vitis/client/javascript/externs/moment/src/locale/tlh.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tlh.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tlh.js
diff --git a/client/javascript/externs/moment/src/locale/tr.js b/src/vitis/client/javascript/externs/moment/src/locale/tr.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tr.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tr.js
diff --git a/client/javascript/externs/moment/src/locale/tzl.js b/src/vitis/client/javascript/externs/moment/src/locale/tzl.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tzl.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tzl.js
diff --git a/client/javascript/externs/moment/src/locale/tzm-latn.js b/src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tzm-latn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js
diff --git a/client/javascript/externs/moment/src/locale/tzm.js b/src/vitis/client/javascript/externs/moment/src/locale/tzm.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/tzm.js
rename to src/vitis/client/javascript/externs/moment/src/locale/tzm.js
diff --git a/client/javascript/externs/moment/src/locale/uk.js b/src/vitis/client/javascript/externs/moment/src/locale/uk.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/uk.js
rename to src/vitis/client/javascript/externs/moment/src/locale/uk.js
diff --git a/client/javascript/externs/moment/src/locale/uz.js b/src/vitis/client/javascript/externs/moment/src/locale/uz.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/uz.js
rename to src/vitis/client/javascript/externs/moment/src/locale/uz.js
diff --git a/client/javascript/externs/moment/src/locale/vi.js b/src/vitis/client/javascript/externs/moment/src/locale/vi.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/vi.js
rename to src/vitis/client/javascript/externs/moment/src/locale/vi.js
diff --git a/client/javascript/externs/moment/src/locale/zh-cn.js b/src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/zh-cn.js
rename to src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js
diff --git a/client/javascript/externs/moment/src/locale/zh-tw.js b/src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js
similarity index 100%
rename from client/javascript/externs/moment/src/locale/zh-tw.js
rename to src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js
diff --git a/client/javascript/externs/moment/src/moment.js b/src/vitis/client/javascript/externs/moment/src/moment.js
similarity index 100%
rename from client/javascript/externs/moment/src/moment.js
rename to src/vitis/client/javascript/externs/moment/src/moment.js
diff --git a/client/javascript/externs/moment/templates/amd-named.js b/src/vitis/client/javascript/externs/moment/templates/amd-named.js
similarity index 100%
rename from client/javascript/externs/moment/templates/amd-named.js
rename to src/vitis/client/javascript/externs/moment/templates/amd-named.js
diff --git a/client/javascript/externs/moment/templates/amd.js b/src/vitis/client/javascript/externs/moment/templates/amd.js
similarity index 100%
rename from client/javascript/externs/moment/templates/amd.js
rename to src/vitis/client/javascript/externs/moment/templates/amd.js
diff --git a/client/javascript/externs/moment/templates/default.js b/src/vitis/client/javascript/externs/moment/templates/default.js
similarity index 100%
rename from client/javascript/externs/moment/templates/default.js
rename to src/vitis/client/javascript/externs/moment/templates/default.js
diff --git a/client/javascript/externs/moment/templates/globals.js b/src/vitis/client/javascript/externs/moment/templates/globals.js
similarity index 100%
rename from client/javascript/externs/moment/templates/globals.js
rename to src/vitis/client/javascript/externs/moment/templates/globals.js
diff --git a/client/javascript/externs/moment/templates/locale-header.js b/src/vitis/client/javascript/externs/moment/templates/locale-header.js
similarity index 100%
rename from client/javascript/externs/moment/templates/locale-header.js
rename to src/vitis/client/javascript/externs/moment/templates/locale-header.js
diff --git a/client/javascript/externs/moment/templates/test-header.js b/src/vitis/client/javascript/externs/moment/templates/test-header.js
similarity index 100%
rename from client/javascript/externs/moment/templates/test-header.js
rename to src/vitis/client/javascript/externs/moment/templates/test-header.js
diff --git a/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt b/src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt
similarity index 100%
rename from client/javascript/externs/openLayers/licenses/APACHE-2.0.txt
rename to src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt
diff --git a/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt b/src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt
similarity index 100%
rename from client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt
rename to src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt
diff --git a/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt b/src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt
similarity index 100%
rename from client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt
rename to src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt
diff --git a/client/javascript/externs/openLayers/ol.ext/pbf.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/pbf.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js
diff --git a/client/javascript/externs/openLayers/ol.ext/pixelworks.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/pixelworks.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js
diff --git a/client/javascript/externs/openLayers/ol.ext/rbush.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/rbush.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js
diff --git a/client/javascript/externs/openLayers/ol.ext/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol.ext/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/array.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/array.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/array.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/array.js
diff --git a/client/javascript/externs/openLayers/ol/ol/assertionerror.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/assertionerror.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js
diff --git a/client/javascript/externs/openLayers/ol/ol/asserts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/asserts.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js
diff --git a/client/javascript/externs/openLayers/ol/ol/attribution.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/attribution.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js
diff --git a/client/javascript/externs/openLayers/ol/ol/canvasmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/canvasmap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/centerconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/centerconstraint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/collection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/collection.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js
diff --git a/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/collectioneventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/color.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/color.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/color.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/color.js
diff --git a/client/javascript/externs/openLayers/ol/ol/color.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/color.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/colorlike.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/colorlike.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js
diff --git a/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/control.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/attribution.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/attribution.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/control.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/control.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/fullscreen.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/mouseposition.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/overviewmap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/rotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/rotate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/scaleline.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/scaleline.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/zoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/zoomslider.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js
diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/coordinate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/coordinate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/css.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/css.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/css.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/css.js
diff --git a/client/javascript/externs/openLayers/ol/ol/deviceorientation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/deviceorientation.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js
diff --git a/client/javascript/externs/openLayers/ol/ol/disposable.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/disposable.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js
diff --git a/client/javascript/externs/openLayers/ol/ol/dom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/dom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/easing.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/easing.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js
diff --git a/client/javascript/externs/openLayers/ol/ol/easing.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/easing.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/events.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/condition.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/condition.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/events/event.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/event.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/eventtarget.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/eventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/events/keycode.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/events/keycode.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js
diff --git a/client/javascript/externs/openLayers/ol/ol/extent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/extent.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/extent/corner.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent/corner.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js
diff --git a/client/javascript/externs/openLayers/ol/ol/extent/relationship.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/extent/relationship.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js
diff --git a/client/javascript/externs/openLayers/ol/ol/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/feature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/featureloader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/featureloader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/format/esrijson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/esrijson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/feature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/and.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/and.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/contains.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/during.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/during.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/filter.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/islike.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/not.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/not.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/or.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/or.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/within.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/filter/within.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/formattype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/formattype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/geojson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/geojson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml2.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gml2.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml3.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gml3.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gmlbase.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/gpx.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/gpx.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/igc.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/igc.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/igcz.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/igcz.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/kml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/kml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/mvt.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/mvt.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/osmxml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/osmxml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/ows.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/ows.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/polyline.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/polyline.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/readme.md b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/readme.md
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md
diff --git a/client/javascript/externs/openLayers/ol/ol/format/textfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/textfeature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/topojson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/topojson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wfs.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wfs.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wkt.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wkt.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xlink.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xlink.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/format/xsd.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/format/xsd.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js
diff --git a/client/javascript/externs/openLayers/ol/ol/functions.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/functions.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geolocation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geolocation.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geolocationproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/circle.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/circle.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/area.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/center.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/length.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometry.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometry.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/linearring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/linearring.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/linestring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/linestring.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/multipoint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/point.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/point.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/polygon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/polygon.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js
diff --git a/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js
diff --git a/client/javascript/externs/openLayers/ol/ol/graticule.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/graticule.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js
diff --git a/client/javascript/externs/openLayers/ol/ol/has.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/has.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/has.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/has.js
diff --git a/client/javascript/externs/openLayers/ol/ol/has.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/has.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagebase.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagebase.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagecanvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagestate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagestate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/imagetile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/imagetile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/index.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/index.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/index.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/index.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draw.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/draw.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/extent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/extent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/interaction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/modify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/modify.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/pointer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/property.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/property.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/select.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/select.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/snap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/snap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/translate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/translate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/kinetic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/kinetic.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/base.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/base.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/group.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/group.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/heatmap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/property.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/property.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/layertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/layertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/loadingstrategy.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js
diff --git a/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/mapproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/mapproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/math.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/math.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/math.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/math.js
diff --git a/client/javascript/externs/openLayers/ol/ol/net.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/net.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/net.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/net.js
diff --git a/client/javascript/externs/openLayers/ol/ol/obj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/obj.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js
diff --git a/client/javascript/externs/openLayers/ol/ol/object.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/object.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/object.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/object.js
diff --git a/client/javascript/externs/openLayers/ol/ol/objecteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/objecteventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/observable.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/observable.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js
diff --git a/client/javascript/externs/openLayers/ol/ol/overlay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/overlay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/overlaypositioning.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pluggablemap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pluggablemap.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js
diff --git a/client/javascript/externs/openLayers/ol/ol/plugins.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/plugins.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js
diff --git a/client/javascript/externs/openLayers/ol/ol/plugintype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/plugintype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/mssource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js
diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/common.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/common.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/proj4.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/proj4.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/projection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/projection.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/projections.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/projections.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/transforms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/transforms.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js
diff --git a/client/javascript/externs/openLayers/ol/ol/proj/units.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/proj/units.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/render/box.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/box.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/event.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/event.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/eventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/feature.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/replay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/replaygroup.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/replaytype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/replaytype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/type.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/type.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/vector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js
diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js
diff --git a/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/rotationconstraint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/size.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/size.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/size.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/size.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/bingmaps.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/cartodb.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/cartodb.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/cluster.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/cluster.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagestatic.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagevector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagevector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagewms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/imagewms.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/osm.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/osm.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/raster.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/raster.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/source.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/source.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/stamen.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/stamen.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/state.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/state.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tiledebug.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileimage.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tileimage.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilejson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tilejson.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilewms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/tilewms.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/urltile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/urltile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/vector.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/wmts.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/xyz.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/xyz.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js
diff --git a/client/javascript/externs/openLayers/ol/ol/source/zoomify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/source/zoomify.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js
diff --git a/client/javascript/externs/openLayers/ol/ol/sphere.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/sphere.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js
diff --git a/client/javascript/externs/openLayers/ol/ol/string.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/string.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/string.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/string.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/lrucache.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js
diff --git a/client/javascript/externs/openLayers/ol/ol/structs/rbush.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/structs/rbush.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/atlas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/atlas.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/circle.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/circle.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/fill.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/fill.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/icon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/icon.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconimage.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconimage.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/iconorigin.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/image.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/style/regularshape.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/regularshape.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/stroke.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/stroke.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/style.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/style.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/text.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/text.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js
diff --git a/client/javascript/externs/openLayers/ol/ol/style/textplacement.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/style/textplacement.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilecache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilecache.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilecoord.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilecoord.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilequeue.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilequeue.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilerange.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilerange.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tilestate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tilestate.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js
diff --git a/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/tileurlfunction.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js
diff --git a/client/javascript/externs/openLayers/ol/ol/transform.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/transform.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js
diff --git a/client/javascript/externs/openLayers/ol/ol/typedefs.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/typedefs.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js
diff --git a/client/javascript/externs/openLayers/ol/ol/uri.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/uri.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js
diff --git a/client/javascript/externs/openLayers/ol/ol/vec/mat4.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/vec/mat4.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js
diff --git a/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/vectorimagetile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/vectortile.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js
diff --git a/client/javascript/externs/openLayers/ol/ol/view.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/view.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/view.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/view.js
diff --git a/client/javascript/externs/openLayers/ol/ol/viewhint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/viewhint.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js
diff --git a/client/javascript/externs/openLayers/ol/ol/viewproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/viewproperty.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/buffer.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/context.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/context.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/fragment.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/shader.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache
diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/webgl/vertex.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js
diff --git a/client/javascript/externs/openLayers/ol/ol/xml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol/ol/xml.js
rename to src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/licence.txt b/src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/licence.txt
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt
diff --git a/client/javascript/externs/openLayers/ol3-ext/readme.txt b/src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/readme.txt
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js
diff --git a/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js
diff --git a/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js b/src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js
diff --git a/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js b/src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js
similarity index 100%
rename from client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js
rename to src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js
diff --git a/client/javascript/externs/rgraph/RGraph.bar_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.bar_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.context_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.context_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.core_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.core_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.dynamic_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.effects_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.effects_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.key_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.key_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.common.tooltips_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.drawing.rect_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.drawing.text_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.drawing.text_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.pie_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.pie_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js
diff --git a/client/javascript/externs/rgraph/RGraph.scatter_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js
similarity index 100%
rename from client/javascript/externs/rgraph/RGraph.scatter_min.js
rename to src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js
diff --git a/client/javascript/externs/scripts_cryptage.js b/src/vitis/client/javascript/externs/scripts_cryptage.js
similarity index 100%
rename from client/javascript/externs/scripts_cryptage.js
rename to src/vitis/client/javascript/externs/scripts_cryptage.js
diff --git a/client/javascript/externs/showdown/showdown.js b/src/vitis/client/javascript/externs/showdown/showdown.js
similarity index 100%
rename from client/javascript/externs/showdown/showdown.js
rename to src/vitis/client/javascript/externs/showdown/showdown.js
diff --git a/client/javascript/externs/showdown/showdown.js.map b/src/vitis/client/javascript/externs/showdown/showdown.js.map
similarity index 100%
rename from client/javascript/externs/showdown/showdown.js.map
rename to src/vitis/client/javascript/externs/showdown/showdown.js.map
diff --git a/client/javascript/externs/showdown/showdown.min.js b/src/vitis/client/javascript/externs/showdown/showdown.min.js
similarity index 100%
rename from client/javascript/externs/showdown/showdown.min.js
rename to src/vitis/client/javascript/externs/showdown/showdown.min.js
diff --git a/client/javascript/externs/showdown/showdown.min.js.map b/src/vitis/client/javascript/externs/showdown/showdown.min.js.map
similarity index 100%
rename from client/javascript/externs/showdown/showdown.min.js.map
rename to src/vitis/client/javascript/externs/showdown/showdown.min.js.map
diff --git a/client/javascript/externs/studio/javascript/app/ElementForm.js b/src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/ElementForm.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js
diff --git a/client/javascript/externs/studio/javascript/app/FormBuilder.js b/src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/FormBuilder.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js
diff --git a/client/javascript/externs/studio/javascript/app/FormTools.js b/src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/FormTools.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js
diff --git a/client/javascript/externs/studio/javascript/app/JsonLoader.js b/src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/JsonLoader.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js
diff --git a/client/javascript/externs/studio/javascript/app/Utils.js b/src/vitis/client/javascript/externs/studio/javascript/app/Utils.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/Utils.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/Utils.js
diff --git a/client/javascript/externs/studio/javascript/app/Visualizer.js b/src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/Visualizer.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js
diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js
similarity index 100%
rename from client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js
rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js
diff --git a/client/javascript/externs/studio/lang/lang-en.json b/src/vitis/client/javascript/externs/studio/lang/lang-en.json
similarity index 100%
rename from client/javascript/externs/studio/lang/lang-en.json
rename to src/vitis/client/javascript/externs/studio/lang/lang-en.json
diff --git a/client/javascript/externs/studio/lang/lang-fr.json b/src/vitis/client/javascript/externs/studio/lang/lang-fr.json
similarity index 100%
rename from client/javascript/externs/studio/lang/lang-fr.json
rename to src/vitis/client/javascript/externs/studio/lang/lang-fr.json
diff --git a/client/javascript/externs/studio/less/CodeMirror.less b/src/vitis/client/javascript/externs/studio/less/CodeMirror.less
similarity index 100%
rename from client/javascript/externs/studio/less/CodeMirror.less
rename to src/vitis/client/javascript/externs/studio/less/CodeMirror.less
diff --git a/client/javascript/externs/studio/less/studio.less b/src/vitis/client/javascript/externs/studio/less/studio.less
similarity index 100%
rename from client/javascript/externs/studio/less/studio.less
rename to src/vitis/client/javascript/externs/studio/less/studio.less
diff --git a/client/javascript/externs/studio/properties/properties.js b/src/vitis/client/javascript/externs/studio/properties/properties.js
similarity index 100%
rename from client/javascript/externs/studio/properties/properties.js
rename to src/vitis/client/javascript/externs/studio/properties/properties.js
diff --git a/client/javascript/externs/studio/templates/Componant/Map.html b/src/vitis/client/javascript/externs/studio/templates/Componant/Map.html
similarity index 100%
rename from client/javascript/externs/studio/templates/Componant/Map.html
rename to src/vitis/client/javascript/externs/studio/templates/Componant/Map.html
diff --git a/client/javascript/externs/studio/templates/ElementForm.html b/src/vitis/client/javascript/externs/studio/templates/ElementForm.html
similarity index 100%
rename from client/javascript/externs/studio/templates/ElementForm.html
rename to src/vitis/client/javascript/externs/studio/templates/ElementForm.html
diff --git a/client/javascript/externs/studio/templates/FormTools.html b/src/vitis/client/javascript/externs/studio/templates/FormTools.html
similarity index 100%
rename from client/javascript/externs/studio/templates/FormTools.html
rename to src/vitis/client/javascript/externs/studio/templates/FormTools.html
diff --git a/client/javascript/externs/studio/templates/JsonLoader.html b/src/vitis/client/javascript/externs/studio/templates/JsonLoader.html
similarity index 100%
rename from client/javascript/externs/studio/templates/JsonLoader.html
rename to src/vitis/client/javascript/externs/studio/templates/JsonLoader.html
diff --git a/client/javascript/externs/studio/templates/MainTemplate.html b/src/vitis/client/javascript/externs/studio/templates/MainTemplate.html
similarity index 100%
rename from client/javascript/externs/studio/templates/MainTemplate.html
rename to src/vitis/client/javascript/externs/studio/templates/MainTemplate.html
diff --git a/client/javascript/externs/studio/templates/Visualizer.html b/src/vitis/client/javascript/externs/studio/templates/Visualizer.html
similarity index 100%
rename from client/javascript/externs/studio/templates/Visualizer.html
rename to src/vitis/client/javascript/externs/studio/templates/Visualizer.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/CssMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/FormMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/JsMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html
diff --git a/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html
similarity index 100%
rename from client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html
rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html
diff --git a/client/javascript/externs/tinymce/LICENSE.TXT b/src/vitis/client/javascript/externs/tinymce/LICENSE.TXT
similarity index 100%
rename from client/javascript/externs/tinymce/LICENSE.TXT
rename to src/vitis/client/javascript/externs/tinymce/LICENSE.TXT
diff --git a/client/javascript/externs/tinymce/langs/fr_FR.js b/src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js
similarity index 100%
rename from client/javascript/externs/tinymce/langs/fr_FR.js
rename to src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js
diff --git a/client/javascript/externs/tinymce/plugins/image/plugin.min.js b/src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js
similarity index 100%
rename from client/javascript/externs/tinymce/plugins/image/plugin.min.js
rename to src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js
diff --git a/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css
diff --git a/client/javascript/externs/tinymce/skins/lightgray/content.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/content.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf
diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/loader.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/object.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/object.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/img/trans.gif
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif
diff --git a/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css
diff --git a/client/javascript/externs/tinymce/skins/lightgray/skin.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css
similarity index 100%
rename from client/javascript/externs/tinymce/skins/lightgray/skin.min.css
rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css
diff --git a/client/javascript/externs/tinymce/themes/modern/theme.min.js b/src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js
similarity index 100%
rename from client/javascript/externs/tinymce/themes/modern/theme.min.js
rename to src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js
diff --git a/client/javascript/externs/tinymce/tinymce.min.js b/src/vitis/client/javascript/externs/tinymce/tinymce.min.js
similarity index 100%
rename from client/javascript/externs/tinymce/tinymce.min.js
rename to src/vitis/client/javascript/externs/tinymce/tinymce.min.js
diff --git a/client/javascript/externs/underscore-min.js b/src/vitis/client/javascript/externs/underscore-min.js
similarity index 100%
rename from client/javascript/externs/underscore-min.js
rename to src/vitis/client/javascript/externs/underscore-min.js
diff --git a/client/javascript/externs/underscore.js b/src/vitis/client/javascript/externs/underscore.js
similarity index 100%
rename from client/javascript/externs/underscore.js
rename to src/vitis/client/javascript/externs/underscore.js
diff --git a/client/javascript/externs/viewer/Apache-License-2.0.txt b/src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt
similarity index 100%
rename from client/javascript/externs/viewer/Apache-License-2.0.txt
rename to src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt
diff --git a/client/javascript/externs/viewer/viewer.min.js b/src/vitis/client/javascript/externs/viewer/viewer.min.js
similarity index 100%
rename from client/javascript/externs/viewer/viewer.min.js
rename to src/vitis/client/javascript/externs/viewer/viewer.min.js
diff --git a/client/javascript/require/requireVitis.js b/src/vitis/client/javascript/require/requireVitis.js
similarity index 100%
rename from client/javascript/require/requireVitis.js
rename to src/vitis/client/javascript/require/requireVitis.js
diff --git a/client/javascript/test/e2e/Output/order/htmlReport.html b/src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html
similarity index 100%
rename from client/javascript/test/e2e/Output/order/htmlReport.html
rename to src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html
diff --git a/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png b/src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png
diff --git a/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png b/src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png
diff --git a/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png b/src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png
diff --git a/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png b/src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png
diff --git a/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png b/src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png
diff --git a/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png b/src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png
diff --git a/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png b/src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png
diff --git a/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png b/src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png
diff --git a/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png b/src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png
diff --git a/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png b/src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png
diff --git a/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png b/src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png
diff --git a/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png b/src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png
diff --git a/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png b/src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png
diff --git a/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png b/src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png
diff --git a/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png b/src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png
diff --git a/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png b/src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png
diff --git a/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png b/src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png
similarity index 100%
rename from client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png
rename to src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png
diff --git a/client/javascript/test/e2e/Output/publication/htmlReport.html b/src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/htmlReport.html
rename to src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html
diff --git a/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png
diff --git a/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png
diff --git a/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png
diff --git a/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png
diff --git a/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png
diff --git a/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png
diff --git a/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png
diff --git a/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png
diff --git a/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png
diff --git a/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png
diff --git a/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png
diff --git a/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png
diff --git a/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png
diff --git a/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png
diff --git a/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png
diff --git a/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png
diff --git a/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png
similarity index 100%
rename from client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png
rename to src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png
diff --git a/client/javascript/test/e2e/VeremesTest.js b/src/vitis/client/javascript/test/e2e/VeremesTest.js
similarity index 100%
rename from client/javascript/test/e2e/VeremesTest.js
rename to src/vitis/client/javascript/test/e2e/VeremesTest.js
diff --git a/client/javascript/test/e2e/cu_vitis_abonnement.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_abonnement.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat
diff --git a/client/javascript/test/e2e/cu_vitis_ad.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_ad.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat
diff --git a/client/javascript/test/e2e/cu_vitis_categorie.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_categorie.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat
diff --git a/client/javascript/test/e2e/cu_vitis_depot.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_depot.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat
diff --git a/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat
diff --git a/client/javascript/test/e2e/cu_vitis_filter.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_filter.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat
diff --git a/client/javascript/test/e2e/cu_vitis_formulaire.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_formulaire.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat
diff --git a/client/javascript/test/e2e/cu_vitis_import_export.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_import_export.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat
diff --git a/client/javascript/test/e2e/cu_vitis_ip.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_ip.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat
diff --git a/client/javascript/test/e2e/cu_vitis_lot.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_lot.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat
diff --git a/client/javascript/test/e2e/cu_vitis_metadata.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_metadata.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat
diff --git a/client/javascript/test/e2e/cu_vitis_moteurs.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_moteurs.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat
diff --git a/client/javascript/test/e2e/cu_vitis_order.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_order.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_order.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_order.bat
diff --git a/client/javascript/test/e2e/cu_vitis_publication.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_publication.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat
diff --git a/client/javascript/test/e2e/cu_vitis_unicite.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_unicite.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat
diff --git a/client/javascript/test/e2e/cu_vitis_upload.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_upload.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat
diff --git a/client/javascript/test/e2e/cu_vitis_upload_fmw.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_upload_fmw.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat
diff --git a/client/javascript/test/e2e/cu_vitis_upload_zip.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_upload_zip.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat
diff --git a/client/javascript/test/e2e/cu_vitis_user_existant.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_user_existant.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat
diff --git a/client/javascript/test/e2e/cu_vitis_users.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_users.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_users.bat
diff --git a/client/javascript/test/e2e/cu_vitis_users_linux.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_users_linux.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat
diff --git a/client/javascript/test/e2e/cu_vitis_users_speciaux.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_users_speciaux.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat
diff --git a/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat
similarity index 100%
rename from client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat
rename to src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js
diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js
similarity index 100%
rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js
rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js
diff --git a/client/javascript/test/e2e/protractor.conf.abonnement.js b/src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.abonnement.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js
diff --git a/client/javascript/test/e2e/protractor.conf.ad.js b/src/vitis/client/javascript/test/e2e/protractor.conf.ad.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.ad.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.ad.js
diff --git a/client/javascript/test/e2e/protractor.conf.categorie.js b/src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.categorie.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js
diff --git a/client/javascript/test/e2e/protractor.conf.depot.js b/src/vitis/client/javascript/test/e2e/protractor.conf.depot.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.depot.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.depot.js
diff --git a/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js b/src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.fichiers_interdits.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js
diff --git a/client/javascript/test/e2e/protractor.conf.filter.js b/src/vitis/client/javascript/test/e2e/protractor.conf.filter.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.filter.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.filter.js
diff --git a/client/javascript/test/e2e/protractor.conf.formulaire.js b/src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.formulaire.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js
diff --git a/client/javascript/test/e2e/protractor.conf.import.export.js b/src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.import.export.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js
diff --git a/client/javascript/test/e2e/protractor.conf.ip.js b/src/vitis/client/javascript/test/e2e/protractor.conf.ip.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.ip.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.ip.js
diff --git a/client/javascript/test/e2e/protractor.conf.js b/src/vitis/client/javascript/test/e2e/protractor.conf.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.js
diff --git a/client/javascript/test/e2e/protractor.conf.lot.js b/src/vitis/client/javascript/test/e2e/protractor.conf.lot.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.lot.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.lot.js
diff --git a/client/javascript/test/e2e/protractor.conf.metada.js b/src/vitis/client/javascript/test/e2e/protractor.conf.metada.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.metada.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.metada.js
diff --git a/client/javascript/test/e2e/protractor.conf.metadata.js b/src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.metadata.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js
diff --git a/client/javascript/test/e2e/protractor.conf.moteurs.js b/src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.moteurs.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js
diff --git a/client/javascript/test/e2e/protractor.conf.order.js b/src/vitis/client/javascript/test/e2e/protractor.conf.order.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.order.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.order.js
diff --git a/client/javascript/test/e2e/protractor.conf.publication.js b/src/vitis/client/javascript/test/e2e/protractor.conf.publication.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.publication.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.publication.js
diff --git a/client/javascript/test/e2e/protractor.conf.unicite.js b/src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.unicite.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js
diff --git a/client/javascript/test/e2e/protractor.conf.upload.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.upload.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload.js
diff --git a/client/javascript/test/e2e/protractor.conf.upload_fmw.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.upload_fmw.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js
diff --git a/client/javascript/test/e2e/protractor.conf.upload_zip.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.upload_zip.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js
diff --git a/client/javascript/test/e2e/protractor.conf.user_existant.js b/src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.user_existant.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js
diff --git a/client/javascript/test/e2e/protractor.conf.users.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.users.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.users.js
diff --git a/client/javascript/test/e2e/protractor.conf.users_speciaux.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.users_speciaux.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js
diff --git a/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js
diff --git a/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js b/src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js
similarity index 100%
rename from client/javascript/test/e2e/protractor.conf.verrouillage_projet.js
rename to src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js
diff --git a/client/javascript/test/e2e/resource/DATE.gex b/src/vitis/client/javascript/test/e2e/resource/DATE.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/DATE.gex
rename to src/vitis/client/javascript/test/e2e/resource/DATE.gex
diff --git a/client/javascript/test/e2e/resource/DPT.DBF b/src/vitis/client/javascript/test/e2e/resource/DPT.DBF
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.DBF
rename to src/vitis/client/javascript/test/e2e/resource/DPT.DBF
diff --git a/client/javascript/test/e2e/resource/DPT.SHP b/src/vitis/client/javascript/test/e2e/resource/DPT.SHP
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.SHP
rename to src/vitis/client/javascript/test/e2e/resource/DPT.SHP
diff --git a/client/javascript/test/e2e/resource/DPT.SHX b/src/vitis/client/javascript/test/e2e/resource/DPT.SHX
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.SHX
rename to src/vitis/client/javascript/test/e2e/resource/DPT.SHX
diff --git a/client/javascript/test/e2e/resource/DPT.prj b/src/vitis/client/javascript/test/e2e/resource/DPT.prj
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.prj
rename to src/vitis/client/javascript/test/e2e/resource/DPT.prj
diff --git a/client/javascript/test/e2e/resource/DPT.zip b/src/vitis/client/javascript/test/e2e/resource/DPT.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/DPT.zip
rename to src/vitis/client/javascript/test/e2e/resource/DPT.zip
diff --git a/client/javascript/test/e2e/resource/choix_multiple.fmw b/src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/choix_multiple.fmw
rename to src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw
diff --git a/client/javascript/test/e2e/resource/choix_multiple.log b/src/vitis/client/javascript/test/e2e/resource/choix_multiple.log
similarity index 100%
rename from client/javascript/test/e2e/resource/choix_multiple.log
rename to src/vitis/client/javascript/test/e2e/resource/choix_multiple.log
diff --git a/client/javascript/test/e2e/resource/controle_quali.gex b/src/vitis/client/javascript/test/e2e/resource/controle_quali.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/controle_quali.gex
rename to src/vitis/client/javascript/test/e2e/resource/controle_quali.gex
diff --git a/client/javascript/test/e2e/resource/dep dep.zip b/src/vitis/client/javascript/test/e2e/resource/dep dep.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/dep dep.zip
rename to src/vitis/client/javascript/test/e2e/resource/dep dep.zip
diff --git a/client/javascript/test/e2e/resource/depts.zip b/src/vitis/client/javascript/test/e2e/resource/depts.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/depts.zip
rename to src/vitis/client/javascript/test/e2e/resource/depts.zip
diff --git a/client/javascript/test/e2e/resource/dpt2.dbf b/src/vitis/client/javascript/test/e2e/resource/dpt2.dbf
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.dbf
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.dbf
diff --git a/client/javascript/test/e2e/resource/dpt2.prj b/src/vitis/client/javascript/test/e2e/resource/dpt2.prj
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.prj
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.prj
diff --git a/client/javascript/test/e2e/resource/dpt2.shp b/src/vitis/client/javascript/test/e2e/resource/dpt2.shp
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.shp
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.shp
diff --git a/client/javascript/test/e2e/resource/dpt2.shx b/src/vitis/client/javascript/test/e2e/resource/dpt2.shx
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.shx
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.shx
diff --git a/client/javascript/test/e2e/resource/dpt2.zip b/src/vitis/client/javascript/test/e2e/resource/dpt2.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/dpt2.zip
rename to src/vitis/client/javascript/test/e2e/resource/dpt2.zip
diff --git "a/client/javascript/test/e2e/resource/d\303\251p.zip" "b/src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip"
similarity index 100%
rename from "client/javascript/test/e2e/resource/d\303\251p.zip"
rename to "src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip"
diff --git a/client/javascript/test/e2e/resource/ee aa.fmw b/src/vitis/client/javascript/test/e2e/resource/ee aa.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/ee aa.fmw
rename to src/vitis/client/javascript/test/e2e/resource/ee aa.fmw
diff --git a/client/javascript/test/e2e/resource/exemples.gex b/src/vitis/client/javascript/test/e2e/resource/exemples.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/exemples.gex
rename to src/vitis/client/javascript/test/e2e/resource/exemples.gex
diff --git "a/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" "b/src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex"
similarity index 100%
rename from "client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex"
rename to "src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex"
diff --git a/client/javascript/test/e2e/resource/import_export.gex b/src/vitis/client/javascript/test/e2e/resource/import_export.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/import_export.gex
rename to src/vitis/client/javascript/test/e2e/resource/import_export.gex
diff --git a/client/javascript/test/e2e/resource/import_export2.gex b/src/vitis/client/javascript/test/e2e/resource/import_export2.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/import_export2.gex
rename to src/vitis/client/javascript/test/e2e/resource/import_export2.gex
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.dbf b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.dbf
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.prj b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.prj
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.shp b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.shp
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp
diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.shx b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx
similarity index 100%
rename from client/javascript/test/e2e/resource/it3/ARDECHE.shx
rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx
diff --git a/client/javascript/test/e2e/resource/metadata.fmw b/src/vitis/client/javascript/test/e2e/resource/metadata.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/metadata.fmw
rename to src/vitis/client/javascript/test/e2e/resource/metadata.fmw
diff --git a/client/javascript/test/e2e/resource/metadata.log b/src/vitis/client/javascript/test/e2e/resource/metadata.log
similarity index 100%
rename from client/javascript/test/e2e/resource/metadata.log
rename to src/vitis/client/javascript/test/e2e/resource/metadata.log
diff --git a/client/javascript/test/e2e/resource/metadata2.fmw b/src/vitis/client/javascript/test/e2e/resource/metadata2.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/metadata2.fmw
rename to src/vitis/client/javascript/test/e2e/resource/metadata2.fmw
diff --git a/client/javascript/test/e2e/resource/selection_villes.gex b/src/vitis/client/javascript/test/e2e/resource/selection_villes.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/selection_villes.gex
rename to src/vitis/client/javascript/test/e2e/resource/selection_villes.gex
diff --git a/client/javascript/test/e2e/resource/shp2mif.fmw b/src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/shp2mif.fmw
rename to src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw
diff --git a/client/javascript/test/e2e/resource/t_abonnement.fmw b/src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_abonnement.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw
diff --git a/client/javascript/test/e2e/resource/t_formulaire.fmw b/src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_formulaire.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw
diff --git a/client/javascript/test/e2e/resource/t_importparlot1.fmw b/src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_importparlot1.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw
diff --git a/client/javascript/test/e2e/resource/t_importparlot2.fmw b/src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_importparlot2.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw
diff --git a/client/javascript/test/e2e/resource/t_unicite.fmw b/src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/t_unicite.fmw
rename to src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw
diff --git a/client/javascript/test/e2e/resource/test_gex.gex b/src/vitis/client/javascript/test/e2e/resource/test_gex.gex
similarity index 100%
rename from client/javascript/test/e2e/resource/test_gex.gex
rename to src/vitis/client/javascript/test/e2e/resource/test_gex.gex
diff --git a/client/javascript/test/e2e/resource/test_param_choice_villes.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_choice_villes.fmw
rename to src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw
diff --git a/client/javascript/test/e2e/resource/test_param_couleur.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_couleur.fmw
rename to src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw
diff --git a/client/javascript/test/e2e/resource/test_param_date_time.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_date_time.fmw
rename to src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw
diff --git a/client/javascript/test/e2e/resource/test_param_date_time.log b/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log
similarity index 100%
rename from client/javascript/test/e2e/resource/test_param_date_time.log
rename to src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log
diff --git a/client/javascript/test/e2e/resource/villes.zip b/src/vitis/client/javascript/test/e2e/resource/villes.zip
similarity index 100%
rename from client/javascript/test/e2e/resource/villes.zip
rename to src/vitis/client/javascript/test/e2e/resource/villes.zip
diff --git a/client/javascript/test/e2e/resource/vse.jpg b/src/vitis/client/javascript/test/e2e/resource/vse.jpg
similarity index 100%
rename from client/javascript/test/e2e/resource/vse.jpg
rename to src/vitis/client/javascript/test/e2e/resource/vse.jpg
diff --git "a/client/javascript/test/e2e/resource/\303\251\303\240.fmw" "b/src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw"
similarity index 100%
rename from "client/javascript/test/e2e/resource/\303\251\303\240.fmw"
rename to "src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw"
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_abonnement.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_ad.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_ad.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_categorie.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_categorie.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_depot.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_depot.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_filter.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_filter.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_fme_params.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_formulaire.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_import_export.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_import_export.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_ip.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_ip.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_lot.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_lot.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_metadata.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_metadata.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_moteurs.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_order.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_order.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_publication.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_publication.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_unicite.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_unicite.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_upload.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_user_existant.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users_linux.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js
diff --git a/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js
similarity index 100%
rename from client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js
rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js
diff --git a/client/lang/lang-en.json b/src/vitis/client/lang/lang-en.json
similarity index 100%
rename from client/lang/lang-en.json
rename to src/vitis/client/lang/lang-en.json
diff --git a/client/lang/lang-fr.json b/src/vitis/client/lang/lang-fr.json
similarity index 100%
rename from client/lang/lang-fr.json
rename to src/vitis/client/lang/lang-fr.json
diff --git a/client/less/doubleForm.less b/src/vitis/client/less/doubleForm.less
similarity index 100%
rename from client/less/doubleForm.less
rename to src/vitis/client/less/doubleForm.less
diff --git a/client/less/htmlForm.less b/src/vitis/client/less/htmlForm.less
similarity index 100%
rename from client/less/htmlForm.less
rename to src/vitis/client/less/htmlForm.less
diff --git a/client/less/login.less b/src/vitis/client/less/login.less
similarity index 100%
rename from client/less/login.less
rename to src/vitis/client/less/login.less
diff --git a/client/less/main.less b/src/vitis/client/less/main.less
similarity index 100%
rename from client/less/main.less
rename to src/vitis/client/less/main.less
diff --git a/client/less/mobile.less b/src/vitis/client/less/mobile.less
similarity index 100%
rename from client/less/mobile.less
rename to src/vitis/client/less/mobile.less
diff --git a/client/less/sectionForm.less b/src/vitis/client/less/sectionForm.less
similarity index 100%
rename from client/less/sectionForm.less
rename to src/vitis/client/less/sectionForm.less
diff --git a/client/less/simpleForm.less b/src/vitis/client/less/simpleForm.less
similarity index 100%
rename from client/less/simpleForm.less
rename to src/vitis/client/less/simpleForm.less
diff --git a/client/less/workspaceList.less b/src/vitis/client/less/workspaceList.less
similarity index 100%
rename from client/less/workspaceList.less
rename to src/vitis/client/less/workspaceList.less
diff --git a/client/modules/vitis/data/proj.json b/src/vitis/client/modules/vitis/data/proj.json
similarity index 100%
rename from client/modules/vitis/data/proj.json
rename to src/vitis/client/modules/vitis/data/proj.json
diff --git a/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json b/src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json
similarity index 100%
rename from client/modules/vitis/forms/configuration/configuration_vitis_configuration.json
rename to src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json
diff --git a/client/modules/vitis/forms/exploitation/exploitation_exploitation.json b/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json
similarity index 100%
rename from client/modules/vitis/forms/exploitation/exploitation_exploitation.json
rename to src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json
diff --git a/client/modules/vitis/forms/logs/logs_vitis_log.json b/src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json
similarity index 100%
rename from client/modules/vitis/forms/logs/logs_vitis_log.json
rename to src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json
diff --git a/client/modules/vitis/forms/user/user_vitis_user.js b/src/vitis/client/modules/vitis/forms/user/user_vitis_user.js
similarity index 100%
rename from client/modules/vitis/forms/user/user_vitis_user.js
rename to src/vitis/client/modules/vitis/forms/user/user_vitis_user.js
diff --git a/client/modules/vitis/forms/user/user_vitis_user.json b/src/vitis/client/modules/vitis/forms/user/user_vitis_user.json
similarity index 100%
rename from client/modules/vitis/forms/user/user_vitis_user.json
rename to src/vitis/client/modules/vitis/forms/user/user_vitis_user.json
diff --git a/client/modules/vitis/forms/users/active_directory_connection.json b/src/vitis/client/modules/vitis/forms/users/active_directory_connection.json
similarity index 100%
rename from client/modules/vitis/forms/users/active_directory_connection.json
rename to src/vitis/client/modules/vitis/forms/users/active_directory_connection.json
diff --git a/client/modules/vitis/forms/users/search_active_directory_group.json b/src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json
similarity index 100%
rename from client/modules/vitis/forms/users/search_active_directory_group.json
rename to src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json
diff --git a/client/modules/vitis/forms/users/search_active_directory_person.json b/src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json
similarity index 100%
rename from client/modules/vitis/forms/users/search_active_directory_person.json
rename to src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json
diff --git a/client/modules/vitis/forms/users/users_vitis_billinggroup.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_billinggroup.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json
diff --git a/client/modules/vitis/forms/users/users_vitis_domain.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_domain.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json
diff --git a/client/modules/vitis/forms/users/users_vitis_group.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_group.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_group.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_group.json
diff --git a/client/modules/vitis/forms/users/users_vitis_privilege.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_privilege.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json
diff --git a/client/modules/vitis/forms/users/users_vitis_users.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_users.json
similarity index 100%
rename from client/modules/vitis/forms/users/users_vitis_users.json
rename to src/vitis/client/modules/vitis/forms/users/users_vitis_users.json
diff --git a/client/modules/vitis/images/administrator.png b/src/vitis/client/modules/vitis/images/administrator.png
similarity index 100%
rename from client/modules/vitis/images/administrator.png
rename to src/vitis/client/modules/vitis/images/administrator.png
diff --git a/client/modules/vitis/images/button_green.gif b/src/vitis/client/modules/vitis/images/button_green.gif
similarity index 100%
rename from client/modules/vitis/images/button_green.gif
rename to src/vitis/client/modules/vitis/images/button_green.gif
diff --git a/client/modules/vitis/images/button_red.gif b/src/vitis/client/modules/vitis/images/button_red.gif
similarity index 100%
rename from client/modules/vitis/images/button_red.gif
rename to src/vitis/client/modules/vitis/images/button_red.gif
diff --git a/client/modules/vitis/images/user.png b/src/vitis/client/modules/vitis/images/user.png
similarity index 100%
rename from client/modules/vitis/images/user.png
rename to src/vitis/client/modules/vitis/images/user.png
diff --git a/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/logsCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/logsCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js
diff --git a/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js
similarity index 100%
rename from client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js
rename to src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js
diff --git a/client/modules/vitis/javascript/deps.js b/src/vitis/client/modules/vitis/javascript/deps.js
similarity index 100%
rename from client/modules/vitis/javascript/deps.js
rename to src/vitis/client/modules/vitis/javascript/deps.js
diff --git a/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js
diff --git a/client/modules/vitis/javascript/directives/logsDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/logsDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js
diff --git a/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js
diff --git a/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/versionConfigurationDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js
diff --git a/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/webServiceHelpDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js
diff --git a/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js
similarity index 100%
rename from client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js
rename to src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js
diff --git a/client/modules/vitis/javascript/script_module.js b/src/vitis/client/modules/vitis/javascript/script_module.js
similarity index 100%
rename from client/modules/vitis/javascript/script_module.js
rename to src/vitis/client/modules/vitis/javascript/script_module.js
diff --git a/client/modules/vitis/lang/lang-en.json b/src/vitis/client/modules/vitis/lang/lang-en.json
similarity index 100%
rename from client/modules/vitis/lang/lang-en.json
rename to src/vitis/client/modules/vitis/lang/lang-en.json
diff --git a/client/modules/vitis/lang/lang-fr.json b/src/vitis/client/modules/vitis/lang/lang-fr.json
similarity index 100%
rename from client/modules/vitis/lang/lang-fr.json
rename to src/vitis/client/modules/vitis/lang/lang-fr.json
diff --git a/client/modules/vitis/less/activeDirectoryTree.less b/src/vitis/client/modules/vitis/less/activeDirectoryTree.less
similarity index 100%
rename from client/modules/vitis/less/activeDirectoryTree.less
rename to src/vitis/client/modules/vitis/less/activeDirectoryTree.less
diff --git a/client/modules/vitis/less/logs.less b/src/vitis/client/modules/vitis/less/logs.less
similarity index 100%
rename from client/modules/vitis/less/logs.less
rename to src/vitis/client/modules/vitis/less/logs.less
diff --git a/client/modules/vitis/less/main.less b/src/vitis/client/modules/vitis/less/main.less
similarity index 100%
rename from client/modules/vitis/less/main.less
rename to src/vitis/client/modules/vitis/less/main.less
diff --git a/client/modules/vitis/less/phpInfoConfiguration.less b/src/vitis/client/modules/vitis/less/phpInfoConfiguration.less
similarity index 100%
rename from client/modules/vitis/less/phpInfoConfiguration.less
rename to src/vitis/client/modules/vitis/less/phpInfoConfiguration.less
diff --git a/client/modules/vitis/less/sharedDirectory.less b/src/vitis/client/modules/vitis/less/sharedDirectory.less
similarity index 100%
rename from client/modules/vitis/less/sharedDirectory.less
rename to src/vitis/client/modules/vitis/less/sharedDirectory.less
diff --git a/client/modules/vitis/less/updateConfiguration.less b/src/vitis/client/modules/vitis/less/updateConfiguration.less
similarity index 100%
rename from client/modules/vitis/less/updateConfiguration.less
rename to src/vitis/client/modules/vitis/less/updateConfiguration.less
diff --git a/client/modules/vitis/less/users.less b/src/vitis/client/modules/vitis/less/users.less
similarity index 100%
rename from client/modules/vitis/less/users.less
rename to src/vitis/client/modules/vitis/less/users.less
diff --git a/client/modules/vitis/less/versionConfiguration.less b/src/vitis/client/modules/vitis/less/versionConfiguration.less
similarity index 100%
rename from client/modules/vitis/less/versionConfiguration.less
rename to src/vitis/client/modules/vitis/less/versionConfiguration.less
diff --git a/client/modules/vitis/less/webServiceHelp.less b/src/vitis/client/modules/vitis/less/webServiceHelp.less
similarity index 100%
rename from client/modules/vitis/less/webServiceHelp.less
rename to src/vitis/client/modules/vitis/less/webServiceHelp.less
diff --git a/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html b/src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html
similarity index 100%
rename from client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html
rename to src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html
diff --git a/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html b/src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html
similarity index 100%
rename from client/modules/vitis/templates/activeDirectoryTreeRightTpl.html
rename to src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html
diff --git a/client/modules/vitis/templates/logsLeftTpl.html b/src/vitis/client/modules/vitis/templates/logsLeftTpl.html
similarity index 100%
rename from client/modules/vitis/templates/logsLeftTpl.html
rename to src/vitis/client/modules/vitis/templates/logsLeftTpl.html
diff --git a/client/modules/vitis/templates/logsRightTpl.html b/src/vitis/client/modules/vitis/templates/logsRightTpl.html
similarity index 100%
rename from client/modules/vitis/templates/logsRightTpl.html
rename to src/vitis/client/modules/vitis/templates/logsRightTpl.html
diff --git a/client/modules/vitis/templates/phpInfoConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/phpInfoConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html
diff --git a/client/modules/vitis/templates/updateConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/updateConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html
diff --git a/client/modules/vitis/templates/versionConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/versionConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html
diff --git a/client/modules/vitis/templates/webServiceHelpTpl.html b/src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html
similarity index 100%
rename from client/modules/vitis/templates/webServiceHelpTpl.html
rename to src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html
diff --git a/client/modules/vitis/templates/websocketConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html
similarity index 100%
rename from client/modules/vitis/templates/websocketConfigurationTpl.html
rename to src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html
diff --git a/client/templates/clientDocumentationTpl.html b/src/vitis/client/templates/clientDocumentationTpl.html
similarity index 100%
rename from client/templates/clientDocumentationTpl.html
rename to src/vitis/client/templates/clientDocumentationTpl.html
diff --git a/client/templates/creditsTpl.html b/src/vitis/client/templates/creditsTpl.html
similarity index 100%
rename from client/templates/creditsTpl.html
rename to src/vitis/client/templates/creditsTpl.html
diff --git a/client/templates/doubleFormTpl.html b/src/vitis/client/templates/doubleFormTpl.html
similarity index 100%
rename from client/templates/doubleFormTpl.html
rename to src/vitis/client/templates/doubleFormTpl.html
diff --git a/client/templates/formTpl.html b/src/vitis/client/templates/formTpl.html
similarity index 100%
rename from client/templates/formTpl.html
rename to src/vitis/client/templates/formTpl.html
diff --git a/client/templates/loginTpl.html b/src/vitis/client/templates/loginTpl.html
similarity index 100%
rename from client/templates/loginTpl.html
rename to src/vitis/client/templates/loginTpl.html
diff --git a/client/templates/mainTpl.html b/src/vitis/client/templates/mainTpl.html
similarity index 100%
rename from client/templates/mainTpl.html
rename to src/vitis/client/templates/mainTpl.html
diff --git a/client/templates/sectionFormTpl.html b/src/vitis/client/templates/sectionFormTpl.html
similarity index 100%
rename from client/templates/sectionFormTpl.html
rename to src/vitis/client/templates/sectionFormTpl.html
diff --git a/client/templates/simpleFormTpl.html b/src/vitis/client/templates/simpleFormTpl.html
similarity index 100%
rename from client/templates/simpleFormTpl.html
rename to src/vitis/client/templates/simpleFormTpl.html
diff --git a/client/templates/uiGridActionTpl.html b/src/vitis/client/templates/uiGridActionTpl.html
similarity index 100%
rename from client/templates/uiGridActionTpl.html
rename to src/vitis/client/templates/uiGridActionTpl.html
diff --git a/client/templates/uiGridPaginationTpl.html b/src/vitis/client/templates/uiGridPaginationTpl.html
similarity index 100%
rename from client/templates/uiGridPaginationTpl.html
rename to src/vitis/client/templates/uiGridPaginationTpl.html
diff --git a/client/templates/workspaceListTpl.html b/src/vitis/client/templates/workspaceListTpl.html
similarity index 100%
rename from client/templates/workspaceListTpl.html
rename to src/vitis/client/templates/workspaceListTpl.html
diff --git a/vas/doc/composer.json b/src/vitis/vas/doc/composer.json
similarity index 100%
rename from vas/doc/composer.json
rename to src/vitis/vas/doc/composer.json
diff --git a/vas/doc/composer.lock b/src/vitis/vas/doc/composer.lock
similarity index 100%
rename from vas/doc/composer.lock
rename to src/vitis/vas/doc/composer.lock
diff --git a/src/vitis/vas/doc/css/reset.css b/src/vitis/vas/doc/css/reset.css
new file mode 100755
index 0000000000000000000000000000000000000000..d1ff69196d0e05de55efcec26d0842367495300d
--- /dev/null
+++ b/src/vitis/vas/doc/css/reset.css
@@ -0,0 +1,35 @@
+/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
+   margin: 0;
+  padding: 0;
+  border: 0;
+  font-size: 100%;
+  font: inherit;
+  vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+body {
+  line-height: 1;
+}
+ol,
+ul {
+  list-style: none;
+}
+blockquote,
+q {
+  quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+  content: '';
+  content: none;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
diff --git a/src/vitis/vas/doc/css/screen.css b/src/vitis/vas/doc/css/screen.css
new file mode 100755
index 0000000000000000000000000000000000000000..fd692920850047064bf82cfa5d53f51f358a0421
--- /dev/null
+++ b/src/vitis/vas/doc/css/screen.css
@@ -0,0 +1,1221 @@
+/* Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> */
+.swagger-section pre code {
+  display: block;
+  padding: 0.5em;
+  background: #F0F0F0;
+}
+.swagger-section pre code,
+.swagger-section pre .subst,
+.swagger-section pre .tag .title,
+.swagger-section pre .lisp .title,
+.swagger-section pre .clojure .built_in,
+.swagger-section pre .nginx .title {
+  color: black;
+}
+.swagger-section pre .string,
+.swagger-section pre .title,
+.swagger-section pre .constant,
+.swagger-section pre .parent,
+.swagger-section pre .tag .value,
+.swagger-section pre .rules .value,
+.swagger-section pre .rules .value .number,
+.swagger-section pre .preprocessor,
+.swagger-section pre .ruby .symbol,
+.swagger-section pre .ruby .symbol .string,
+.swagger-section pre .aggregate,
+.swagger-section pre .template_tag,
+.swagger-section pre .django .variable,
+.swagger-section pre .smalltalk .class,
+.swagger-section pre .addition,
+.swagger-section pre .flow,
+.swagger-section pre .stream,
+.swagger-section pre .bash .variable,
+.swagger-section pre .apache .tag,
+.swagger-section pre .apache .cbracket,
+.swagger-section pre .tex .command,
+.swagger-section pre .tex .special,
+.swagger-section pre .erlang_repl .function_or_atom,
+.swagger-section pre .markdown .header {
+  color: #800;
+}
+.swagger-section pre .comment,
+.swagger-section pre .annotation,
+.swagger-section pre .template_comment,
+.swagger-section pre .diff .header,
+.swagger-section pre .chunk,
+.swagger-section pre .markdown .blockquote {
+  color: #888;
+}
+.swagger-section pre .number,
+.swagger-section pre .date,
+.swagger-section pre .regexp,
+.swagger-section pre .literal,
+.swagger-section pre .smalltalk .symbol,
+.swagger-section pre .smalltalk .char,
+.swagger-section pre .go .constant,
+.swagger-section pre .change,
+.swagger-section pre .markdown .bullet,
+.swagger-section pre .markdown .link_url {
+  color: #080;
+}
+.swagger-section pre .label,
+.swagger-section pre .javadoc,
+.swagger-section pre .ruby .string,
+.swagger-section pre .decorator,
+.swagger-section pre .filter .argument,
+.swagger-section pre .localvars,
+.swagger-section pre .array,
+.swagger-section pre .attr_selector,
+.swagger-section pre .important,
+.swagger-section pre .pseudo,
+.swagger-section pre .pi,
+.swagger-section pre .doctype,
+.swagger-section pre .deletion,
+.swagger-section pre .envvar,
+.swagger-section pre .shebang,
+.swagger-section pre .apache .sqbracket,
+.swagger-section pre .nginx .built_in,
+.swagger-section pre .tex .formula,
+.swagger-section pre .erlang_repl .reserved,
+.swagger-section pre .prompt,
+.swagger-section pre .markdown .link_label,
+.swagger-section pre .vhdl .attribute,
+.swagger-section pre .clojure .attribute,
+.swagger-section pre .coffeescript .property {
+  color: #8888ff;
+}
+.swagger-section pre .keyword,
+.swagger-section pre .id,
+.swagger-section pre .phpdoc,
+.swagger-section pre .title,
+.swagger-section pre .built_in,
+.swagger-section pre .aggregate,
+.swagger-section pre .css .tag,
+.swagger-section pre .javadoctag,
+.swagger-section pre .phpdoc,
+.swagger-section pre .yardoctag,
+.swagger-section pre .smalltalk .class,
+.swagger-section pre .winutils,
+.swagger-section pre .bash .variable,
+.swagger-section pre .apache .tag,
+.swagger-section pre .go .typename,
+.swagger-section pre .tex .command,
+.swagger-section pre .markdown .strong,
+.swagger-section pre .request,
+.swagger-section pre .status {
+  font-weight: bold;
+}
+.swagger-section pre .markdown .emphasis {
+  font-style: italic;
+}
+.swagger-section pre .nginx .built_in {
+  font-weight: normal;
+}
+.swagger-section pre .coffeescript .javascript,
+.swagger-section pre .javascript .xml,
+.swagger-section pre .tex .formula,
+.swagger-section pre .xml .javascript,
+.swagger-section pre .xml .vbscript,
+.swagger-section pre .xml .css,
+.swagger-section pre .xml .cdata {
+  opacity: 0.5;
+}
+.swagger-section .swagger-ui-wrap {
+  line-height: 1;
+  font-family: "Droid Sans", sans-serif;
+  max-width: 960px;
+  /* margin-left: auto; */
+  margin-right: auto;
+}
+.swagger-section .swagger-ui-wrap b,
+.swagger-section .swagger-ui-wrap strong {
+  font-family: "Droid Sans", sans-serif;
+  font-weight: bold;
+}
+.swagger-section .swagger-ui-wrap q,
+.swagger-section .swagger-ui-wrap blockquote {
+  quotes: none;
+}
+.swagger-section .swagger-ui-wrap p {
+  line-height: 1.4em;
+  padding: 0 0 10px;
+  color: #333333;
+}
+.swagger-section .swagger-ui-wrap q:before,
+.swagger-section .swagger-ui-wrap q:after,
+.swagger-section .swagger-ui-wrap blockquote:before,
+.swagger-section .swagger-ui-wrap blockquote:after {
+  content: none;
+}
+.swagger-section .swagger-ui-wrap .heading_with_menu h1,
+.swagger-section .swagger-ui-wrap .heading_with_menu h2,
+.swagger-section .swagger-ui-wrap .heading_with_menu h3,
+.swagger-section .swagger-ui-wrap .heading_with_menu h4,
+.swagger-section .swagger-ui-wrap .heading_with_menu h5,
+.swagger-section .swagger-ui-wrap .heading_with_menu h6 {
+  display: block;
+  clear: none;
+  float: left;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  width: 60%;
+}
+.swagger-section .swagger-ui-wrap table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+.swagger-section .swagger-ui-wrap table thead tr th {
+  padding: 5px;
+  font-size: 0.9em;
+  color: #666666;
+  border-bottom: 1px solid #999999;
+}
+.swagger-section .swagger-ui-wrap table tbody tr:last-child td {
+  border-bottom: none;
+}
+.swagger-section .swagger-ui-wrap table tbody tr.offset {
+  background-color: #f0f0f0;
+}
+.swagger-section .swagger-ui-wrap table tbody tr td {
+  padding: 6px;
+  font-size: 0.9em;
+  border-bottom: 1px solid #cccccc;
+  vertical-align: top;
+  line-height: 1.3em;
+}
+.swagger-section .swagger-ui-wrap ol {
+  margin: 0px 0 10px;
+  padding: 0 0 0 18px;
+  list-style-type: decimal;
+}
+.swagger-section .swagger-ui-wrap ol li {
+  padding: 5px 0px;
+  font-size: 0.9em;
+  color: #333333;
+}
+.swagger-section .swagger-ui-wrap ol,
+.swagger-section .swagger-ui-wrap ul {
+  list-style: none;
+}
+.swagger-section .swagger-ui-wrap h1 a,
+.swagger-section .swagger-ui-wrap h2 a,
+.swagger-section .swagger-ui-wrap h3 a,
+.swagger-section .swagger-ui-wrap h4 a,
+.swagger-section .swagger-ui-wrap h5 a,
+.swagger-section .swagger-ui-wrap h6 a {
+  text-decoration: none;
+}
+.swagger-section .swagger-ui-wrap h1 a:hover,
+.swagger-section .swagger-ui-wrap h2 a:hover,
+.swagger-section .swagger-ui-wrap h3 a:hover,
+.swagger-section .swagger-ui-wrap h4 a:hover,
+.swagger-section .swagger-ui-wrap h5 a:hover,
+.swagger-section .swagger-ui-wrap h6 a:hover {
+  text-decoration: underline;
+}
+.swagger-section .swagger-ui-wrap h1 span.divider,
+.swagger-section .swagger-ui-wrap h2 span.divider,
+.swagger-section .swagger-ui-wrap h3 span.divider,
+.swagger-section .swagger-ui-wrap h4 span.divider,
+.swagger-section .swagger-ui-wrap h5 span.divider,
+.swagger-section .swagger-ui-wrap h6 span.divider {
+  color: #aaaaaa;
+}
+.swagger-section .swagger-ui-wrap a {
+  color: #547f00;
+}
+.swagger-section .swagger-ui-wrap a img {
+  border: none;
+}
+.swagger-section .swagger-ui-wrap article,
+.swagger-section .swagger-ui-wrap aside,
+.swagger-section .swagger-ui-wrap details,
+.swagger-section .swagger-ui-wrap figcaption,
+.swagger-section .swagger-ui-wrap figure,
+.swagger-section .swagger-ui-wrap footer,
+.swagger-section .swagger-ui-wrap header,
+.swagger-section .swagger-ui-wrap hgroup,
+.swagger-section .swagger-ui-wrap menu,
+.swagger-section .swagger-ui-wrap nav,
+.swagger-section .swagger-ui-wrap section,
+.swagger-section .swagger-ui-wrap summary {
+  display: block;
+}
+.swagger-section .swagger-ui-wrap pre {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  background-color: #fcf6db;
+  border: 1px solid #e5e0c6;
+  padding: 10px;
+}
+.swagger-section .swagger-ui-wrap pre code {
+  line-height: 1.6em;
+  background: none;
+}
+.swagger-section .swagger-ui-wrap .content > .content-type > div > label {
+  clear: both;
+  display: block;
+  color: #0F6AB4;
+  font-size: 1.1em;
+  margin: 0;
+  padding: 15px 0 5px;
+}
+.swagger-section .swagger-ui-wrap .content pre {
+  font-size: 12px;
+  margin-top: 5px;
+  padding: 5px;
+}
+.swagger-section .swagger-ui-wrap .icon-btn {
+  cursor: pointer;
+}
+.swagger-section .swagger-ui-wrap .info_title {
+  padding-bottom: 10px;
+  font-weight: bold;
+  font-size: 25px;
+}
+.swagger-section .swagger-ui-wrap p.big,
+.swagger-section .swagger-ui-wrap div.big p {
+  font-size: 1em;
+  margin-bottom: 10px;
+}
+.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input,
+.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input,
+.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea,
+.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input {
+  width: 500px !important;
+}
+.swagger-section .swagger-ui-wrap .info_license {
+  padding-bottom: 5px;
+}
+.swagger-section .swagger-ui-wrap .info_tos {
+  padding-bottom: 5px;
+}
+.swagger-section .swagger-ui-wrap .message-fail {
+  color: #cc0000;
+}
+.swagger-section .swagger-ui-wrap .info_contact {
+  padding-bottom: 5px;
+}
+.swagger-section .swagger-ui-wrap .info_description {
+  padding-bottom: 10px;
+  font-size: 15px;
+}
+.swagger-section .swagger-ui-wrap .markdown ol li,
+.swagger-section .swagger-ui-wrap .markdown ul li {
+  padding: 3px 0px;
+  line-height: 1.4em;
+  color: #333333;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input,
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input,
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input {
+  display: block;
+  padding: 4px;
+  width: auto;
+  clear: both;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title,
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title,
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title {
+  font-size: 1.3em;
+}
+.swagger-section .swagger-ui-wrap table.fullwidth {
+  width: 100%;
+}
+.swagger-section .swagger-ui-wrap .model-signature {
+  font-family: "Droid Sans", sans-serif;
+  font-size: 1em;
+  line-height: 1.5em;
+}
+.swagger-section .swagger-ui-wrap .model-signature .signature-nav a {
+  text-decoration: none;
+  color: #AAA;
+}
+.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover {
+  text-decoration: underline;
+  color: black;
+}
+.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected {
+  color: black;
+  text-decoration: none;
+}
+.swagger-section .swagger-ui-wrap .model-signature .propType {
+  color: #5555aa;
+}
+.swagger-section .swagger-ui-wrap .model-signature pre:hover {
+  background-color: #ffffdd;
+}
+.swagger-section .swagger-ui-wrap .model-signature pre {
+  font-size: .85em;
+  line-height: 1.2em;
+  overflow: auto;
+  max-height: 200px;
+  cursor: pointer;
+}
+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav {
+  display: block;
+  margin: 0;
+  padding: 0;
+}
+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child {
+  padding-right: 0;
+  border-right: none;
+}
+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li {
+  float: left;
+  margin: 0 5px 5px 0;
+  padding: 2px 5px 2px 0;
+  border-right: 1px solid #ddd;
+}
+.swagger-section .swagger-ui-wrap .model-signature .propOpt {
+  color: #555;
+}
+.swagger-section .swagger-ui-wrap .model-signature .snippet small {
+  font-size: 0.75em;
+}
+.swagger-section .swagger-ui-wrap .model-signature .propOptKey {
+  font-style: italic;
+}
+.swagger-section .swagger-ui-wrap .model-signature .description .strong {
+  font-weight: bold;
+  color: #000;
+  font-size: .9em;
+}
+.swagger-section .swagger-ui-wrap .model-signature .description div {
+  font-size: 0.9em;
+  line-height: 1.5em;
+  margin-left: 1em;
+}
+.swagger-section .swagger-ui-wrap .model-signature .description .stronger {
+  font-weight: bold;
+  color: #000;
+}
+.swagger-section .swagger-ui-wrap .model-signature .propName {
+  font-weight: bold;
+}
+.swagger-section .swagger-ui-wrap .model-signature .signature-container {
+  clear: both;
+}
+.swagger-section .swagger-ui-wrap .body-textarea {
+  width: 300px;
+  height: 100px;
+  border: 1px solid #aaa;
+}
+.swagger-section .swagger-ui-wrap .markdown p code,
+.swagger-section .swagger-ui-wrap .markdown li code {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  background-color: #f0f0f0;
+  color: black;
+  padding: 1px 3px;
+}
+.swagger-section .swagger-ui-wrap .required {
+  font-weight: bold;
+}
+.swagger-section .swagger-ui-wrap input.parameter {
+  width: 300px;
+  border: 1px solid #aaa;
+}
+.swagger-section .swagger-ui-wrap h1 {
+  color: black;
+  font-size: 1.5em;
+  line-height: 1.3em;
+  padding: 10px 0 10px 0;
+  font-family: "Droid Sans", sans-serif;
+  font-weight: bold;
+}
+.swagger-section .swagger-ui-wrap .heading_with_menu {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+}
+.swagger-section .swagger-ui-wrap .heading_with_menu ul {
+  display: block;
+  clear: none;
+  float: right;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  margin-top: 10px;
+}
+.swagger-section .swagger-ui-wrap h2 {
+  color: black;
+  font-size: 1.3em;
+  padding: 10px 0 10px 0;
+}
+.swagger-section .swagger-ui-wrap h2 a {
+  color: black;
+}
+.swagger-section .swagger-ui-wrap h2 span.sub {
+  font-size: 0.7em;
+  color: #999999;
+  font-style: italic;
+}
+.swagger-section .swagger-ui-wrap h2 span.sub a {
+  color: #777777;
+}
+.swagger-section .swagger-ui-wrap span.weak {
+  color: #666666;
+}
+.swagger-section .swagger-ui-wrap .message-success {
+  color: #89BF04;
+}
+.swagger-section .swagger-ui-wrap caption,
+.swagger-section .swagger-ui-wrap th,
+.swagger-section .swagger-ui-wrap td {
+  text-align: left;
+  font-weight: normal;
+  vertical-align: middle;
+}
+.swagger-section .swagger-ui-wrap .code {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea {
+  font-family: "Droid Sans", sans-serif;
+  height: 250px;
+  padding: 4px;
+  display: block;
+  clear: both;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select {
+  display: block;
+  clear: both;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label {
+  display: block;
+  float: left;
+  clear: none;
+  margin: 0;
+  padding: 0;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input {
+  display: block;
+  float: left;
+  clear: none;
+  margin: 0 5px 0 0;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label {
+  color: black;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label {
+  display: block;
+  clear: both;
+  width: auto;
+  padding: 0 0 3px;
+  color: #666666;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr {
+  padding-left: 3px;
+  color: #888888;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints {
+  margin-left: 0;
+  font-style: italic;
+  font-size: 0.9em;
+  margin: 0;
+}
+.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons {
+  margin: 0;
+  padding: 0;
+}
+.swagger-section .swagger-ui-wrap span.blank,
+.swagger-section .swagger-ui-wrap span.empty {
+  color: #888888;
+  font-style: italic;
+}
+.swagger-section .swagger-ui-wrap .markdown h3 {
+  color: #547f00;
+}
+.swagger-section .swagger-ui-wrap .markdown h4 {
+  color: #666666;
+}
+.swagger-section .swagger-ui-wrap .markdown pre {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  background-color: #fcf6db;
+  border: 1px solid #e5e0c6;
+  padding: 10px;
+  margin: 0 0 10px 0;
+}
+.swagger-section .swagger-ui-wrap .markdown pre code {
+  line-height: 1.6em;
+}
+.swagger-section .swagger-ui-wrap div.gist {
+  margin: 20px 0 25px 0 !important;
+}
+.swagger-section .swagger-ui-wrap ul#resources {
+  font-family: "Droid Sans", sans-serif;
+  font-size: 0.9em;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource {
+  border-bottom: 1px solid #dddddd;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a,
+.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a {
+  color: black;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a,
+.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a {
+  color: #555555;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child {
+  border-bottom: none;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading {
+  border: 1px solid transparent;
+  float: none;
+  /* clear: both; */
+  overflow: hidden;
+  display: block;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options {
+  overflow: hidden;
+  padding: 0;
+  display: block;
+  clear: none;
+  float: right;
+  margin: 14px 10px 0 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li {
+  float: left;
+  clear: none;
+  margin: 0;
+  padding: 2px 10px;
+  border-right: 1px solid #dddddd;
+  color: #666666;
+  font-size: 0.9em;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a {
+  color: #aaaaaa;
+  text-decoration: none;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover {
+  text-decoration: underline;
+  color: black;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover,
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active,
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active {
+  text-decoration: underline;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first {
+  padding-left: 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last {
+  padding-right: 0;
+  border-right: none;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first {
+  padding-left: 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 {
+  color: #999999;
+  padding-left: 0;
+  display: block;
+  clear: none;
+  float: left;
+  font-family: "Droid Sans", sans-serif;
+  font-weight: bold;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a {
+  color: #999999;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover {
+  color: black;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation {
+  float: none;
+  /* clear: both; */
+  overflow: hidden;
+  display: block;
+  margin: 0 0 10px;
+  padding: 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+  margin: 0;
+  padding: 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 {
+  display: block;
+  clear: none;
+  float: left;
+  width: auto;
+  margin: 0;
+  padding: 0;
+  line-height: 1.1em;
+  color: black;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path {
+  padding-left: 10px;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a {
+  color: black;
+  text-decoration: none;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover {
+  text-decoration: underline;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a {
+  text-transform: uppercase;
+  text-decoration: none;
+  color: white;
+  display: inline-block;
+  width: 50px;
+  font-size: 0.7em;
+  text-align: center;
+  padding: 7px 0 4px;
+  -moz-border-radius: 2px;
+  -webkit-border-radius: 2px;
+  -o-border-radius: 2px;
+  -ms-border-radius: 2px;
+  -khtml-border-radius: 2px;
+  border-radius: 2px;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span {
+  margin: 0;
+  padding: 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options {
+  overflow: hidden;
+  padding: 0;
+  display: block;
+  clear: none;
+  float: right;
+  margin: 6px 10px 0 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li {
+  float: left;
+  clear: none;
+  margin: 0;
+  padding: 2px 10px;
+  font-size: 0.9em;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a {
+  text-decoration: none;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access {
+  color: black;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content {
+  border-top: none;
+  padding: 10px;
+  -moz-border-radius-bottomleft: 6px;
+  -webkit-border-bottom-left-radius: 6px;
+  -o-border-bottom-left-radius: 6px;
+  -ms-border-bottom-left-radius: 6px;
+  -khtml-border-bottom-left-radius: 6px;
+  border-bottom-left-radius: 6px;
+  -moz-border-radius-bottomright: 6px;
+  -webkit-border-bottom-right-radius: 6px;
+  -o-border-bottom-right-radius: 6px;
+  -ms-border-bottom-right-radius: 6px;
+  -khtml-border-bottom-right-radius: 6px;
+  border-bottom-right-radius: 6px;
+  margin: 0 0 20px;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 {
+  font-size: 1.1em;
+  margin: 0;
+  padding: 15px 0 5px;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a {
+  padding: 4px 0 0 10px;
+  display: inline-block;
+  font-size: 0.9em;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header img {
+  display: block;
+  clear: none;
+  float: right;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit {
+  display: block;
+  clear: none;
+  float: left;
+  padding: 6px 8px;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error {
+  outline: 2px solid black;
+  outline-color: #cc0000;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  padding: 10px;
+  font-size: 0.9em;
+  max-height: 400px;
+  overflow-y: auto;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading {
+  background-color: #f9f2e9;
+  border: 1px solid #f0e0ca;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a {
+  background-color: #c5862b;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #f0e0ca;
+  color: #c5862b;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a {
+  color: #c5862b;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content {
+  background-color: #faf5ee;
+  border: 1px solid #f0e0ca;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 {
+  color: #c5862b;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a {
+  color: #dcb67f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading {
+  background-color: #fcffcd;
+  border: 1px solid black;
+  border-color: #ffd20f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a {
+  text-transform: uppercase;
+  background-color: #ffd20f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #ffd20f;
+  color: #ffd20f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a {
+  color: #ffd20f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content {
+  background-color: #fcffcd;
+  border: 1px solid black;
+  border-color: #ffd20f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 {
+  color: #ffd20f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a {
+  color: #6fc992;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading {
+  background-color: #f5e8e8;
+  border: 1px solid #e8c6c7;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a {
+  text-transform: uppercase;
+  background-color: #a41e22;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #e8c6c7;
+  color: #a41e22;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a {
+  color: #a41e22;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content {
+  background-color: #f7eded;
+  border: 1px solid #e8c6c7;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 {
+  color: #a41e22;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a {
+  color: #c8787a;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading {
+  background-color: #e7f6ec;
+  border: 1px solid #c3e8d1;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a {
+  background-color: #10a54a;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #c3e8d1;
+  color: #10a54a;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a {
+  color: #10a54a;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content {
+  background-color: #ebf7f0;
+  border: 1px solid #c3e8d1;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 {
+  color: #10a54a;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a {
+  color: #6fc992;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading {
+  background-color: #FCE9E3;
+  border: 1px solid #F5D5C3;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a {
+  background-color: #D38042;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #f0cecb;
+  color: #D38042;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a {
+  color: #D38042;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content {
+  background-color: #faf0ef;
+  border: 1px solid #f0cecb;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 {
+  color: #D38042;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a {
+  color: #dcb67f;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading {
+  background-color: #e7f0f7;
+  border: 1px solid #c3d9ec;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a {
+  background-color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #c3d9ec;
+  color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a {
+  color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content {
+  background-color: #ebf3f9;
+  border: 1px solid #c3d9ec;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 {
+  color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a {
+  color: #6fa5d2;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading {
+  background-color: #e7f0f7;
+  border: 1px solid #c3d9ec;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a {
+  background-color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #c3d9ec;
+  color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a {
+  color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content {
+  background-color: #ebf3f9;
+  border: 1px solid #c3d9ec;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4 {
+  color: #0f6ab4;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a {
+  color: #6fa5d2;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content {
+  border-top: none;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last {
+  padding-right: 0;
+  border-right: none;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active {
+  text-decoration: underline;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first {
+  padding-left: 0;
+}
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child,
+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first {
+  padding-left: 0;
+}
+.swagger-section .swagger-ui-wrap p#colophon {
+  margin: 0 15px 40px 15px;
+  padding: 10px 0;
+  font-size: 0.8em;
+  border-top: 1px solid #dddddd;
+  font-family: "Droid Sans", sans-serif;
+  color: #999999;
+  font-style: italic;
+}
+.swagger-section .swagger-ui-wrap p#colophon a {
+  text-decoration: none;
+  color: #547f00;
+}
+.swagger-section .swagger-ui-wrap h3 {
+  color: black;
+  font-size: 1.1em;
+  padding: 10px 0 10px 0;
+}
+.swagger-section .swagger-ui-wrap .markdown ol,
+.swagger-section .swagger-ui-wrap .markdown ul {
+  font-family: "Droid Sans", sans-serif;
+  margin: 5px 0 10px;
+  padding: 0 0 0 18px;
+  list-style-type: disc;
+}
+.swagger-section .swagger-ui-wrap form.form_box {
+  background-color: #ebf3f9;
+  border: 1px solid #c3d9ec;
+  padding: 10px;
+}
+.swagger-section .swagger-ui-wrap form.form_box label {
+  color: #0f6ab4 !important;
+}
+.swagger-section .swagger-ui-wrap form.form_box input[type=submit] {
+  display: block;
+  padding: 10px;
+}
+.swagger-section .swagger-ui-wrap form.form_box p.weak {
+  font-size: 0.8em;
+}
+.swagger-section .swagger-ui-wrap form.form_box p {
+  font-size: 0.9em;
+  padding: 0 0 15px;
+  color: #7e7b6d;
+}
+.swagger-section .swagger-ui-wrap form.form_box p a {
+  color: #646257;
+}
+.swagger-section .swagger-ui-wrap form.form_box p strong {
+  color: black;
+}
+.swagger-section .title {
+  font-style: bold;
+}
+.swagger-section .secondary_form {
+  display: none;
+}
+.swagger-section .main_image {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+.swagger-section .oauth_body {
+  margin-left: 100px;
+  margin-right: 100px;
+}
+.swagger-section .oauth_submit {
+  text-align: center;
+}
+.swagger-section .api-popup-dialog {
+  z-index: 10000;
+  position: absolute;
+  width: 500px;
+  background: #FFF;
+  padding: 20px;
+  border: 1px solid #ccc;
+  border-radius: 5px;
+  display: none;
+  font-size: 13px;
+  color: #777;
+}
+.swagger-section .api-popup-dialog .api-popup-title {
+  font-size: 24px;
+  padding: 10px 0;
+}
+.swagger-section .api-popup-dialog .api-popup-title {
+  font-size: 24px;
+  padding: 10px 0;
+}
+.swagger-section .api-popup-dialog p.error-msg {
+  padding-left: 5px;
+  padding-bottom: 5px;
+}
+.swagger-section .api-popup-dialog button.api-popup-authbtn {
+  height: 30px;
+}
+.swagger-section .api-popup-dialog button.api-popup-cancel {
+  height: 30px;
+}
+.swagger-section .api-popup-scopes {
+  padding: 10px 20px;
+}
+.swagger-section .api-popup-scopes li {
+  padding: 5px 0;
+  line-height: 20px;
+}
+.swagger-section .api-popup-scopes .api-scope-desc {
+  padding-left: 20px;
+  font-style: italic;
+}
+.swagger-section .api-popup-scopes li input {
+  position: relative;
+  top: 2px;
+}
+.swagger-section .api-popup-actions {
+  padding-top: 10px;
+}
+.swagger-section .access {
+  float: right;
+}
+.swagger-section .auth {
+  float: right;
+}
+.swagger-section #api_information_panel {
+  position: absolute;
+  background: #FFF;
+  border: 1px solid #ccc;
+  border-radius: 5px;
+  display: none;
+  font-size: 13px;
+  max-width: 300px;
+  line-height: 30px;
+  color: black;
+  padding: 5px;
+}
+.swagger-section #api_information_panel p .api-msg-enabled {
+  color: green;
+}
+.swagger-section #api_information_panel p .api-msg-disabled {
+  color: red;
+}
+.swagger-section .api-ic {
+  height: 18px;
+  vertical-align: middle;
+  display: inline-block;
+  background: url(../images/explorer_icons.png) no-repeat;
+}
+.swagger-section .ic-info {
+  background-position: 0 0;
+  width: 18px;
+  margin-top: -7px;
+  margin-left: 4px;
+}
+.swagger-section .ic-warning {
+  background-position: -60px 0;
+  width: 18px;
+  margin-top: -7px;
+  margin-left: 4px;
+}
+.swagger-section .ic-error {
+  background-position: -30px 0;
+  width: 18px;
+  margin-top: -7px;
+  margin-left: 4px;
+}
+.swagger-section .ic-off {
+  background-position: -90px 0;
+  width: 58px;
+  margin-top: -4px;
+  cursor: pointer;
+}
+.swagger-section .ic-on {
+  background-position: -160px 0;
+  width: 58px;
+  margin-top: -4px;
+  cursor: pointer;
+}
+.swagger-section #header {
+  background-color: #89bf04;
+  padding: 14px;
+}
+.swagger-section #header a#logo {
+  font-size: 1.5em;
+  font-weight: bold;
+  text-decoration: none;
+  background: transparent url(../images/logo_small.png) no-repeat left center;
+  padding: 20px 0 20px 40px;
+  color: white;
+}
+.swagger-section #header form#api_selector {
+  display: block;
+  clear: none;
+  float: right;
+}
+.swagger-section #header form#api_selector .input {
+  display: block;
+  clear: none;
+  float: left;
+  margin: 0 10px 0 0;
+}
+.swagger-section #header form#api_selector .input input#input_apiKey {
+  width: 200px;
+}
+.swagger-section #header form#api_selector .input input#input_baseUrl {
+  width: 400px;
+}
+.swagger-section #header form#api_selector .input a#explore {
+  display: block;
+  text-decoration: none;
+  font-weight: bold;
+  padding: 6px 8px;
+  font-size: 0.9em;
+  color: white;
+  background-color: #547f00;
+  -moz-border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -o-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+}
+.swagger-section #header form#api_selector .input a#explore:hover {
+  background-color: #547f00;
+}
+.swagger-section #header form#api_selector .input input {
+  font-size: 0.9em;
+  padding: 3px;
+  margin: 0;
+}
+.swagger-section #content_message {
+  margin: 10px 15px;
+  font-style: italic;
+  color: #999999;
+}
+.swagger-section #message-bar {
+  min-height: 30px;
+  text-align: center;
+  padding-top: 10px;
+}
diff --git a/vas/doc/css/style.css b/src/vitis/vas/doc/css/style.css
similarity index 100%
rename from vas/doc/css/style.css
rename to src/vitis/vas/doc/css/style.css
diff --git a/src/vitis/vas/doc/images/gtf_ws.png b/src/vitis/vas/doc/images/gtf_ws.png
new file mode 100755
index 0000000000000000000000000000000000000000..28674521182a2ea4046d9714500f32c224461d73
Binary files /dev/null and b/src/vitis/vas/doc/images/gtf_ws.png differ
diff --git a/src/vitis/vas/doc/images/order.png b/src/vitis/vas/doc/images/order.png
new file mode 100755
index 0000000000000000000000000000000000000000..6908f1afdacd0b878520ab8ccd7ec6862c50a8f0
Binary files /dev/null and b/src/vitis/vas/doc/images/order.png differ
diff --git a/src/vitis/vas/doc/images/overview.png b/src/vitis/vas/doc/images/overview.png
new file mode 100755
index 0000000000000000000000000000000000000000..a1f1309d60e9fecc378751693ccd4c0e446dc64a
Binary files /dev/null and b/src/vitis/vas/doc/images/overview.png differ
diff --git a/src/vitis/vas/doc/images/rest.png b/src/vitis/vas/doc/images/rest.png
new file mode 100755
index 0000000000000000000000000000000000000000..64d595e706373bece0782131018558900f2d967c
Binary files /dev/null and b/src/vitis/vas/doc/images/rest.png differ
diff --git a/src/vitis/vas/doc/images/throbber.gif b/src/vitis/vas/doc/images/throbber.gif
new file mode 100755
index 0000000000000000000000000000000000000000..68f01d04813c1f622810864a3aaa04b4a17ac8f9
Binary files /dev/null and b/src/vitis/vas/doc/images/throbber.gif differ
diff --git a/src/vitis/vas/doc/images/token.png b/src/vitis/vas/doc/images/token.png
new file mode 100755
index 0000000000000000000000000000000000000000..c68ed31bd1288ececd6d31d5e1ff368b55a18640
Binary files /dev/null and b/src/vitis/vas/doc/images/token.png differ
diff --git a/src/vitis/vas/doc/images/workspace.png b/src/vitis/vas/doc/images/workspace.png
new file mode 100755
index 0000000000000000000000000000000000000000..d954e3f261613bedcb112d7794ea07092cda1784
Binary files /dev/null and b/src/vitis/vas/doc/images/workspace.png differ
diff --git a/vas/doc/index.phtml b/src/vitis/vas/doc/index.phtml
similarity index 100%
rename from vas/doc/index.phtml
rename to src/vitis/vas/doc/index.phtml
diff --git a/vas/doc/javascript/backbone-min.js b/src/vitis/vas/doc/javascript/backbone-min.js
similarity index 100%
rename from vas/doc/javascript/backbone-min.js
rename to src/vitis/vas/doc/javascript/backbone-min.js
diff --git a/src/vitis/vas/doc/javascript/handlebars-1.0.0.js b/src/vitis/vas/doc/javascript/handlebars-1.0.0.js
new file mode 100755
index 0000000000000000000000000000000000000000..c70f09d1de68428adb6e2790d24c671901e71d88
--- /dev/null
+++ b/src/vitis/vas/doc/javascript/handlebars-1.0.0.js
@@ -0,0 +1,2278 @@
+/*
+
+Copyright (C) 2011 by Yehuda Katz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+*/
+
+// lib/handlebars/browser-prefix.js
+var Handlebars = {};
+
+(function(Handlebars, undefined) {
+;
+// lib/handlebars/base.js
+
+Handlebars.VERSION = "1.0.0";
+Handlebars.COMPILER_REVISION = 4;
+
+Handlebars.REVISION_CHANGES = {
+  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
+  2: '== 1.0.0-rc.3',
+  3: '== 1.0.0-rc.4',
+  4: '>= 1.0.0'
+};
+
+Handlebars.helpers  = {};
+Handlebars.partials = {};
+
+var toString = Object.prototype.toString,
+    functionType = '[object Function]',
+    objectType = '[object Object]';
+
+Handlebars.registerHelper = function(name, fn, inverse) {
+  if (toString.call(name) === objectType) {
+    if (inverse || fn) { throw new Handlebars.Exception('Arg not supported with multiple helpers'); }
+    Handlebars.Utils.extend(this.helpers, name);
+  } else {
+    if (inverse) { fn.not = inverse; }
+    this.helpers[name] = fn;
+  }
+};
+
+Handlebars.registerPartial = function(name, str) {
+  if (toString.call(name) === objectType) {
+    Handlebars.Utils.extend(this.partials,  name);
+  } else {
+    this.partials[name] = str;
+  }
+};
+
+Handlebars.registerHelper('helperMissing', function(arg) {
+  if(arguments.length === 2) {
+    return undefined;
+  } else {
+    throw new Error("Missing helper: '" + arg + "'");
+  }
+});
+
+Handlebars.registerHelper('blockHelperMissing', function(context, options) {
+  var inverse = options.inverse || function() {}, fn = options.fn;
+
+  var type = toString.call(context);
+
+  if(type === functionType) { context = context.call(this); }
+
+  if(context === true) {
+    return fn(this);
+  } else if(context === false || context == null) {
+    return inverse(this);
+  } else if(type === "[object Array]") {
+    if(context.length > 0) {
+      return Handlebars.helpers.each(context, options);
+    } else {
+      return inverse(this);
+    }
+  } else {
+    return fn(context);
+  }
+});
+
+Handlebars.K = function() {};
+
+Handlebars.createFrame = Object.create || function(object) {
+  Handlebars.K.prototype = object;
+  var obj = new Handlebars.K();
+  Handlebars.K.prototype = null;
+  return obj;
+};
+
+Handlebars.logger = {
+  DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
+
+  methodMap: {0: 'debug', 1: 'info', 2: 'warn', 3: 'error'},
+
+  // can be overridden in the host environment
+  log: function(level, obj) {
+    if (Handlebars.logger.level <= level) {
+      var method = Handlebars.logger.methodMap[level];
+      if (typeof console !== 'undefined' && console[method]) {
+        console[method].call(console, obj);
+      }
+    }
+  }
+};
+
+Handlebars.log = function(level, obj) { Handlebars.logger.log(level, obj); };
+
+Handlebars.registerHelper('each', function(context, options) {
+  var fn = options.fn, inverse = options.inverse;
+  var i = 0, ret = "", data;
+
+  var type = toString.call(context);
+  if(type === functionType) { context = context.call(this); }
+
+  if (options.data) {
+    data = Handlebars.createFrame(options.data);
+  }
+
+  if(context && typeof context === 'object') {
+    if(context instanceof Array){
+      for(var j = context.length; i<j; i++) {
+        if (data) { data.index = i; }
+        ret = ret + fn(context[i], { data: data });
+      }
+    } else {
+      for(var key in context) {
+        if(context.hasOwnProperty(key)) {
+          if(data) { data.key = key; }
+          ret = ret + fn(context[key], {data: data});
+          i++;
+        }
+      }
+    }
+  }
+
+  if(i === 0){
+    ret = inverse(this);
+  }
+
+  return ret;
+});
+
+Handlebars.registerHelper('if', function(conditional, options) {
+  var type = toString.call(conditional);
+  if(type === functionType) { conditional = conditional.call(this); }
+
+  if(!conditional || Handlebars.Utils.isEmpty(conditional)) {
+    return options.inverse(this);
+  } else {
+    return options.fn(this);
+  }
+});
+
+Handlebars.registerHelper('unless', function(conditional, options) {
+  return Handlebars.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn});
+});
+
+Handlebars.registerHelper('with', function(context, options) {
+  var type = toString.call(context);
+  if(type === functionType) { context = context.call(this); }
+
+  if (!Handlebars.Utils.isEmpty(context)) return options.fn(context);
+});
+
+Handlebars.registerHelper('log', function(context, options) {
+  var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
+  Handlebars.log(level, context);
+});
+;
+// lib/handlebars/compiler/parser.js
+/* Jison generated parser */
+var handlebars = (function(){
+var parser = {trace: function trace() { },
+yy: {},
+symbols_: {"error":2,"root":3,"program":4,"EOF":5,"simpleInverse":6,"statements":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"CLOSE_UNESCAPED":24,"OPEN_PARTIAL":25,"partialName":26,"params":27,"hash":28,"dataName":29,"param":30,"STRING":31,"INTEGER":32,"BOOLEAN":33,"hashSegments":34,"hashSegment":35,"ID":36,"EQUALS":37,"DATA":38,"pathSegments":39,"SEP":40,"$accept":0,"$end":1},
+terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"CLOSE_UNESCAPED",25:"OPEN_PARTIAL",31:"STRING",32:"INTEGER",33:"BOOLEAN",36:"ID",37:"EQUALS",38:"DATA",40:"SEP"},
+productions_: [0,[3,2],[4,2],[4,3],[4,2],[4,1],[4,1],[4,0],[7,1],[7,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[6,2],[17,3],[17,2],[17,2],[17,1],[17,1],[27,2],[27,1],[30,1],[30,1],[30,1],[30,1],[30,1],[28,1],[34,2],[34,1],[35,3],[35,3],[35,3],[35,3],[35,3],[26,1],[26,1],[26,1],[29,2],[21,1],[39,3],[39,1]],
+performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
+
+var $0 = $$.length - 1;
+switch (yystate) {
+case 1: return $$[$0-1]; 
+break;
+case 2: this.$ = new yy.ProgramNode([], $$[$0]); 
+break;
+case 3: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]); 
+break;
+case 4: this.$ = new yy.ProgramNode($$[$0-1], []); 
+break;
+case 5: this.$ = new yy.ProgramNode($$[$0]); 
+break;
+case 6: this.$ = new yy.ProgramNode([], []); 
+break;
+case 7: this.$ = new yy.ProgramNode([]); 
+break;
+case 8: this.$ = [$$[$0]]; 
+break;
+case 9: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; 
+break;
+case 10: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]); 
+break;
+case 11: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]); 
+break;
+case 12: this.$ = $$[$0]; 
+break;
+case 13: this.$ = $$[$0]; 
+break;
+case 14: this.$ = new yy.ContentNode($$[$0]); 
+break;
+case 15: this.$ = new yy.CommentNode($$[$0]); 
+break;
+case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); 
+break;
+case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); 
+break;
+case 18: this.$ = $$[$0-1]; 
+break;
+case 19:
+    // Parsing out the '&' escape token at this level saves ~500 bytes after min due to the removal of one parser node.
+    this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2][2] === '&');
+  
+break;
+case 20: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true); 
+break;
+case 21: this.$ = new yy.PartialNode($$[$0-1]); 
+break;
+case 22: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]); 
+break;
+case 23: 
+break;
+case 24: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]]; 
+break;
+case 25: this.$ = [[$$[$0-1]].concat($$[$0]), null]; 
+break;
+case 26: this.$ = [[$$[$0-1]], $$[$0]]; 
+break;
+case 27: this.$ = [[$$[$0]], null]; 
+break;
+case 28: this.$ = [[$$[$0]], null]; 
+break;
+case 29: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; 
+break;
+case 30: this.$ = [$$[$0]]; 
+break;
+case 31: this.$ = $$[$0]; 
+break;
+case 32: this.$ = new yy.StringNode($$[$0]); 
+break;
+case 33: this.$ = new yy.IntegerNode($$[$0]); 
+break;
+case 34: this.$ = new yy.BooleanNode($$[$0]); 
+break;
+case 35: this.$ = $$[$0]; 
+break;
+case 36: this.$ = new yy.HashNode($$[$0]); 
+break;
+case 37: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; 
+break;
+case 38: this.$ = [$$[$0]]; 
+break;
+case 39: this.$ = [$$[$0-2], $$[$0]]; 
+break;
+case 40: this.$ = [$$[$0-2], new yy.StringNode($$[$0])]; 
+break;
+case 41: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])]; 
+break;
+case 42: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])]; 
+break;
+case 43: this.$ = [$$[$0-2], $$[$0]]; 
+break;
+case 44: this.$ = new yy.PartialNameNode($$[$0]); 
+break;
+case 45: this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0])); 
+break;
+case 46: this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0])); 
+break;
+case 47: this.$ = new yy.DataNode($$[$0]); 
+break;
+case 48: this.$ = new yy.IdNode($$[$0]); 
+break;
+case 49: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; 
+break;
+case 50: this.$ = [{part: $$[$0]}]; 
+break;
+}
+},
+table: [{3:1,4:2,5:[2,7],6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],22:[1,14],23:[1,15],25:[1,16]},{1:[3]},{5:[1,17]},{5:[2,6],7:18,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,6],22:[1,14],23:[1,15],25:[1,16]},{5:[2,5],6:20,8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,5],22:[1,14],23:[1,15],25:[1,16]},{17:23,18:[1,22],21:24,29:25,36:[1,28],38:[1,27],39:26},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],25:[2,8]},{4:29,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{4:30,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{17:31,21:24,29:25,36:[1,28],38:[1,27],39:26},{17:32,21:24,29:25,36:[1,28],38:[1,27],39:26},{17:33,21:24,29:25,36:[1,28],38:[1,27],39:26},{21:35,26:34,31:[1,36],32:[1,37],36:[1,28],39:26},{1:[2,1]},{5:[2,2],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,2],22:[1,14],23:[1,15],25:[1,16]},{17:23,21:24,29:25,36:[1,28],38:[1,27],39:26},{5:[2,4],7:38,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,4],22:[1,14],23:[1,15],25:[1,16]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{5:[2,23],14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],25:[2,23]},{18:[1,39]},{18:[2,27],21:44,24:[2,27],27:40,28:41,29:48,30:42,31:[1,45],32:[1,46],33:[1,47],34:43,35:49,36:[1,50],38:[1,27],39:26},{18:[2,28],24:[2,28]},{18:[2,48],24:[2,48],31:[2,48],32:[2,48],33:[2,48],36:[2,48],38:[2,48],40:[1,51]},{21:52,36:[1,28],39:26},{18:[2,50],24:[2,50],31:[2,50],32:[2,50],33:[2,50],36:[2,50],38:[2,50],40:[2,50]},{10:53,20:[1,54]},{10:55,20:[1,54]},{18:[1,56]},{18:[1,57]},{24:[1,58]},{18:[1,59],21:60,36:[1,28],39:26},{18:[2,44],36:[2,44]},{18:[2,45],36:[2,45]},{18:[2,46],36:[2,46]},{5:[2,3],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,3],22:[1,14],23:[1,15],25:[1,16]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{18:[2,25],21:44,24:[2,25],28:61,29:48,30:62,31:[1,45],32:[1,46],33:[1,47],34:43,35:49,36:[1,50],38:[1,27],39:26},{18:[2,26],24:[2,26]},{18:[2,30],24:[2,30],31:[2,30],32:[2,30],33:[2,30],36:[2,30],38:[2,30]},{18:[2,36],24:[2,36],35:63,36:[1,64]},{18:[2,31],24:[2,31],31:[2,31],32:[2,31],33:[2,31],36:[2,31],38:[2,31]},{18:[2,32],24:[2,32],31:[2,32],32:[2,32],33:[2,32],36:[2,32],38:[2,32]},{18:[2,33],24:[2,33],31:[2,33],32:[2,33],33:[2,33],36:[2,33],38:[2,33]},{18:[2,34],24:[2,34],31:[2,34],32:[2,34],33:[2,34],36:[2,34],38:[2,34]},{18:[2,35],24:[2,35],31:[2,35],32:[2,35],33:[2,35],36:[2,35],38:[2,35]},{18:[2,38],24:[2,38],36:[2,38]},{18:[2,50],24:[2,50],31:[2,50],32:[2,50],33:[2,50],36:[2,50],37:[1,65],38:[2,50],40:[2,50]},{36:[1,66]},{18:[2,47],24:[2,47],31:[2,47],32:[2,47],33:[2,47],36:[2,47],38:[2,47]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{21:67,36:[1,28],39:26},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[1,68]},{18:[2,24],24:[2,24]},{18:[2,29],24:[2,29],31:[2,29],32:[2,29],33:[2,29],36:[2,29],38:[2,29]},{18:[2,37],24:[2,37],36:[2,37]},{37:[1,65]},{21:69,29:73,31:[1,70],32:[1,71],33:[1,72],36:[1,28],38:[1,27],39:26},{18:[2,49],24:[2,49],31:[2,49],32:[2,49],33:[2,49],36:[2,49],38:[2,49],40:[2,49]},{18:[1,74]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{18:[2,39],24:[2,39],36:[2,39]},{18:[2,40],24:[2,40],36:[2,40]},{18:[2,41],24:[2,41],36:[2,41]},{18:[2,42],24:[2,42],36:[2,42]},{18:[2,43],24:[2,43],36:[2,43]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]}],
+defaultActions: {17:[2,1]},
+parseError: function parseError(str, hash) {
+    throw new Error(str);
+},
+parse: function parse(input) {
+    var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
+    this.lexer.setInput(input);
+    this.lexer.yy = this.yy;
+    this.yy.lexer = this.lexer;
+    this.yy.parser = this;
+    if (typeof this.lexer.yylloc == "undefined")
+        this.lexer.yylloc = {};
+    var yyloc = this.lexer.yylloc;
+    lstack.push(yyloc);
+    var ranges = this.lexer.options && this.lexer.options.ranges;
+    if (typeof this.yy.parseError === "function")
+        this.parseError = this.yy.parseError;
+    function popStack(n) {
+        stack.length = stack.length - 2 * n;
+        vstack.length = vstack.length - n;
+        lstack.length = lstack.length - n;
+    }
+    function lex() {
+        var token;
+        token = self.lexer.lex() || 1;
+        if (typeof token !== "number") {
+            token = self.symbols_[token] || token;
+        }
+        return token;
+    }
+    var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
+    while (true) {
+        state = stack[stack.length - 1];
+        if (this.defaultActions[state]) {
+            action = this.defaultActions[state];
+        } else {
+            if (symbol === null || typeof symbol == "undefined") {
+                symbol = lex();
+            }
+            action = table[state] && table[state][symbol];
+        }
+        if (typeof action === "undefined" || !action.length || !action[0]) {
+            var errStr = "";
+            if (!recovering) {
+                expected = [];
+                for (p in table[state])
+                    if (this.terminals_[p] && p > 2) {
+                        expected.push("'" + this.terminals_[p] + "'");
+                    }
+                if (this.lexer.showPosition) {
+                    errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+                } else {
+                    errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
+                }
+                this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
+            }
+        }
+        if (action[0] instanceof Array && action.length > 1) {
+            throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+        }
+        switch (action[0]) {
+        case 1:
+            stack.push(symbol);
+            vstack.push(this.lexer.yytext);
+            lstack.push(this.lexer.yylloc);
+            stack.push(action[1]);
+            symbol = null;
+            if (!preErrorSymbol) {
+                yyleng = this.lexer.yyleng;
+                yytext = this.lexer.yytext;
+                yylineno = this.lexer.yylineno;
+                yyloc = this.lexer.yylloc;
+                if (recovering > 0)
+                    recovering--;
+            } else {
+                symbol = preErrorSymbol;
+                preErrorSymbol = null;
+            }
+            break;
+        case 2:
+            len = this.productions_[action[1]][1];
+            yyval.$ = vstack[vstack.length - len];
+            yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
+            if (ranges) {
+                yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
+            }
+            r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
+            if (typeof r !== "undefined") {
+                return r;
+            }
+            if (len) {
+                stack = stack.slice(0, -1 * len * 2);
+                vstack = vstack.slice(0, -1 * len);
+                lstack = lstack.slice(0, -1 * len);
+            }
+            stack.push(this.productions_[action[1]][0]);
+            vstack.push(yyval.$);
+            lstack.push(yyval._$);
+            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+            stack.push(newState);
+            break;
+        case 3:
+            return true;
+        }
+    }
+    return true;
+}
+};
+/* Jison generated lexer */
+var lexer = (function(){
+var lexer = ({EOF:1,
+parseError:function parseError(str, hash) {
+        if (this.yy.parser) {
+            this.yy.parser.parseError(str, hash);
+        } else {
+            throw new Error(str);
+        }
+    },
+setInput:function (input) {
+        this._input = input;
+        this._more = this._less = this.done = false;
+        this.yylineno = this.yyleng = 0;
+        this.yytext = this.matched = this.match = '';
+        this.conditionStack = ['INITIAL'];
+        this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
+        if (this.options.ranges) this.yylloc.range = [0,0];
+        this.offset = 0;
+        return this;
+    },
+input:function () {
+        var ch = this._input[0];
+        this.yytext += ch;
+        this.yyleng++;
+        this.offset++;
+        this.match += ch;
+        this.matched += ch;
+        var lines = ch.match(/(?:\r\n?|\n).*/g);
+        if (lines) {
+            this.yylineno++;
+            this.yylloc.last_line++;
+        } else {
+            this.yylloc.last_column++;
+        }
+        if (this.options.ranges) this.yylloc.range[1]++;
+
+        this._input = this._input.slice(1);
+        return ch;
+    },
+unput:function (ch) {
+        var len = ch.length;
+        var lines = ch.split(/(?:\r\n?|\n)/g);
+
+        this._input = ch + this._input;
+        this.yytext = this.yytext.substr(0, this.yytext.length-len-1);
+        //this.yyleng -= len;
+        this.offset -= len;
+        var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+        this.match = this.match.substr(0, this.match.length-1);
+        this.matched = this.matched.substr(0, this.matched.length-1);
+
+        if (lines.length-1) this.yylineno -= lines.length-1;
+        var r = this.yylloc.range;
+
+        this.yylloc = {first_line: this.yylloc.first_line,
+          last_line: this.yylineno+1,
+          first_column: this.yylloc.first_column,
+          last_column: lines ?
+              (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:
+              this.yylloc.first_column - len
+          };
+
+        if (this.options.ranges) {
+            this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+        }
+        return this;
+    },
+more:function () {
+        this._more = true;
+        return this;
+    },
+less:function (n) {
+        this.unput(this.match.slice(n));
+    },
+pastInput:function () {
+        var past = this.matched.substr(0, this.matched.length - this.match.length);
+        return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+    },
+upcomingInput:function () {
+        var next = this.match;
+        if (next.length < 20) {
+            next += this._input.substr(0, 20-next.length);
+        }
+        return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
+    },
+showPosition:function () {
+        var pre = this.pastInput();
+        var c = new Array(pre.length + 1).join("-");
+        return pre + this.upcomingInput() + "\n" + c+"^";
+    },
+next:function () {
+        if (this.done) {
+            return this.EOF;
+        }
+        if (!this._input) this.done = true;
+
+        var token,
+            match,
+            tempMatch,
+            index,
+            col,
+            lines;
+        if (!this._more) {
+            this.yytext = '';
+            this.match = '';
+        }
+        var rules = this._currentRules();
+        for (var i=0;i < rules.length; i++) {
+            tempMatch = this._input.match(this.rules[rules[i]]);
+            if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+                match = tempMatch;
+                index = i;
+                if (!this.options.flex) break;
+            }
+        }
+        if (match) {
+            lines = match[0].match(/(?:\r\n?|\n).*/g);
+            if (lines) this.yylineno += lines.length;
+            this.yylloc = {first_line: this.yylloc.last_line,
+                           last_line: this.yylineno+1,
+                           first_column: this.yylloc.last_column,
+                           last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length};
+            this.yytext += match[0];
+            this.match += match[0];
+            this.matches = match;
+            this.yyleng = this.yytext.length;
+            if (this.options.ranges) {
+                this.yylloc.range = [this.offset, this.offset += this.yyleng];
+            }
+            this._more = false;
+            this._input = this._input.slice(match[0].length);
+            this.matched += match[0];
+            token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
+            if (this.done && this._input) this.done = false;
+            if (token) return token;
+            else return;
+        }
+        if (this._input === "") {
+            return this.EOF;
+        } else {
+            return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
+                    {text: "", token: null, line: this.yylineno});
+        }
+    },
+lex:function lex() {
+        var r = this.next();
+        if (typeof r !== 'undefined') {
+            return r;
+        } else {
+            return this.lex();
+        }
+    },
+begin:function begin(condition) {
+        this.conditionStack.push(condition);
+    },
+popState:function popState() {
+        return this.conditionStack.pop();
+    },
+_currentRules:function _currentRules() {
+        return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
+    },
+topState:function () {
+        return this.conditionStack[this.conditionStack.length-2];
+    },
+pushState:function begin(condition) {
+        this.begin(condition);
+    }});
+lexer.options = {};
+lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+
+var YYSTATE=YY_START
+switch($avoiding_name_collisions) {
+case 0: yy_.yytext = "\\"; return 14; 
+break;
+case 1:
+                                   if(yy_.yytext.slice(-1) !== "\\") this.begin("mu");
+                                   if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu");
+                                   if(yy_.yytext) return 14;
+                                 
+break;
+case 2: return 14; 
+break;
+case 3:
+                                   if(yy_.yytext.slice(-1) !== "\\") this.popState();
+                                   if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1);
+                                   return 14;
+                                 
+break;
+case 4: yy_.yytext = yy_.yytext.substr(0, yy_.yyleng-4); this.popState(); return 15; 
+break;
+case 5: return 25; 
+break;
+case 6: return 16; 
+break;
+case 7: return 20; 
+break;
+case 8: return 19; 
+break;
+case 9: return 19; 
+break;
+case 10: return 23; 
+break;
+case 11: return 22; 
+break;
+case 12: this.popState(); this.begin('com'); 
+break;
+case 13: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15; 
+break;
+case 14: return 22; 
+break;
+case 15: return 37; 
+break;
+case 16: return 36; 
+break;
+case 17: return 36; 
+break;
+case 18: return 40; 
+break;
+case 19: /*ignore whitespace*/ 
+break;
+case 20: this.popState(); return 24; 
+break;
+case 21: this.popState(); return 18; 
+break;
+case 22: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 31; 
+break;
+case 23: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\'/g,"'"); return 31; 
+break;
+case 24: return 38; 
+break;
+case 25: return 33; 
+break;
+case 26: return 33; 
+break;
+case 27: return 32; 
+break;
+case 28: return 36; 
+break;
+case 29: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 36; 
+break;
+case 30: return 'INVALID'; 
+break;
+case 31: return 5; 
+break;
+}
+};
+lexer.rules = [/^(?:\\\\(?=(\{\{)))/,/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{>)/,/^(?:\{\{#)/,/^(?:\{\{\/)/,/^(?:\{\{\^)/,/^(?:\{\{\s*else\b)/,/^(?:\{\{\{)/,/^(?:\{\{&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{)/,/^(?:=)/,/^(?:\.(?=[}\/ ]))/,/^(?:\.\.)/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}\}\})/,/^(?:\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=[}\s]))/,/^(?:false(?=[}\s]))/,/^(?:-?[0-9]+(?=[}\s]))/,/^(?:[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.]))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
+lexer.conditions = {"mu":{"rules":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"inclusive":false},"emu":{"rules":[3],"inclusive":false},"com":{"rules":[4],"inclusive":false},"INITIAL":{"rules":[0,1,2,31],"inclusive":true}};
+return lexer;})()
+parser.lexer = lexer;
+function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
+return new Parser;
+})();;
+// lib/handlebars/compiler/base.js
+
+Handlebars.Parser = handlebars;
+
+Handlebars.parse = function(input) {
+
+  // Just return if an already-compile AST was passed in.
+  if(input.constructor === Handlebars.AST.ProgramNode) { return input; }
+
+  Handlebars.Parser.yy = Handlebars.AST;
+  return Handlebars.Parser.parse(input);
+};
+;
+// lib/handlebars/compiler/ast.js
+Handlebars.AST = {};
+
+Handlebars.AST.ProgramNode = function(statements, inverse) {
+  this.type = "program";
+  this.statements = statements;
+  if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }
+};
+
+Handlebars.AST.MustacheNode = function(rawParams, hash, unescaped) {
+  this.type = "mustache";
+  this.escaped = !unescaped;
+  this.hash = hash;
+
+  var id = this.id = rawParams[0];
+  var params = this.params = rawParams.slice(1);
+
+  // a mustache is an eligible helper if:
+  // * its id is simple (a single part, not `this` or `..`)
+  var eligibleHelper = this.eligibleHelper = id.isSimple;
+
+  // a mustache is definitely a helper if:
+  // * it is an eligible helper, and
+  // * it has at least one parameter or hash segment
+  this.isHelper = eligibleHelper && (params.length || hash);
+
+  // if a mustache is an eligible helper but not a definite
+  // helper, it is ambiguous, and will be resolved in a later
+  // pass or at runtime.
+};
+
+Handlebars.AST.PartialNode = function(partialName, context) {
+  this.type         = "partial";
+  this.partialName  = partialName;
+  this.context      = context;
+};
+
+Handlebars.AST.BlockNode = function(mustache, program, inverse, close) {
+  var verifyMatch = function(open, close) {
+    if(open.original !== close.original) {
+      throw new Handlebars.Exception(open.original + " doesn't match " + close.original);
+    }
+  };
+
+  verifyMatch(mustache.id, close);
+  this.type = "block";
+  this.mustache = mustache;
+  this.program  = program;
+  this.inverse  = inverse;
+
+  if (this.inverse && !this.program) {
+    this.isInverse = true;
+  }
+};
+
+Handlebars.AST.ContentNode = function(string) {
+  this.type = "content";
+  this.string = string;
+};
+
+Handlebars.AST.HashNode = function(pairs) {
+  this.type = "hash";
+  this.pairs = pairs;
+};
+
+Handlebars.AST.IdNode = function(parts) {
+  this.type = "ID";
+
+  var original = "",
+      dig = [],
+      depth = 0;
+
+  for(var i=0,l=parts.length; i<l; i++) {
+    var part = parts[i].part;
+    original += (parts[i].separator || '') + part;
+
+    if (part === ".." || part === "." || part === "this") {
+      if (dig.length > 0) { throw new Handlebars.Exception("Invalid path: " + original); }
+      else if (part === "..") { depth++; }
+      else { this.isScoped = true; }
+    }
+    else { dig.push(part); }
+  }
+
+  this.original = original;
+  this.parts    = dig;
+  this.string   = dig.join('.');
+  this.depth    = depth;
+
+  // an ID is simple if it only has one part, and that part is not
+  // `..` or `this`.
+  this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
+
+  this.stringModeValue = this.string;
+};
+
+Handlebars.AST.PartialNameNode = function(name) {
+  this.type = "PARTIAL_NAME";
+  this.name = name.original;
+};
+
+Handlebars.AST.DataNode = function(id) {
+  this.type = "DATA";
+  this.id = id;
+};
+
+Handlebars.AST.StringNode = function(string) {
+  this.type = "STRING";
+  this.original =
+    this.string =
+    this.stringModeValue = string;
+};
+
+Handlebars.AST.IntegerNode = function(integer) {
+  this.type = "INTEGER";
+  this.original =
+    this.integer = integer;
+  this.stringModeValue = Number(integer);
+};
+
+Handlebars.AST.BooleanNode = function(bool) {
+  this.type = "BOOLEAN";
+  this.bool = bool;
+  this.stringModeValue = bool === "true";
+};
+
+Handlebars.AST.CommentNode = function(comment) {
+  this.type = "comment";
+  this.comment = comment;
+};
+;
+// lib/handlebars/utils.js
+
+var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
+
+Handlebars.Exception = function(message) {
+  var tmp = Error.prototype.constructor.apply(this, arguments);
+
+  // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
+  for (var idx = 0; idx < errorProps.length; idx++) {
+    this[errorProps[idx]] = tmp[errorProps[idx]];
+  }
+};
+Handlebars.Exception.prototype = new Error();
+
+// Build out our basic SafeString type
+Handlebars.SafeString = function(string) {
+  this.string = string;
+};
+Handlebars.SafeString.prototype.toString = function() {
+  return this.string.toString();
+};
+
+var escape = {
+  "&": "&amp;",
+  "<": "&lt;",
+  ">": "&gt;",
+  '"': "&quot;",
+  "'": "&#x27;",
+  "`": "&#x60;"
+};
+
+var badChars = /[&<>"'`]/g;
+var possible = /[&<>"'`]/;
+
+var escapeChar = function(chr) {
+  return escape[chr] || "&amp;";
+};
+
+Handlebars.Utils = {
+  extend: function(obj, value) {
+    for(var key in value) {
+      if(value.hasOwnProperty(key)) {
+        obj[key] = value[key];
+      }
+    }
+  },
+
+  escapeExpression: function(string) {
+    // don't escape SafeStrings, since they're already safe
+    if (string instanceof Handlebars.SafeString) {
+      return string.toString();
+    } else if (string == null || string === false) {
+      return "";
+    }
+
+    // Force a string conversion as this will be done by the append regardless and
+    // the regex test will do this transparently behind the scenes, causing issues if
+    // an object's to string has escaped characters in it.
+    string = string.toString();
+
+    if(!possible.test(string)) { return string; }
+    return string.replace(badChars, escapeChar);
+  },
+
+  isEmpty: function(value) {
+    if (!value && value !== 0) {
+      return true;
+    } else if(toString.call(value) === "[object Array]" && value.length === 0) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+};
+;
+// lib/handlebars/compiler/compiler.js
+
+/*jshint eqnull:true*/
+var Compiler = Handlebars.Compiler = function() {};
+var JavaScriptCompiler = Handlebars.JavaScriptCompiler = function() {};
+
+// the foundHelper register will disambiguate helper lookup from finding a
+// function in a context. This is necessary for mustache compatibility, which
+// requires that context functions in blocks are evaluated by blockHelperMissing,
+// and then proceed as if the resulting value was provided to blockHelperMissing.
+
+Compiler.prototype = {
+  compiler: Compiler,
+
+  disassemble: function() {
+    var opcodes = this.opcodes, opcode, out = [], params, param;
+
+    for (var i=0, l=opcodes.length; i<l; i++) {
+      opcode = opcodes[i];
+
+      if (opcode.opcode === 'DECLARE') {
+        out.push("DECLARE " + opcode.name + "=" + opcode.value);
+      } else {
+        params = [];
+        for (var j=0; j<opcode.args.length; j++) {
+          param = opcode.args[j];
+          if (typeof param === "string") {
+            param = "\"" + param.replace("\n", "\\n") + "\"";
+          }
+          params.push(param);
+        }
+        out.push(opcode.opcode + " " + params.join(" "));
+      }
+    }
+
+    return out.join("\n");
+  },
+  equals: function(other) {
+    var len = this.opcodes.length;
+    if (other.opcodes.length !== len) {
+      return false;
+    }
+
+    for (var i = 0; i < len; i++) {
+      var opcode = this.opcodes[i],
+          otherOpcode = other.opcodes[i];
+      if (opcode.opcode !== otherOpcode.opcode || opcode.args.length !== otherOpcode.args.length) {
+        return false;
+      }
+      for (var j = 0; j < opcode.args.length; j++) {
+        if (opcode.args[j] !== otherOpcode.args[j]) {
+          return false;
+        }
+      }
+    }
+
+    len = this.children.length;
+    if (other.children.length !== len) {
+      return false;
+    }
+    for (i = 0; i < len; i++) {
+      if (!this.children[i].equals(other.children[i])) {
+        return false;
+      }
+    }
+
+    return true;
+  },
+
+  guid: 0,
+
+  compile: function(program, options) {
+    this.children = [];
+    this.depths = {list: []};
+    this.options = options;
+
+    // These changes will propagate to the other compiler components
+    var knownHelpers = this.options.knownHelpers;
+    this.options.knownHelpers = {
+      'helperMissing': true,
+      'blockHelperMissing': true,
+      'each': true,
+      'if': true,
+      'unless': true,
+      'with': true,
+      'log': true
+    };
+    if (knownHelpers) {
+      for (var name in knownHelpers) {
+        this.options.knownHelpers[name] = knownHelpers[name];
+      }
+    }
+
+    return this.program(program);
+  },
+
+  accept: function(node) {
+    return this[node.type](node);
+  },
+
+  program: function(program) {
+    var statements = program.statements, statement;
+    this.opcodes = [];
+
+    for(var i=0, l=statements.length; i<l; i++) {
+      statement = statements[i];
+      this[statement.type](statement);
+    }
+    this.isSimple = l === 1;
+
+    this.depths.list = this.depths.list.sort(function(a, b) {
+      return a - b;
+    });
+
+    return this;
+  },
+
+  compileProgram: function(program) {
+    var result = new this.compiler().compile(program, this.options);
+    var guid = this.guid++, depth;
+
+    this.usePartial = this.usePartial || result.usePartial;
+
+    this.children[guid] = result;
+
+    for(var i=0, l=result.depths.list.length; i<l; i++) {
+      depth = result.depths.list[i];
+
+      if(depth < 2) { continue; }
+      else { this.addDepth(depth - 1); }
+    }
+
+    return guid;
+  },
+
+  block: function(block) {
+    var mustache = block.mustache,
+        program = block.program,
+        inverse = block.inverse;
+
+    if (program) {
+      program = this.compileProgram(program);
+    }
+
+    if (inverse) {
+      inverse = this.compileProgram(inverse);
+    }
+
+    var type = this.classifyMustache(mustache);
+
+    if (type === "helper") {
+      this.helperMustache(mustache, program, inverse);
+    } else if (type === "simple") {
+      this.simpleMustache(mustache);
+
+      // now that the simple mustache is resolved, we need to
+      // evaluate it by executing `blockHelperMissing`
+      this.opcode('pushProgram', program);
+      this.opcode('pushProgram', inverse);
+      this.opcode('emptyHash');
+      this.opcode('blockValue');
+    } else {
+      this.ambiguousMustache(mustache, program, inverse);
+
+      // now that the simple mustache is resolved, we need to
+      // evaluate it by executing `blockHelperMissing`
+      this.opcode('pushProgram', program);
+      this.opcode('pushProgram', inverse);
+      this.opcode('emptyHash');
+      this.opcode('ambiguousBlockValue');
+    }
+
+    this.opcode('append');
+  },
+
+  hash: function(hash) {
+    var pairs = hash.pairs, pair, val;
+
+    this.opcode('pushHash');
+
+    for(var i=0, l=pairs.length; i<l; i++) {
+      pair = pairs[i];
+      val  = pair[1];
+
+      if (this.options.stringParams) {
+        if(val.depth) {
+          this.addDepth(val.depth);
+        }
+        this.opcode('getContext', val.depth || 0);
+        this.opcode('pushStringParam', val.stringModeValue, val.type);
+      } else {
+        this.accept(val);
+      }
+
+      this.opcode('assignToHash', pair[0]);
+    }
+    this.opcode('popHash');
+  },
+
+  partial: function(partial) {
+    var partialName = partial.partialName;
+    this.usePartial = true;
+
+    if(partial.context) {
+      this.ID(partial.context);
+    } else {
+      this.opcode('push', 'depth0');
+    }
+
+    this.opcode('invokePartial', partialName.name);
+    this.opcode('append');
+  },
+
+  content: function(content) {
+    this.opcode('appendContent', content.string);
+  },
+
+  mustache: function(mustache) {
+    var options = this.options;
+    var type = this.classifyMustache(mustache);
+
+    if (type === "simple") {
+      this.simpleMustache(mustache);
+    } else if (type === "helper") {
+      this.helperMustache(mustache);
+    } else {
+      this.ambiguousMustache(mustache);
+    }
+
+    if(mustache.escaped && !options.noEscape) {
+      this.opcode('appendEscaped');
+    } else {
+      this.opcode('append');
+    }
+  },
+
+  ambiguousMustache: function(mustache, program, inverse) {
+    var id = mustache.id,
+        name = id.parts[0],
+        isBlock = program != null || inverse != null;
+
+    this.opcode('getContext', id.depth);
+
+    this.opcode('pushProgram', program);
+    this.opcode('pushProgram', inverse);
+
+    this.opcode('invokeAmbiguous', name, isBlock);
+  },
+
+  simpleMustache: function(mustache) {
+    var id = mustache.id;
+
+    if (id.type === 'DATA') {
+      this.DATA(id);
+    } else if (id.parts.length) {
+      this.ID(id);
+    } else {
+      // Simplified ID for `this`
+      this.addDepth(id.depth);
+      this.opcode('getContext', id.depth);
+      this.opcode('pushContext');
+    }
+
+    this.opcode('resolvePossibleLambda');
+  },
+
+  helperMustache: function(mustache, program, inverse) {
+    var params = this.setupFullMustacheParams(mustache, program, inverse),
+        name = mustache.id.parts[0];
+
+    if (this.options.knownHelpers[name]) {
+      this.opcode('invokeKnownHelper', params.length, name);
+    } else if (this.options.knownHelpersOnly) {
+      throw new Error("You specified knownHelpersOnly, but used the unknown helper " + name);
+    } else {
+      this.opcode('invokeHelper', params.length, name);
+    }
+  },
+
+  ID: function(id) {
+    this.addDepth(id.depth);
+    this.opcode('getContext', id.depth);
+
+    var name = id.parts[0];
+    if (!name) {
+      this.opcode('pushContext');
+    } else {
+      this.opcode('lookupOnContext', id.parts[0]);
+    }
+
+    for(var i=1, l=id.parts.length; i<l; i++) {
+      this.opcode('lookup', id.parts[i]);
+    }
+  },
+
+  DATA: function(data) {
+    this.options.data = true;
+    if (data.id.isScoped || data.id.depth) {
+      throw new Handlebars.Exception('Scoped data references are not supported: ' + data.original);
+    }
+
+    this.opcode('lookupData');
+    var parts = data.id.parts;
+    for(var i=0, l=parts.length; i<l; i++) {
+      this.opcode('lookup', parts[i]);
+    }
+  },
+
+  STRING: function(string) {
+    this.opcode('pushString', string.string);
+  },
+
+  INTEGER: function(integer) {
+    this.opcode('pushLiteral', integer.integer);
+  },
+
+  BOOLEAN: function(bool) {
+    this.opcode('pushLiteral', bool.bool);
+  },
+
+  comment: function() {},
+
+  // HELPERS
+  opcode: function(name) {
+    this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });
+  },
+
+  declare: function(name, value) {
+    this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });
+  },
+
+  addDepth: function(depth) {
+    if(isNaN(depth)) { throw new Error("EWOT"); }
+    if(depth === 0) { return; }
+
+    if(!this.depths[depth]) {
+      this.depths[depth] = true;
+      this.depths.list.push(depth);
+    }
+  },
+
+  classifyMustache: function(mustache) {
+    var isHelper   = mustache.isHelper;
+    var isEligible = mustache.eligibleHelper;
+    var options    = this.options;
+
+    // if ambiguous, we can possibly resolve the ambiguity now
+    if (isEligible && !isHelper) {
+      var name = mustache.id.parts[0];
+
+      if (options.knownHelpers[name]) {
+        isHelper = true;
+      } else if (options.knownHelpersOnly) {
+        isEligible = false;
+      }
+    }
+
+    if (isHelper) { return "helper"; }
+    else if (isEligible) { return "ambiguous"; }
+    else { return "simple"; }
+  },
+
+  pushParams: function(params) {
+    var i = params.length, param;
+
+    while(i--) {
+      param = params[i];
+
+      if(this.options.stringParams) {
+        if(param.depth) {
+          this.addDepth(param.depth);
+        }
+
+        this.opcode('getContext', param.depth || 0);
+        this.opcode('pushStringParam', param.stringModeValue, param.type);
+      } else {
+        this[param.type](param);
+      }
+    }
+  },
+
+  setupMustacheParams: function(mustache) {
+    var params = mustache.params;
+    this.pushParams(params);
+
+    if(mustache.hash) {
+      this.hash(mustache.hash);
+    } else {
+      this.opcode('emptyHash');
+    }
+
+    return params;
+  },
+
+  // this will replace setupMustacheParams when we're done
+  setupFullMustacheParams: function(mustache, program, inverse) {
+    var params = mustache.params;
+    this.pushParams(params);
+
+    this.opcode('pushProgram', program);
+    this.opcode('pushProgram', inverse);
+
+    if(mustache.hash) {
+      this.hash(mustache.hash);
+    } else {
+      this.opcode('emptyHash');
+    }
+
+    return params;
+  }
+};
+
+var Literal = function(value) {
+  this.value = value;
+};
+
+JavaScriptCompiler.prototype = {
+  // PUBLIC API: You can override these methods in a subclass to provide
+  // alternative compiled forms for name lookup and buffering semantics
+  nameLookup: function(parent, name /* , type*/) {
+    if (/^[0-9]+$/.test(name)) {
+      return parent + "[" + name + "]";
+    } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
+      return parent + "." + name;
+    }
+    else {
+      return parent + "['" + name + "']";
+    }
+  },
+
+  appendToBuffer: function(string) {
+    if (this.environment.isSimple) {
+      return "return " + string + ";";
+    } else {
+      return {
+        appendToBuffer: true,
+        content: string,
+        toString: function() { return "buffer += " + string + ";"; }
+      };
+    }
+  },
+
+  initializeBuffer: function() {
+    return this.quotedString("");
+  },
+
+  namespace: "Handlebars",
+  // END PUBLIC API
+
+  compile: function(environment, options, context, asObject) {
+    this.environment = environment;
+    this.options = options || {};
+
+    Handlebars.log(Handlebars.logger.DEBUG, this.environment.disassemble() + "\n\n");
+
+    this.name = this.environment.name;
+    this.isChild = !!context;
+    this.context = context || {
+      programs: [],
+      environments: [],
+      aliases: { }
+    };
+
+    this.preamble();
+
+    this.stackSlot = 0;
+    this.stackVars = [];
+    this.registers = { list: [] };
+    this.compileStack = [];
+    this.inlineStack = [];
+
+    this.compileChildren(environment, options);
+
+    var opcodes = environment.opcodes, opcode;
+
+    this.i = 0;
+
+    for(l=opcodes.length; this.i<l; this.i++) {
+      opcode = opcodes[this.i];
+
+      if(opcode.opcode === 'DECLARE') {
+        this[opcode.name] = opcode.value;
+      } else {
+        this[opcode.opcode].apply(this, opcode.args);
+      }
+    }
+
+    return this.createFunctionContext(asObject);
+  },
+
+  nextOpcode: function() {
+    var opcodes = this.environment.opcodes;
+    return opcodes[this.i + 1];
+  },
+
+  eat: function() {
+    this.i = this.i + 1;
+  },
+
+  preamble: function() {
+    var out = [];
+
+    if (!this.isChild) {
+      var namespace = this.namespace;
+
+      var copies = "helpers = this.merge(helpers, " + namespace + ".helpers);";
+      if (this.environment.usePartial) { copies = copies + " partials = this.merge(partials, " + namespace + ".partials);"; }
+      if (this.options.data) { copies = copies + " data = data || {};"; }
+      out.push(copies);
+    } else {
+      out.push('');
+    }
+
+    if (!this.environment.isSimple) {
+      out.push(", buffer = " + this.initializeBuffer());
+    } else {
+      out.push("");
+    }
+
+    // track the last context pushed into place to allow skipping the
+    // getContext opcode when it would be a noop
+    this.lastContext = 0;
+    this.source = out;
+  },
+
+  createFunctionContext: function(asObject) {
+    var locals = this.stackVars.concat(this.registers.list);
+
+    if(locals.length > 0) {
+      this.source[1] = this.source[1] + ", " + locals.join(", ");
+    }
+
+    // Generate minimizer alias mappings
+    if (!this.isChild) {
+      for (var alias in this.context.aliases) {
+        if (this.context.aliases.hasOwnProperty(alias)) {
+          this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];
+        }
+      }
+    }
+
+    if (this.source[1]) {
+      this.source[1] = "var " + this.source[1].substring(2) + ";";
+    }
+
+    // Merge children
+    if (!this.isChild) {
+      this.source[1] += '\n' + this.context.programs.join('\n') + '\n';
+    }
+
+    if (!this.environment.isSimple) {
+      this.source.push("return buffer;");
+    }
+
+    var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"];
+
+    for(var i=0, l=this.environment.depths.list.length; i<l; i++) {
+      params.push("depth" + this.environment.depths.list[i]);
+    }
+
+    // Perform a second pass over the output to merge content when possible
+    var source = this.mergeSource();
+
+    if (!this.isChild) {
+      var revision = Handlebars.COMPILER_REVISION,
+          versions = Handlebars.REVISION_CHANGES[revision];
+      source = "this.compilerInfo = ["+revision+",'"+versions+"'];\n"+source;
+    }
+
+    if (asObject) {
+      params.push(source);
+
+      return Function.apply(this, params);
+    } else {
+      var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n  ' + source + '}';
+      Handlebars.log(Handlebars.logger.DEBUG, functionSource + "\n\n");
+      return functionSource;
+    }
+  },
+  mergeSource: function() {
+    // WARN: We are not handling the case where buffer is still populated as the source should
+    // not have buffer append operations as their final action.
+    var source = '',
+        buffer;
+    for (var i = 0, len = this.source.length; i < len; i++) {
+      var line = this.source[i];
+      if (line.appendToBuffer) {
+        if (buffer) {
+          buffer = buffer + '\n    + ' + line.content;
+        } else {
+          buffer = line.content;
+        }
+      } else {
+        if (buffer) {
+          source += 'buffer += ' + buffer + ';\n  ';
+          buffer = undefined;
+        }
+        source += line + '\n  ';
+      }
+    }
+    return source;
+  },
+
+  // [blockValue]
+  //
+  // On stack, before: hash, inverse, program, value
+  // On stack, after: return value of blockHelperMissing
+  //
+  // The purpose of this opcode is to take a block of the form
+  // `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and
+  // replace it on the stack with the result of properly
+  // invoking blockHelperMissing.
+  blockValue: function() {
+    this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+    var params = ["depth0"];
+    this.setupParams(0, params);
+
+    this.replaceStack(function(current) {
+      params.splice(1, 0, current);
+      return "blockHelperMissing.call(" + params.join(", ") + ")";
+    });
+  },
+
+  // [ambiguousBlockValue]
+  //
+  // On stack, before: hash, inverse, program, value
+  // Compiler value, before: lastHelper=value of last found helper, if any
+  // On stack, after, if no lastHelper: same as [blockValue]
+  // On stack, after, if lastHelper: value
+  ambiguousBlockValue: function() {
+    this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+    var params = ["depth0"];
+    this.setupParams(0, params);
+
+    var current = this.topStack();
+    params.splice(1, 0, current);
+
+    // Use the options value generated from the invocation
+    params[params.length-1] = 'options';
+
+    this.source.push("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }");
+  },
+
+  // [appendContent]
+  //
+  // On stack, before: ...
+  // On stack, after: ...
+  //
+  // Appends the string value of `content` to the current buffer
+  appendContent: function(content) {
+    this.source.push(this.appendToBuffer(this.quotedString(content)));
+  },
+
+  // [append]
+  //
+  // On stack, before: value, ...
+  // On stack, after: ...
+  //
+  // Coerces `value` to a String and appends it to the current buffer.
+  //
+  // If `value` is truthy, or 0, it is coerced into a string and appended
+  // Otherwise, the empty string is appended
+  append: function() {
+    // Force anything that is inlined onto the stack so we don't have duplication
+    // when we examine local
+    this.flushInline();
+    var local = this.popStack();
+    this.source.push("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }");
+    if (this.environment.isSimple) {
+      this.source.push("else { " + this.appendToBuffer("''") + " }");
+    }
+  },
+
+  // [appendEscaped]
+  //
+  // On stack, before: value, ...
+  // On stack, after: ...
+  //
+  // Escape `value` and append it to the buffer
+  appendEscaped: function() {
+    this.context.aliases.escapeExpression = 'this.escapeExpression';
+
+    this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")"));
+  },
+
+  // [getContext]
+  //
+  // On stack, before: ...
+  // On stack, after: ...
+  // Compiler value, after: lastContext=depth
+  //
+  // Set the value of the `lastContext` compiler value to the depth
+  getContext: function(depth) {
+    if(this.lastContext !== depth) {
+      this.lastContext = depth;
+    }
+  },
+
+  // [lookupOnContext]
+  //
+  // On stack, before: ...
+  // On stack, after: currentContext[name], ...
+  //
+  // Looks up the value of `name` on the current context and pushes
+  // it onto the stack.
+  lookupOnContext: function(name) {
+    this.push(this.nameLookup('depth' + this.lastContext, name, 'context'));
+  },
+
+  // [pushContext]
+  //
+  // On stack, before: ...
+  // On stack, after: currentContext, ...
+  //
+  // Pushes the value of the current context onto the stack.
+  pushContext: function() {
+    this.pushStackLiteral('depth' + this.lastContext);
+  },
+
+  // [resolvePossibleLambda]
+  //
+  // On stack, before: value, ...
+  // On stack, after: resolved value, ...
+  //
+  // If the `value` is a lambda, replace it on the stack by
+  // the return value of the lambda
+  resolvePossibleLambda: function() {
+    this.context.aliases.functionType = '"function"';
+
+    this.replaceStack(function(current) {
+      return "typeof " + current + " === functionType ? " + current + ".apply(depth0) : " + current;
+    });
+  },
+
+  // [lookup]
+  //
+  // On stack, before: value, ...
+  // On stack, after: value[name], ...
+  //
+  // Replace the value on the stack with the result of looking
+  // up `name` on `value`
+  lookup: function(name) {
+    this.replaceStack(function(current) {
+      return current + " == null || " + current + " === false ? " + current + " : " + this.nameLookup(current, name, 'context');
+    });
+  },
+
+  // [lookupData]
+  //
+  // On stack, before: ...
+  // On stack, after: data[id], ...
+  //
+  // Push the result of looking up `id` on the current data
+  lookupData: function(id) {
+    this.push('data');
+  },
+
+  // [pushStringParam]
+  //
+  // On stack, before: ...
+  // On stack, after: string, currentContext, ...
+  //
+  // This opcode is designed for use in string mode, which
+  // provides the string value of a parameter along with its
+  // depth rather than resolving it immediately.
+  pushStringParam: function(string, type) {
+    this.pushStackLiteral('depth' + this.lastContext);
+
+    this.pushString(type);
+
+    if (typeof string === 'string') {
+      this.pushString(string);
+    } else {
+      this.pushStackLiteral(string);
+    }
+  },
+
+  emptyHash: function() {
+    this.pushStackLiteral('{}');
+
+    if (this.options.stringParams) {
+      this.register('hashTypes', '{}');
+      this.register('hashContexts', '{}');
+    }
+  },
+  pushHash: function() {
+    this.hash = {values: [], types: [], contexts: []};
+  },
+  popHash: function() {
+    var hash = this.hash;
+    this.hash = undefined;
+
+    if (this.options.stringParams) {
+      this.register('hashContexts', '{' + hash.contexts.join(',') + '}');
+      this.register('hashTypes', '{' + hash.types.join(',') + '}');
+    }
+    this.push('{\n    ' + hash.values.join(',\n    ') + '\n  }');
+  },
+
+  // [pushString]
+  //
+  // On stack, before: ...
+  // On stack, after: quotedString(string), ...
+  //
+  // Push a quoted version of `string` onto the stack
+  pushString: function(string) {
+    this.pushStackLiteral(this.quotedString(string));
+  },
+
+  // [push]
+  //
+  // On stack, before: ...
+  // On stack, after: expr, ...
+  //
+  // Push an expression onto the stack
+  push: function(expr) {
+    this.inlineStack.push(expr);
+    return expr;
+  },
+
+  // [pushLiteral]
+  //
+  // On stack, before: ...
+  // On stack, after: value, ...
+  //
+  // Pushes a value onto the stack. This operation prevents
+  // the compiler from creating a temporary variable to hold
+  // it.
+  pushLiteral: function(value) {
+    this.pushStackLiteral(value);
+  },
+
+  // [pushProgram]
+  //
+  // On stack, before: ...
+  // On stack, after: program(guid), ...
+  //
+  // Push a program expression onto the stack. This takes
+  // a compile-time guid and converts it into a runtime-accessible
+  // expression.
+  pushProgram: function(guid) {
+    if (guid != null) {
+      this.pushStackLiteral(this.programExpression(guid));
+    } else {
+      this.pushStackLiteral(null);
+    }
+  },
+
+  // [invokeHelper]
+  //
+  // On stack, before: hash, inverse, program, params..., ...
+  // On stack, after: result of helper invocation
+  //
+  // Pops off the helper's parameters, invokes the helper,
+  // and pushes the helper's return value onto the stack.
+  //
+  // If the helper is not found, `helperMissing` is called.
+  invokeHelper: function(paramSize, name) {
+    this.context.aliases.helperMissing = 'helpers.helperMissing';
+
+    var helper = this.lastHelper = this.setupHelper(paramSize, name, true);
+    var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+
+    this.push(helper.name + ' || ' + nonHelper);
+    this.replaceStack(function(name) {
+      return name + ' ? ' + name + '.call(' +
+          helper.callParams + ") " + ": helperMissing.call(" +
+          helper.helperMissingParams + ")";
+    });
+  },
+
+  // [invokeKnownHelper]
+  //
+  // On stack, before: hash, inverse, program, params..., ...
+  // On stack, after: result of helper invocation
+  //
+  // This operation is used when the helper is known to exist,
+  // so a `helperMissing` fallback is not required.
+  invokeKnownHelper: function(paramSize, name) {
+    var helper = this.setupHelper(paramSize, name);
+    this.push(helper.name + ".call(" + helper.callParams + ")");
+  },
+
+  // [invokeAmbiguous]
+  //
+  // On stack, before: hash, inverse, program, params..., ...
+  // On stack, after: result of disambiguation
+  //
+  // This operation is used when an expression like `{{foo}}`
+  // is provided, but we don't know at compile-time whether it
+  // is a helper or a path.
+  //
+  // This operation emits more code than the other options,
+  // and can be avoided by passing the `knownHelpers` and
+  // `knownHelpersOnly` flags at compile-time.
+  invokeAmbiguous: function(name, helperCall) {
+    this.context.aliases.functionType = '"function"';
+
+    this.pushStackLiteral('{}');    // Hash value
+    var helper = this.setupHelper(0, name, helperCall);
+
+    var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
+
+    var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+    var nextStack = this.nextStack();
+
+    this.source.push('if (' + nextStack + ' = ' + helperName + ') { ' + nextStack + ' = ' + nextStack + '.call(' + helper.callParams + '); }');
+    this.source.push('else { ' + nextStack + ' = ' + nonHelper + '; ' + nextStack + ' = typeof ' + nextStack + ' === functionType ? ' + nextStack + '.apply(depth0) : ' + nextStack + '; }');
+  },
+
+  // [invokePartial]
+  //
+  // On stack, before: context, ...
+  // On stack after: result of partial invocation
+  //
+  // This operation pops off a context, invokes a partial with that context,
+  // and pushes the result of the invocation back.
+  invokePartial: function(name) {
+    var params = [this.nameLookup('partials', name, 'partial'), "'" + name + "'", this.popStack(), "helpers", "partials"];
+
+    if (this.options.data) {
+      params.push("data");
+    }
+
+    this.context.aliases.self = "this";
+    this.push("self.invokePartial(" + params.join(", ") + ")");
+  },
+
+  // [assignToHash]
+  //
+  // On stack, before: value, hash, ...
+  // On stack, after: hash, ...
+  //
+  // Pops a value and hash off the stack, assigns `hash[key] = value`
+  // and pushes the hash back onto the stack.
+  assignToHash: function(key) {
+    var value = this.popStack(),
+        context,
+        type;
+
+    if (this.options.stringParams) {
+      type = this.popStack();
+      context = this.popStack();
+    }
+
+    var hash = this.hash;
+    if (context) {
+      hash.contexts.push("'" + key + "': " + context);
+    }
+    if (type) {
+      hash.types.push("'" + key + "': " + type);
+    }
+    hash.values.push("'" + key + "': (" + value + ")");
+  },
+
+  // HELPERS
+
+  compiler: JavaScriptCompiler,
+
+  compileChildren: function(environment, options) {
+    var children = environment.children, child, compiler;
+
+    for(var i=0, l=children.length; i<l; i++) {
+      child = children[i];
+      compiler = new this.compiler();
+
+      var index = this.matchExistingProgram(child);
+
+      if (index == null) {
+        this.context.programs.push('');     // Placeholder to prevent name conflicts for nested children
+        index = this.context.programs.length;
+        child.index = index;
+        child.name = 'program' + index;
+        this.context.programs[index] = compiler.compile(child, options, this.context);
+        this.context.environments[index] = child;
+      } else {
+        child.index = index;
+        child.name = 'program' + index;
+      }
+    }
+  },
+  matchExistingProgram: function(child) {
+    for (var i = 0, len = this.context.environments.length; i < len; i++) {
+      var environment = this.context.environments[i];
+      if (environment && environment.equals(child)) {
+        return i;
+      }
+    }
+  },
+
+  programExpression: function(guid) {
+    this.context.aliases.self = "this";
+
+    if(guid == null) {
+      return "self.noop";
+    }
+
+    var child = this.environment.children[guid],
+        depths = child.depths.list, depth;
+
+    var programParams = [child.index, child.name, "data"];
+
+    for(var i=0, l = depths.length; i<l; i++) {
+      depth = depths[i];
+
+      if(depth === 1) { programParams.push("depth0"); }
+      else { programParams.push("depth" + (depth - 1)); }
+    }
+
+    return (depths.length === 0 ? "self.program(" : "self.programWithDepth(") + programParams.join(", ") + ")";
+  },
+
+  register: function(name, val) {
+    this.useRegister(name);
+    this.source.push(name + " = " + val + ";");
+  },
+
+  useRegister: function(name) {
+    if(!this.registers[name]) {
+      this.registers[name] = true;
+      this.registers.list.push(name);
+    }
+  },
+
+  pushStackLiteral: function(item) {
+    return this.push(new Literal(item));
+  },
+
+  pushStack: function(item) {
+    this.flushInline();
+
+    var stack = this.incrStack();
+    if (item) {
+      this.source.push(stack + " = " + item + ";");
+    }
+    this.compileStack.push(stack);
+    return stack;
+  },
+
+  replaceStack: function(callback) {
+    var prefix = '',
+        inline = this.isInline(),
+        stack;
+
+    // If we are currently inline then we want to merge the inline statement into the
+    // replacement statement via ','
+    if (inline) {
+      var top = this.popStack(true);
+
+      if (top instanceof Literal) {
+        // Literals do not need to be inlined
+        stack = top.value;
+      } else {
+        // Get or create the current stack name for use by the inline
+        var name = this.stackSlot ? this.topStackName() : this.incrStack();
+
+        prefix = '(' + this.push(name) + ' = ' + top + '),';
+        stack = this.topStack();
+      }
+    } else {
+      stack = this.topStack();
+    }
+
+    var item = callback.call(this, stack);
+
+    if (inline) {
+      if (this.inlineStack.length || this.compileStack.length) {
+        this.popStack();
+      }
+      this.push('(' + prefix + item + ')');
+    } else {
+      // Prevent modification of the context depth variable. Through replaceStack
+      if (!/^stack/.test(stack)) {
+        stack = this.nextStack();
+      }
+
+      this.source.push(stack + " = (" + prefix + item + ");");
+    }
+    return stack;
+  },
+
+  nextStack: function() {
+    return this.pushStack();
+  },
+
+  incrStack: function() {
+    this.stackSlot++;
+    if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
+    return this.topStackName();
+  },
+  topStackName: function() {
+    return "stack" + this.stackSlot;
+  },
+  flushInline: function() {
+    var inlineStack = this.inlineStack;
+    if (inlineStack.length) {
+      this.inlineStack = [];
+      for (var i = 0, len = inlineStack.length; i < len; i++) {
+        var entry = inlineStack[i];
+        if (entry instanceof Literal) {
+          this.compileStack.push(entry);
+        } else {
+          this.pushStack(entry);
+        }
+      }
+    }
+  },
+  isInline: function() {
+    return this.inlineStack.length;
+  },
+
+  popStack: function(wrapped) {
+    var inline = this.isInline(),
+        item = (inline ? this.inlineStack : this.compileStack).pop();
+
+    if (!wrapped && (item instanceof Literal)) {
+      return item.value;
+    } else {
+      if (!inline) {
+        this.stackSlot--;
+      }
+      return item;
+    }
+  },
+
+  topStack: function(wrapped) {
+    var stack = (this.isInline() ? this.inlineStack : this.compileStack),
+        item = stack[stack.length - 1];
+
+    if (!wrapped && (item instanceof Literal)) {
+      return item.value;
+    } else {
+      return item;
+    }
+  },
+
+  quotedString: function(str) {
+    return '"' + str
+      .replace(/\\/g, '\\\\')
+      .replace(/"/g, '\\"')
+      .replace(/\n/g, '\\n')
+      .replace(/\r/g, '\\r')
+      .replace(/\u2028/g, '\\u2028')   // Per Ecma-262 7.3 + 7.8.4
+      .replace(/\u2029/g, '\\u2029') + '"';
+  },
+
+  setupHelper: function(paramSize, name, missingParams) {
+    var params = [];
+    this.setupParams(paramSize, params, missingParams);
+    var foundHelper = this.nameLookup('helpers', name, 'helper');
+
+    return {
+      params: params,
+      name: foundHelper,
+      callParams: ["depth0"].concat(params).join(", "),
+      helperMissingParams: missingParams && ["depth0", this.quotedString(name)].concat(params).join(", ")
+    };
+  },
+
+  // the params and contexts arguments are passed in arrays
+  // to fill in
+  setupParams: function(paramSize, params, useRegister) {
+    var options = [], contexts = [], types = [], param, inverse, program;
+
+    options.push("hash:" + this.popStack());
+
+    inverse = this.popStack();
+    program = this.popStack();
+
+    // Avoid setting fn and inverse if neither are set. This allows
+    // helpers to do a check for `if (options.fn)`
+    if (program || inverse) {
+      if (!program) {
+        this.context.aliases.self = "this";
+        program = "self.noop";
+      }
+
+      if (!inverse) {
+       this.context.aliases.self = "this";
+        inverse = "self.noop";
+      }
+
+      options.push("inverse:" + inverse);
+      options.push("fn:" + program);
+    }
+
+    for(var i=0; i<paramSize; i++) {
+      param = this.popStack();
+      params.push(param);
+
+      if(this.options.stringParams) {
+        types.push(this.popStack());
+        contexts.push(this.popStack());
+      }
+    }
+
+    if (this.options.stringParams) {
+      options.push("contexts:[" + contexts.join(",") + "]");
+      options.push("types:[" + types.join(",") + "]");
+      options.push("hashContexts:hashContexts");
+      options.push("hashTypes:hashTypes");
+    }
+
+    if(this.options.data) {
+      options.push("data:data");
+    }
+
+    options = "{" + options.join(",") + "}";
+    if (useRegister) {
+      this.register('options', options);
+      params.push('options');
+    } else {
+      params.push(options);
+    }
+    return params.join(", ");
+  }
+};
+
+var reservedWords = (
+  "break else new var" +
+  " case finally return void" +
+  " catch for switch while" +
+  " continue function this with" +
+  " default if throw" +
+  " delete in try" +
+  " do instanceof typeof" +
+  " abstract enum int short" +
+  " boolean export interface static" +
+  " byte extends long super" +
+  " char final native synchronized" +
+  " class float package throws" +
+  " const goto private transient" +
+  " debugger implements protected volatile" +
+  " double import public let yield"
+).split(" ");
+
+var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
+
+for(var i=0, l=reservedWords.length; i<l; i++) {
+  compilerWords[reservedWords[i]] = true;
+}
+
+JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
+  if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {
+    return true;
+  }
+  return false;
+};
+
+Handlebars.precompile = function(input, options) {
+  if (input == null || (typeof input !== 'string' && input.constructor !== Handlebars.AST.ProgramNode)) {
+    throw new Handlebars.Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + input);
+  }
+
+  options = options || {};
+  if (!('data' in options)) {
+    options.data = true;
+  }
+  var ast = Handlebars.parse(input);
+  var environment = new Compiler().compile(ast, options);
+  return new JavaScriptCompiler().compile(environment, options);
+};
+
+Handlebars.compile = function(input, options) {
+  if (input == null || (typeof input !== 'string' && input.constructor !== Handlebars.AST.ProgramNode)) {
+    throw new Handlebars.Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input);
+  }
+
+  options = options || {};
+  if (!('data' in options)) {
+    options.data = true;
+  }
+  var compiled;
+  function compile() {
+    var ast = Handlebars.parse(input);
+    var environment = new Compiler().compile(ast, options);
+    var templateSpec = new JavaScriptCompiler().compile(environment, options, undefined, true);
+    return Handlebars.template(templateSpec);
+  }
+
+  // Template is only compiled on first use and cached after that point.
+  return function(context, options) {
+    if (!compiled) {
+      compiled = compile();
+    }
+    return compiled.call(this, context, options);
+  };
+};
+
+;
+// lib/handlebars/runtime.js
+
+Handlebars.VM = {
+  template: function(templateSpec) {
+    // Just add water
+    var container = {
+      escapeExpression: Handlebars.Utils.escapeExpression,
+      invokePartial: Handlebars.VM.invokePartial,
+      programs: [],
+      program: function(i, fn, data) {
+        var programWrapper = this.programs[i];
+        if(data) {
+          programWrapper = Handlebars.VM.program(i, fn, data);
+        } else if (!programWrapper) {
+          programWrapper = this.programs[i] = Handlebars.VM.program(i, fn);
+        }
+        return programWrapper;
+      },
+      merge: function(param, common) {
+        var ret = param || common;
+
+        if (param && common) {
+          ret = {};
+          Handlebars.Utils.extend(ret, common);
+          Handlebars.Utils.extend(ret, param);
+        }
+        return ret;
+      },
+      programWithDepth: Handlebars.VM.programWithDepth,
+      noop: Handlebars.VM.noop,
+      compilerInfo: null
+    };
+
+    return function(context, options) {
+      options = options || {};
+      var result = templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data);
+
+      var compilerInfo = container.compilerInfo || [],
+          compilerRevision = compilerInfo[0] || 1,
+          currentRevision = Handlebars.COMPILER_REVISION;
+
+      if (compilerRevision !== currentRevision) {
+        if (compilerRevision < currentRevision) {
+          var runtimeVersions = Handlebars.REVISION_CHANGES[currentRevision],
+              compilerVersions = Handlebars.REVISION_CHANGES[compilerRevision];
+          throw "Template was precompiled with an older version of Handlebars than the current runtime. "+
+                "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+").";
+        } else {
+          // Use the embedded version info since the runtime doesn't know about this revision yet
+          throw "Template was precompiled with a newer version of Handlebars than the current runtime. "+
+                "Please update your runtime to a newer version ("+compilerInfo[1]+").";
+        }
+      }
+
+      return result;
+    };
+  },
+
+  programWithDepth: function(i, fn, data /*, $depth */) {
+    var args = Array.prototype.slice.call(arguments, 3);
+
+    var program = function(context, options) {
+      options = options || {};
+
+      return fn.apply(this, [context, options.data || data].concat(args));
+    };
+    program.program = i;
+    program.depth = args.length;
+    return program;
+  },
+  program: function(i, fn, data) {
+    var program = function(context, options) {
+      options = options || {};
+
+      return fn(context, options.data || data);
+    };
+    program.program = i;
+    program.depth = 0;
+    return program;
+  },
+  noop: function() { return ""; },
+  invokePartial: function(partial, name, context, helpers, partials, data) {
+    var options = { helpers: helpers, partials: partials, data: data };
+
+    if(partial === undefined) {
+      throw new Handlebars.Exception("The partial " + name + " could not be found");
+    } else if(partial instanceof Function) {
+      return partial(context, options);
+    } else if (!Handlebars.compile) {
+      throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
+    } else {
+      partials[name] = Handlebars.compile(partial, {data: data !== undefined});
+      return partials[name](context, options);
+    }
+  }
+};
+
+Handlebars.template = Handlebars.VM.template;
+;
+// lib/handlebars/browser-suffix.js
+})(Handlebars);
+;
diff --git a/vas/doc/javascript/handlebars-2.0.0.js b/src/vitis/vas/doc/javascript/handlebars-2.0.0.js
similarity index 100%
rename from vas/doc/javascript/handlebars-2.0.0.js
rename to src/vitis/vas/doc/javascript/handlebars-2.0.0.js
diff --git a/src/vitis/vas/doc/javascript/highlight.7.3.pack.js b/src/vitis/vas/doc/javascript/highlight.7.3.pack.js
new file mode 100755
index 0000000000000000000000000000000000000000..9a95a75ea16f94e106ab065defba3bae4c80285b
--- /dev/null
+++ b/src/vitis/vas/doc/javascript/highlight.7.3.pack.js
@@ -0,0 +1 @@
+var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+q.parentNode.className).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(q){function o(s,r){return RegExp(s,"m"+(q.cI?"i":"")+(r?"g":""))}function p(y,w){if(y.compiled){return}y.compiled=true;var s=[];if(y.k){var r={};function z(A,t){t.split(" ").forEach(function(B){var C=B.split("|");r[C[0]]=[A,C[1]?Number(C[1]):1];s.push(C[0])})}y.lR=o(y.l||hljs.IR,true);if(typeof y.k=="string"){z("keyword",y.k)}else{for(var x in y.k){if(!y.k.hasOwnProperty(x)){continue}z(x,y.k[x])}}y.k=r}if(w){if(y.bWK){y.b="\\b("+s.join("|")+")\\s"}y.bR=o(y.b?y.b:"\\B|\\b");if(!y.e&&!y.eW){y.e="\\B|\\b"}if(y.e){y.eR=o(y.e)}y.tE=y.e||"";if(y.eW&&w.tE){y.tE+=(y.e?"|":"")+w.tE}}if(y.i){y.iR=o(y.i)}if(y.r===undefined){y.r=1}if(!y.c){y.c=[]}for(var v=0;v<y.c.length;v++){if(y.c[v]=="self"){y.c[v]=y}p(y.c[v],y)}if(y.starts){p(y.starts,w)}var u=[];for(var v=0;v<y.c.length;v++){u.push(y.c[v].b)}if(y.tE){u.push(y.tE)}if(y.i){u.push(y.i)}y.t=u.length?o(u.join("|"),true):{exec:function(t){return null}}}p(q)}function d(D,E){function o(r,M){for(var L=0;L<M.c.length;L++){var K=M.c[L].bR.exec(r);if(K&&K.index==0){return M.c[L]}}}function s(K,r){if(K.e&&K.eR.test(r)){return K}if(K.eW){return s(K.parent,r)}}function t(r,K){return K.i&&K.iR.test(r)}function y(L,r){var K=F.cI?r[0].toLowerCase():r[0];return L.k.hasOwnProperty(K)&&L.k[K]}function G(){var K=l(w);if(!A.k){return K}var r="";var N=0;A.lR.lastIndex=0;var L=A.lR.exec(K);while(L){r+=K.substr(N,L.index-N);var M=y(A,L);if(M){v+=M[1];r+='<span class="'+M[0]+'">'+L[0]+"</span>"}else{r+=L[0]}N=A.lR.lastIndex;L=A.lR.exec(K)}return r+K.substr(N)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function J(){return A.sL!==undefined?z():G()}function I(L,r){var K=L.cN?'<span class="'+L.cN+'">':"";if(L.rB){x+=K;w=""}else{if(L.eB){x+=l(r)+K;w=""}else{x+=K;w=r}}A=Object.create(L,{parent:{value:A}});B+=L.r}function C(K,r){w+=K;if(r===undefined){x+=J();return 0}var L=o(r,A);if(L){x+=J();I(L,r);return L.rB?0:r.length}var M=s(A,r);if(M){if(!(M.rE||M.eE)){w+=r}x+=J();do{if(A.cN){x+="</span>"}A=A.parent}while(A!=M.parent);if(M.eE){x+=l(r)}w="";if(M.starts){I(M.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw"Illegal"}w+=r;return r.length||1}var F=e[D];f(F);var A=F;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(E);if(!u){break}q=C(E.substr(p,u.index-p),u[0]);p=u.index+q}C(E.substr(p));return{r:B,keyword_count:v,value:x,language:D}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:l(E)}}else{throw H}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ />]+"},b]}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);
\ No newline at end of file
diff --git a/vas/doc/javascript/jquery-1.8.0.min.js b/src/vitis/vas/doc/javascript/jquery-1.8.0.min.js
similarity index 100%
rename from vas/doc/javascript/jquery-1.8.0.min.js
rename to src/vitis/vas/doc/javascript/jquery-1.8.0.min.js
diff --git a/src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js b/src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..bcbf24834ac7ef0ccf0a690fdc4966c67389a079
--- /dev/null
+++ b/src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js
@@ -0,0 +1,18 @@
+/*
+ * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
+ * http://benalman.com/projects/jquery-bbq-plugin/
+ * 
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
+/*
+ * jQuery hashchange event - v1.2 - 2/11/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ * 
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);
\ No newline at end of file
diff --git a/src/vitis/vas/doc/javascript/jquery.slideto.min.js b/src/vitis/vas/doc/javascript/jquery.slideto.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..ba32cff3651b5f592ea41f40086b5c5d39ffaf14
--- /dev/null
+++ b/src/vitis/vas/doc/javascript/jquery.slideto.min.js
@@ -0,0 +1 @@
+(function(b){b.fn.slideto=function(a){a=b.extend({slide_duration:"slow",highlight_duration:3E3,highlight:true,highlight_color:"#FFFF99"},a);return this.each(function(){obj=b(this);b("body").animate({scrollTop:obj.offset().top},a.slide_duration,function(){a.highlight&&b.ui.version&&obj.effect("highlight",{color:a.highlight_color},a.highlight_duration)})})}})(jQuery);
diff --git a/src/vitis/vas/doc/javascript/jquery.wiggle.min.js b/src/vitis/vas/doc/javascript/jquery.wiggle.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..2adb0d6d54af0b24bc1725b5c48a12cdcd163c4c
--- /dev/null
+++ b/src/vitis/vas/doc/javascript/jquery.wiggle.min.js
@@ -0,0 +1,8 @@
+/*
+jQuery Wiggle
+Author: WonderGroup, Jordan Thomas
+URL: http://labs.wondergroup.com/demos/mini-ui/index.html
+License: MIT (http://en.wikipedia.org/wiki/MIT_License)
+*/
+jQuery.fn.wiggle=function(o){var d={speed:50,wiggles:3,travel:5,callback:null};var o=jQuery.extend(d,o);return this.each(function(){var cache=this;var wrap=jQuery(this).wrap('<div class="wiggle-wrap"></div>').css("position","relative");var calls=0;for(i=1;i<=o.wiggles;i++){jQuery(this).animate({left:"-="+o.travel},o.speed).animate({left:"+="+o.travel*2},o.speed*2).animate({left:"-="+o.travel},o.speed,function(){calls++;if(jQuery(cache).parent().hasClass('wiggle-wrap')){jQuery(cache).parent().replaceWith(cache);}
+if(calls==o.wiggles&&jQuery.isFunction(o.callback)){o.callback();}});}});};
\ No newline at end of file
diff --git a/vas/doc/javascript/marked.js b/src/vitis/vas/doc/javascript/marked.js
similarity index 100%
rename from vas/doc/javascript/marked.js
rename to src/vitis/vas/doc/javascript/marked.js
diff --git a/src/vitis/vas/doc/javascript/shred.bundle.js b/src/vitis/vas/doc/javascript/shred.bundle.js
new file mode 100755
index 0000000000000000000000000000000000000000..74d08168922dbab7716d21a4de63bea0dcac8f5d
--- /dev/null
+++ b/src/vitis/vas/doc/javascript/shred.bundle.js
@@ -0,0 +1,2765 @@
+var require = function (file, cwd) {
+    var resolved = require.resolve(file, cwd || '/');
+    var mod = require.modules[resolved];
+    if (!mod) throw new Error(
+        'Failed to resolve module ' + file + ', tried ' + resolved
+    );
+    var res = mod._cached ? mod._cached : mod();
+    return res;
+}
+
+require.paths = [];
+require.modules = {};
+require.extensions = [".js",".coffee"];
+
+require._core = {
+    'assert': true,
+    'events': true,
+    'fs': true,
+    'path': true,
+    'vm': true
+};
+
+require.resolve = (function () {
+    return function (x, cwd) {
+        if (!cwd) cwd = '/';
+        
+        if (require._core[x]) return x;
+        var path = require.modules.path();
+        var y = cwd || '.';
+        
+        if (x.match(/^(?:\.\.?\/|\/)/)) {
+            var m = loadAsFileSync(path.resolve(y, x))
+                || loadAsDirectorySync(path.resolve(y, x));
+            if (m) return m;
+        }
+        
+        var n = loadNodeModulesSync(x, y);
+        if (n) return n;
+        
+        throw new Error("Cannot find module '" + x + "'");
+        
+        function loadAsFileSync (x) {
+            if (require.modules[x]) {
+                return x;
+            }
+            
+            for (var i = 0; i < require.extensions.length; i++) {
+                var ext = require.extensions[i];
+                if (require.modules[x + ext]) return x + ext;
+            }
+        }
+        
+        function loadAsDirectorySync (x) {
+            x = x.replace(/\/+$/, '');
+            var pkgfile = x + '/package.json';
+            if (require.modules[pkgfile]) {
+                var pkg = require.modules[pkgfile]();
+                var b = pkg.browserify;
+                if (typeof b === 'object' && b.main) {
+                    var m = loadAsFileSync(path.resolve(x, b.main));
+                    if (m) return m;
+                }
+                else if (typeof b === 'string') {
+                    var m = loadAsFileSync(path.resolve(x, b));
+                    if (m) return m;
+                }
+                else if (pkg.main) {
+                    var m = loadAsFileSync(path.resolve(x, pkg.main));
+                    if (m) return m;
+                }
+            }
+            
+            return loadAsFileSync(x + '/index');
+        }
+        
+        function loadNodeModulesSync (x, start) {
+            var dirs = nodeModulesPathsSync(start);
+            for (var i = 0; i < dirs.length; i++) {
+                var dir = dirs[i];
+                var m = loadAsFileSync(dir + '/' + x);
+                if (m) return m;
+                var n = loadAsDirectorySync(dir + '/' + x);
+                if (n) return n;
+            }
+            
+            var m = loadAsFileSync(x);
+            if (m) return m;
+        }
+        
+        function nodeModulesPathsSync (start) {
+            var parts;
+            if (start === '/') parts = [ '' ];
+            else parts = path.normalize(start).split('/');
+            
+            var dirs = [];
+            for (var i = parts.length - 1; i >= 0; i--) {
+                if (parts[i] === 'node_modules') continue;
+                var dir = parts.slice(0, i + 1).join('/') + '/node_modules';
+                dirs.push(dir);
+            }
+            
+            return dirs;
+        }
+    };
+})();
+
+require.alias = function (from, to) {
+    var path = require.modules.path();
+    var res = null;
+    try {
+        res = require.resolve(from + '/package.json', '/');
+    }
+    catch (err) {
+        res = require.resolve(from, '/');
+    }
+    var basedir = path.dirname(res);
+    
+    var keys = (Object.keys || function (obj) {
+        var res = [];
+        for (var key in obj) res.push(key)
+        return res;
+    })(require.modules);
+    
+    for (var i = 0; i < keys.length; i++) {
+        var key = keys[i];
+        if (key.slice(0, basedir.length + 1) === basedir + '/') {
+            var f = key.slice(basedir.length);
+            require.modules[to + f] = require.modules[basedir + f];
+        }
+        else if (key === basedir) {
+            require.modules[to] = require.modules[basedir];
+        }
+    }
+};
+
+require.define = function (filename, fn) {
+    var dirname = require._core[filename]
+        ? ''
+        : require.modules.path().dirname(filename)
+    ;
+    
+    var require_ = function (file) {
+        return require(file, dirname)
+    };
+    require_.resolve = function (name) {
+        return require.resolve(name, dirname);
+    };
+    require_.modules = require.modules;
+    require_.define = require.define;
+    var module_ = { exports : {} };
+    
+    require.modules[filename] = function () {
+        require.modules[filename]._cached = module_.exports;
+        fn.call(
+            module_.exports,
+            require_,
+            module_,
+            module_.exports,
+            dirname,
+            filename
+        );
+        require.modules[filename]._cached = module_.exports;
+        return module_.exports;
+    };
+};
+
+if (typeof process === 'undefined') process = {};
+
+if (!process.nextTick) process.nextTick = (function () {
+    var queue = [];
+    var canPost = typeof window !== 'undefined'
+        && window.postMessage && window.addEventListener
+    ;
+    
+    if (canPost) {
+        window.addEventListener('message', function (ev) {
+            if (ev.source === window && ev.data === 'browserify-tick') {
+                ev.stopPropagation();
+                if (queue.length > 0) {
+                    var fn = queue.shift();
+                    fn();
+                }
+            }
+        }, true);
+    }
+    
+    return function (fn) {
+        if (canPost) {
+            queue.push(fn);
+            window.postMessage('browserify-tick', '*');
+        }
+        else setTimeout(fn, 0);
+    };
+})();
+
+if (!process.title) process.title = 'browser';
+
+if (!process.binding) process.binding = function (name) {
+    if (name === 'evals') return require('vm')
+    else throw new Error('No such module')
+};
+
+if (!process.cwd) process.cwd = function () { return '.' };
+
+require.define("path", function (require, module, exports, __dirname, __filename) {
+    function filter (xs, fn) {
+    var res = [];
+    for (var i = 0; i < xs.length; i++) {
+        if (fn(xs[i], i, xs)) res.push(xs[i]);
+    }
+    return res;
+}
+
+// resolves . and .. elements in a path array with directory names there
+// must be no slashes, empty elements, or device names (c:\) in the array
+// (so also no leading and trailing slashes - it does not distinguish
+// relative and absolute paths)
+function normalizeArray(parts, allowAboveRoot) {
+  // if the path tries to go above the root, `up` ends up > 0
+  var up = 0;
+  for (var i = parts.length; i >= 0; i--) {
+    var last = parts[i];
+    if (last == '.') {
+      parts.splice(i, 1);
+    } else if (last === '..') {
+      parts.splice(i, 1);
+      up++;
+    } else if (up) {
+      parts.splice(i, 1);
+      up--;
+    }
+  }
+
+  // if the path is allowed to go above the root, restore leading ..s
+  if (allowAboveRoot) {
+    for (; up--; up) {
+      parts.unshift('..');
+    }
+  }
+
+  return parts;
+}
+
+// Regex to split a filename into [*, dir, basename, ext]
+// posix version
+var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/;
+
+// path.resolve([from ...], to)
+// posix version
+exports.resolve = function() {
+var resolvedPath = '',
+    resolvedAbsolute = false;
+
+for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) {
+  var path = (i >= 0)
+      ? arguments[i]
+      : process.cwd();
+
+  // Skip empty and invalid entries
+  if (typeof path !== 'string' || !path) {
+    continue;
+  }
+
+  resolvedPath = path + '/' + resolvedPath;
+  resolvedAbsolute = path.charAt(0) === '/';
+}
+
+// At this point the path should be resolved to a full absolute path, but
+// handle relative paths to be safe (might happen when process.cwd() fails)
+
+// Normalize the path
+resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
+    return !!p;
+  }), !resolvedAbsolute).join('/');
+
+  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
+};
+
+// path.normalize(path)
+// posix version
+exports.normalize = function(path) {
+var isAbsolute = path.charAt(0) === '/',
+    trailingSlash = path.slice(-1) === '/';
+
+// Normalize the path
+path = normalizeArray(filter(path.split('/'), function(p) {
+    return !!p;
+  }), !isAbsolute).join('/');
+
+  if (!path && !isAbsolute) {
+    path = '.';
+  }
+  if (path && trailingSlash) {
+    path += '/';
+  }
+  
+  return (isAbsolute ? '/' : '') + path;
+};
+
+
+// posix version
+exports.join = function() {
+  var paths = Array.prototype.slice.call(arguments, 0);
+  return exports.normalize(filter(paths, function(p, index) {
+    return p && typeof p === 'string';
+  }).join('/'));
+};
+
+
+exports.dirname = function(path) {
+  var dir = splitPathRe.exec(path)[1] || '';
+  var isWindows = false;
+  if (!dir) {
+    // No dirname
+    return '.';
+  } else if (dir.length === 1 ||
+      (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) {
+    // It is just a slash or a drive letter with a slash
+    return dir;
+  } else {
+    // It is a full dirname, strip trailing slash
+    return dir.substring(0, dir.length - 1);
+  }
+};
+
+
+exports.basename = function(path, ext) {
+  var f = splitPathRe.exec(path)[2] || '';
+  // TODO: make this comparison case-insensitive on windows?
+  if (ext && f.substr(-1 * ext.length) === ext) {
+    f = f.substr(0, f.length - ext.length);
+  }
+  return f;
+};
+
+
+exports.extname = function(path) {
+  return splitPathRe.exec(path)[3] || '';
+};
+
+});
+
+require.define("/shred.js", function (require, module, exports, __dirname, __filename) {
+    // Shred is an HTTP client library intended to simplify the use of Node's
+// built-in HTTP library. In particular, we wanted to make it easier to interact
+// with HTTP-based APIs.
+// 
+// See the [examples](./examples.html) for more details.
+
+// Ax is a nice logging library we wrote. You can use any logger, providing it
+// has `info`, `warn`, `debug`, and `error` methods that take a string.
+var Ax = require("ax")
+  , CookieJarLib = require( "cookiejar" )
+  , CookieJar = CookieJarLib.CookieJar
+;
+
+// Shred takes some options, including a logger and request defaults.
+
+var Shred = function(options) {
+  options = (options||{});
+  this.agent = options.agent;
+  this.defaults = options.defaults||{};
+  this.log = options.logger||(new Ax({ level: "info" }));
+  this._sharedCookieJar = new CookieJar();
+  this.logCurl = options.logCurl || false;
+};
+
+// Most of the real work is done in the request and reponse classes.
+ 
+Shred.Request = require("./shred/request");
+Shred.Response = require("./shred/response");
+
+// The `request` method kicks off a new request, instantiating a new `Request`
+// object and passing along whatever default options we were given.
+
+Shred.prototype = {
+  request: function(options) {
+    options.logger = this.log;
+    options.logCurl = options.logCurl || this.logCurl;
+    options.cookieJar = ( 'cookieJar' in options ) ? options.cookieJar : this._sharedCookieJar; // let them set cookieJar = null
+    options.agent = options.agent || this.agent;
+    // fill in default options
+    for (var key in this.defaults) {
+      if (this.defaults.hasOwnProperty(key) && !options[key]) {
+        options[key] = this.defaults[key]
+      }
+    }
+    return new Shred.Request(options);
+  }
+};
+
+// Define a bunch of convenience methods so that you don't have to include
+// a `method` property in your request options.
+
+"get put post delete".split(" ").forEach(function(method) {
+  Shred.prototype[method] = function(options) {
+    options.method = method;
+    return this.request(options);
+  };
+});
+
+
+module.exports = Shred;
+
+});
+
+require.define("/node_modules/ax/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"./lib/ax.js"}
+});
+
+require.define("/node_modules/ax/lib/ax.js", function (require, module, exports, __dirname, __filename) {
+    var inspect = require("util").inspect
+  , fs = require("fs")
+;
+
+
+// this is a quick-and-dirty logger. there are other nicer loggers out there
+// but the ones i found were also somewhat involved. this one has a Ruby
+// logger type interface
+//
+// we can easily replace this, provide the info, debug, etc. methods are the
+// same. or, we can change Haiku to use a more standard node.js interface
+
+var format = function(level,message) {
+  var debug = (level=="debug"||level=="error");
+  if (!message) { return message.toString(); }
+  if (typeof(message) == "object") {
+    if (message instanceof Error && debug) {
+      return message.stack;
+    } else {
+      return inspect(message);
+    }
+  } else {
+    return message.toString();
+  }
+};
+
+var noOp = function(message) { return this; }
+var makeLogger = function(level,fn) {
+  return function(message) { 
+    this.stream.write(this.format(level, message)+"\n");
+    return this;
+  }
+};
+
+var Logger = function(options) {
+  var logger = this;
+  var options = options||{};
+
+  // Default options
+  options.level = options.level || "info";
+  options.timestamp = options.timestamp || true;
+  options.prefix = options.prefix || "";
+  logger.options = options;
+
+  // Allows a prefix to be added to the message.
+  //
+  //    var logger = new Ax({ module: 'Haiku' })
+  //    logger.warn('this is going to be awesome!');
+  //    //=> Haiku: this is going to be awesome!
+  //
+  if (logger.options.module){
+    logger.options.prefix = logger.options.module;
+  }
+
+  // Write to stderr or a file
+  if (logger.options.file){
+    logger.stream = fs.createWriteStream(logger.options.file, {"flags": "a"});
+  } else {
+      if(process.title === "node")
+    logger.stream = process.stderr;
+      else if(process.title === "browser")
+    logger.stream = function () {
+      // Work around weird console context issue: http://code.google.com/p/chromium/issues/detail?id=48662
+      return console[logger.options.level].apply(console, arguments);
+    };
+  }
+
+  switch(logger.options.level){
+    case 'debug':
+      ['debug', 'info', 'warn'].forEach(function (level) {
+        logger[level] = Logger.writer(level);
+      });
+    case 'info':
+      ['info', 'warn'].forEach(function (level) {
+        logger[level] = Logger.writer(level);
+      });
+    case 'warn':
+      logger.warn = Logger.writer('warn');
+  }
+}
+
+// Used to define logger methods
+Logger.writer = function(level){
+  return function(message){
+    var logger = this;
+
+    if(process.title === "node")
+  logger.stream.write(logger.format(level, message) + '\n');
+    else if(process.title === "browser")
+  logger.stream(logger.format(level, message) + '\n');
+
+  };
+}
+
+
+Logger.prototype = {
+  info: function(){},
+  debug: function(){},
+  warn: function(){},
+  error: Logger.writer('error'),
+  format: function(level, message){
+    if (! message) return '';
+
+    var logger = this
+      , prefix = logger.options.prefix
+      , timestamp = logger.options.timestamp ? " " + (new Date().toISOString()) : ""
+    ;
+
+    return (prefix + timestamp + ": " + message);
+  }
+};
+
+module.exports = Logger;
+
+});
+
+require.define("util", function (require, module, exports, __dirname, __filename) {
+    // todo
+
+});
+
+require.define("fs", function (require, module, exports, __dirname, __filename) {
+    // nothing to see here... no file methods for the browser
+
+});
+
+require.define("/node_modules/cookiejar/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"cookiejar.js"}
+});
+
+require.define("/node_modules/cookiejar/cookiejar.js", function (require, module, exports, __dirname, __filename) {
+    exports.CookieAccessInfo=CookieAccessInfo=function CookieAccessInfo(domain,path,secure,script) {
+    if(this instanceof CookieAccessInfo) {
+      this.domain=domain||undefined;
+      this.path=path||"/";
+      this.secure=!!secure;
+      this.script=!!script;
+      return this;
+    }
+    else {
+        return new CookieAccessInfo(domain,path,secure,script)    
+    }
+}
+
+exports.Cookie=Cookie=function Cookie(cookiestr) {
+  if(cookiestr instanceof Cookie) {
+    return cookiestr;
+  }
+    else {
+        if(this instanceof Cookie) {
+          this.name = null;
+          this.value = null;
+          this.expiration_date = Infinity;
+          this.path = "/";
+          this.domain = null;
+          this.secure = false; //how to define?
+          this.noscript = false; //httponly
+          if(cookiestr) {
+            this.parse(cookiestr)
+          }
+          return this;
+        }
+        return new Cookie(cookiestr)
+    }
+}
+
+Cookie.prototype.toString = function toString() {
+  var str=[this.name+"="+this.value];
+  if(this.expiration_date !== Infinity) {
+    str.push("expires="+(new Date(this.expiration_date)).toGMTString());
+  }
+  if(this.domain) {
+    str.push("domain="+this.domain);
+  }
+  if(this.path) {
+    str.push("path="+this.path);
+  }
+  if(this.secure) {
+    str.push("secure");
+  }
+  if(this.noscript) {
+    str.push("httponly");
+  }
+  return str.join("; ");
+}
+
+Cookie.prototype.toValueString = function toValueString() {
+  return this.name+"="+this.value;
+}
+
+var cookie_str_splitter=/[:](?=\s*[a-zA-Z0-9_\-]+\s*[=])/g
+Cookie.prototype.parse = function parse(str) {
+  if(this instanceof Cookie) {
+      var parts=str.split(";")
+      , pair=parts[0].match(/([^=]+)=((?:.|\n)*)/)
+      , key=pair[1]
+      , value=pair[2];
+      this.name = key;
+      this.value = value;
+    
+      for(var i=1;i<parts.length;i++) {
+        pair=parts[i].match(/([^=]+)(?:=((?:.|\n)*))?/)
+        , key=pair[1].trim().toLowerCase()
+        , value=pair[2];
+        switch(key) {
+          case "httponly":
+            this.noscript = true;
+          break;
+          case "expires":
+            this.expiration_date = value
+              ? Number(Date.parse(value))
+              : Infinity;
+          break;
+          case "path":
+            this.path = value
+              ? value.trim()
+              : "";
+          break;
+          case "domain":
+            this.domain = value
+              ? value.trim()
+              : "";
+          break;
+          case "secure":
+            this.secure = true;
+          break
+        }
+      }
+    
+      return this;
+  }
+    return new Cookie().parse(str)
+}
+
+Cookie.prototype.matches = function matches(access_info) {
+  if(this.noscript && access_info.script
+  || this.secure && !access_info.secure
+  || !this.collidesWith(access_info)) {
+    return false
+  }
+  return true;
+}
+
+Cookie.prototype.collidesWith = function collidesWith(access_info) {
+  if((this.path && !access_info.path) || (this.domain && !access_info.domain)) {
+    return false
+  }
+  if(this.path && access_info.path.indexOf(this.path) !== 0) {
+    return false;
+  }
+  if (this.domain===access_info.domain) {
+    return true;
+  }
+  else if(this.domain && this.domain.charAt(0)===".")
+  {
+    var wildcard=access_info.domain.indexOf(this.domain.slice(1))
+    if(wildcard===-1 || wildcard!==access_info.domain.length-this.domain.length+1) {
+      return false;
+    }
+  }
+  else if(this.domain){
+    return false
+  }
+  return true;
+}
+
+exports.CookieJar=CookieJar=function CookieJar() {
+  if(this instanceof CookieJar) {
+      var cookies = {} //name: [Cookie]
+    
+      this.setCookie = function setCookie(cookie) {
+        cookie = Cookie(cookie);
+        //Delete the cookie if the set is past the current time
+        var remove = cookie.expiration_date <= Date.now();
+        if(cookie.name in cookies) {
+          var cookies_list = cookies[cookie.name];
+          for(var i=0;i<cookies_list.length;i++) {
+            var collidable_cookie = cookies_list[i];
+            if(collidable_cookie.collidesWith(cookie)) {
+              if(remove) {
+                cookies_list.splice(i,1);
+                if(cookies_list.length===0) {
+                  delete cookies[cookie.name]
+                }
+                return false;
+              }
+              else {
+                return cookies_list[i]=cookie;
+              }
+            }
+          }
+          if(remove) {
+            return false;
+          }
+          cookies_list.push(cookie);
+          return cookie;
+        }
+        else if(remove){
+          return false;
+        }
+        else {
+          return cookies[cookie.name]=[cookie];
+        }
+      }
+      //returns a cookie
+      this.getCookie = function getCookie(cookie_name,access_info) {
+        var cookies_list = cookies[cookie_name];
+        for(var i=0;i<cookies_list.length;i++) {
+          var cookie = cookies_list[i];
+          if(cookie.expiration_date <= Date.now()) {
+            if(cookies_list.length===0) {
+              delete cookies[cookie.name]
+            }
+            continue;
+          }
+          if(cookie.matches(access_info)) {
+            return cookie;
+          }
+        }
+      }
+      //returns a list of cookies
+      this.getCookies = function getCookies(access_info) {
+        var matches=[];
+        for(var cookie_name in cookies) {
+          var cookie=this.getCookie(cookie_name,access_info);
+          if (cookie) {
+            matches.push(cookie);
+          }
+        }
+        matches.toString=function toString(){return matches.join(":");}
+            matches.toValueString=function() {return matches.map(function(c){return c.toValueString();}).join(';');}
+        return matches;
+      }
+    
+      return this;
+  }
+    return new CookieJar()
+}
+
+
+//returns list of cookies that were set correctly
+CookieJar.prototype.setCookies = function setCookies(cookies) {
+  cookies=Array.isArray(cookies)
+    ?cookies
+    :cookies.split(cookie_str_splitter);
+  var successful=[]
+  for(var i=0;i<cookies.length;i++) {
+    var cookie = Cookie(cookies[i]);
+    if(this.setCookie(cookie)) {
+      successful.push(cookie);
+    }
+  }
+  return successful;
+}
+
+});
+
+require.define("/shred/request.js", function (require, module, exports, __dirname, __filename) {
+    // The request object encapsulates a request, creating a Node.js HTTP request and
+// then handling the response.
+
+var HTTP = require("http")
+  , HTTPS = require("https")
+  , parseUri = require("./parseUri")
+  , Emitter = require('events').EventEmitter
+  , sprintf = require("sprintf").sprintf
+  , Response = require("./response")
+  , HeaderMixins = require("./mixins/headers")
+  , Content = require("./content")
+;
+
+var STATUS_CODES = HTTP.STATUS_CODES || {
+    100 : 'Continue',
+    101 : 'Switching Protocols',
+    102 : 'Processing', // RFC 2518, obsoleted by RFC 4918
+    200 : 'OK',
+    201 : 'Created',
+    202 : 'Accepted',
+    203 : 'Non-Authoritative Information',
+    204 : 'No Content',
+    205 : 'Reset Content',
+    206 : 'Partial Content',
+    207 : 'Multi-Status', // RFC 4918
+    300 : 'Multiple Choices',
+    301 : 'Moved Permanently',
+    302 : 'Moved Temporarily',
+    303 : 'See Other',
+    304 : 'Not Modified',
+    305 : 'Use Proxy',
+    307 : 'Temporary Redirect',
+    400 : 'Bad Request',
+    401 : 'Unauthorized',
+    402 : 'Payment Required',
+    403 : 'Forbidden',
+    404 : 'Not Found',
+    405 : 'Method Not Allowed',
+    406 : 'Not Acceptable',
+    407 : 'Proxy Authentication Required',
+    408 : 'Request Time-out',
+    409 : 'Conflict',
+    410 : 'Gone',
+    411 : 'Length Required',
+    412 : 'Precondition Failed',
+    413 : 'Request Entity Too Large',
+    414 : 'Request-URI Too Large',
+    415 : 'Unsupported Media Type',
+    416 : 'Requested Range Not Satisfiable',
+    417 : 'Expectation Failed',
+    418 : 'I\'m a teapot', // RFC 2324
+    422 : 'Unprocessable Entity', // RFC 4918
+    423 : 'Locked', // RFC 4918
+    424 : 'Failed Dependency', // RFC 4918
+    425 : 'Unordered Collection', // RFC 4918
+    426 : 'Upgrade Required', // RFC 2817
+    500 : 'Internal Server Error',
+    501 : 'Not Implemented',
+    502 : 'Bad Gateway',
+    503 : 'Service Unavailable',
+    504 : 'Gateway Time-out',
+    505 : 'HTTP Version not supported',
+    506 : 'Variant Also Negotiates', // RFC 2295
+    507 : 'Insufficient Storage', // RFC 4918
+    509 : 'Bandwidth Limit Exceeded',
+    510 : 'Not Extended' // RFC 2774
+};
+
+// The Shred object itself constructs the `Request` object. You should rarely
+// need to do this directly.
+
+var Request = function(options) {
+  this.log = options.logger;
+  this.cookieJar = options.cookieJar;
+  this.encoding = options.encoding;
+  this.logCurl = options.logCurl;
+  processOptions(this,options||{});
+  createRequest(this);
+};
+
+// A `Request` has a number of properties, many of which help with details like
+// URL parsing or defaulting the port for the request.
+
+Object.defineProperties(Request.prototype, {
+
+// - **url**. You can set the `url` property with a valid URL string and all the
+//   URL-related properties (host, port, etc.) will be automatically set on the
+//   request object.
+
+  url: {
+    get: function() {
+      if (!this.scheme) { return null; }
+      return sprintf("%s://%s:%s%s",
+          this.scheme, this.host, this.port,
+          (this.proxy ? "/" : this.path) +
+          (this.query ? ("?" + this.query) : ""));
+    },
+    set: function(_url) {
+      _url = parseUri(_url);
+      this.scheme = _url.protocol;
+      this.host = _url.host;
+      this.port = _url.port;
+      this.path = _url.path;
+      this.query = _url.query;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **headers**. Returns a hash representing the request headers. You can't set
+//   this directly, only get it. You can add or modify headers by using the
+//   `setHeader` or `setHeaders` method. This ensures that the headers are
+//   normalized - that is, you don't accidentally send `Content-Type` and
+//   `content-type` headers. Keep in mind that if you modify the returned hash,
+//   it will *not* modify the request headers.
+
+  headers: {
+    get: function() {
+      return this.getHeaders();
+    },
+    enumerable: true
+  },
+
+// - **port**. Unless you set the `port` explicitly or include it in the URL, it
+//   will default based on the scheme.
+
+  port: {
+    get: function() {
+      if (!this._port) {
+        switch(this.scheme) {
+          case "https": return this._port = 443;
+          case "http":
+          default: return this._port = 80;
+        }
+      }
+      return this._port;
+    },
+    set: function(value) { this._port = value; return this; },
+    enumerable: true
+  },
+
+// - **method**. The request method - `get`, `put`, `post`, etc. that will be
+//   used to make the request. Defaults to `get`.
+
+  method: {
+    get: function() {
+      return this._method = (this._method||"GET");
+    },
+    set: function(value) {
+      this._method = value; return this;
+    },
+    enumerable: true
+  },
+
+// - **query**. Can be set either with a query string or a hash (object). Get
+//   will always return a properly escaped query string or null if there is no
+//   query component for the request.
+
+  query: {
+    get: function() {return this._query;},
+    set: function(value) {
+      var stringify = function (hash) {
+        var query = "";
+        for (var key in hash) {
+          query += encodeURIComponent(key) + '=' + encodeURIComponent(hash[key]) + '&';
+        }
+        // Remove the last '&'
+        query = query.slice(0, -1);
+        return query;
+      }
+
+      if (value) {
+        if (typeof value === 'object') {
+          value = stringify(value);
+        }
+        this._query = value;
+      } else {
+        this._query = "";
+      }
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **parameters**. This will return the query parameters in the form of a hash
+//   (object).
+
+  parameters: {
+    get: function() { return QueryString.parse(this._query||""); },
+    enumerable: true
+  },
+
+// - **content**. (Aliased as `body`.) Set this to add a content entity to the
+//   request. Attempts to use the `content-type` header to determine what to do
+//   with the content value. Get this to get back a [`Content`
+//   object](./content.html).
+
+  body: {
+    get: function() { return this._body; },
+    set: function(value) {
+      this._body = new Content({
+        data: value,
+        type: this.getHeader("Content-Type")
+      });
+      this.setHeader("Content-Type",this.content.type);
+      this.setHeader("Content-Length",this.content.length);
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **timeout**. Used to determine how long to wait for a response. Does not
+//   distinguish between connect timeouts versus request timeouts. Set either in
+//   milliseconds or with an object with temporal attributes (hours, minutes,
+//   seconds) and convert it into milliseconds. Get will always return
+//   milliseconds.
+
+  timeout: {
+    get: function() { return this._timeout; }, // in milliseconds
+    set: function(timeout) {
+      var request = this
+        , milliseconds = 0;
+      ;
+      if (!timeout) return this;
+      if (typeof timeout==="number") { milliseconds = timeout; }
+      else {
+        milliseconds = (timeout.milliseconds||0) +
+          (1000 * ((timeout.seconds||0) +
+              (60 * ((timeout.minutes||0) +
+                (60 * (timeout.hours||0))))));
+      }
+      this._timeout = milliseconds;
+      return this;
+    },
+    enumerable: true
+  }
+});
+
+// Alias `body` property to `content`. Since the [content object](./content.html)
+// has a `body` attribute, it's preferable to use `content` since you can then
+// access the raw content data using `content.body`.
+
+Object.defineProperty(Request.prototype,"content",
+    Object.getOwnPropertyDescriptor(Request.prototype, "body"));
+
+// The `Request` object can be pretty overwhelming to view using the built-in
+// Node.js inspect method. We want to make it a bit more manageable. This
+// probably goes [too far in the other
+// direction](https://github.com/spire-io/shred/issues/2).
+
+Request.prototype.inspect = function () {
+  var request = this;
+  var headers = this.format_headers();
+  var summary = ["<Shred Request> ", request.method.toUpperCase(),
+      request.url].join(" ")
+  return [ summary, "- Headers:", headers].join("\n");
+};
+
+Request.prototype.format_headers = function () {
+  var array = []
+  var headers = this._headers
+  for (var key in headers) {
+    if (headers.hasOwnProperty(key)) {
+      var value = headers[key]
+      array.push("\t" + key + ": " + value);
+    }
+  }
+  return array.join("\n");
+};
+
+// Allow chainable 'on's:  shred.get({ ... }).on( ... ).  You can pass in a
+// single function, a pair (event, function), or a hash:
+// { event: function, event: function }
+Request.prototype.on = function (eventOrHash, listener) {
+  var emitter = this.emitter;
+  // Pass in a single argument as a function then make it the default response handler
+  if (arguments.length === 1 && typeof(eventOrHash) === 'function') {
+    emitter.on('response', eventOrHash);
+  } else if (arguments.length === 1 && typeof(eventOrHash) === 'object') {
+    for (var key in eventOrHash) {
+      if (eventOrHash.hasOwnProperty(key)) {
+        emitter.on(key, eventOrHash[key]);
+      }
+    }
+  } else {
+    emitter.on(eventOrHash, listener);
+  }
+  return this;
+};
+
+// Add in the header methods. Again, these ensure we don't get the same header
+// multiple times with different case conventions.
+HeaderMixins.gettersAndSetters(Request);
+
+// `processOptions` is called from the constructor to handle all the work
+// associated with making sure we do our best to ensure we have a valid request.
+
+var processOptions = function(request,options) {
+
+  request.log.debug("Processing request options ..");
+
+  // We'll use `request.emitter` to manage the `on` event handlers.
+  request.emitter = (new Emitter);
+
+  request.agent = options.agent;
+
+  // Set up the handlers ...
+  if (options.on) {
+    for (var key in options.on) {
+      if (options.on.hasOwnProperty(key)) {
+        request.emitter.on(key, options.on[key]);
+      }
+    }
+  }
+
+  // Make sure we were give a URL or a host
+  if (!options.url && !options.host) {
+    request.emitter.emit("request_error",
+        new Error("No url or url options (host, port, etc.)"));
+    return;
+  }
+
+  // Allow for the [use of a proxy](http://www.jmarshall.com/easy/http/#proxies).
+
+  if (options.url) {
+    if (options.proxy) {
+      request.url = options.proxy;
+      request.path = options.url;
+    } else {
+      request.url = options.url;
+    }
+  }
+
+  // Set the remaining options.
+  request.query = options.query||options.parameters||request.query ;
+  request.method = options.method;
+  request.setHeader("user-agent",options.agent||"Shred");
+  request.setHeaders(options.headers);
+
+  if (request.cookieJar) {
+    var cookies = request.cookieJar.getCookies( CookieAccessInfo( request.host, request.path ) );
+    if (cookies.length) {
+      var cookieString = request.getHeader('cookie')||'';
+      for (var cookieIndex = 0; cookieIndex < cookies.length; ++cookieIndex) {
+          if ( cookieString.length && cookieString[ cookieString.length - 1 ] != ';' )
+          {
+              cookieString += ';';
+          }
+          cookieString += cookies[ cookieIndex ].name + '=' + cookies[ cookieIndex ].value + ';';
+      }
+      request.setHeader("cookie", cookieString);
+    }
+  }
+  
+  // The content entity can be set either using the `body` or `content` attributes.
+  if (options.body||options.content) {
+    request.content = options.body||options.content;
+  }
+  request.timeout = options.timeout;
+
+};
+
+// `createRequest` is also called by the constructor, after `processOptions`.
+// This actually makes the request and processes the response, so `createRequest`
+// is a bit of a misnomer.
+
+var createRequest = function(request) {
+  var timeout ;
+
+  request.log.debug("Creating request ..");
+  request.log.debug(request);
+
+  var reqParams = {
+    host: request.host,
+    port: request.port,
+    method: request.method,
+    path: request.path + (request.query ? '?'+request.query : ""),
+    headers: request.getHeaders(),
+    // Node's HTTP/S modules will ignore this, but we are using the
+    // browserify-http module in the browser for both HTTP and HTTPS, and this
+    // is how you differentiate the two.
+    scheme: request.scheme,
+    // Use a provided agent.  'Undefined' is the default, which uses a global
+    // agent.
+    agent: request.agent
+  };
+
+  if (request.logCurl) {
+    logCurl(request);
+  }
+
+  var http = request.scheme == "http" ? HTTP : HTTPS;
+
+  // Set up the real request using the selected library. The request won't be
+  // sent until we call `.end()`.
+  request._raw = http.request(reqParams, function(response) {
+    request.log.debug("Received response ..");
+
+    // We haven't timed out and we have a response, so make sure we clear the
+    // timeout so it doesn't fire while we're processing the response.
+    clearTimeout(timeout);
+
+    // Construct a Shred `Response` object from the response. This will stream
+    // the response, thus the need for the callback. We can access the response
+    // entity safely once we're in the callback.
+    response = new Response(response, request, function(response) {
+
+      // Set up some event magic. The precedence is given first to
+      // status-specific handlers, then to responses for a given event, and then
+      // finally to the more general `response` handler. In the last case, we
+      // need to first make sure we're not dealing with a a redirect.
+      var emit = function(event) {
+        var emitter = request.emitter;
+        var textStatus = STATUS_CODES[response.status] ? STATUS_CODES[response.status].toLowerCase() : null;
+        if (emitter.listeners(response.status).length > 0 || emitter.listeners(textStatus).length > 0) {
+          emitter.emit(response.status, response);
+          emitter.emit(textStatus, response);
+        } else {
+          if (emitter.listeners(event).length>0) {
+            emitter.emit(event, response);
+          } else if (!response.isRedirect) {
+            emitter.emit("response", response);
+            //console.warn("Request has no event listener for status code " + response.status);
+          }
+        }
+      };
+
+      // Next, check for a redirect. We simply repeat the request with the URL
+      // given in the `Location` header. We fire a `redirect` event.
+      if (response.isRedirect) {
+        request.log.debug("Redirecting to "
+            + response.getHeader("Location"));
+        request.url = response.getHeader("Location");
+        emit("redirect");
+        createRequest(request);
+
+      // Okay, it's not a redirect. Is it an error of some kind?
+      } else if (response.isError) {
+        emit("error");
+      } else {
+      // It looks like we're good shape. Trigger the `success` event.
+        emit("success");
+      }
+    });
+  });
+
+  // We're still setting up the request. Next, we're going to handle error cases
+  // where we have no response. We don't emit an error event because that event
+  // takes a response. We don't response handlers to have to check for a null
+  // value. However, we [should introduce a different event
+  // type](https://github.com/spire-io/shred/issues/3) for this type of error.
+  request._raw.on("error", function(error) {
+    request.emitter.emit("request_error", error);
+  });
+
+  request._raw.on("socket", function(socket) {
+    request.emitter.emit("socket", socket);
+  });
+
+  // TCP timeouts should also trigger the "response_error" event.
+  request._raw.on('socket', function () {
+    request._raw.socket.on('timeout', function () {
+      // This should trigger the "error" event on the raw request, which will
+      // trigger the "response_error" on the shred request.
+      request._raw.abort();
+    });
+  });
+
+
+  // We're almost there. Next, we need to write the request entity to the
+  // underlying request object.
+  if (request.content) {
+    request.log.debug("Streaming body: '" +
+        request.content.data.slice(0,59) + "' ... ");
+    request._raw.write(request.content.data);
+  }
+
+  // Finally, we need to set up the timeout. We do this last so that we don't
+  // start the clock ticking until the last possible moment.
+  if (request.timeout) {
+    timeout = setTimeout(function() {
+      request.log.debug("Timeout fired, aborting request ...");
+      request._raw.abort();
+      request.emitter.emit("timeout", request);
+    },request.timeout);
+  }
+
+  // The `.end()` method will cause the request to fire. Technically, it might
+  // have already sent the headers and body.
+  request.log.debug("Sending request ...");
+  request._raw.end();
+};
+
+// Logs the curl command for the request.
+var logCurl = function (req) {
+  var headers = req.getHeaders();
+  var headerString = "";
+
+  for (var key in headers) {
+    headerString += '-H "' + key + ": " + headers[key] + '" ';
+  }
+
+  var bodyString = ""
+
+  if (req.content) {
+    bodyString += "-d '" + req.content.body + "' ";
+  }
+
+  var query = req.query ? '?' + req.query : "";
+
+  console.log("curl " +
+    "-X " + req.method.toUpperCase() + " " +
+    req.scheme + "://" + req.host + ":" + req.port + req.path + query + " " +
+    headerString +
+    bodyString
+  );
+};
+
+
+module.exports = Request;
+
+});
+
+require.define("http", function (require, module, exports, __dirname, __filename) {
+    // todo
+
+});
+
+require.define("https", function (require, module, exports, __dirname, __filename) {
+    // todo
+
+});
+
+require.define("/shred/parseUri.js", function (require, module, exports, __dirname, __filename) {
+    // parseUri 1.2.2
+// (c) Steven Levithan <stevenlevithan.com>
+// MIT License
+
+function parseUri (str) {
+  var o   = parseUri.options,
+    m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
+    uri = {},
+    i   = 14;
+
+  while (i--) uri[o.key[i]] = m[i] || "";
+
+  uri[o.q.name] = {};
+  uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
+    if ($1) uri[o.q.name][$1] = $2;
+  });
+
+  return uri;
+};
+
+parseUri.options = {
+  strictMode: false,
+  key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
+  q:   {
+    name:   "queryKey",
+    parser: /(?:^|&)([^&=]*)=?([^&]*)/g
+  },
+  parser: {
+    strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+    loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
+  }
+};
+
+module.exports = parseUri;
+
+});
+
+require.define("events", function (require, module, exports, __dirname, __filename) {
+    if (!process.EventEmitter) process.EventEmitter = function () {};
+
+var EventEmitter = exports.EventEmitter = process.EventEmitter;
+var isArray = typeof Array.isArray === 'function'
+    ? Array.isArray
+    : function (xs) {
+        return Object.toString.call(xs) === '[object Array]'
+    }
+;
+
+// By default EventEmitters will print a warning if more than
+// 10 listeners are added to it. This is a useful default which
+// helps finding memory leaks.
+//
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+var defaultMaxListeners = 10;
+EventEmitter.prototype.setMaxListeners = function(n) {
+  if (!this._events) this._events = {};
+  this._events.maxListeners = n;
+};
+
+
+EventEmitter.prototype.emit = function(type) {
+  // If there is no 'error' event listener then throw.
+  if (type === 'error') {
+    if (!this._events || !this._events.error ||
+        (isArray(this._events.error) && !this._events.error.length))
+    {
+      if (arguments[1] instanceof Error) {
+        throw arguments[1]; // Unhandled 'error' event
+      } else {
+        throw new Error("Uncaught, unspecified 'error' event.");
+      }
+      return false;
+    }
+  }
+
+  if (!this._events) return false;
+  var handler = this._events[type];
+  if (!handler) return false;
+
+  if (typeof handler == 'function') {
+    switch (arguments.length) {
+      // fast cases
+      case 1:
+        handler.call(this);
+        break;
+      case 2:
+        handler.call(this, arguments[1]);
+        break;
+      case 3:
+        handler.call(this, arguments[1], arguments[2]);
+        break;
+      // slower
+      default:
+        var args = Array.prototype.slice.call(arguments, 1);
+        handler.apply(this, args);
+    }
+    return true;
+
+  } else if (isArray(handler)) {
+    var args = Array.prototype.slice.call(arguments, 1);
+
+    var listeners = handler.slice();
+    for (var i = 0, l = listeners.length; i < l; i++) {
+      listeners[i].apply(this, args);
+    }
+    return true;
+
+  } else {
+    return false;
+  }
+};
+
+// EventEmitter is defined in src/node_events.cc
+// EventEmitter.prototype.emit() is also defined there.
+EventEmitter.prototype.addListener = function(type, listener) {
+  if ('function' !== typeof listener) {
+    throw new Error('addListener only takes instances of Function');
+  }
+
+  if (!this._events) this._events = {};
+
+  // To avoid recursion in the case that type == "newListeners"! Before
+  // adding it to the listeners, first emit "newListeners".
+  this.emit('newListener', type, listener);
+
+  if (!this._events[type]) {
+    // Optimize the case of one listener. Don't need the extra array object.
+    this._events[type] = listener;
+  } else if (isArray(this._events[type])) {
+
+    // Check for listener leak
+    if (!this._events[type].warned) {
+      var m;
+      if (this._events.maxListeners !== undefined) {
+        m = this._events.maxListeners;
+      } else {
+        m = defaultMaxListeners;
+      }
+
+      if (m && m > 0 && this._events[type].length > m) {
+        this._events[type].warned = true;
+        console.error('(node) warning: possible EventEmitter memory ' +
+                      'leak detected. %d listeners added. ' +
+                      'Use emitter.setMaxListeners() to increase limit.',
+                      this._events[type].length);
+        console.trace();
+      }
+    }
+
+    // If we've already got an array, just append.
+    this._events[type].push(listener);
+  } else {
+    // Adding the second element, need to change to array.
+    this._events[type] = [this._events[type], listener];
+  }
+
+  return this;
+};
+
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
+
+EventEmitter.prototype.once = function(type, listener) {
+  var self = this;
+  self.on(type, function g() {
+    self.removeListener(type, g);
+    listener.apply(this, arguments);
+  });
+
+  return this;
+};
+
+EventEmitter.prototype.removeListener = function(type, listener) {
+  if ('function' !== typeof listener) {
+    throw new Error('removeListener only takes instances of Function');
+  }
+
+  // does not use listeners(), so no side effect of creating _events[type]
+  if (!this._events || !this._events[type]) return this;
+
+  var list = this._events[type];
+
+  if (isArray(list)) {
+    var i = list.indexOf(listener);
+    if (i < 0) return this;
+    list.splice(i, 1);
+    if (list.length == 0)
+      delete this._events[type];
+  } else if (this._events[type] === listener) {
+    delete this._events[type];
+  }
+
+  return this;
+};
+
+EventEmitter.prototype.removeAllListeners = function(type) {
+  // does not use listeners(), so no side effect of creating _events[type]
+  if (type && this._events && this._events[type]) this._events[type] = null;
+  return this;
+};
+
+EventEmitter.prototype.listeners = function(type) {
+  if (!this._events) this._events = {};
+  if (!this._events[type]) this._events[type] = [];
+  if (!isArray(this._events[type])) {
+    this._events[type] = [this._events[type]];
+  }
+  return this._events[type];
+};
+
+});
+
+require.define("/node_modules/sprintf/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"./lib/sprintf"}
+});
+
+require.define("/node_modules/sprintf/lib/sprintf.js", function (require, module, exports, __dirname, __filename) {
+    /**
+sprintf() for JavaScript 0.7-beta1
+http://www.diveintojavascript.com/projects/javascript-sprintf
+
+Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of sprintf() for JavaScript nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Changelog:
+2010.11.07 - 0.7-beta1-node
+  - converted it to a node.js compatible module
+
+2010.09.06 - 0.7-beta1
+  - features: vsprintf, support for named placeholders
+  - enhancements: format cache, reduced global namespace pollution
+
+2010.05.22 - 0.6:
+ - reverted to 0.4 and fixed the bug regarding the sign of the number 0
+ Note:
+ Thanks to Raphael Pigulla <raph (at] n3rd [dot) org> (http://www.n3rd.org/)
+ who warned me about a bug in 0.5, I discovered that the last update was
+ a regress. I appologize for that.
+
+2010.05.09 - 0.5:
+ - bug fix: 0 is now preceeded with a + sign
+ - bug fix: the sign was not at the right position on padded results (Kamal Abdali)
+ - switched from GPL to BSD license
+
+2007.10.21 - 0.4:
+ - unit test and patch (David Baird)
+
+2007.09.17 - 0.3:
+ - bug fix: no longer throws exception on empty paramenters (Hans Pufal)
+
+2007.09.11 - 0.2:
+ - feature: added argument swapping
+
+2007.04.03 - 0.1:
+ - initial release
+**/
+
+var sprintf = (function() {
+  function get_type(variable) {
+    return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
+  }
+  function str_repeat(input, multiplier) {
+    for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
+    return output.join('');
+  }
+
+  var str_format = function() {
+    if (!str_format.cache.hasOwnProperty(arguments[0])) {
+      str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
+    }
+    return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
+  };
+
+  str_format.format = function(parse_tree, argv) {
+    var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
+    for (i = 0; i < tree_length; i++) {
+      node_type = get_type(parse_tree[i]);
+      if (node_type === 'string') {
+        output.push(parse_tree[i]);
+      }
+      else if (node_type === 'array') {
+        match = parse_tree[i]; // convenience purposes only
+        if (match[2]) { // keyword argument
+          arg = argv[cursor];
+          for (k = 0; k < match[2].length; k++) {
+            if (!arg.hasOwnProperty(match[2][k])) {
+              throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
+            }
+            arg = arg[match[2][k]];
+          }
+        }
+        else if (match[1]) { // positional argument (explicit)
+          arg = argv[match[1]];
+        }
+        else { // positional argument (implicit)
+          arg = argv[cursor++];
+        }
+
+        if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
+          throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
+        }
+        switch (match[8]) {
+          case 'b': arg = arg.toString(2); break;
+          case 'c': arg = String.fromCharCode(arg); break;
+          case 'd': arg = parseInt(arg, 10); break;
+          case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
+          case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
+          case 'o': arg = arg.toString(8); break;
+          case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
+          case 'u': arg = Math.abs(arg); break;
+          case 'x': arg = arg.toString(16); break;
+          case 'X': arg = arg.toString(16).toUpperCase(); break;
+        }
+        arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
+        pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
+        pad_length = match[6] - String(arg).length;
+        pad = match[6] ? str_repeat(pad_character, pad_length) : '';
+        output.push(match[5] ? arg + pad : pad + arg);
+      }
+    }
+    return output.join('');
+  };
+
+  str_format.cache = {};
+
+  str_format.parse = function(fmt) {
+    var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
+    while (_fmt) {
+      if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
+        parse_tree.push(match[0]);
+      }
+      else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
+        parse_tree.push('%');
+      }
+      else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
+        if (match[2]) {
+          arg_names |= 1;
+          var field_list = [], replacement_field = match[2], field_match = [];
+          if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
+            field_list.push(field_match[1]);
+            while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
+              if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
+                field_list.push(field_match[1]);
+              }
+              else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
+                field_list.push(field_match[1]);
+              }
+              else {
+                throw('[sprintf] huh?');
+              }
+            }
+          }
+          else {
+            throw('[sprintf] huh?');
+          }
+          match[2] = field_list;
+        }
+        else {
+          arg_names |= 2;
+        }
+        if (arg_names === 3) {
+          throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
+        }
+        parse_tree.push(match);
+      }
+      else {
+        throw('[sprintf] huh?');
+      }
+      _fmt = _fmt.substring(match[0].length);
+    }
+    return parse_tree;
+  };
+
+  return str_format;
+})();
+
+var vsprintf = function(fmt, argv) {
+  argv.unshift(fmt);
+  return sprintf.apply(null, argv);
+};
+
+exports.sprintf = sprintf;
+exports.vsprintf = vsprintf;
+});
+
+require.define("/shred/response.js", function (require, module, exports, __dirname, __filename) {
+    // The `Response object` encapsulates a Node.js HTTP response.
+
+var Content = require("./content")
+  , HeaderMixins = require("./mixins/headers")
+  , CookieJarLib = require( "cookiejar" )
+  , Cookie = CookieJarLib.Cookie
+;
+
+// Browser doesn't have zlib.
+var zlib = null;
+try {
+  zlib = require('zlib');
+} catch (e) {
+  console.warn("no zlib library");
+}
+
+// Iconv doesn't work in browser
+var Iconv = null;
+try {
+  Iconv = require('iconv-lite');
+} catch (e) {
+  console.warn("no iconv library");
+}
+
+// Construct a `Response` object. You should never have to do this directly. The
+// `Request` object handles this, getting the raw response object and passing it
+// in here, along with the request. The callback allows us to stream the response
+// and then use the callback to let the request know when it's ready.
+var Response = function(raw, request, callback) { 
+  var response = this;
+  this._raw = raw;
+
+  // The `._setHeaders` method is "private"; you can't otherwise set headers on
+  // the response.
+  this._setHeaders.call(this,raw.headers);
+  
+  // store any cookies
+  if (request.cookieJar && this.getHeader('set-cookie')) {
+    var cookieStrings = this.getHeader('set-cookie');
+    var cookieObjs = []
+      , cookie;
+
+    for (var i = 0; i < cookieStrings.length; i++) {
+      var cookieString = cookieStrings[i];
+      if (!cookieString) {
+        continue;
+      }
+
+      if (!cookieString.match(/domain\=/i)) {
+        cookieString += '; domain=' + request.host;
+      }
+
+      if (!cookieString.match(/path\=/i)) {
+        cookieString += '; path=' + request.path;
+      }
+
+      try {
+        cookie = new Cookie(cookieString);
+        if (cookie) {
+          cookieObjs.push(cookie);
+        }
+      } catch (e) {
+        console.warn("Tried to set bad cookie: " + cookieString);
+      }
+    }
+
+    request.cookieJar.setCookies(cookieObjs);
+  }
+
+  this.request = request;
+  this.client = request.client;
+  this.log = this.request.log;
+
+  // Stream the response content entity and fire the callback when we're done.
+  // Store the incoming data in a array of Buffers which we concatinate into one
+  // buffer at the end.  We need to use buffers instead of strings here in order
+  // to preserve binary data.
+  var chunkBuffers = [];
+  var dataLength = 0;
+  raw.on("data", function(chunk) {
+    chunkBuffers.push(chunk);
+    dataLength += chunk.length;
+  });
+  raw.on("end", function() {
+    var body;
+    if (typeof Buffer === 'undefined') {
+      // Just concatinate into a string
+      body = chunkBuffers.join('');
+    } else {
+      // Initialize new buffer and add the chunks one-at-a-time.
+      body = new Buffer(dataLength);
+      for (var i = 0, pos = 0; i < chunkBuffers.length; i++) {
+        chunkBuffers[i].copy(body, pos);
+        pos += chunkBuffers[i].length;
+      }
+    }
+
+    var setBodyAndFinish = function (body) {
+      response._body = new Content({ 
+        body: body,
+        type: response.getHeader("Content-Type")
+      });
+      callback(response);
+    }
+
+    if (zlib && response.getHeader("Content-Encoding") === 'gzip'){
+      zlib.gunzip(body, function (err, gunzippedBody) {
+        if (Iconv && response.request.encoding){
+          body = Iconv.fromEncoding(gunzippedBody,response.request.encoding);
+        } else {
+          body = gunzippedBody.toString();
+        }
+        setBodyAndFinish(body);
+      })
+    }
+    else{
+       if (response.request.encoding){
+            body = Iconv.fromEncoding(body,response.request.encoding);
+        }        
+      setBodyAndFinish(body);
+    }
+  });
+};
+
+// The `Response` object can be pretty overwhelming to view using the built-in
+// Node.js inspect method. We want to make it a bit more manageable. This
+// probably goes [too far in the other
+// direction](https://github.com/spire-io/shred/issues/2).
+
+Response.prototype = {
+  inspect: function() {
+    var response = this;
+    var headers = this.format_headers();
+    var summary = ["<Shred Response> ", response.status].join(" ")
+    return [ summary, "- Headers:", headers].join("\n");
+  },
+  format_headers: function () {
+    var array = []
+    var headers = this._headers
+    for (var key in headers) {
+      if (headers.hasOwnProperty(key)) {
+        var value = headers[key]
+        array.push("\t" + key + ": " + value);
+      }
+    }
+    return array.join("\n");
+  }
+};
+
+// `Response` object properties, all of which are read-only:
+Object.defineProperties(Response.prototype, {
+  
+// - **status**. The HTTP status code for the response. 
+  status: {
+    get: function() { return this._raw.statusCode; },
+    enumerable: true
+  },
+
+// - **content**. The HTTP content entity, if any. Provided as a [content
+//   object](./content.html), which will attempt to convert the entity based upon
+//   the `content-type` header. The converted value is available as
+//   `content.data`. The original raw content entity is available as
+//   `content.body`.
+  body: {
+    get: function() { return this._body; }
+  },
+  content: {
+    get: function() { return this.body; },
+    enumerable: true
+  },
+
+// - **isRedirect**. Is the response a redirect? These are responses with 3xx
+//   status and a `Location` header.
+  isRedirect: {
+    get: function() {
+      return (this.status>299
+          &&this.status<400
+          &&this.getHeader("Location"));
+    },
+    enumerable: true
+  },
+
+// - **isError**. Is the response an error? These are responses with status of
+//   400 or greater.
+  isError: {
+    get: function() {
+      return (this.status === 0 || this.status > 399)
+    },
+    enumerable: true
+  }
+});
+
+// Add in the [getters for accessing the normalized headers](./headers.js).
+HeaderMixins.getters(Response);
+HeaderMixins.privateSetters(Response);
+
+// Work around Mozilla bug #608735 [https://bugzil.la/608735], which causes
+// getAllResponseHeaders() to return {} if the response is a CORS request.
+// xhr.getHeader still works correctly.
+var getHeader = Response.prototype.getHeader;
+Response.prototype.getHeader = function (name) {
+  return (getHeader.call(this,name) ||
+    (typeof this._raw.getHeader === 'function' && this._raw.getHeader(name)));
+};
+
+module.exports = Response;
+
+});
+
+require.define("/shred/content.js", function (require, module, exports, __dirname, __filename) {
+    
+// The purpose of the `Content` object is to abstract away the data conversions
+// to and from raw content entities as strings. For example, you want to be able
+// to pass in a Javascript object and have it be automatically converted into a
+// JSON string if the `content-type` is set to a JSON-based media type.
+// Conversely, you want to be able to transparently get back a Javascript object
+// in the response if the `content-type` is a JSON-based media-type.
+
+// One limitation of the current implementation is that it [assumes the `charset` is UTF-8](https://github.com/spire-io/shred/issues/5).
+
+// The `Content` constructor takes an options object, which *must* have either a
+// `body` or `data` property and *may* have a `type` property indicating the
+// media type. If there is no `type` attribute, a default will be inferred.
+var Content = function(options) {
+  this.body = options.body;
+  this.data = options.data;
+  this.type = options.type;
+};
+
+Content.prototype = {
+  // Treat `toString()` as asking for the `content.body`. That is, the raw content entity.
+  //
+  //     toString: function() { return this.body; }
+  //
+  // Commented out, but I've forgotten why. :/
+};
+
+
+// `Content` objects have the following attributes:
+Object.defineProperties(Content.prototype,{
+  
+// - **type**. Typically accessed as `content.type`, reflects the `content-type`
+//   header associated with the request or response. If not passed as an options
+//   to the constructor or set explicitly, it will infer the type the `data`
+//   attribute, if possible, and, failing that, will default to `text/plain`.
+  type: {
+    get: function() {
+      if (this._type) {
+        return this._type;
+      } else {
+        if (this._data) {
+          switch(typeof this._data) {
+            case "string": return "text/plain";
+            case "object": return "application/json";
+          }
+        }
+      }
+      return "text/plain";
+    },
+    set: function(value) {
+      this._type = value;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **data**. Typically accessed as `content.data`, reflects the content entity
+//   converted into Javascript data. This can be a string, if the `type` is, say,
+//   `text/plain`, but can also be a Javascript object. The conversion applied is
+//   based on the `processor` attribute. The `data` attribute can also be set
+//   directly, in which case the conversion will be done the other way, to infer
+//   the `body` attribute.
+  data: {
+    get: function() {
+      if (this._body) {
+        return this.processor.parser(this._body);
+      } else {
+        return this._data;
+      }
+    },
+    set: function(data) {
+      if (this._body&&data) Errors.setDataWithBody(this);
+      this._data = data;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **body**. Typically accessed as `content.body`, reflects the content entity
+//   as a UTF-8 string. It is the mirror of the `data` attribute. If you set the
+//   `data` attribute, the `body` attribute will be inferred and vice-versa. If
+//   you attempt to set both, an exception is raised.
+  body: {
+    get: function() {
+      if (this._data) {
+        return this.processor.stringify(this._data);
+      } else {
+        return this.processor.stringify(this._body);
+      }
+    },
+    set: function(body) {
+      if (this._data&&body) Errors.setBodyWithData(this);
+      this._body = body;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **processor**. The functions that will be used to convert to/from `data` and
+//   `body` attributes. You can add processors. The two that are built-in are for
+//   `text/plain`, which is basically an identity transformation and
+//   `application/json` and other JSON-based media types (including custom media
+//   types with `+json`). You can add your own processors. See below.
+  processor: {
+    get: function() {
+      var processor = Content.processors[this.type];
+      if (processor) {
+        return processor;
+      } else {
+        // Return the first processor that matches any part of the
+        // content type. ex: application/vnd.foobar.baz+json will match json.
+        var main = this.type.split(";")[0];
+        var parts = main.split(/\+|\//);
+        for (var i=0, l=parts.length; i < l; i++) {
+          processor = Content.processors[parts[i]]
+        }
+        return processor || {parser:identity,stringify:toString};
+      }
+    },
+    enumerable: true
+  },
+
+// - **length**. Typically accessed as `content.length`, returns the length in
+//   bytes of the raw content entity.
+  length: {
+    get: function() {
+      if (typeof Buffer !== 'undefined') {
+        return Buffer.byteLength(this.body);
+      }
+      return this.body.length;
+    }
+  }
+});
+
+Content.processors = {};
+
+// The `registerProcessor` function allows you to add your own processors to
+// convert content entities. Each processor consists of a Javascript object with
+// two properties:
+// - **parser**. The function used to parse a raw content entity and convert it
+//   into a Javascript data type.
+// - **stringify**. The function used to convert a Javascript data type into a
+//   raw content entity.
+Content.registerProcessor = function(types,processor) {
+  
+// You can pass an array of types that will trigger this processor, or just one.
+// We determine the array via duck-typing here.
+  if (types.forEach) {
+    types.forEach(function(type) {
+      Content.processors[type] = processor;
+    });
+  } else {
+    // If you didn't pass an array, we just use what you pass in.
+    Content.processors[types] = processor;
+  }
+};
+
+// Register the identity processor, which is used for text-based media types.
+var identity = function(x) { return x; }
+  , toString = function(x) { return x.toString(); }
+Content.registerProcessor(
+  ["text/html","text/plain","text"],
+  { parser: identity, stringify: toString });
+
+// Register the JSON processor, which is used for JSON-based media types.
+Content.registerProcessor(
+  ["application/json; charset=utf-8","application/json","json"],
+  {
+    parser: function(string) {
+      return JSON.parse(string);
+    },
+    stringify: function(data) {
+      return JSON.stringify(data); }});
+
+// Error functions are defined separately here in an attempt to make the code
+// easier to read.
+var Errors = {
+  setDataWithBody: function(object) {
+    throw new Error("Attempt to set data attribute of a content object " +
+        "when the body attributes was already set.");
+  },
+  setBodyWithData: function(object) {
+    throw new Error("Attempt to set body attribute of a content object " +
+        "when the data attributes was already set.");
+  }
+}
+module.exports = Content;
+
+});
+
+require.define("/shred/mixins/headers.js", function (require, module, exports, __dirname, __filename) {
+    // The header mixins allow you to add HTTP header support to any object. This
+// might seem pointless: why not simply use a hash? The main reason is that, per
+// the [HTTP spec](http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2),
+// headers are case-insensitive. So, for example, `content-type` is the same as
+// `CONTENT-TYPE` which is the same as `Content-Type`. Since there is no way to
+// overload the index operator in Javascript, using a hash to represent the
+// headers means it's possible to have two conflicting values for a single
+// header.
+// 
+// The solution to this is to provide explicit methods to set or get headers.
+// This also has the benefit of allowing us to introduce additional variations,
+// including snake case, which we automatically convert to what Matthew King has
+// dubbed "corset case" - the hyphen-separated names with initial caps:
+// `Content-Type`. We use corset-case just in case we're dealing with servers
+// that haven't properly implemented the spec.
+
+// Convert headers to corset-case. **Example:** `CONTENT-TYPE` will be converted
+// to `Content-Type`.
+
+var corsetCase = function(string) {
+  return string.toLowerCase()
+      //.replace("_","-")
+      .replace(/(^|-)(\w)/g, 
+          function(s) { return s.toUpperCase(); });
+};
+
+// We suspect that `initializeHeaders` was once more complicated ...
+var initializeHeaders = function(object) {
+  return {};
+};
+
+// Access the `_headers` property using lazy initialization. **Warning:** If you
+// mix this into an object that is using the `_headers` property already, you're
+// going to have trouble.
+var $H = function(object) {
+  return object._headers||(object._headers=initializeHeaders(object));
+};
+
+// Hide the implementations as private functions, separate from how we expose them.
+
+// The "real" `getHeader` function: get the header after normalizing the name.
+var getHeader = function(object,name) {
+  return $H(object)[corsetCase(name)];
+};
+
+// The "real" `getHeader` function: get one or more headers, or all of them
+// if you don't ask for any specifics. 
+var getHeaders = function(object,names) {
+  var keys = (names && names.length>0) ? names : Object.keys($H(object));
+  var hash = keys.reduce(function(hash,key) {
+    hash[key] = getHeader(object,key);
+    return hash;
+  },{});
+  // Freeze the resulting hash so you don't mistakenly think you're modifying
+  // the real headers.
+  Object.freeze(hash);
+  return hash;
+};
+
+// The "real" `setHeader` function: set a header, after normalizing the name.
+var setHeader = function(object,name,value) {
+  $H(object)[corsetCase(name)] = value;
+  return object;
+};
+
+// The "real" `setHeaders` function: set multiple headers based on a hash.
+var setHeaders = function(object,hash) {
+  for( var key in hash ) { setHeader(object,key,hash[key]); };
+  return this;
+};
+
+// Here's where we actually bind the functionality to an object. These mixins work by
+// exposing mixin functions. Each function mixes in a specific batch of features.
+module.exports = {
+  
+  // Add getters.
+  getters: function(constructor) {
+    constructor.prototype.getHeader = function(name) { return getHeader(this,name); };
+    constructor.prototype.getHeaders = function() { return getHeaders(this,arguments); };
+  },
+  // Add setters but as "private" methods.
+  privateSetters: function(constructor) {
+    constructor.prototype._setHeader = function(key,value) { return setHeader(this,key,value); };
+    constructor.prototype._setHeaders = function(hash) { return setHeaders(this,hash); };
+  },
+  // Add setters.
+  setters: function(constructor) {
+    constructor.prototype.setHeader = function(key,value) { return setHeader(this,key,value); };
+    constructor.prototype.setHeaders = function(hash) { return setHeaders(this,hash); };
+  },
+  // Add both getters and setters.
+  gettersAndSetters: function(constructor) {
+    constructor.prototype.getHeader = function(name) { return getHeader(this,name); };
+    constructor.prototype.getHeaders = function() { return getHeaders(this,arguments); };
+    constructor.prototype.setHeader = function(key,value) { return setHeader(this,key,value); };
+    constructor.prototype.setHeaders = function(hash) { return setHeaders(this,hash); };
+  },
+};
+
+});
+
+require.define("/node_modules/iconv-lite/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {}
+});
+
+require.define("/node_modules/iconv-lite/index.js", function (require, module, exports, __dirname, __filename) {
+    // Module exports
+var iconv = module.exports = {
+    toEncoding: function(str, encoding) {
+        return iconv.getCodec(encoding).toEncoding(str);
+    },
+    fromEncoding: function(buf, encoding) {
+        return iconv.getCodec(encoding).fromEncoding(buf);
+    },
+    
+    defaultCharUnicode: '�',
+    defaultCharSingleByte: '?',
+    
+    // Get correct codec for given encoding.
+    getCodec: function(encoding) {
+        var enc = encoding || "utf8";
+        var codecOptions = undefined;
+        while (1) {
+            if (getType(enc) === "String")
+                enc = enc.replace(/[- ]/g, "").toLowerCase();
+            var codec = iconv.encodings[enc];
+            var type = getType(codec);
+            if (type === "String") {
+                // Link to other encoding.
+                codecOptions = {originalEncoding: enc};
+                enc = codec;
+            }
+            else if (type === "Object" && codec.type != undefined) {
+                // Options for other encoding.
+                codecOptions = codec;
+                enc = codec.type;
+            } 
+            else if (type === "Function")
+                // Codec itself.
+                return codec(codecOptions);
+            else
+                throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
+        }
+    },
+    
+    // Define basic encodings
+    encodings: {
+        internal: function(options) {
+            return {
+                toEncoding: function(str) {
+                    return new Buffer(ensureString(str), options.originalEncoding);
+                },
+                fromEncoding: function(buf) {
+                    return ensureBuffer(buf).toString(options.originalEncoding);
+                }
+            };
+        },
+        utf8: "internal",
+        ucs2: "internal",
+        binary: "internal",
+        ascii: "internal",
+        base64: "internal",
+        
+        // Codepage single-byte encodings.
+        singlebyte: function(options) {
+            // Prepare chars if needed
+            if (!options.chars || (options.chars.length !== 128 && options.chars.length !== 256))
+                throw new Error("Encoding '"+options.type+"' has incorrect 'chars' (must be of len 128 or 256)");
+            
+            if (options.chars.length === 128)
+                options.chars = asciiString + options.chars;
+            
+            if (!options.charsBuf) {
+                options.charsBuf = new Buffer(options.chars, 'ucs2');
+            }
+            
+            if (!options.revCharsBuf) {
+                options.revCharsBuf = new Buffer(65536);
+                var defChar = iconv.defaultCharSingleByte.charCodeAt(0);
+                for (var i = 0; i < options.revCharsBuf.length; i++)
+                    options.revCharsBuf[i] = defChar;
+                for (var i = 0; i < options.chars.length; i++)
+                    options.revCharsBuf[options.chars.charCodeAt(i)] = i;
+            }
+            
+            return {
+                toEncoding: function(str) {
+                    str = ensureString(str);
+                    
+                    var buf = new Buffer(str.length);
+                    var revCharsBuf = options.revCharsBuf;
+                    for (var i = 0; i < str.length; i++)
+                        buf[i] = revCharsBuf[str.charCodeAt(i)];
+                    
+                    return buf;
+                },
+                fromEncoding: function(buf) {
+                    buf = ensureBuffer(buf);
+                    
+                    // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
+                    var charsBuf = options.charsBuf;
+                    var newBuf = new Buffer(buf.length*2);
+                    var idx1 = 0, idx2 = 0;
+                    for (var i = 0, _len = buf.length; i < _len; i++) {
+                        idx1 = buf[i]*2; idx2 = i*2;
+                        newBuf[idx2] = charsBuf[idx1];
+                        newBuf[idx2+1] = charsBuf[idx1+1];
+                    }
+                    return newBuf.toString('ucs2');
+                }
+            };
+        },
+
+        // Codepage double-byte encodings.
+        table: function(options) {
+            var table = options.table, key, revCharsTable = options.revCharsTable;
+            if (!table) {
+                throw new Error("Encoding '" + options.type +"' has incorect 'table' option");
+            }
+            if(!revCharsTable) {
+                revCharsTable = options.revCharsTable = {};
+                for (key in table) {
+                    revCharsTable[table[key]] = parseInt(key);
+                }
+            }
+            
+            return {
+                toEncoding: function(str) {
+                    str = ensureString(str);
+                    var strLen = str.length;
+                    var bufLen = strLen;
+                    for (var i = 0; i < strLen; i++)
+                        if (str.charCodeAt(i) >> 7)
+                            bufLen++;
+
+                    var newBuf = new Buffer(bufLen), gbkcode, unicode, 
+                        defaultChar = revCharsTable[iconv.defaultCharUnicode.charCodeAt(0)];
+
+                    for (var i = 0, j = 0; i < strLen; i++) {
+                        unicode = str.charCodeAt(i);
+                        if (unicode >> 7) {
+                            gbkcode = revCharsTable[unicode] || defaultChar;
+                            newBuf[j++] = gbkcode >> 8; //high byte;
+                            newBuf[j++] = gbkcode & 0xFF; //low byte
+                        } else {//ascii
+                            newBuf[j++] = unicode;
+                        }
+                    }
+                    return newBuf;
+                },
+                fromEncoding: function(buf) {
+                    buf = ensureBuffer(buf);
+                    var bufLen = buf.length, strLen = 0;
+                    for (var i = 0; i < bufLen; i++) {
+                        strLen++;
+                        if (buf[i] & 0x80) //the high bit is 1, so this byte is gbkcode's high byte.skip next byte
+                            i++;
+                    }
+                    var newBuf = new Buffer(strLen*2), unicode, gbkcode,
+                        defaultChar = iconv.defaultCharUnicode.charCodeAt(0);
+                    
+                    for (var i = 0, j = 0; i < bufLen; i++, j+=2) {
+                        gbkcode = buf[i];
+                        if (gbkcode & 0x80) {
+                            gbkcode = (gbkcode << 8) + buf[++i];
+                            unicode = table[gbkcode] || defaultChar;
+                        } else {
+                            unicode = gbkcode;
+                        }
+                        newBuf[j] = unicode & 0xFF; //low byte
+                        newBuf[j+1] = unicode >> 8; //high byte
+                    }
+                    return newBuf.toString('ucs2');
+                }
+            }
+        }
+    }
+};
+
+// Add aliases to convert functions
+iconv.encode = iconv.toEncoding;
+iconv.decode = iconv.fromEncoding;
+
+// Load other encodings from files in /encodings dir.
+var encodingsDir = __dirname+"/encodings/",
+    fs = require('fs');
+fs.readdirSync(encodingsDir).forEach(function(file) {
+    if(fs.statSync(encodingsDir + file).isDirectory()) return;
+    var encodings = require(encodingsDir + file)
+    for (var key in encodings)
+        iconv.encodings[key] = encodings[key]
+});
+
+// Utilities
+var asciiString = '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f'+
+              ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f';
+
+var ensureBuffer = function(buf) {
+    buf = buf || new Buffer(0);
+    return (buf instanceof Buffer) ? buf : new Buffer(buf.toString(), "utf8");
+}
+
+var ensureString = function(str) {
+    str = str || "";
+    return (str instanceof String) ? str : str.toString((str instanceof Buffer) ? 'utf8' : undefined);
+}
+
+var getType = function(obj) {
+    return Object.prototype.toString.call(obj).slice(8, -1);
+}
+
+
+});
+
+require.define("/node_modules/http-browserify/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"index.js","browserify":"browser.js"}
+});
+
+require.define("/node_modules/http-browserify/browser.js", function (require, module, exports, __dirname, __filename) {
+    var http = module.exports;
+var EventEmitter = require('events').EventEmitter;
+var Request = require('./lib/request');
+
+http.request = function (params, cb) {
+    if (!params) params = {};
+    if (!params.host) params.host = window.location.host.split(':')[0];
+    if (!params.port) params.port = window.location.port;
+    
+    var req = new Request(new xhrHttp, params);
+    if (cb) req.on('response', cb);
+    return req;
+};
+
+http.get = function (params, cb) {
+    params.method = 'GET';
+    var req = http.request(params, cb);
+    req.end();
+    return req;
+};
+
+var xhrHttp = (function () {
+    if (typeof window === 'undefined') {
+        throw new Error('no window object present');
+    }
+    else if (window.XMLHttpRequest) {
+        return window.XMLHttpRequest;
+    }
+    else if (window.ActiveXObject) {
+        var axs = [
+            'Msxml2.XMLHTTP.6.0',
+            'Msxml2.XMLHTTP.3.0',
+            'Microsoft.XMLHTTP'
+        ];
+        for (var i = 0; i < axs.length; i++) {
+            try {
+                var ax = new(window.ActiveXObject)(axs[i]);
+                return function () {
+                    if (ax) {
+                        var ax_ = ax;
+                        ax = null;
+                        return ax_;
+                    }
+                    else {
+                        return new(window.ActiveXObject)(axs[i]);
+                    }
+                };
+            }
+            catch (e) {}
+        }
+        throw new Error('ajax not supported in this browser')
+    }
+    else {
+        throw new Error('ajax not supported in this browser');
+    }
+})();
+
+http.STATUS_CODES = {
+    100 : 'Continue',
+    101 : 'Switching Protocols',
+    102 : 'Processing', // RFC 2518, obsoleted by RFC 4918
+    200 : 'OK',
+    201 : 'Created',
+    202 : 'Accepted',
+    203 : 'Non-Authoritative Information',
+    204 : 'No Content',
+    205 : 'Reset Content',
+    206 : 'Partial Content',
+    207 : 'Multi-Status', // RFC 4918
+    300 : 'Multiple Choices',
+    301 : 'Moved Permanently',
+    302 : 'Moved Temporarily',
+    303 : 'See Other',
+    304 : 'Not Modified',
+    305 : 'Use Proxy',
+    307 : 'Temporary Redirect',
+    400 : 'Bad Request',
+    401 : 'Unauthorized',
+    402 : 'Payment Required',
+    403 : 'Forbidden',
+    404 : 'Not Found',
+    405 : 'Method Not Allowed',
+    406 : 'Not Acceptable',
+    407 : 'Proxy Authentication Required',
+    408 : 'Request Time-out',
+    409 : 'Conflict',
+    410 : 'Gone',
+    411 : 'Length Required',
+    412 : 'Precondition Failed',
+    413 : 'Request Entity Too Large',
+    414 : 'Request-URI Too Large',
+    415 : 'Unsupported Media Type',
+    416 : 'Requested Range Not Satisfiable',
+    417 : 'Expectation Failed',
+    418 : 'I\'m a teapot', // RFC 2324
+    422 : 'Unprocessable Entity', // RFC 4918
+    423 : 'Locked', // RFC 4918
+    424 : 'Failed Dependency', // RFC 4918
+    425 : 'Unordered Collection', // RFC 4918
+    426 : 'Upgrade Required', // RFC 2817
+    500 : 'Internal Server Error',
+    501 : 'Not Implemented',
+    502 : 'Bad Gateway',
+    503 : 'Service Unavailable',
+    504 : 'Gateway Time-out',
+    505 : 'HTTP Version not supported',
+    506 : 'Variant Also Negotiates', // RFC 2295
+    507 : 'Insufficient Storage', // RFC 4918
+    509 : 'Bandwidth Limit Exceeded',
+    510 : 'Not Extended' // RFC 2774
+};
+
+});
+
+require.define("/node_modules/http-browserify/lib/request.js", function (require, module, exports, __dirname, __filename) {
+    var EventEmitter = require('events').EventEmitter;
+var Response = require('./response');
+var isSafeHeader = require('./isSafeHeader');
+
+var Request = module.exports = function (xhr, params) {
+    var self = this;
+    self.xhr = xhr;
+    self.body = '';
+    
+    var uri = params.host + ':' + params.port + (params.path || '/');
+    
+    xhr.open(
+        params.method || 'GET',
+        (params.scheme || 'http') + '://' + uri,
+        true
+    );
+    
+    if (params.headers) {
+        Object.keys(params.headers).forEach(function (key) {
+            if (!isSafeHeader(key)) return;
+            var value = params.headers[key];
+            if (Array.isArray(value)) {
+                value.forEach(function (v) {
+                    xhr.setRequestHeader(key, v);
+                });
+            }
+            else xhr.setRequestHeader(key, value)
+        });
+    }
+    
+    var res = new Response(xhr);
+    res.on('ready', function () {
+        self.emit('response', res);
+    });
+    
+    xhr.onreadystatechange = function () {
+        res.handle(xhr);
+    };
+};
+
+Request.prototype = new EventEmitter;
+
+Request.prototype.setHeader = function (key, value) {
+    if ((Array.isArray && Array.isArray(value))
+    || value instanceof Array) {
+        for (var i = 0; i < value.length; i++) {
+            this.xhr.setRequestHeader(key, value[i]);
+        }
+    }
+    else {
+        this.xhr.setRequestHeader(key, value);
+    }
+};
+
+Request.prototype.write = function (s) {
+    this.body += s;
+};
+
+Request.prototype.end = function (s) {
+    if (s !== undefined) this.write(s);
+    this.xhr.send(this.body);
+};
+
+});
+
+require.define("/node_modules/http-browserify/lib/response.js", function (require, module, exports, __dirname, __filename) {
+    var EventEmitter = require('events').EventEmitter;
+var isSafeHeader = require('./isSafeHeader');
+
+var Response = module.exports = function (xhr) {
+    this.xhr = xhr;
+    this.offset = 0;
+};
+
+Response.prototype = new EventEmitter;
+
+var capable = {
+    streaming : true,
+    status2 : true
+};
+
+function parseHeaders (xhr) {
+    var lines = xhr.getAllResponseHeaders().split(/\r?\n/);
+    var headers = {};
+    for (var i = 0; i < lines.length; i++) {
+        var line = lines[i];
+        if (line === '') continue;
+        
+        var m = line.match(/^([^:]+):\s*(.*)/);
+        if (m) {
+            var key = m[1].toLowerCase(), value = m[2];
+            
+            if (headers[key] !== undefined) {
+                if ((Array.isArray && Array.isArray(headers[key]))
+                || headers[key] instanceof Array) {
+                    headers[key].push(value);
+                }
+                else {
+                    headers[key] = [ headers[key], value ];
+                }
+            }
+            else {
+                headers[key] = value;
+            }
+        }
+        else {
+            headers[line] = true;
+        }
+    }
+    return headers;
+}
+
+Response.prototype.getHeader = function (key) {
+    var header = this.headers ? this.headers[key.toLowerCase()] : null;
+    if (header) return header;
+
+    // Work around Mozilla bug #608735 [https://bugzil.la/608735], which causes
+    // getAllResponseHeaders() to return {} if the response is a CORS request.
+    // xhr.getHeader still works correctly.
+    if (isSafeHeader(key)) {
+      return this.xhr.getResponseHeader(key);
+    }
+    return null;
+};
+
+Response.prototype.handle = function () {
+    var xhr = this.xhr;
+    if (xhr.readyState === 2 && capable.status2) {
+        try {
+            this.statusCode = xhr.status;
+            this.headers = parseHeaders(xhr);
+        }
+        catch (err) {
+            capable.status2 = false;
+        }
+        
+        if (capable.status2) {
+            this.emit('ready');
+        }
+    }
+    else if (capable.streaming && xhr.readyState === 3) {
+        try {
+            if (!this.statusCode) {
+                this.statusCode = xhr.status;
+                this.headers = parseHeaders(xhr);
+                this.emit('ready');
+            }
+        }
+        catch (err) {}
+        
+        try {
+            this.write();
+        }
+        catch (err) {
+            capable.streaming = false;
+        }
+    }
+    else if (xhr.readyState === 4) {
+        if (!this.statusCode) {
+            this.statusCode = xhr.status;
+            this.emit('ready');
+        }
+        this.write();
+        
+        if (xhr.error) {
+            this.emit('error', xhr.responseText);
+        }
+        else this.emit('end');
+    }
+};
+
+Response.prototype.write = function () {
+    var xhr = this.xhr;
+    if (xhr.responseText.length > this.offset) {
+        this.emit('data', xhr.responseText.slice(this.offset));
+        this.offset = xhr.responseText.length;
+    }
+};
+
+});
+
+require.define("/node_modules/http-browserify/lib/isSafeHeader.js", function (require, module, exports, __dirname, __filename) {
+    // Taken from http://dxr.mozilla.org/mozilla/mozilla-central/content/base/src/nsXMLHttpRequest.cpp.html
+var unsafeHeaders = [
+    "accept-charset",
+    "accept-encoding",
+    "access-control-request-headers",
+    "access-control-request-method",
+    "connection",
+    "content-length",
+    "cookie",
+    "cookie2",
+    "content-transfer-encoding",
+    "date",
+    "expect",
+    "host",
+    "keep-alive",
+    "origin",
+    "referer",
+    "set-cookie",
+    "te",
+    "trailer",
+    "transfer-encoding",
+    "upgrade",
+    "user-agent",
+    "via"
+];
+
+module.exports = function (headerName) {
+    if (!headerName) return false;
+    return (unsafeHeaders.indexOf(headerName.toLowerCase()) === -1)
+};
+
+});
+
+require.alias("http-browserify", "/node_modules/http");
+
+require.alias("http-browserify", "/node_modules/https");
\ No newline at end of file
diff --git a/src/vitis/vas/doc/javascript/shred/content.js b/src/vitis/vas/doc/javascript/shred/content.js
new file mode 100755
index 0000000000000000000000000000000000000000..b8051fedd9ee08fea80ef47aff031e7d86e946a5
--- /dev/null
+++ b/src/vitis/vas/doc/javascript/shred/content.js
@@ -0,0 +1,193 @@
+
+// The purpose of the `Content` object is to abstract away the data conversions
+// to and from raw content entities as strings. For example, you want to be able
+// to pass in a Javascript object and have it be automatically converted into a
+// JSON string if the `content-type` is set to a JSON-based media type.
+// Conversely, you want to be able to transparently get back a Javascript object
+// in the response if the `content-type` is a JSON-based media-type.
+
+// One limitation of the current implementation is that it [assumes the `charset` is UTF-8](https://github.com/spire-io/shred/issues/5).
+
+// The `Content` constructor takes an options object, which *must* have either a
+// `body` or `data` property and *may* have a `type` property indicating the
+// media type. If there is no `type` attribute, a default will be inferred.
+var Content = function(options) {
+  this.body = options.body;
+  this.data = options.data;
+  this.type = options.type;
+};
+
+Content.prototype = {
+  // Treat `toString()` as asking for the `content.body`. That is, the raw content entity.
+  //
+  //     toString: function() { return this.body; }
+  //
+  // Commented out, but I've forgotten why. :/
+};
+
+
+// `Content` objects have the following attributes:
+Object.defineProperties(Content.prototype,{
+  
+// - **type**. Typically accessed as `content.type`, reflects the `content-type`
+//   header associated with the request or response. If not passed as an options
+//   to the constructor or set explicitly, it will infer the type the `data`
+//   attribute, if possible, and, failing that, will default to `text/plain`.
+  type: {
+    get: function() {
+      if (this._type) {
+        return this._type;
+      } else {
+        if (this._data) {
+          switch(typeof this._data) {
+            case "string": return "text/plain";
+            case "object": return "application/json";
+          }
+        }
+      }
+      return "text/plain";
+    },
+    set: function(value) {
+      this._type = value;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **data**. Typically accessed as `content.data`, reflects the content entity
+//   converted into Javascript data. This can be a string, if the `type` is, say,
+//   `text/plain`, but can also be a Javascript object. The conversion applied is
+//   based on the `processor` attribute. The `data` attribute can also be set
+//   directly, in which case the conversion will be done the other way, to infer
+//   the `body` attribute.
+  data: {
+    get: function() {
+      if (this._body) {
+        return this.processor.parser(this._body);
+      } else {
+        return this._data;
+      }
+    },
+    set: function(data) {
+      if (this._body&&data) Errors.setDataWithBody(this);
+      this._data = data;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **body**. Typically accessed as `content.body`, reflects the content entity
+//   as a UTF-8 string. It is the mirror of the `data` attribute. If you set the
+//   `data` attribute, the `body` attribute will be inferred and vice-versa. If
+//   you attempt to set both, an exception is raised.
+  body: {
+    get: function() {
+      if (this._data) {
+        return this.processor.stringify(this._data);
+      } else {
+        return this._body.toString();
+      }
+    },
+    set: function(body) {
+      if (this._data&&body) Errors.setBodyWithData(this);
+      this._body = body;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **processor**. The functions that will be used to convert to/from `data` and
+//   `body` attributes. You can add processors. The two that are built-in are for
+//   `text/plain`, which is basically an identity transformation and
+//   `application/json` and other JSON-based media types (including custom media
+//   types with `+json`). You can add your own processors. See below.
+  processor: {
+    get: function() {
+      var processor = Content.processors[this.type];
+      if (processor) {
+        return processor;
+      } else {
+        // Return the first processor that matches any part of the
+        // content type. ex: application/vnd.foobar.baz+json will match json.
+        var main = this.type.split(";")[0];
+        var parts = main.split(/\+|\//);
+        for (var i=0, l=parts.length; i < l; i++) {
+          processor = Content.processors[parts[i]]
+        }
+        return processor || {parser:identity,stringify:toString};
+      }
+    },
+    enumerable: true
+  },
+
+// - **length**. Typically accessed as `content.length`, returns the length in
+//   bytes of the raw content entity.
+  length: {
+    get: function() {
+      if (typeof Buffer !== 'undefined') {
+        return Buffer.byteLength(this.body);
+      }
+      return this.body.length;
+    }
+  }
+});
+
+Content.processors = {};
+
+// The `registerProcessor` function allows you to add your own processors to
+// convert content entities. Each processor consists of a Javascript object with
+// two properties:
+// - **parser**. The function used to parse a raw content entity and convert it
+//   into a Javascript data type.
+// - **stringify**. The function used to convert a Javascript data type into a
+//   raw content entity.
+Content.registerProcessor = function(types,processor) {
+  
+// You can pass an array of types that will trigger this processor, or just one.
+// We determine the array via duck-typing here.
+  if (types.forEach) {
+    types.forEach(function(type) {
+      Content.processors[type] = processor;
+    });
+  } else {
+    // If you didn't pass an array, we just use what you pass in.
+    Content.processors[types] = processor;
+  }
+};
+
+// Register the identity processor, which is used for text-based media types.
+var identity = function(x) { return x; }
+  , toString = function(x) { return x.toString(); }
+Content.registerProcessor(
+  ["text/html","text/plain","text"],
+  { parser: identity, stringify: toString });
+
+// Register the JSON processor, which is used for JSON-based media types.
+Content.registerProcessor(
+  ["application/json; charset=utf-8","application/json","json"],
+  {
+    parser: function(string) {
+      return JSON.parse(string);
+    },
+    stringify: function(data) {
+      return JSON.stringify(data); }});
+
+var qs = require('querystring');
+// Register the post processor, which is used for JSON-based media types.
+Content.registerProcessor(
+  ["application/x-www-form-urlencoded"],
+  { parser : qs.parse, stringify : qs.stringify });
+
+// Error functions are defined separately here in an attempt to make the code
+// easier to read.
+var Errors = {
+  setDataWithBody: function(object) {
+    throw new Error("Attempt to set data attribute of a content object " +
+        "when the body attributes was already set.");
+  },
+  setBodyWithData: function(object) {
+    throw new Error("Attempt to set body attribute of a content object " +
+        "when the data attributes was already set.");
+  }
+}
+module.exports = Content;
\ No newline at end of file
diff --git a/vas/doc/javascript/swagger-oauth.js b/src/vitis/vas/doc/javascript/swagger-oauth.js
similarity index 100%
rename from vas/doc/javascript/swagger-oauth.js
rename to src/vitis/vas/doc/javascript/swagger-oauth.js
diff --git a/vas/doc/javascript/swagger-ui.js b/src/vitis/vas/doc/javascript/swagger-ui.js
similarity index 100%
rename from vas/doc/javascript/swagger-ui.js
rename to src/vitis/vas/doc/javascript/swagger-ui.js
diff --git a/vas/doc/javascript/swagger-ui.min.js b/src/vitis/vas/doc/javascript/swagger-ui.min.js
similarity index 100%
rename from vas/doc/javascript/swagger-ui.min.js
rename to src/vitis/vas/doc/javascript/swagger-ui.min.js
diff --git a/vas/doc/javascript/underscore-min.js b/src/vitis/vas/doc/javascript/underscore-min.js
similarity index 100%
rename from vas/doc/javascript/underscore-min.js
rename to src/vitis/vas/doc/javascript/underscore-min.js
diff --git a/vas/doc/javascript/underscore-min.map b/src/vitis/vas/doc/javascript/underscore-min.map
similarity index 100%
rename from vas/doc/javascript/underscore-min.map
rename to src/vitis/vas/doc/javascript/underscore-min.map
diff --git a/vas/doc/swagger.php b/src/vitis/vas/doc/swagger.php
similarity index 100%
rename from vas/doc/swagger.php
rename to src/vitis/vas/doc/swagger.php
diff --git a/vas/doc/vendor/autoload.php b/src/vitis/vas/doc/vendor/autoload.php
similarity index 100%
rename from vas/doc/vendor/autoload.php
rename to src/vitis/vas/doc/vendor/autoload.php
diff --git a/vas/doc/vendor/bin/swagger b/src/vitis/vas/doc/vendor/bin/swagger
similarity index 100%
rename from vas/doc/vendor/bin/swagger
rename to src/vitis/vas/doc/vendor/bin/swagger
diff --git a/vas/doc/vendor/composer/ClassLoader.php b/src/vitis/vas/doc/vendor/composer/ClassLoader.php
similarity index 100%
rename from vas/doc/vendor/composer/ClassLoader.php
rename to src/vitis/vas/doc/vendor/composer/ClassLoader.php
diff --git a/vas/doc/vendor/composer/LICENSE b/src/vitis/vas/doc/vendor/composer/LICENSE
similarity index 100%
rename from vas/doc/vendor/composer/LICENSE
rename to src/vitis/vas/doc/vendor/composer/LICENSE
diff --git a/vas/doc/vendor/composer/autoload_classmap.php b/src/vitis/vas/doc/vendor/composer/autoload_classmap.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_classmap.php
rename to src/vitis/vas/doc/vendor/composer/autoload_classmap.php
diff --git a/vas/doc/vendor/composer/autoload_files.php b/src/vitis/vas/doc/vendor/composer/autoload_files.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_files.php
rename to src/vitis/vas/doc/vendor/composer/autoload_files.php
diff --git a/vas/doc/vendor/composer/autoload_namespaces.php b/src/vitis/vas/doc/vendor/composer/autoload_namespaces.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_namespaces.php
rename to src/vitis/vas/doc/vendor/composer/autoload_namespaces.php
diff --git a/vas/doc/vendor/composer/autoload_psr4.php b/src/vitis/vas/doc/vendor/composer/autoload_psr4.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_psr4.php
rename to src/vitis/vas/doc/vendor/composer/autoload_psr4.php
diff --git a/vas/doc/vendor/composer/autoload_real.php b/src/vitis/vas/doc/vendor/composer/autoload_real.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_real.php
rename to src/vitis/vas/doc/vendor/composer/autoload_real.php
diff --git a/vas/doc/vendor/composer/autoload_static.php b/src/vitis/vas/doc/vendor/composer/autoload_static.php
similarity index 100%
rename from vas/doc/vendor/composer/autoload_static.php
rename to src/vitis/vas/doc/vendor/composer/autoload_static.php
diff --git a/vas/doc/vendor/composer/installed.json b/src/vitis/vas/doc/vendor/composer/installed.json
similarity index 100%
rename from vas/doc/vendor/composer/installed.json
rename to src/vitis/vas/doc/vendor/composer/installed.json
diff --git a/vas/doc/vendor/doctrine/annotations/LICENSE b/src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/LICENSE
rename to src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE
diff --git a/vas/doc/vendor/doctrine/annotations/README.md b/src/vitis/vas/doc/vendor/doctrine/annotations/README.md
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/README.md
rename to src/vitis/vas/doc/vendor/doctrine/annotations/README.md
diff --git a/vas/doc/vendor/doctrine/annotations/composer.json b/src/vitis/vas/doc/vendor/doctrine/annotations/composer.json
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/composer.json
rename to src/vitis/vas/doc/vendor/doctrine/annotations/composer.json
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
similarity index 100%
rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
diff --git a/vas/doc/vendor/doctrine/lexer/LICENSE b/src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/LICENSE
rename to src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE
diff --git a/vas/doc/vendor/doctrine/lexer/README.md b/src/vitis/vas/doc/vendor/doctrine/lexer/README.md
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/README.md
rename to src/vitis/vas/doc/vendor/doctrine/lexer/README.md
diff --git a/vas/doc/vendor/doctrine/lexer/composer.json b/src/vitis/vas/doc/vendor/doctrine/lexer/composer.json
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/composer.json
rename to src/vitis/vas/doc/vendor/doctrine/lexer/composer.json
diff --git a/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
similarity index 100%
rename from vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
rename to src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
diff --git a/vas/doc/vendor/symfony/finder/.gitignore b/src/vitis/vas/doc/vendor/symfony/finder/.gitignore
similarity index 100%
rename from vas/doc/vendor/symfony/finder/.gitignore
rename to src/vitis/vas/doc/vendor/symfony/finder/.gitignore
diff --git a/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/CHANGELOG.md b/src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md
similarity index 100%
rename from vas/doc/vendor/symfony/finder/CHANGELOG.md
rename to src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md
diff --git a/vas/doc/vendor/symfony/finder/Comparator/Comparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Comparator/Comparator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php
diff --git a/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Comparator/DateComparator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php
diff --git a/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php
diff --git a/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/Expression.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/Expression.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/Glob.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/Glob.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/Regex.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/Regex.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php
diff --git a/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Expression/ValueInterface.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php
diff --git a/vas/doc/vendor/symfony/finder/Finder.php b/src/vitis/vas/doc/vendor/symfony/finder/Finder.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Finder.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Finder.php
diff --git a/vas/doc/vendor/symfony/finder/Glob.php b/src/vitis/vas/doc/vendor/symfony/finder/Glob.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Glob.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Glob.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php
diff --git a/vas/doc/vendor/symfony/finder/LICENSE b/src/vitis/vas/doc/vendor/symfony/finder/LICENSE
similarity index 100%
rename from vas/doc/vendor/symfony/finder/LICENSE
rename to src/vitis/vas/doc/vendor/symfony/finder/LICENSE
diff --git a/vas/doc/vendor/symfony/finder/README.md b/src/vitis/vas/doc/vendor/symfony/finder/README.md
similarity index 100%
rename from vas/doc/vendor/symfony/finder/README.md
rename to src/vitis/vas/doc/vendor/symfony/finder/README.md
diff --git a/vas/doc/vendor/symfony/finder/Shell/Command.php b/src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Shell/Command.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php
diff --git a/vas/doc/vendor/symfony/finder/Shell/Shell.php b/src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Shell/Shell.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php
diff --git a/vas/doc/vendor/symfony/finder/SplFileInfo.php b/src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/SplFileInfo.php
rename to src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/FinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/FinderTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy
diff --git a/vas/tmp/file_to_delete.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy
similarity index 100%
rename from vas/tmp/file_to_delete.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt
diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt
diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/vas/doc/vendor/symfony/finder/Tests/GlobTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/GlobTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php
diff --git a/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php
similarity index 100%
rename from vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php
rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php
diff --git a/vas/doc/vendor/symfony/finder/composer.json b/src/vitis/vas/doc/vendor/symfony/finder/composer.json
similarity index 100%
rename from vas/doc/vendor/symfony/finder/composer.json
rename to src/vitis/vas/doc/vendor/symfony/finder/composer.json
diff --git a/vas/doc/vendor/symfony/finder/phpunit.xml.dist b/src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist
similarity index 100%
rename from vas/doc/vendor/symfony/finder/phpunit.xml.dist
rename to src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist
diff --git a/vas/doc/vendor/zircote/swagger-php/.gitignore b/src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/.gitignore
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore
diff --git a/vas/doc/vendor/zircote/swagger-php/.travis.yml b/src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/.travis.yml
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml
diff --git a/vas/doc/vendor/zircote/swagger-php/Changelog.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Changelog.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/Examples.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php
diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php
diff --git a/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt b/src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt
diff --git a/vas/doc/vendor/zircote/swagger-php/README.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/README.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/README.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/README.md
diff --git a/vas/doc/vendor/zircote/swagger-php/VERSION b/src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/VERSION
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION
diff --git a/vas/doc/vendor/zircote/swagger-php/bin/swagger b/src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/bin/swagger
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger
diff --git a/vas/doc/vendor/zircote/swagger-php/composer.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/composer.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Advanced.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md
diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md
diff --git a/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist b/src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Analyser.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Analyser.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Analysis.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Analysis.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Context.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Context.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Logger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Logger.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Serializer.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Serializer.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/Util.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/Util.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php
diff --git a/vas/doc/vendor/zircote/swagger-php/src/functions.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/src/functions.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php
diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php
similarity index 100%
rename from vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php
rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php
diff --git a/vas/public/studio/default.js b/src/vitis/vas/public/studio/default.js
similarity index 100%
rename from vas/public/studio/default.js
rename to src/vitis/vas/public/studio/default.js
diff --git a/vas/rest/.htaccess b/src/vitis/vas/rest/.htaccess
similarity index 100%
rename from vas/rest/.htaccess
rename to src/vitis/vas/rest/.htaccess
diff --git a/vas/rest/class/.htaccess b/src/vitis/vas/rest/class/.htaccess
similarity index 100%
rename from vas/rest/class/.htaccess
rename to src/vitis/vas/rest/class/.htaccess
diff --git a/vas/rest/class/Ldap.class.inc b/src/vitis/vas/rest/class/Ldap.class.inc
similarity index 100%
rename from vas/rest/class/Ldap.class.inc
rename to src/vitis/vas/rest/class/Ldap.class.inc
diff --git a/vas/rest/class/PEAR/Autoloader.php b/src/vitis/vas/rest/class/PEAR/Autoloader.php
similarity index 100%
rename from vas/rest/class/PEAR/Autoloader.php
rename to src/vitis/vas/rest/class/PEAR/Autoloader.php
diff --git a/vas/rest/class/PEAR/Builder.php b/src/vitis/vas/rest/class/PEAR/Builder.php
similarity index 100%
rename from vas/rest/class/PEAR/Builder.php
rename to src/vitis/vas/rest/class/PEAR/Builder.php
diff --git a/vas/rest/class/PEAR/ChannelFile.php b/src/vitis/vas/rest/class/PEAR/ChannelFile.php
similarity index 100%
rename from vas/rest/class/PEAR/ChannelFile.php
rename to src/vitis/vas/rest/class/PEAR/ChannelFile.php
diff --git a/vas/rest/class/PEAR/ChannelFile/Parser.php b/src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php
similarity index 100%
rename from vas/rest/class/PEAR/ChannelFile/Parser.php
rename to src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php
diff --git a/vas/rest/class/PEAR/Command.php b/src/vitis/vas/rest/class/PEAR/Command.php
similarity index 100%
rename from vas/rest/class/PEAR/Command.php
rename to src/vitis/vas/rest/class/PEAR/Command.php
diff --git a/vas/rest/class/PEAR/Command/Auth.php b/src/vitis/vas/rest/class/PEAR/Command/Auth.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Auth.php
rename to src/vitis/vas/rest/class/PEAR/Command/Auth.php
diff --git a/vas/rest/class/PEAR/Command/Auth.xml b/src/vitis/vas/rest/class/PEAR/Command/Auth.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Auth.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Auth.xml
diff --git a/vas/rest/class/PEAR/Command/Build.php b/src/vitis/vas/rest/class/PEAR/Command/Build.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Build.php
rename to src/vitis/vas/rest/class/PEAR/Command/Build.php
diff --git a/vas/rest/class/PEAR/Command/Build.xml b/src/vitis/vas/rest/class/PEAR/Command/Build.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Build.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Build.xml
diff --git a/vas/rest/class/PEAR/Command/Channels.php b/src/vitis/vas/rest/class/PEAR/Command/Channels.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Channels.php
rename to src/vitis/vas/rest/class/PEAR/Command/Channels.php
diff --git a/vas/rest/class/PEAR/Command/Channels.xml b/src/vitis/vas/rest/class/PEAR/Command/Channels.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Channels.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Channels.xml
diff --git a/vas/rest/class/PEAR/Command/Common.php b/src/vitis/vas/rest/class/PEAR/Command/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Common.php
rename to src/vitis/vas/rest/class/PEAR/Command/Common.php
diff --git a/vas/rest/class/PEAR/Command/Config.php b/src/vitis/vas/rest/class/PEAR/Command/Config.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Config.php
rename to src/vitis/vas/rest/class/PEAR/Command/Config.php
diff --git a/vas/rest/class/PEAR/Command/Config.xml b/src/vitis/vas/rest/class/PEAR/Command/Config.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Config.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Config.xml
diff --git a/vas/rest/class/PEAR/Command/Install.php b/src/vitis/vas/rest/class/PEAR/Command/Install.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Install.php
rename to src/vitis/vas/rest/class/PEAR/Command/Install.php
diff --git a/vas/rest/class/PEAR/Command/Install.xml b/src/vitis/vas/rest/class/PEAR/Command/Install.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Install.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Install.xml
diff --git a/vas/rest/class/PEAR/Command/Mirror.php b/src/vitis/vas/rest/class/PEAR/Command/Mirror.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Mirror.php
rename to src/vitis/vas/rest/class/PEAR/Command/Mirror.php
diff --git a/vas/rest/class/PEAR/Command/Mirror.xml b/src/vitis/vas/rest/class/PEAR/Command/Mirror.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Mirror.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Mirror.xml
diff --git a/vas/rest/class/PEAR/Command/Package.php b/src/vitis/vas/rest/class/PEAR/Command/Package.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Package.php
rename to src/vitis/vas/rest/class/PEAR/Command/Package.php
diff --git a/vas/rest/class/PEAR/Command/Package.xml b/src/vitis/vas/rest/class/PEAR/Command/Package.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Package.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Package.xml
diff --git a/vas/rest/class/PEAR/Command/Pickle.php b/src/vitis/vas/rest/class/PEAR/Command/Pickle.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Pickle.php
rename to src/vitis/vas/rest/class/PEAR/Command/Pickle.php
diff --git a/vas/rest/class/PEAR/Command/Pickle.xml b/src/vitis/vas/rest/class/PEAR/Command/Pickle.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Pickle.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Pickle.xml
diff --git a/vas/rest/class/PEAR/Command/Registry.php b/src/vitis/vas/rest/class/PEAR/Command/Registry.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Registry.php
rename to src/vitis/vas/rest/class/PEAR/Command/Registry.php
diff --git a/vas/rest/class/PEAR/Command/Registry.xml b/src/vitis/vas/rest/class/PEAR/Command/Registry.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Registry.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Registry.xml
diff --git a/vas/rest/class/PEAR/Command/Remote.php b/src/vitis/vas/rest/class/PEAR/Command/Remote.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Remote.php
rename to src/vitis/vas/rest/class/PEAR/Command/Remote.php
diff --git a/vas/rest/class/PEAR/Command/Remote.xml b/src/vitis/vas/rest/class/PEAR/Command/Remote.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Remote.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Remote.xml
diff --git a/vas/rest/class/PEAR/Command/Test.php b/src/vitis/vas/rest/class/PEAR/Command/Test.php
similarity index 100%
rename from vas/rest/class/PEAR/Command/Test.php
rename to src/vitis/vas/rest/class/PEAR/Command/Test.php
diff --git a/vas/rest/class/PEAR/Command/Test.xml b/src/vitis/vas/rest/class/PEAR/Command/Test.xml
similarity index 100%
rename from vas/rest/class/PEAR/Command/Test.xml
rename to src/vitis/vas/rest/class/PEAR/Command/Test.xml
diff --git a/vas/rest/class/PEAR/Common.php b/src/vitis/vas/rest/class/PEAR/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Common.php
rename to src/vitis/vas/rest/class/PEAR/Common.php
diff --git a/vas/rest/class/PEAR/Config.php b/src/vitis/vas/rest/class/PEAR/Config.php
similarity index 100%
rename from vas/rest/class/PEAR/Config.php
rename to src/vitis/vas/rest/class/PEAR/Config.php
diff --git a/vas/rest/class/PEAR/Dependency.php b/src/vitis/vas/rest/class/PEAR/Dependency.php
similarity index 100%
rename from vas/rest/class/PEAR/Dependency.php
rename to src/vitis/vas/rest/class/PEAR/Dependency.php
diff --git a/vas/rest/class/PEAR/Dependency2.php b/src/vitis/vas/rest/class/PEAR/Dependency2.php
similarity index 100%
rename from vas/rest/class/PEAR/Dependency2.php
rename to src/vitis/vas/rest/class/PEAR/Dependency2.php
diff --git a/vas/rest/class/PEAR/DependencyDB.php b/src/vitis/vas/rest/class/PEAR/DependencyDB.php
similarity index 100%
rename from vas/rest/class/PEAR/DependencyDB.php
rename to src/vitis/vas/rest/class/PEAR/DependencyDB.php
diff --git a/vas/rest/class/PEAR/Downloader.php b/src/vitis/vas/rest/class/PEAR/Downloader.php
similarity index 100%
rename from vas/rest/class/PEAR/Downloader.php
rename to src/vitis/vas/rest/class/PEAR/Downloader.php
diff --git a/vas/rest/class/PEAR/Downloader/Package.php b/src/vitis/vas/rest/class/PEAR/Downloader/Package.php
similarity index 100%
rename from vas/rest/class/PEAR/Downloader/Package.php
rename to src/vitis/vas/rest/class/PEAR/Downloader/Package.php
diff --git a/vas/rest/class/PEAR/ErrorStack.php b/src/vitis/vas/rest/class/PEAR/ErrorStack.php
similarity index 100%
rename from vas/rest/class/PEAR/ErrorStack.php
rename to src/vitis/vas/rest/class/PEAR/ErrorStack.php
diff --git a/vas/rest/class/PEAR/Exception.php b/src/vitis/vas/rest/class/PEAR/Exception.php
similarity index 100%
rename from vas/rest/class/PEAR/Exception.php
rename to src/vitis/vas/rest/class/PEAR/Exception.php
diff --git a/vas/rest/class/PEAR/FixPHP5PEARWarnings.php b/src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php
similarity index 100%
rename from vas/rest/class/PEAR/FixPHP5PEARWarnings.php
rename to src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php
diff --git a/vas/rest/class/PEAR/Frontend.php b/src/vitis/vas/rest/class/PEAR/Frontend.php
similarity index 100%
rename from vas/rest/class/PEAR/Frontend.php
rename to src/vitis/vas/rest/class/PEAR/Frontend.php
diff --git a/vas/rest/class/PEAR/Frontend/CLI.php b/src/vitis/vas/rest/class/PEAR/Frontend/CLI.php
similarity index 100%
rename from vas/rest/class/PEAR/Frontend/CLI.php
rename to src/vitis/vas/rest/class/PEAR/Frontend/CLI.php
diff --git a/vas/rest/class/PEAR/Installer.php b/src/vitis/vas/rest/class/PEAR/Installer.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer.php
rename to src/vitis/vas/rest/class/PEAR/Installer.php
diff --git a/vas/rest/class/PEAR/Installer/Role.php b/src/vitis/vas/rest/class/PEAR/Installer/Role.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Cfg.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Cfg.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Cfg.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Cfg.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Common.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Common.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Data.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Data.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Data.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Data.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Doc.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Doc.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Doc.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Doc.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Ext.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Ext.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Ext.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Ext.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Php.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Php.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Php.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Php.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Script.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Script.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Script.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Script.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Src.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Src.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Src.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Src.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Test.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Test.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Test.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Test.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml
diff --git a/vas/rest/class/PEAR/Installer/Role/Www.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Www.php
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php
diff --git a/vas/rest/class/PEAR/Installer/Role/Www.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml
similarity index 100%
rename from vas/rest/class/PEAR/Installer/Role/Www.xml
rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml
diff --git a/vas/rest/class/PEAR/Mail.php b/src/vitis/vas/rest/class/PEAR/Mail.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail.php
rename to src/vitis/vas/rest/class/PEAR/Mail.php
diff --git a/vas/rest/class/PEAR/Mail/RFC822.php b/src/vitis/vas/rest/class/PEAR/Mail/RFC822.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/RFC822.php
rename to src/vitis/vas/rest/class/PEAR/Mail/RFC822.php
diff --git a/vas/rest/class/PEAR/Mail/mail.php b/src/vitis/vas/rest/class/PEAR/Mail/mail.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mail.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mail.php
diff --git a/vas/rest/class/PEAR/Mail/mime.php b/src/vitis/vas/rest/class/PEAR/Mail/mime.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mime.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mime.php
diff --git a/vas/rest/class/PEAR/Mail/mimePart.php b/src/vitis/vas/rest/class/PEAR/Mail/mimePart.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mimePart.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mimePart.php
diff --git a/vas/rest/class/PEAR/Mail/mock.php b/src/vitis/vas/rest/class/PEAR/Mail/mock.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/mock.php
rename to src/vitis/vas/rest/class/PEAR/Mail/mock.php
diff --git a/vas/rest/class/PEAR/Mail/net/SMTP.php b/src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/SMTP.php
rename to src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php
diff --git a/vas/rest/class/PEAR/Mail/net/Socket.php b/src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/Socket.php
rename to src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php
diff --git a/vas/rest/class/PEAR/Mail/net/docs/guide.txt b/src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/docs/guide.txt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt
diff --git a/vas/rest/class/PEAR/Mail/net/examples/basic.php b/src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/examples/basic.php
rename to src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php
diff --git a/vas/rest/class/PEAR/Mail/net/tests/auth.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/auth.phpt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt
diff --git a/vas/rest/class/PEAR/Mail/net/tests/basic.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/basic.phpt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt
diff --git a/vas/rest/class/PEAR/Mail/net/tests/config.php.dist b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/config.php.dist
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist
diff --git a/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt
similarity index 100%
rename from vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt
rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt
diff --git a/vas/rest/class/PEAR/Mail/null.php b/src/vitis/vas/rest/class/PEAR/Mail/null.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/null.php
rename to src/vitis/vas/rest/class/PEAR/Mail/null.php
diff --git a/vas/rest/class/PEAR/Mail/sendmail.php b/src/vitis/vas/rest/class/PEAR/Mail/sendmail.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/sendmail.php
rename to src/vitis/vas/rest/class/PEAR/Mail/sendmail.php
diff --git a/vas/rest/class/PEAR/Mail/smtp.php b/src/vitis/vas/rest/class/PEAR/Mail/smtp.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/smtp.php
rename to src/vitis/vas/rest/class/PEAR/Mail/smtp.php
diff --git a/vas/rest/class/PEAR/Mail/smtpmx.php b/src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php
similarity index 100%
rename from vas/rest/class/PEAR/Mail/smtpmx.php
rename to src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php
diff --git a/vas/rest/class/PEAR/PEAR.php b/src/vitis/vas/rest/class/PEAR/PEAR.php
similarity index 100%
rename from vas/rest/class/PEAR/PEAR.php
rename to src/vitis/vas/rest/class/PEAR/PEAR.php
diff --git a/vas/rest/class/PEAR/PackageFile.php b/src/vitis/vas/rest/class/PEAR/PackageFile.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile.php
diff --git a/vas/rest/class/PEAR/PackageFile/Generator/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Generator/v1.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php
diff --git a/vas/rest/class/PEAR/PackageFile/Generator/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Generator/v2.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php
diff --git a/vas/rest/class/PEAR/PackageFile/Parser/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Parser/v1.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php
diff --git a/vas/rest/class/PEAR/PackageFile/Parser/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/Parser/v2.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php
diff --git a/vas/rest/class/PEAR/PackageFile/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v1.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v1.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v1.php
diff --git a/vas/rest/class/PEAR/PackageFile/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v2.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2.php
diff --git a/vas/rest/class/PEAR/PackageFile/v2/Validator.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v2/Validator.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php
diff --git a/vas/rest/class/PEAR/PackageFile/v2/rw.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/PackageFile/v2/rw.php
rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php
diff --git a/vas/rest/class/PEAR/Packager.php b/src/vitis/vas/rest/class/PEAR/Packager.php
similarity index 100%
rename from vas/rest/class/PEAR/Packager.php
rename to src/vitis/vas/rest/class/PEAR/Packager.php
diff --git a/vas/rest/class/PEAR/REST.php b/src/vitis/vas/rest/class/PEAR/REST.php
similarity index 100%
rename from vas/rest/class/PEAR/REST.php
rename to src/vitis/vas/rest/class/PEAR/REST.php
diff --git a/vas/rest/class/PEAR/REST/10.php b/src/vitis/vas/rest/class/PEAR/REST/10.php
similarity index 100%
rename from vas/rest/class/PEAR/REST/10.php
rename to src/vitis/vas/rest/class/PEAR/REST/10.php
diff --git a/vas/rest/class/PEAR/REST/11.php b/src/vitis/vas/rest/class/PEAR/REST/11.php
similarity index 100%
rename from vas/rest/class/PEAR/REST/11.php
rename to src/vitis/vas/rest/class/PEAR/REST/11.php
diff --git a/vas/rest/class/PEAR/REST/13.php b/src/vitis/vas/rest/class/PEAR/REST/13.php
similarity index 100%
rename from vas/rest/class/PEAR/REST/13.php
rename to src/vitis/vas/rest/class/PEAR/REST/13.php
diff --git a/vas/rest/class/PEAR/Registry.php b/src/vitis/vas/rest/class/PEAR/Registry.php
similarity index 100%
rename from vas/rest/class/PEAR/Registry.php
rename to src/vitis/vas/rest/class/PEAR/Registry.php
diff --git a/vas/rest/class/PEAR/Remote.php b/src/vitis/vas/rest/class/PEAR/Remote.php
similarity index 100%
rename from vas/rest/class/PEAR/Remote.php
rename to src/vitis/vas/rest/class/PEAR/Remote.php
diff --git a/vas/rest/class/PEAR/RunTest.php b/src/vitis/vas/rest/class/PEAR/RunTest.php
similarity index 100%
rename from vas/rest/class/PEAR/RunTest.php
rename to src/vitis/vas/rest/class/PEAR/RunTest.php
diff --git a/vas/rest/class/PEAR/Task/Common.php b/src/vitis/vas/rest/class/PEAR/Task/Common.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Common.php
rename to src/vitis/vas/rest/class/PEAR/Task/Common.php
diff --git a/vas/rest/class/PEAR/Task/Postinstallscript.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Postinstallscript.php
rename to src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php
diff --git a/vas/rest/class/PEAR/Task/Postinstallscript/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Postinstallscript/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php
diff --git a/vas/rest/class/PEAR/Task/Replace.php b/src/vitis/vas/rest/class/PEAR/Task/Replace.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Replace.php
rename to src/vitis/vas/rest/class/PEAR/Task/Replace.php
diff --git a/vas/rest/class/PEAR/Task/Replace/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Replace/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php
diff --git a/vas/rest/class/PEAR/Task/Unixeol.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Unixeol.php
rename to src/vitis/vas/rest/class/PEAR/Task/Unixeol.php
diff --git a/vas/rest/class/PEAR/Task/Unixeol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Unixeol/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php
diff --git a/vas/rest/class/PEAR/Task/Windowseol.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Windowseol.php
rename to src/vitis/vas/rest/class/PEAR/Task/Windowseol.php
diff --git a/vas/rest/class/PEAR/Task/Windowseol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php
similarity index 100%
rename from vas/rest/class/PEAR/Task/Windowseol/rw.php
rename to src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php
diff --git a/vas/rest/class/PEAR/Validate.php b/src/vitis/vas/rest/class/PEAR/Validate.php
similarity index 100%
rename from vas/rest/class/PEAR/Validate.php
rename to src/vitis/vas/rest/class/PEAR/Validate.php
diff --git a/vas/rest/class/PEAR/Validator/PECL.php b/src/vitis/vas/rest/class/PEAR/Validator/PECL.php
similarity index 100%
rename from vas/rest/class/PEAR/Validator/PECL.php
rename to src/vitis/vas/rest/class/PEAR/Validator/PECL.php
diff --git a/vas/rest/class/PEAR/XMLParser.php b/src/vitis/vas/rest/class/PEAR/XMLParser.php
similarity index 100%
rename from vas/rest/class/PEAR/XMLParser.php
rename to src/vitis/vas/rest/class/PEAR/XMLParser.php
diff --git a/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php b/src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/EasyPeasyICS.php
rename to src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php
diff --git a/vas/rest/class/PHPMailer/extras/README.md b/src/vitis/vas/rest/class/PHPMailer/extras/README.md
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/README.md
rename to src/vitis/vas/rest/class/PHPMailer/extras/README.md
diff --git a/vas/rest/class/PHPMailer/extras/htmlfilter.php b/src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/htmlfilter.php
rename to src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php
diff --git a/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php b/src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php
similarity index 100%
rename from vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php
rename to src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-am.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-az.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-be.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-da.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-de.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-el.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-es.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-et.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-he.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-id.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-it.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php
diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php
similarity index 100%
rename from vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php
rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php
diff --git a/vas/rest/class/PHPMailer/src/Exception.php b/src/vitis/vas/rest/class/PHPMailer/src/Exception.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/Exception.php
rename to src/vitis/vas/rest/class/PHPMailer/src/Exception.php
diff --git a/vas/rest/class/PHPMailer/src/OAuth.php b/src/vitis/vas/rest/class/PHPMailer/src/OAuth.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/OAuth.php
rename to src/vitis/vas/rest/class/PHPMailer/src/OAuth.php
diff --git a/vas/rest/class/PHPMailer/src/PHPMailer.php b/src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/PHPMailer.php
rename to src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php
diff --git a/vas/rest/class/PHPMailer/src/POP3.php b/src/vitis/vas/rest/class/PHPMailer/src/POP3.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/POP3.php
rename to src/vitis/vas/rest/class/PHPMailer/src/POP3.php
diff --git a/vas/rest/class/PHPMailer/src/SMTP.php b/src/vitis/vas/rest/class/PHPMailer/src/SMTP.php
similarity index 100%
rename from vas/rest/class/PHPMailer/src/SMTP.php
rename to src/vitis/vas/rest/class/PHPMailer/src/SMTP.php
diff --git a/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc
diff --git a/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc
diff --git a/vas/rest/class/aws_lib/AmazonAWS.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AmazonAWS.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc
diff --git a/vas/rest/class/aws_lib/AmazonApiGateway.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AmazonApiGateway.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc
diff --git a/vas/rest/class/aws_lib/AmazonS3.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc
similarity index 100%
rename from vas/rest/class/aws_lib/AmazonS3.class.inc
rename to src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc
diff --git a/vas/rest/class/treeview/LdapTree.php b/src/vitis/vas/rest/class/treeview/LdapTree.php
similarity index 100%
rename from vas/rest/class/treeview/LdapTree.php
rename to src/vitis/vas/rest/class/treeview/LdapTree.php
diff --git a/vas/rest/class/treeview/Tree.php b/src/vitis/vas/rest/class/treeview/Tree.php
similarity index 100%
rename from vas/rest/class/treeview/Tree.php
rename to src/vitis/vas/rest/class/treeview/Tree.php
diff --git a/vas/rest/class/treeview/aciTree.php b/src/vitis/vas/rest/class/treeview/aciTree.php
similarity index 100%
rename from vas/rest/class/treeview/aciTree.php
rename to src/vitis/vas/rest/class/treeview/aciTree.php
diff --git a/vas/rest/class/vitis_lib/Connection.class.inc b/src/vitis/vas/rest/class/vitis_lib/Connection.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/Connection.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/Connection.class.inc
diff --git a/vas/rest/class/vitis_lib/DbClass.class.inc b/src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/DbClass.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc
diff --git a/vas/rest/class/vitis_lib/Form.class.inc b/src/vitis/vas/rest/class/vitis_lib/Form.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/Form.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/Form.class.inc
diff --git a/vas/rest/class/vitis_lib/VitisError.class.inc b/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/VitisError.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc
diff --git a/vas/rest/class/vitis_lib/XmlAbstract.class.inc b/src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc
similarity index 100%
rename from vas/rest/class/vitis_lib/XmlAbstract.class.inc
rename to src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc
diff --git a/vas/rest/class/vmlib/BD.class.inc b/src/vitis/vas/rest/class/vmlib/BD.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/BD.class.inc
rename to src/vitis/vas/rest/class/vmlib/BD.class.inc
diff --git a/vas/rest/class/vmlib/BdDataAccess.inc b/src/vitis/vas/rest/class/vmlib/BdDataAccess.inc
similarity index 100%
rename from vas/rest/class/vmlib/BdDataAccess.inc
rename to src/vitis/vas/rest/class/vmlib/BdDataAccess.inc
diff --git a/vas/rest/class/vmlib/Email.class.inc b/src/vitis/vas/rest/class/vmlib/Email.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/Email.class.inc
rename to src/vitis/vas/rest/class/vmlib/Email.class.inc
diff --git a/vas/rest/class/vmlib/EmailTemplate.class.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/EmailTemplate.class.inc
rename to src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc
diff --git a/vas/rest/class/vmlib/EmailTemplate.class.sql.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc
similarity index 100%
rename from vas/rest/class/vmlib/EmailTemplate.class.sql.inc
rename to src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc
diff --git a/vas/rest/class/vmlib/Ldap.class.inc b/src/vitis/vas/rest/class/vmlib/Ldap.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/Ldap.class.inc
rename to src/vitis/vas/rest/class/vmlib/Ldap.class.inc
diff --git a/vas/rest/class/vmlib/PgsqlDataAccess.class.inc b/src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/PgsqlDataAccess.class.inc
rename to src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc
diff --git a/vas/rest/class/vmlib/PostgisUtil.class.inc b/src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/PostgisUtil.class.inc
rename to src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc
diff --git a/vas/rest/class/vmlib/Vm.class.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/Vm.class.inc
rename to src/vitis/vas/rest/class/vmlib/Vm.class.inc
diff --git a/vas/rest/class/vmlib/Vm.class.sql.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc
similarity index 100%
rename from vas/rest/class/vmlib/Vm.class.sql.inc
rename to src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc
diff --git a/vas/rest/class/vmlib/class.websocket_client.php b/src/vitis/vas/rest/class/vmlib/class.websocket_client.php
similarity index 100%
rename from vas/rest/class/vmlib/class.websocket_client.php
rename to src/vitis/vas/rest/class/vmlib/class.websocket_client.php
diff --git a/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php b/src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/class.jstocoffee.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/errors.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/errors.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/helpers.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/helpers.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/lexer.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/lexer.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/access.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/base.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/block.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/call.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/class.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/code.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/for.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/if.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/in.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/index.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/op.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/param.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/push.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/range.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/return.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/try.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/value.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/nodes/while.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/parser.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/parser.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/rewriter.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/rewriter.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php
diff --git a/vas/rest/class/vmlib/coffeescript/classes/scope.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/classes/scope.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php
diff --git a/vas/rest/class/vmlib/coffeescript/coffeescript.php b/src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/coffeescript.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php
diff --git a/vas/rest/class/vmlib/coffeescript/jsmaker.php b/src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php
similarity index 100%
rename from vas/rest/class/vmlib/coffeescript/jsmaker.php
rename to src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php
diff --git a/vas/rest/class/vmlib/context/covage.inc b/src/vitis/vas/rest/class/vmlib/context/covage.inc
similarity index 100%
rename from vas/rest/class/vmlib/context/covage.inc
rename to src/vitis/vas/rest/class/vmlib/context/covage.inc
diff --git a/vas/rest/class/vmlib/context/gtf.inc b/src/vitis/vas/rest/class/vmlib/context/gtf.inc
similarity index 100%
rename from vas/rest/class/vmlib/context/gtf.inc
rename to src/vitis/vas/rest/class/vmlib/context/gtf.inc
diff --git a/vas/rest/class/vmlib/context/message.inc b/src/vitis/vas/rest/class/vmlib/context/message.inc
similarity index 100%
rename from vas/rest/class/vmlib/context/message.inc
rename to src/vitis/vas/rest/class/vmlib/context/message.inc
diff --git a/vas/rest/class/vmlib/cryptUtil.inc b/src/vitis/vas/rest/class/vmlib/cryptUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/cryptUtil.inc
rename to src/vitis/vas/rest/class/vmlib/cryptUtil.inc
diff --git a/vas/rest/class/vmlib/dateUtil.class.inc b/src/vitis/vas/rest/class/vmlib/dateUtil.class.inc
similarity index 100%
rename from vas/rest/class/vmlib/dateUtil.class.inc
rename to src/vitis/vas/rest/class/vmlib/dateUtil.class.inc
diff --git a/vas/rest/class/vmlib/dbUtil.inc b/src/vitis/vas/rest/class/vmlib/dbUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/dbUtil.inc
rename to src/vitis/vas/rest/class/vmlib/dbUtil.inc
diff --git a/vas/rest/class/vmlib/error.inc b/src/vitis/vas/rest/class/vmlib/error.inc
similarity index 100%
rename from vas/rest/class/vmlib/error.inc
rename to src/vitis/vas/rest/class/vmlib/error.inc
diff --git a/vas/rest/class/vmlib/lang_vmlib/en-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc
similarity index 100%
rename from vas/rest/class/vmlib/lang_vmlib/en-lang.inc
rename to src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc
diff --git a/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc
similarity index 100%
rename from vas/rest/class/vmlib/lang_vmlib/fr-lang.inc
rename to src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc
diff --git a/vas/rest/class/vmlib/logUtil.inc b/src/vitis/vas/rest/class/vmlib/logUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/logUtil.inc
rename to src/vitis/vas/rest/class/vmlib/logUtil.inc
diff --git a/vas/rest/class/vmlib/phpUtil.inc b/src/vitis/vas/rest/class/vmlib/phpUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/phpUtil.inc
rename to src/vitis/vas/rest/class/vmlib/phpUtil.inc
diff --git a/vas/rest/class/vmlib/stringUtil.inc b/src/vitis/vas/rest/class/vmlib/stringUtil.inc
similarity index 100%
rename from vas/rest/class/vmlib/stringUtil.inc
rename to src/vitis/vas/rest/class/vmlib/stringUtil.inc
diff --git a/vas/rest/class/wab_lib/BusinessObject.class.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc
similarity index 100%
rename from vas/rest/class/wab_lib/BusinessObject.class.inc
rename to src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc
diff --git a/vas/rest/class/wab_lib/BusinessObject.class.sql.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc
similarity index 100%
rename from vas/rest/class/wab_lib/BusinessObject.class.sql.inc
rename to src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc
diff --git a/src/vitis/vas/rest/conf/constants.inc b/src/vitis/vas/rest/conf/constants.inc
new file mode 100755
index 0000000000000000000000000000000000000000..d4d3d5abb37ce3086688dd8504f039f67584fec3
--- /dev/null
+++ b/src/vitis/vas/rest/conf/constants.inc
@@ -0,0 +1,10 @@
+<?php
+// Définition des constantes
+if (!defined("CR")) {
+	define ("CR",chr(13));
+	define ("LF",chr(10));
+	define ("HT",chr(9));
+}
+define ("VM_FALSE",0);
+define ("VM_TRUE",1);
+?>
\ No newline at end of file
diff --git a/vas/rest/conf/php_conf.inc b/src/vitis/vas/rest/conf/php_conf.inc
similarity index 100%
rename from vas/rest/conf/php_conf.inc
rename to src/vitis/vas/rest/conf/php_conf.inc
diff --git a/vas/rest/conf/properties.inc b/src/vitis/vas/rest/conf/properties.inc
similarity index 100%
rename from vas/rest/conf/properties.inc
rename to src/vitis/vas/rest/conf/properties.inc
diff --git a/vas/rest/conf/properties_domain.inc b/src/vitis/vas/rest/conf/properties_domain.inc
similarity index 100%
rename from vas/rest/conf/properties_domain.inc
rename to src/vitis/vas/rest/conf/properties_domain.inc
diff --git a/vas/rest/conf/properties_post.inc b/src/vitis/vas/rest/conf/properties_post.inc
similarity index 100%
rename from vas/rest/conf/properties_post.inc
rename to src/vitis/vas/rest/conf/properties_post.inc
diff --git a/vas/rest/conf/properties_server.inc b/src/vitis/vas/rest/conf/properties_server.inc
similarity index 100%
rename from vas/rest/conf/properties_server.inc
rename to src/vitis/vas/rest/conf/properties_server.inc
diff --git a/vas/rest/conf/selected_properties.inc b/src/vitis/vas/rest/conf/selected_properties.inc
similarity index 100%
rename from vas/rest/conf/selected_properties.inc
rename to src/vitis/vas/rest/conf/selected_properties.inc
diff --git a/vas/rest/conf/version.inc b/src/vitis/vas/rest/conf/version.inc
similarity index 100%
rename from vas/rest/conf/version.inc
rename to src/vitis/vas/rest/conf/version.inc
diff --git a/vas/rest/inc/MetadataAccess.class.inc b/src/vitis/vas/rest/inc/MetadataAccess.class.inc
similarity index 100%
rename from vas/rest/inc/MetadataAccess.class.inc
rename to src/vitis/vas/rest/inc/MetadataAccess.class.inc
diff --git a/vas/rest/inc/MetadataAccess.sql.inc b/src/vitis/vas/rest/inc/MetadataAccess.sql.inc
similarity index 100%
rename from vas/rest/inc/MetadataAccess.sql.inc
rename to src/vitis/vas/rest/inc/MetadataAccess.sql.inc
diff --git a/vas/rest/index.phtml b/src/vitis/vas/rest/index.phtml
similarity index 100%
rename from vas/rest/index.phtml
rename to src/vitis/vas/rest/index.phtml
diff --git a/vas/rest/index.vhtml b/src/vitis/vas/rest/index.vhtml
similarity index 100%
rename from vas/rest/index.vhtml
rename to src/vitis/vas/rest/index.vhtml
diff --git a/vas/rest/ws/vitis/Accounts.class.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Accounts.class.inc
rename to src/vitis/vas/rest/ws/vitis/Accounts.class.inc
diff --git a/vas/rest/ws/vitis/Accounts.class.mail.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc
similarity index 100%
rename from vas/rest/ws/vitis/Accounts.class.mail.inc
rename to src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc
diff --git a/vas/rest/ws/vitis/Accounts.class.sql.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc
similarity index 100%
rename from vas/rest/ws/vitis/Accounts.class.sql.inc
rename to src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc
diff --git a/vas/rest/ws/vitis/Action.class.inc b/src/vitis/vas/rest/ws/vitis/Action.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Action.class.inc
rename to src/vitis/vas/rest/ws/vitis/Action.class.inc
diff --git a/vas/rest/ws/vitis/Actions.class.inc b/src/vitis/vas/rest/ws/vitis/Actions.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Actions.class.inc
rename to src/vitis/vas/rest/ws/vitis/Actions.class.inc
diff --git a/vas/rest/ws/vitis/ActiveDirectory.class.inc b/src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/ActiveDirectory.class.inc
rename to src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc
diff --git a/vas/rest/ws/vitis/BillingGroup.class.inc b/src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/BillingGroup.class.inc
rename to src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc
diff --git a/vas/rest/ws/vitis/BillingGroups.class.inc b/src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/BillingGroups.class.inc
rename to src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc
diff --git a/vas/rest/ws/vitis/Column.class.inc b/src/vitis/vas/rest/ws/vitis/Column.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Column.class.inc
rename to src/vitis/vas/rest/ws/vitis/Column.class.inc
diff --git a/vas/rest/ws/vitis/Columns.class.inc b/src/vitis/vas/rest/ws/vitis/Columns.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Columns.class.inc
rename to src/vitis/vas/rest/ws/vitis/Columns.class.inc
diff --git a/vas/rest/ws/vitis/Database.class.inc b/src/vitis/vas/rest/ws/vitis/Database.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Database.class.inc
rename to src/vitis/vas/rest/ws/vitis/Database.class.inc
diff --git a/vas/rest/ws/vitis/Domain.class.inc b/src/vitis/vas/rest/ws/vitis/Domain.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Domain.class.inc
rename to src/vitis/vas/rest/ws/vitis/Domain.class.inc
diff --git a/vas/rest/ws/vitis/Domains.class.inc b/src/vitis/vas/rest/ws/vitis/Domains.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Domains.class.inc
rename to src/vitis/vas/rest/ws/vitis/Domains.class.inc
diff --git a/vas/rest/ws/vitis/Exploitations.class.inc b/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Exploitations.class.inc
rename to src/vitis/vas/rest/ws/vitis/Exploitations.class.inc
diff --git a/vas/rest/ws/vitis/FormatDate.class.inc b/src/vitis/vas/rest/ws/vitis/FormatDate.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/FormatDate.class.inc
rename to src/vitis/vas/rest/ws/vitis/FormatDate.class.inc
diff --git a/vas/rest/ws/vitis/FormatDates.class.inc b/src/vitis/vas/rest/ws/vitis/FormatDates.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/FormatDates.class.inc
rename to src/vitis/vas/rest/ws/vitis/FormatDates.class.inc
diff --git a/vas/rest/ws/vitis/GenericQuery.class.inc b/src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/GenericQuery.class.inc
rename to src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc
diff --git a/vas/rest/ws/vitis/GenericQuerys.class.inc b/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/GenericQuerys.class.inc
rename to src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc
diff --git a/vas/rest/ws/vitis/GenericQuerys.class.sql.inc b/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc
similarity index 100%
rename from vas/rest/ws/vitis/GenericQuerys.class.sql.inc
rename to src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc
diff --git a/vas/rest/ws/vitis/Group.class.inc b/src/vitis/vas/rest/ws/vitis/Group.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Group.class.inc
rename to src/vitis/vas/rest/ws/vitis/Group.class.inc
diff --git a/vas/rest/ws/vitis/Groups.class.inc b/src/vitis/vas/rest/ws/vitis/Groups.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Groups.class.inc
rename to src/vitis/vas/rest/ws/vitis/Groups.class.inc
diff --git a/vas/rest/ws/vitis/Logs.class.inc b/src/vitis/vas/rest/ws/vitis/Logs.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Logs.class.inc
rename to src/vitis/vas/rest/ws/vitis/Logs.class.inc
diff --git a/vas/rest/ws/vitis/Mode.class.inc b/src/vitis/vas/rest/ws/vitis/Mode.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Mode.class.inc
rename to src/vitis/vas/rest/ws/vitis/Mode.class.inc
diff --git a/vas/rest/ws/vitis/Modes.class.inc b/src/vitis/vas/rest/ws/vitis/Modes.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Modes.class.inc
rename to src/vitis/vas/rest/ws/vitis/Modes.class.inc
diff --git a/vas/rest/ws/vitis/PhpInfo.class.inc b/src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/PhpInfo.class.inc
rename to src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc
diff --git a/vas/rest/ws/vitis/PrivateToken.class.inc b/src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/PrivateToken.class.inc
rename to src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc
diff --git a/vas/rest/ws/vitis/Privilege.class.inc b/src/vitis/vas/rest/ws/vitis/Privilege.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Privilege.class.inc
rename to src/vitis/vas/rest/ws/vitis/Privilege.class.inc
diff --git a/vas/rest/ws/vitis/Privileges.class.inc b/src/vitis/vas/rest/ws/vitis/Privileges.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Privileges.class.inc
rename to src/vitis/vas/rest/ws/vitis/Privileges.class.inc
diff --git a/vas/rest/ws/vitis/Properties.class.inc b/src/vitis/vas/rest/ws/vitis/Properties.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Properties.class.inc
rename to src/vitis/vas/rest/ws/vitis/Properties.class.inc
diff --git a/vas/rest/ws/vitis/PublicToken.class.inc b/src/vitis/vas/rest/ws/vitis/PublicToken.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/PublicToken.class.inc
rename to src/vitis/vas/rest/ws/vitis/PublicToken.class.inc
diff --git a/vas/rest/ws/vitis/Ressources.class.inc b/src/vitis/vas/rest/ws/vitis/Ressources.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Ressources.class.inc
rename to src/vitis/vas/rest/ws/vitis/Ressources.class.inc
diff --git a/vas/rest/ws/vitis/Schema.class.inc b/src/vitis/vas/rest/ws/vitis/Schema.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Schema.class.inc
rename to src/vitis/vas/rest/ws/vitis/Schema.class.inc
diff --git a/vas/rest/ws/vitis/SmtpServer.class.inc b/src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/SmtpServer.class.inc
rename to src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc
diff --git a/vas/rest/ws/vitis/Tab.class.inc b/src/vitis/vas/rest/ws/vitis/Tab.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Tab.class.inc
rename to src/vitis/vas/rest/ws/vitis/Tab.class.inc
diff --git a/vas/rest/ws/vitis/Table.class.inc b/src/vitis/vas/rest/ws/vitis/Table.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Table.class.inc
rename to src/vitis/vas/rest/ws/vitis/Table.class.inc
diff --git a/vas/rest/ws/vitis/Tabs.class.inc b/src/vitis/vas/rest/ws/vitis/Tabs.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Tabs.class.inc
rename to src/vitis/vas/rest/ws/vitis/Tabs.class.inc
diff --git a/vas/rest/ws/vitis/TimeZone.class.inc b/src/vitis/vas/rest/ws/vitis/TimeZone.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/TimeZone.class.inc
rename to src/vitis/vas/rest/ws/vitis/TimeZone.class.inc
diff --git a/vas/rest/ws/vitis/TimeZones.class.inc b/src/vitis/vas/rest/ws/vitis/TimeZones.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/TimeZones.class.inc
rename to src/vitis/vas/rest/ws/vitis/TimeZones.class.inc
diff --git a/vas/rest/ws/vitis/User.class.inc b/src/vitis/vas/rest/ws/vitis/User.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/User.class.inc
rename to src/vitis/vas/rest/ws/vitis/User.class.inc
diff --git a/vas/rest/ws/vitis/Users.class.inc b/src/vitis/vas/rest/ws/vitis/Users.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Users.class.inc
rename to src/vitis/vas/rest/ws/vitis/Users.class.inc
diff --git a/vas/rest/ws/vitis/Versions.class.inc b/src/vitis/vas/rest/ws/vitis/Versions.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Versions.class.inc
rename to src/vitis/vas/rest/ws/vitis/Versions.class.inc
diff --git a/vas/rest/ws/vitis/Vitis.class.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/Vitis.class.inc
rename to src/vitis/vas/rest/ws/vitis/Vitis.class.inc
diff --git a/vas/rest/ws/vitis/Vitis.class.sql.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc
similarity index 100%
rename from vas/rest/ws/vitis/Vitis.class.sql.inc
rename to src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc
diff --git a/vas/rest/ws/vitis/VitisSection.class.inc b/src/vitis/vas/rest/ws/vitis/VitisSection.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/VitisSection.class.inc
rename to src/vitis/vas/rest/ws/vitis/VitisSection.class.inc
diff --git a/vas/rest/ws/vitis/VitisSections.class.inc b/src/vitis/vas/rest/ws/vitis/VitisSections.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/VitisSections.class.inc
rename to src/vitis/vas/rest/ws/vitis/VitisSections.class.inc
diff --git a/vas/rest/ws/vitis/WebServices.class.inc b/src/vitis/vas/rest/ws/vitis/WebServices.class.inc
similarity index 100%
rename from vas/rest/ws/vitis/WebServices.class.inc
rename to src/vitis/vas/rest/ws/vitis/WebServices.class.inc
diff --git a/vas/rest/ws/vitis/overview.phtml b/src/vitis/vas/rest/ws/vitis/overview.phtml
similarity index 100%
rename from vas/rest/ws/vitis/overview.phtml
rename to src/vitis/vas/rest/ws/vitis/overview.phtml
diff --git a/vas/sql/sqlQueries.xml b/src/vitis/vas/sql/sqlQueries.xml
similarity index 100%
rename from vas/sql/sqlQueries.xml
rename to src/vitis/vas/sql/sqlQueries.xml
diff --git a/src/vitis/vas/tmp/file_to_delete.txt b/src/vitis/vas/tmp/file_to_delete.txt
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/vas/util/coordsys.txt b/src/vitis/vas/util/coordsys.txt
similarity index 100%
rename from vas/util/coordsys.txt
rename to src/vitis/vas/util/coordsys.txt
diff --git a/vas/util/migration/anc/SplitAddress.fmx b/src/vitis/vas/util/migration/anc/SplitAddress.fmx
similarity index 100%
rename from vas/util/migration/anc/SplitAddress.fmx
rename to src/vitis/vas/util/migration/anc/SplitAddress.fmx
diff --git a/vas/util/migration/anc/lisez-moi.txt b/src/vitis/vas/util/migration/anc/lisez-moi.txt
similarity index 100%
rename from vas/util/migration/anc/lisez-moi.txt
rename to src/vitis/vas/util/migration/anc/lisez-moi.txt
diff --git a/vas/util/migration/anc/migration_anc_veremap__vmap.fmw b/src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw
similarity index 100%
rename from vas/util/migration/anc/migration_anc_veremap__vmap.fmw
rename to src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw
diff --git a/vas/util/migration/migration_user_and_group.fmw b/src/vitis/vas/util/migration/migration_user_and_group.fmw
similarity index 100%
rename from vas/util/migration/migration_user_and_group.fmw
rename to src/vitis/vas/util/migration/migration_user_and_group.fmw
diff --git a/vas/util/migration/migration_veremap_layer.fmw b/src/vitis/vas/util/migration/migration_veremap_layer.fmw
similarity index 100%
rename from vas/util/migration/migration_veremap_layer.fmw
rename to src/vitis/vas/util/migration/migration_veremap_layer.fmw
diff --git a/vas/util/printserver/client/lib/angular/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/angular.js b/src/vitis/vas/util/printserver/client/lib/angular/angular.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/angular.js
rename to src/vitis/vas/util/printserver/client/lib/angular/angular.js
diff --git a/vas/util/printserver/client/lib/angular/angular.min.js b/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/angular.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/angular.min.js
diff --git a/vas/util/printserver/client/lib/angular/angular.min.js.map b/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map
similarity index 100%
rename from vas/util/printserver/client/lib/angular/angular.min.js.map
rename to src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js
diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js
diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE
diff --git a/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js
similarity index 100%
rename from vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js
rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js
diff --git a/vas/util/printserver/client/lib/bootstrap/LICENSE b/src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/LICENSE
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css
diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
diff --git a/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/js/bootstrap.js
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js
diff --git a/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js
diff --git a/vas/util/printserver/client/lib/bootstrap/js/npm.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js
similarity index 100%
rename from vas/util/printserver/client/lib/bootstrap/js/npm.js
rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js
diff --git a/vas/util/printserver/client/lib/closure/goog/base.js b/src/vitis/vas/util/printserver/client/lib/closure/goog/base.js
similarity index 100%
rename from vas/util/printserver/client/lib/closure/goog/base.js
rename to src/vitis/vas/util/printserver/client/lib/closure/goog/base.js
diff --git a/vas/util/printserver/client/lib/jquery/LICENSE.txt b/src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/LICENSE.txt
rename to src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt
diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.js
rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js
diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js
rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js
diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map
similarity index 100%
rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map
rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map
diff --git a/vas/util/printserver/client/lib/mapJSON/MapJSON.js b/src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js
similarity index 100%
rename from vas/util/printserver/client/lib/mapJSON/MapJSON.js
rename to src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js
diff --git a/vas/util/printserver/client/lib/ol/ol-debug.js b/src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol-debug.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js
diff --git a/vas/util/printserver/client/lib/ol/ol.css b/src/vitis/vas/util/printserver/client/lib/ol/ol.css
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol.css
rename to src/vitis/vas/util/printserver/client/lib/ol/ol.css
diff --git a/vas/util/printserver/client/lib/ol/ol.js b/src/vitis/vas/util/printserver/client/lib/ol/ol.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/licence.txt
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/readme.txt
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js
diff --git a/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js
similarity index 100%
rename from vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js
rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js
diff --git a/vas/util/printserver/client/map/index.html b/src/vitis/vas/util/printserver/client/map/index.html
similarity index 100%
rename from vas/util/printserver/client/map/index.html
rename to src/vitis/vas/util/printserver/client/map/index.html
diff --git a/vas/util/printserver/client/map/index.js b/src/vitis/vas/util/printserver/client/map/index.js
similarity index 100%
rename from vas/util/printserver/client/map/index.js
rename to src/vitis/vas/util/printserver/client/map/index.js
diff --git a/vas/util/printserver/client/map/map.js b/src/vitis/vas/util/printserver/client/map/map.js
similarity index 100%
rename from vas/util/printserver/client/map/map.js
rename to src/vitis/vas/util/printserver/client/map/map.js
diff --git a/vas/util/printserver/client/map/progress.js b/src/vitis/vas/util/printserver/client/map/progress.js
similarity index 100%
rename from vas/util/printserver/client/map/progress.js
rename to src/vitis/vas/util/printserver/client/map/progress.js
diff --git a/vas/util/printserver/client/map/projections.js b/src/vitis/vas/util/printserver/client/map/projections.js
similarity index 100%
rename from vas/util/printserver/client/map/projections.js
rename to src/vitis/vas/util/printserver/client/map/projections.js
diff --git a/vas/util/printserver/client/map/scale.js b/src/vitis/vas/util/printserver/client/map/scale.js
similarity index 100%
rename from vas/util/printserver/client/map/scale.js
rename to src/vitis/vas/util/printserver/client/map/scale.js
diff --git a/vas/util/printserver/client/report/index.html b/src/vitis/vas/util/printserver/client/report/index.html
similarity index 100%
rename from vas/util/printserver/client/report/index.html
rename to src/vitis/vas/util/printserver/client/report/index.html
diff --git a/vas/util/printserver/client/report/index.js b/src/vitis/vas/util/printserver/client/report/index.js
similarity index 100%
rename from vas/util/printserver/client/report/index.js
rename to src/vitis/vas/util/printserver/client/report/index.js
diff --git a/vas/util/printserver/client/report/report.js b/src/vitis/vas/util/printserver/client/report/report.js
similarity index 100%
rename from vas/util/printserver/client/report/report.js
rename to src/vitis/vas/util/printserver/client/report/report.js
diff --git a/vas/util/printserver/client/template/index.html b/src/vitis/vas/util/printserver/client/template/index.html
similarity index 100%
rename from vas/util/printserver/client/template/index.html
rename to src/vitis/vas/util/printserver/client/template/index.html
diff --git a/vas/util/printserver/client/template/index.js b/src/vitis/vas/util/printserver/client/template/index.js
similarity index 100%
rename from vas/util/printserver/client/template/index.js
rename to src/vitis/vas/util/printserver/client/template/index.js
diff --git a/vas/util/printserver/client/template/template.js b/src/vitis/vas/util/printserver/client/template/template.js
similarity index 100%
rename from vas/util/printserver/client/template/template.js
rename to src/vitis/vas/util/printserver/client/template/template.js
diff --git a/vas/util/printserver/client/utils/http.js b/src/vitis/vas/util/printserver/client/utils/http.js
similarity index 100%
rename from vas/util/printserver/client/utils/http.js
rename to src/vitis/vas/util/printserver/client/utils/http.js
diff --git a/vas/util/printserver/client/utils/properties.js b/src/vitis/vas/util/printserver/client/utils/properties.js
similarity index 100%
rename from vas/util/printserver/client/utils/properties.js
rename to src/vitis/vas/util/printserver/client/utils/properties.js
diff --git a/vas/util/printserver/client/utils/utils.js b/src/vitis/vas/util/printserver/client/utils/utils.js
similarity index 100%
rename from vas/util/printserver/client/utils/utils.js
rename to src/vitis/vas/util/printserver/client/utils/utils.js
diff --git a/vas/util/printserver/server/printmap.js b/src/vitis/vas/util/printserver/server/printmap.js
similarity index 100%
rename from vas/util/printserver/server/printmap.js
rename to src/vitis/vas/util/printserver/server/printmap.js
diff --git a/vas/util/printserver/server/printreport.js b/src/vitis/vas/util/printserver/server/printreport.js
similarity index 100%
rename from vas/util/printserver/server/printreport.js
rename to src/vitis/vas/util/printserver/server/printreport.js
diff --git a/vas/util/printserver/server/printtemplate.js b/src/vitis/vas/util/printserver/server/printtemplate.js
similarity index 100%
rename from vas/util/printserver/server/printtemplate.js
rename to src/vitis/vas/util/printserver/server/printtemplate.js
diff --git a/vas/util/printserver/server/saveimage.js b/src/vitis/vas/util/printserver/server/saveimage.js
similarity index 100%
rename from vas/util/printserver/server/saveimage.js
rename to src/vitis/vas/util/printserver/server/saveimage.js
diff --git a/vas/util/printserver/server/targetsize.js b/src/vitis/vas/util/printserver/server/targetsize.js
similarity index 100%
rename from vas/util/printserver/server/targetsize.js
rename to src/vitis/vas/util/printserver/server/targetsize.js
diff --git a/vas/util/proxy/proxy.php b/src/vitis/vas/util/proxy/proxy.php
similarity index 100%
rename from vas/util/proxy/proxy.php
rename to src/vitis/vas/util/proxy/proxy.php
diff --git a/vas/util/webSocket/server/lib/SplClassLoader.php b/src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php
similarity index 100%
rename from vas/util/webSocket/server/lib/SplClassLoader.php
rename to src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/Application.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/Application.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/Status.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/Status.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Connection.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Connection.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Server.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Server.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php
diff --git a/vas/util/webSocket/server/lib/WebSocket/Socket.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php
similarity index 100%
rename from vas/util/webSocket/server/lib/WebSocket/Socket.php
rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php
diff --git a/vas/util/webSocket/server/server.pem b/src/vitis/vas/util/webSocket/server/server.pem
similarity index 100%
rename from vas/util/webSocket/server/server.pem
rename to src/vitis/vas/util/webSocket/server/server.pem
diff --git a/vas/util/webSocket/server/server.php b/src/vitis/vas/util/webSocket/server/server.php
similarity index 100%
rename from vas/util/webSocket/server/server.php
rename to src/vitis/vas/util/webSocket/server/server.php
diff --git a/vas/util/writerpick.txt b/src/vitis/vas/util/writerpick.txt
similarity index 100%
rename from vas/util/writerpick.txt
rename to src/vitis/vas/util/writerpick.txt
diff --git a/utils/copy_hooks.sh b/utils/copy_hooks.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f5bed2f2552ef3440e7e9589197c0922a1875927
--- /dev/null
+++ b/utils/copy_hooks.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+#
+#
+# 	Script de mise à jour des hooks client
+#
+#
+#
+
+
+if [ -d "githooks" ]; then
+	if [ -d "../.git/hooks" ]; then
+	    cp -f githooks/* ../.git/hooks/
+	fi
+fi
diff --git a/utils/get_deps.sh b/utils/get_deps.sh
new file mode 100755
index 0000000000000000000000000000000000000000..92b0273980ef5ae8db6eea7268fd3a5c406243b9
--- /dev/null
+++ b/utils/get_deps.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+#	Récupère l'ensemble des dépendances depuis conf/_install/dependency.xml
+#	Nécessite xmllint : sudo apt install libxml2-utils
+#
+#
+#
+#
+
+
+if [ "../conf/_install/dependency.xml" ]; then
+
+	let depsCount=$(xmllint --xpath 'count(//dependenciesCollection/dependency/name)' ../conf/_install/dependency.xml)
+	declare -A aDeps
+	vitisVersion=master
+
+	for (( i=1; i <= $depsCount; i++ )); do
+
+		sName="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/name)' ../conf/_install/dependency.xml)"
+		sVersion="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/version)' ../conf/_install/dependency.xml)"
+		sNature="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/nature)' ../conf/_install/dependency.xml)"
+
+		if [ $sName == "vitis" ]; then
+			vitisVersion=$sVersion
+		fi
+		if [ $sNature == "modules" ] || [ $sNature == "web_services" ] || [ $sName == "vitis" ]; then
+			aDeps[$i, name]=$sName
+			aDeps[$i, version]=$sVersion
+			aDeps[$i, nature]=$sNature
+		fi
+
+	done
+
+	echo "[INFO] dependencies:"
+	echo "vitis : $vitisVersion"
+	for (( i=1; i <= $depsCount; i++ )); do
+
+		echo "name: ${aDeps[$i, name]}"
+		echo "version: ${aDeps[$i, version]}"
+
+	done
+
+	export vitisVersion
+	export depsCount
+	export aDeps
+else
+	echo "[ERROR] ../conf/_install/dependency.xml not found"
+fi
diff --git a/utils/githooks/post-merge b/utils/githooks/post-merge
new file mode 100755
index 0000000000000000000000000000000000000000..548e6ae56f6a55c2d1acab88308e336c06e71616
--- /dev/null
+++ b/utils/githooks/post-merge
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+#   Hook qui permet de pull toutes les dépendances
+#   quand on fait un pull sur l'application
+#
+#
+#
+#
+#
+
+echo "****** Post-merge Hook ******"
+echo "****** Pull subtrees ******"
+echo "$(pwd)"
+
+if [ -d "$(pwd)/utils" ]; then
+    cd utils
+    ./pull_subtrees.sh
+fi
diff --git a/utils/githooks/pre-push b/utils/githooks/pre-push
new file mode 100755
index 0000000000000000000000000000000000000000..50401f9e2df8033763628124e1445afe66e9bad5
--- /dev/null
+++ b/utils/githooks/pre-push
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+#   Hook qui permet de push toutes les dépendances
+#   quand on fait un push sur l'application
+#
+#
+#
+#
+#
+
+remote="$1"
+url="$2"
+if [ $remote != $url ]; then
+
+    echo "****** Pre-push Hook ******"
+    echo "****** Push subtrees ******"
+    if [ -d "$(pwd)/utils" ]; then
+        cd utils
+        ./push_subtrees.sh
+    fi
+fi
diff --git a/utils/init_subtrees.sh b/utils/init_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f9c2abf14978552d1ae88ca6b9b119d51c71578
--- /dev/null
+++ b/utils/init_subtrees.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#	Nécessite xmllint : sudo apt install libxml2-utils
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+if [ -d "$(pwd)/client" ]; then
+	rm client
+fi
+if [ -d "$(pwd)/vas" ]; then
+	rm vas
+fi
+if [ -d "$(pwd)/src" ]; then
+	git rm -r src
+	git commit -a -m "Reset sources"
+fi
+mkdir src
+
+if [[ $depsCount > 0 ]]; then
+
+	# Vitis
+	echo "---- Init vitis ----"
+	git subtree add --squash -m "add subtree" --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion
+
+	echo "---- Init conf ----"
+	git subtree add --squash -m "add subtree" --prefix src/closure "git@gitlab.veremes.net:Development/vitis_apps/sources/closure.git" master
+
+	# Modules
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Init ${aDeps[$i, name]} : ${aDeps[$i, version]}----"
+
+		    # Ajoute le dépôt
+			git subtree add --squash -m "add subtree" --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]}
+		fi
+	done
+
+fi
diff --git a/utils/init_symlinks.sh b/utils/init_symlinks.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c98ed30e162c2d81c8b90e5b6755bb5602941b5e
--- /dev/null
+++ b/utils/init_symlinks.sh
@@ -0,0 +1,129 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#
+#   Split repo
+#   git subtree split -P module/ -b module_split_branch
+#
+#   Add subtree
+#   git subtree add --prefix vmap "git@gitlab.veremes.net:Development/vitis_apps/sources/Vitis.git" master
+#
+#
+
+echo -n "Existing app path (path/empty)? "
+read APP_EXISTING_PATH
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Link vitis ----"
+if ! [ -e "$(pwd)/client" ]; then
+	echo "---- Link vitis 2 ----"
+	ln -rsf src/vitis/client client
+fi
+if ! [ -e "$(pwd)/vas" ]; then
+	ln -rsf src/vitis/vas vas
+fi
+
+# Conf
+echo "---- Link conf ----"
+if ! [ -e "src/vitis/client/conf" ]; then
+	ln -rsf conf src/vitis/client/conf
+fi
+if ! [ -e "conf/closure" ]; then
+	ln -rsf src/closure/conf conf/closure
+fi
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			if [ ${aDeps[$i, name]:0:7} == "module_" ]; then
+				module=${aDeps[$i, name]:7}
+				echo "---- Link module_${module} ----"
+				if [ -d "$(pwd)/src/module_${module}/module" ]; then
+					if ! [ -e "src/vitis/client/modules/${module}" ]; then
+						ln -rsf src/module_${module}/module src/vitis/client/modules/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/ws" ]; then
+					if ! [ -e "src/vitis/vas/rest/ws/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/ws src/vitis/vas/rest/ws/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/conf" ]; then
+					if ! [ -e "src/vitis/vas/rest/conf/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/conf src/vitis/vas/rest/conf/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/sql" ]; then
+					if ! [ -e "src/vitis/vas/sql/${module}" ]; then
+						ln -rsf src/module_${module}/web_service/sql src/vitis/vas/sql/${module}
+					fi
+				fi
+				if [ -d "$(pwd)/src/module_${module}/web_service/class" ]; then
+					for class_dir in $( ls "$(pwd)/src/module_${module}/web_service/class"); do
+						if [ -d "$(pwd)/src/module_${module}/web_service/class/${class_dir}" ]; then
+							echo "---- Link module_${module}/${class_dir} ----"
+							if ! [ -e "src/vitis/vas/rest/class/${class_dir}" ]; then
+								ln -rsf src/module_${module}/web_service/class/${class_dir} src/vitis/vas/rest/class/${class_dir}
+							fi
+						fi
+					done
+				fi
+			fi
+		fi
+	done
+
+	# Utilisation d'une install déjà existante
+	if [ -d "${APP_EXISTING_PATH}" ]; then
+		echo "---- Link exixting app ${APP_EXISTING_PATH} ----"
+
+		declare -a existing_folders_path=("vas/server"
+		                "vas/log"
+						"vas/public"
+						"vas/shared"
+						"vas/tmp"
+						"vas/upload"
+		                "vas/ws_data")
+		for folder_path in "${existing_folders_path[@]}"; do
+			if [ -d "${APP_EXISTING_PATH}/$folder_path" ]; then
+				echo "copy $folder_path"
+				cp -Rf "${APP_EXISTING_PATH}/$folder_path" "$(pwd)/$folder_path"
+				chmod 777 -R "$(pwd)/$folder_path"
+			fi
+		done
+
+		declare -a existing_files_path=("client/conf/properties.json"
+										"vas/rest/conf/properties.inc"
+										"vas/rest/conf/properties_domain.inc"
+										"vas/rest/conf/properties_post.inc"
+										"vas/rest/conf/properties_server.inc"
+										"vas/rest/conf/version.inc"
+										"vas/rest/.htaccess")
+		for file_path in "${existing_files_path[@]}"; do
+			if [ -f "${APP_EXISTING_PATH}/$file_path" ]; then
+				echo "copy $file_path"
+				cp -f "${APP_EXISTING_PATH}/$file_path" "$(pwd)/$file_path"
+			fi
+		done
+
+		for properties_dir in $( ls "${APP_EXISTING_PATH}/vas/rest/conf"); do
+			if [ -d "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}" ]; then
+				if [ -d "$(pwd)/vas/rest/conf/${properties_dir}" ]; then
+					for properties_file in $( ls "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}"); do
+						# if [ ${properties_file:0:10}=="properties"  ||  ${properties_file}=="version.inc" ]; then
+						if [[ $properties_file == "properties"* ]] || [[ $properties_file == "version.inc" ]]; then
+							echo "copy vas/rest/conf/${properties_dir}/${properties_file}"
+							cp -f "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/${properties_file}" "$(pwd)/vas/rest/conf/${properties_dir}/${properties_file}"
+						fi
+					done
+				fi
+			fi
+		done
+	fi
+fi
diff --git a/utils/pull_subtrees.sh b/utils/pull_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c2793f2ee9ad6e0f53da243fb1b6d26dd9baa20b
--- /dev/null
+++ b/utils/pull_subtrees.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Pull vitis ----"
+git subtree pull --prefix src/vitis --squash -m "pull subtree"  "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master
+
+# fichiers à ignorer
+git update-index --assume-unchanged conf/properties.json
+git update-index --assume-unchanged conf/package.json
+git update-index --assume-unchanged src/vitis/vas/rest/.htaccess
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_domain.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_post.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_server.inc
+git update-index --assume-unchanged src/vitis/vas/rest/conf/version.inc
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Pull ${aDeps[$i, name]} ----"
+
+			# Ajoute le dépôt
+			git subtree pull --prefix src/${aDeps[$i, name]} --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master
+			# fichiers à ignorer
+			git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties.inc
+			git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties_server.inc
+			git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/version.inc
+		fi
+	done
+fi
diff --git a/utils/push_subtrees.sh b/utils/push_subtrees.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b4949ea2dca1465c2cc0282d59442c158d7138e1
--- /dev/null
+++ b/utils/push_subtrees.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+#
+#
+# 	Script d'initialisation d'un dépot vMap versionné sous git
+#	Initislise l'ensemble des dépendances sous forme de subtrees
+#
+#
+#
+
+
+APP_NAME="vmap"
+
+# Récupère la liste des dépendances
+. ./get_deps.sh
+
+cd ..
+
+# Vitis
+echo "---- Push vitis ----"
+git subtree push --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master
+
+# Modules
+if [[ $depsCount > 0 ]]; then
+	for (( i=1; i <= $depsCount; i++ )); do
+		if [ ${aDeps[$i, nature]} == "modules" ]; then
+			echo "---- Push ${aDeps[$i, name]} ----"
+
+			# Push le dépôt
+
+			{ # 'try' block
+				git subtree push --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master
+			} || { # 'catch' block
+			    echo "could not push ${aDeps[$i, name]}"
+			}
+		fi
+	done
+fi